overwolf.streaming API
This namespace contains all the functionality that allows the streaming of video/audio.
The term streaming might be a bit misleading – we regard saving a video to the local drive as streaming, as well as streaming the video to a streaming service such as Twitch.tv.
Permissions required: Streaming
Please check the streaming API sample app that demonstrates a primary usage in the API. Please read all the info about streaming usage and options on our video capture best practices guide.
Methods Reference
- overwolf.streaming.start()
- overwolf.streaming.stop()
- overwolf.streaming.getActiveRecordingApps()
- overwolf.streaming.getCapabilities()
- overwolf.streaming.split()
- overwolf.streaming.changeVolume()
- overwolf.streaming.setWatermarkSettings()
- overwolf.streaming.getWatermarkSettings()
- overwolf.streaming.getWindowStreamingMode()
- overwolf.streaming.setWindowStreamingMode()
- overwolf.streaming.setWindowObsStreamingMode()
- overwolf.streaming.setBRBImage()
- overwolf.streaming.getStreamEncoders()
- overwolf.streaming.getAudioDevices()
- overwolf.streaming.updateStreamingDesktopOptions()
Events Reference
- overwolf.streaming.onStreamingSourceImageChanged
- overwolf.streaming.onStopStreaming
- overwolf.streaming.onStartStreaming
- overwolf.streaming.onStreamingError
- overwolf.streaming.onStreamingWarning
- overwolf.streaming.onVideoFileSplit
- overwolf.streaming.onSupportedEncodersUpdated
Types Reference
- overwolf.streaming.StreamingCapabilities Object
- overwolf.streaming.StreamSettings Object
- overwolf.streaming.enums.StreamingProvider Enum
- overwolf.streaming.enums.CaptureErrorCode Enum
- overwolf.streaming.StreamParams Object
- overwolf.streaming.StreamInfo Object
- overwolf.streaming.StreamAuthParams Object
- overwolf.streaming.StreamVideoOptions Object
- overwolf.streaming.enums.VideoColorSpec Enum
- overwolf.streaming.enums.VideoColorFormat Enum
- overwolf.streaming.StreamingVideoEncoderSettings Object
- overwolf.streaming.enums.StreamEncoder Enum
- overwolf.streaming.StreamingVideoEncoderNVIDIA_NVENCSettings Object
- overwolf.streaming.enums.StreamEncoderPreset_NVIDIA
- overwolf.streaming.enums.StreamEncoderRateControl_NVIDIA
- overwolf.streaming.StreamingVideoEncoderIntelSettings Object
- overwolf.streaming.StreamingVideoEncoderx264Setting Object
- overwolf.streaming.enums.StreamEncoderPreset_x264 Enum
- overwolf.streaming.enums.StreamEncoderRateControl_x264 Enum
- overwolf.streaming.StreamingVideoEncoderAMD_AMFSettings Object
- overwolf.streaming.enums.StreamEncoderPreset_AMD_AMF Enum
- overwolf.streaming.enums.StreamEncoderRateControl_AMD_AMF Enum
- overwolf.streaming.StreamDesktopCaptureOptions Object
- overwolf.streaming.StreamAudioOptions Object
- overwolf.streaming.enums.AudioSampleRate Enum
- AudioDeviceOptions Object
- ProcessAudioCapture Object
- overwolf.streaming.StreamDeviceVolume Object
- overwolf.streaming.enums.AudioTracks Enum
- overwolf.streaming.GameAudioDevice Object
- overwolf.streaming.GameCaptureOptions Object
- overwolf.streaming.StreamPeripheralsCaptureOptions Object
- overwolf.streaming.StreamPeripheralsCaptureOptions Object
- overwolf.streaming.enums.StreamMouseCursor Enum
- overwolf.streaming.StreamIngestServer Object
- overwolf.streaming.WatermarkSettings Object
- overwolf.streaming.enums.StreamingMode Enum
- overwolf.streaming.enums.ObsStreamingMode Enum
- overwolf.streaming.SplitResult Object
- overwolf.streaming.enums.indication_position Enum
- overwolf.streaming.enums.indication_type Enum
- overwolf.streaming.StreamQuotaParams Object
- overwolf.streaming.StreamResult Object
- overwolf.streaming.GetActiveRecordingAppsResult Object
- overwolf.streaming.ActiveRecordingApps Object
- overwolf.streaming.StreamEvent Object
- overwolf.streaming.StopStreamingEvent Object
- overwolf.streaming.StopStreamingResult Object
- overwolf.streaming.GetWatermarkSettingsResult Object
- overwolf.streaming.GetWindowStreamingModeResult Object
- overwolf.streaming.GetStreamEncodersResult Object
- overwolf.streaming.EncoderData Object
- overwolf.streaming.AudioDeviceData Object
- overwolf.streaming.GetAudioDevicesResult Object
- overwolf.streaming.StreamingSourceImageChangedEvent Object
- overwolf.streaming.VideoFileSplitedEvent Object
- overwolf.streaming.enums.eVideoBaseFrameSizeSource Enum
- overwolf.streaming.enums.eVideoFrameSizeCalcMethod Enum
- overwolf.streaming.GameWindowCapture Object
Sample app
In our APIs sample apps repository, you can find and download the Streaming Sample App
. It's a great place to get started - All the samples in this repository are built with JS code and demonstrate primary usage in the API.
Functionality
The sample app's functionality is pretty straightforward: You launch it, open the dev console (to see all the debug messages) and hit the start
button to start the capture, and stop
to stop it. You can look at the dev console to see the status of each call (success, failure, etc.). Once done, you can hit the open media folder to check the captured clip.
Setting up
Setting up
Download the app's source code from the repository as a zip file, and extract it to a new folder on your machine.
Load the app as an "unpacked extension" (Note that to do that you have to whitelist your OW username as a developer).
- Open the Overwolf desktop client settings (by right-clicking the client and selecting "Packages" Or by clicking on the wrench icon in the dock and going to the "About" tab => "Development Options").
- Click on "Development options".
- In the opened window, click on "Load unpacked extension" and select the extracted 'streaming-sample' folder. This will add the app to your Overwolf dock.
- Make sure you are logged in to the OW client. Otherwise, you will get an "Unauthorized App" error message. (Click on the "Appstore" icon in the OW dock to login to the OW client).
- Click on the app's icon in your OW dock to run the app.
start(settings, callback)
Version added: 0.78
Start a new stream.
Note that this feature will work only when your target game is running.
Parameter | Type | Description |
---|---|---|
settings | StreamSettings object | The stream settings |
callback | (Result: StreamResult) => void | Returns with the result |
For more info read our Basic streaming usage flow.
Note that the stream will be recorded in chunks in a size of max_file_size_bytes
. If you would like in addition, a full length single file copy, you can set include_full_size_video
to true.
Usage Examples
Minimal required settings:
Here you can find example with the minimal required setting.
Note that when a setting value is not defined, a default value is set.
overwolf.streaming.onStopStreaming.addListener(console.log); //register to the onStopStreaming
overwolf.streaming.onStreamingError.addListener(console.log); //register to the onStreamingError
overwolf.streaming.onStreamingWarning.addListener(console.log); //register to the onStreamingWarning
var streamId; //we will use this variable to save the stream id
var stream_settings = {
"provider": overwolf.streaming.enums.StreamingProvider.VideoRecorder,
"settings": {
"audio": {"mic": {},"game": {} },
"video": {}
}
};
//start the stream
overwolf.streaming.start(stream_settings,
function(result) {
if (result.status == "success")
{
streamId = result.stream_id; //we need it for stopping the stream and manipulating stream settings later
console.debug(result.stream_id);
}
else {
console.debug("something went wrong...");
}
}
);
//stop the stream
overwolf.streaming.stop(streamId);
Example with customized Audio and Video settings:
overwolf.streaming.onStopStreaming.addListener(console.log); //register to the onStopStreaming
overwolf.streaming.onStreamingError.addListener(console.log); //register to the onStreamingError
overwolf.streaming.onStreamingWarning.addListener(console.log); //register to the onStreamingWarning
var streamId; //we will use this variable to save the stream id
var stream_settings = {
"provider": overwolf.streaming.enums.StreamingProvider.VideoRecorder,
"settings": {
"audio": {
"mic": {
"volume": 75,
"enable": true
},
"game": {
"volume": 75,
"enable": true
}
},
"video": {
"auto_calc_kbps": false,
"fps": 30,
"width": 1920,
"height": 1080,
"max_kbps": 1500,
"buffer_length": 20000,
"max_file_size_bytes": 50000000,
"include_full_size_video": true,
"notify_dropped_frames_ratio": 0.5,
"test_drop_frames_interval": 5000,
"indication_position": 'TopRightCorner',
"indication_type": 'dot',
"base_frame_size_source" : ["Setting","Auto"] , // if not set, "Setting" is the default
"frame_size_method": ["Original", "ExactOrKeepRatio", "ExactOrClosestResolution"] , // // Original
"encoder": {
"name": overwolf.streaming.enums.StreamEncoder.X264,
"config": {
"preset": overwolf.streaming.enums.StreamEncoderPreset_x264,
"rate_control": overwolf.streaming.enums.StreamEncoderRateControl_x264,
"keyframe_interval": 2
}
}
}
}
};
//start the stream
overwolf.streaming.start(stream_settings,
function(result) {
if (result.status == "success")
{
streamId = result.stream_id; //we need it for stopping the stream and manipulating stream settings later
console.debug(result.stream_id);
}
else {
console.debug("something went wrong...");
}
}
);
//stop the stream
overwolf.streaming.stop(streamId);
Example with customized Quota settings:
You can customize the stream quota settings and enable individual folders that are not part of the quota (to save favorite videos, for example). Read more about quota options here.
overwolf.streaming.onStopStreaming.addListener(console.log); //register to the onStopStreaming
overwolf.streaming.onStreamingError.addListener(console.log); //register to the onStreamingError
overwolf.streaming.onStreamingWarning.addListener(console.log); //register to the onStreamingWarning
var streamId; //we will use this variable to save the stream id
var stream_settings = {
"provider": overwolf.streaming.enums.StreamingProvider.VideoRecorder,
"settings": {
"audio": {"mic": {},"game": {} },
"video": {},
"quota": {
"max_quota_gb": 2,
"excluded_directories": [ "cool_session" ] //set directories that are not part of the quota
}
}
};
//start the stream
overwolf.streaming.start(stream_settings,
function(result) {
if (result.status == "success")
{
streamId = result.stream_id; //we need it for stopping the stream and manipulating stream settings later
console.debug(result.stream_id);
}
else {
console.debug("something went wrong...");
}
}
);
//stop the stream
overwolf.streaming.stop(streamId);
stop(streamId, callback)
Version added: 0.78
Stops the given stream.
Parameter | Type | Description |
---|---|---|
streamId | int | The id of the stream to stop |
callback | (Result: StopStreamingResult) => void | Returns with the result |
getActiveRecordingApps(callback)
Version added: 0.233
Checks which apps are currently using the
overwolf.streaming
recording engine.
Parameter | Type | Description |
---|---|---|
callback | (Result: GetActiveRecordingAppsResult) => void | Returns with the result |
getCapabilities(callback)
Version added: 0.199
Returns all different streaming capabilities
Parameter | Type | Description |
---|---|---|
callback | (Result: StreamingCapabilities) => void | The streaming capabilities |
split(streamId, callback)
Version added: 0.141
Request to split video now.
This is an experimental function and shouldn’t be used without Overwolf’s permission
This method is available when recording with the enable_on_demand_split setting.
onVideoFileSplit event will be fired when the video splits.
Parameter | Type | Description |
---|---|---|
streamId | int | The id of the stream to split |
callback | (Result: SplitResult) => void | Returns with the result |
changeVolume(streamId, audioOptions, callback)
Version added: 0.78
Changes the volume of the stream.
Parameter | Type | Description |
---|---|---|
streamId | int | The id of the stream on which the volume is changed |
audioOptions | StreamAudioOptions Object | The new volumes encapsulated in an object |
callback | (Result) => void | Returns with the result |
setWatermarkSettings(settings, callback)
Version added: 0.78
Sets the watermark settings.
Parameter | Type | Description |
---|---|---|
settings | WatermarkSettings Object | The new watermark settings |
callback | (Result) => void | Returns with the result |
Usage Example
overwolf.streaming.setWatermarkSettings(
{ showWatermark : true },
function (result) {
console.log ("watermark settings changed.");
}
);
getWatermarkSettings(callback)
Version added: 0.78
Gets the watermark settings.
Parameter | Type | Description |
---|---|---|
callback | (Result: GetWatermarkSettingsResult) => void | Returns with the result and the current watermark settings |
getWindowStreamingMode(windowId, callback)
Version added: 0.78
Call the given callback function with the window’s streaming mode as a parameter.
Parameter | Type | Description |
---|---|---|
windowId | string | The id of the window for which to get the streaming mode |
callback | (Result: GetWindowStreamingModeResult) => void | Returns with the result |
setWindowStreamingMode(windowId, streamingMode, callback)
Version added: 0.78
Call the given callback function with the window’s streaming mode as a parameter.
Parameter | Type | Description |
---|---|---|
windowId | string | The id of the window for which to set the streaming mode |
streamingMode | streamingMode enum | The desired streaming mode |
callback | (Result) => void | Returns with the result |
setWindowObsStreamingMode(windowId, obsStreamingMode, callback)
Version added: 0.78
Sets the streaming mode for the window when using OBS.
Parameter | Type | Description |
---|---|---|
windowId | string | The id of the window for which to set the streaming mode |
streamingMode | ObsStreamingMode enum | The desired OBS streaming mode |
callback | (Result) => void | Returns with the result |
setBRBImage(streamId, image, backgroundColor, callback)
Version added: 0.78
Set a stream’s Be Right Back image.
Parameter | Type | Description |
---|---|---|
streamId | int | The id of the stream for which to set the Be Right Back image |
image | Object | The image to set, as an IMG object or a URL |
backgroundColor | string | The color to paint the last game frame with before overlaying the image |
callback | (Result) => void | Returns with the result |
getStreamEncoders(callback)
Version added: 0.83
Returns an array of supported streaming encoders, with extra metadata for each one.
Parameter | Type | Description |
---|---|---|
callback | (Result: GetStreamEncodersResult) => void | A callback function to call with the array of encoders and their metadata |
getAudioDevices(callback)
Version added: 0.78
Returns an array of all audio devices that can be used.
Parameter | Type | Description |
---|---|---|
callback | (Result: GetAudioDevicesResult) => void | A callback function to call with the array of audio devices and their metadata |
updateStreamingDesktopOptions(streamId, newOptions, mouseCursorStreamingMethod, callback)
Version added: 0.78
Update stream desktop capture options.
This function is Deprecated.
Parameter | Type | Description |
---|---|---|
streamId | int | The id of the stream |
newOptions | StreamDesktopCaptureOptions Object | The updated desktop capture streaming options |
mouseCursorStreamingMethod | streamMouseCursor enum | The updated value of the mouse cursor streaming method |
callback | (Result) => void | Reports success or failure |
onStreamingSourceImageChanged
Version added: 0.78
Fired when the stream started streaming a new image source (desktop, game), with the following structure: StreamingSourceImageChangedEvent Object.
onStopStreaming
Version added: 0.78
Fired when the stream was stopped (and a recording was created), with the following structure: StopStreamingEvent Object.
onStartStreaming
Version added: 0.106
Fired when the stream has started, with the following structure: StreamEvent Object.
onStreamingError
Version added: 0.78
Fired when the stream has crashed, with the following structure: StreamEvent Object.
Possible Error Codes
- Unknown
- Unauthorized
- Invalid_Server
- No_Internet
- Invalid_Video_Settings
- No_Playback_Device
- Not_InGame
- Internet_Congested
- Game_Quit_Mid_Stream
- Twitch_Dll_Load_Error
- Twitch_Init_Error
- No_Encoder
- Out_Of_Disk_Space
- Update_Driver
Event Data Example
{
"status": "error",
"stream_id": 1,
"error": "Internet_Congested"
}
Event Data Example: Out_Of_Disk_Space
{
"SubErrorMessage": "Out_Of_Disk_Space"
"error": "Out_Of_Disk_Space"
"status": "error",
"stream_id": 1,
"success": false
}
onStreamingWarning
Version added: 0.78
Fired upon a warning with the stream, with the following structure: StreamEvent Object.
Usage example
overwolf.streaming.onStreamingWarning.addListener(function(result) {
//result.stream_id
//result.error = "HIGH_CPU_USAGE" // there will probably be frames lost
});
Event Data Example: low_disk_space_warning
{
"stream_id": 1,
"SubErrorMessage": "{PATH/TO/FILE}",
"status": "error",
"success": false,
"error": "low_disk_space_warning"
}
onVideoFileSplit
Version added: 0.103
Fired upon video file splited, with the following structure: VideoFileSplitedEvent Object.
onSupportedEncodersUpdated
Version added: 0.169
Fired upon support encoder list updated, with the following structure: SupportedEncodersUpdatedEvent Object.
StreamingCapabilities Object
Version added: 0.199
Stream settings container.
Name | Type | Description | Since |
---|---|---|---|
success | bool | The stream provider name | 0.199 |
error | string | Optional error if any occured | 0.199 |
video | EncoderData[] | Array of available video encoders | 0.199 |
audio | AudioDeviceData[] | Array of available audio devices | 0.199 |
audioProcessCaptureSupported | bool | Is filtered sound capturing supported? | 0.199 |
Object data example
"settings": {
"success": true,
"video": [
{
"display_name" : "Speakers (USB Ear-Microphone)",
"display_id" : "{0.0.0.00000000}.{ec2a6c4b-f750-4045-bb93-d745ecc76937}",
"device_state" : "Active",
"can_record" : false,
"can_playback" : true
},
]
"audio": [
{
...
}
],
"audioProcessCaptureSupported": true
}
AudioCapabilities Object
Version added: 0.199
Audio devices container.
Name | Type | Description | Since |
---|---|---|---|
devices | AudioDeviceData[] | Array of available audio devices | 0.199 |
audioProcessCaptureSupported | bool | Is filtered sound capturing supported? | 0.199 |
VideoCapabilities Object
Version added: 0.199
Video capabilities container.
Name | Type | Description | Since |
---|---|---|---|
encoders | EncoderData[] | Array of available video encoders | 0.199 |
StreamSettings Object
Version added: 0.78
Stream settings container.
Name | Type | Description | Since |
---|---|---|---|
provider | streamingProvider enum | The stream provider name | 0.78 |
settings | StreamParams object | The stream provider settings | 0.78 |
Object data example
"settings": {
"video": { "buffer_length": 20000 },
"audio": {
"mic": {
"volume": 100,
"enable": true,
"mono": false
},
"game": {
"volume": 75,
"enable": true
}
},
"peripherals": {
"capture_mouse_cursor": "both"
},
"quota": {
"max_quota_gb": 2,
"excluded_directories": [ "cool_session" ] //set directories that are not part of the quota
}
}
StreamingProvider Enum
Version added: 0.78
Options | Description |
---|---|
Unknown | The stream provider name |
Twitch | Stream to Twitch |
VideoRecorder | |
RTMP | Stream to YouTube, Facebook, smashcast.tv, etc. |
CaptureErrorCode Enum
Version added: 0.208
Options | Description |
---|---|
Success | 0 |
FolderCreation | 1 |
RansomwareProtection | 2 |
AlreadyStreaming | 3 |
MissingSetting | 4 |
SettingError | 5 |
InternalOBSError | 6 |
NotAllowedInGame | 7 |
HighPerformanceCaptureNotSupported | 8 |
NotInGame | 9 |
HighlightsMissing | 10 |
RequestedHighlightsUnsupported | 11 |
UnsupportedEncoder | 12 |
Unknown | 1000 |
RansomwareProtection Note
If Windows ransomware protection on folders is turned on, writing to the capture folder path is blocked, and as such, the stream returns an error. More information can be found here.
StreamParams Object
Version added: 0.78
Represents the settings required to start a stream.
Name | Type | Description | Since |
---|---|---|---|
audio | StreamAudioOptions Object | Stream audio options | 0.78 |
peripherals | StreamPeripheralsCaptureOptions Object | Defines how peripherals (i.e. mouse cursor) are streamed. Permissions required: DesktopStreaming | 0.78 |
max_quota_gb | double | Max media folder size in GB. deprecated | 0.78 |
quota | StreamQuotaParams object | Parameters for limiting disk space allocation. | 0.147 |
stream_info | StreamInfo object | The basic stream information | 0.78 |
auth | StreamAuthParams object | Stream authorization data | 0.78 |
video | StreamVideoOptions Object | Stream video options | 0.78 |
ingest_server | StreamIngestServer Object | Information on the server that is being streamed to | 0.78 |
replay_type | ReplayType enum | The replay type to use | 0.78 |
StreamQuotaParams Object
Version added: 0.147
The basic quota information.
You can allocate limited disk space for your captured video and even set an array of directories that are excluded from max quota calculations.
You can use it, for example, to implement "favorites captures" feature: allow your app's users to mark some captured videos as "favorites," move them to one of the excluded directories, and make sure that they not deleted when the quota has reached the limit. Of course, this is just a suggested usage example.
Name | Type | Description | Since |
---|---|---|---|
max_quota_gb | double | Max media folder size in GB | 0.147 |
excluded_directories | string[] | Array of directories that are excluded from max quota calculations | 0.147 |
Notes
To set your app to never deletes the captured clips, you can skip passing max_quota_gb
(it's an optional property), or you exclude a specific directory using the excluded_directories param.
StreamInfo Object
Version added: 0.78
The basic stream information.
Name | Type | Description | Since |
---|---|---|---|
url | string | The URL where the stream can be watched | 0.78 |
title | string | The stream title | 0.78 |
StreamAuthParams Object
Version added: 0.78
Stream authorization data.
Name | Type | Description | Since |
---|---|---|---|
client_id | string | The client id part of the authorization data. This part is usually constant for each application. | 0.78 |
token | string | The token part of the authorization data. This part if usually user-specific, and received after login. | 0.78 |
StreamVideoOptions Object
Version added: 0.78
Stream video options.
Name | Type | Description | Since |
---|---|---|---|
auto_detect | bool | Defines if to try to automatically detect the best settings for streaming | 0.83 |
auto_calc_kbps | bool | Defines if to try to automatically calculate the kbps. If set to true, then the max_kbps field is ignored | 0.83 |
fps | int | Defines the Frames Per Second for the stream | 0.78 |
width | int | Defines the stream width in pixels | 0.78 |
height | int | Defines the stream height in pixels | 0.78 |
max_kbps | int | Defines the maximum KB per second of the stream. See notes. | 0.78 |
buffer_length | int | Defines the length of the buffer to be recorded in millisenconds (max 40 seconds) | 0.83 |
encoder | StreamingVideoEncoderSettings Object | Defines the video encoder settings to use | 0.83 |
capture_desktop | StreamDesktopCaptureOptions Object | Defines the desktop streaming options. Permissions required: DesktopStreaming | 0.83 |
test_drop_frames_interval | uint | The interval, in milliseconds, in which to test for dropped frames | 0.92 |
notify_dropped_frames_ratio | double | The ratio of dropped to non-dropped frames for which to issue a notification | 0.92 |
sub_folder_name | string | Defines Sub folder for video file path destination (See note below this table) | 0.103 |
override_overwolf_setting | bool | Do not use Overwolf capture setting. | 0.103 |
max_file_size_bytes | uint | Defines file maximum size. when video reach {max_file_size_bytes} , the recorder will flush the video file and stat a new video file. onVideoFileSplit event will be fired | 0.103 |
enable_on_demand_split | bool | Enable video file splitting on demand. See notes. | 0.141 |
include_full_size_video | bool | in case max_file_size_bytes is onfull video will be recorded to disk parallel to splits videos. | 0.105 |
disable_when_sht_not_supported | bool | Do not start video replay service in case shared texture is not supported. | 0.105 |
indication_position | indication_position Enum | Position of the recorder indicator. Available for video capture only. | 0.143 |
indication_type | indication_type Enum | Type of the recorder indicator. Available for video capture only. | 0.143 |
use_app_display_name | bool | Use the app display (if has any e.g dock_button_title name when creating video folder. See note | 0.154 |
sources | overwolf.media.replays.VideoSource[] | Add sources to video. See note | 0.159 |
base_frame_size_source | eVideoBaseFrameSizeSource Enum | See note | 0.168 |
frame_size_method | eVideoFrameSizeCalcMethod Enum | See note | 0.168 |
game_window_capture | GameWindowCapture Object | Dedicate option for game window capture (when available). See note | 0.176 |
keep_game_capture_on_lost_focus | bool | Keep capturing the game when the game loses focus (i.e do not show "Be Right Back"). Note: if game is minimized, BRB will be shown. | 0.180 |
disable_auto_shutdown_on_game_exit | bool | Should the recording engine stay running even after the relevant game was closed. | 0.236 |
color_space | string | overwolf.streaming.enums.VideoColorSpec | The default value is: Rec709. | 0.254 |
color_format | string | overwolf.streaming.enums.VideoColorFormat | The default value is: NV12. | 0.254 |
fragmented_video_file | bool | Splits the video to smaller fragments which allows for the immediate start of video playback after downloading only a small initial segment. Defaults to false. | 0.254 |
VideoColorSpec enum
Version added: 0.254
Options | Description |
---|---|
Rec709 | Default. |
RecsRGB | |
Rec601 | |
Rec2100PQ | Requires one of the 10bit color format options |
Rec2100HLG | Requires one of the 10bit color format options |
VideoColorFormat enum
Version added: 0.254
Options | Description |
---|---|
NV12 | Default. 8bit color format. |
I420 | 8bit color format. |
I444 | 8bit color format. |
P010 | 10bit color format. |
I010 | 10bit color format. |
P216 | 16bit color format. |
P416 | 16bit color format. |
BGRA | 8bit color format. |
base_frame_size_source notes
Possible values:
- If not set, "Setting" (setting configuration) is the default. This means that it will look at what method has been selected in the eVideoFrameSizeCalcMethod field.
- "Auto" is logical width\height (if in-game, take the game, otherwise take monitor).
frame_size_method notes
If the above base_frame_size_source was set as "Setting", the bellow values are available:
- "Original": Original calculation to get the output resolution for the needed quality keeping the aspect ratio.
- "ExactOrKeepRatio" (Recommended): Get the exact resolution from a resolutions list for the needed quality; if not found in the list, then calculate a new resolution keeping the aspect ratio.
- "ExactOrClosestResolution": Find the closer resolution from a resolutions list for the needed quality.
game_window_capture notes
Dedicate option for specific games (CSGO, Warzone, Destiny 2) that requires exclusive mode to interact with the OW windows.
Up until now when we recorded these games in windowed mode, it resulted in a recording of the whole desktop.
We now provide the option to record only the game window. This feature is disabled by default, but you can enable it with these recording settings properties:
"video": {
"game_window_capture": {
"enable_when_available": bool, // Disabled by default
"capture_overwolf_windows": bool // Default value is taken from the Overwolf Settings
}
}
Note that we added a new is_game_window_capture
property to onStartStreaming event to inform the app Creator if this new capturing feature was used or not on the current OW window.