Overview
Electron APIs / Recorder
The Overwolf Electron recording APIs integrate recording into the Overwolf Electron framework allowing you to record both audio and video.
The recoding API supports many different encoders and provides two recording modes so that you can create dynamic recording apps.
Recording modes
The recording feature supports two types of recording modes:
- Standard—all video is recorded from start to finish when stopped and is saved to storage.
- Replay—records based on a provided time frame (cached sliding buffer). Specify total buffer time and how much time to record before and/or after the recording starts. Once recording is complete the video will be saved to your storage.
Recorder package features
Capture Audio / Video
- Capture video from a specific display device or capture from a running game.
- Capture any audio input or output device, such as speakers, a microphone, or the game sound alone.
- Split capture into separate video files on-demand or using a timer.
- Multiple audio and video encoders supported.
- Multiple output formats supported.
- Control bitrate and encoding rate.
- Options to allocate specific audio tracks to specific audio devices.
Replays Capture
- Record a buffer of X seconds to memory without saving to disk.
- Allow for on-demand video capture to disk with a portion or all of the in-memory buffer.
- For example, when a highlight is detected while the replay is running, capture can be turned on to run for a timer, using X seconds already captured by the replay.
Game Listener
- Using the recording package, we can register for general events from supported games, such as game launch or exit.
- This can be used to trigger seamless recording as the game is loaded or alternately to start a replay and later trigger capture during appropriate moments.
Usage stats
While the recorder is actively recording, usage stats are provided such as:
- CPU & memory usage.
- Available disk space.
- Active FPS.
- Dropped frames information.
Example
Use the recording APIs with game events supplied by the Game Events Provider to create apps that can record video game play based on game events. This sample app has a recording feature.
Classes
Class | Description |
---|---|
Colors | A utility class for defining named color constants. |
RecorderError | Recording error information including a specific error code and description. Useful for detailed debugging and error handling during recording operations. |
Interfaces
Interface | Description |
---|---|
ActiveReplay | Manages an ongoing replay capture session. Provides control over stopping the active replay either immediately or after a timeout. |
AdapterInfo | Information about a GPU adapter (graphics device). |
ApplicationAudioCaptureParams | Parameters used to configure audio capture from a specific application. |
ApplicationAudioDeviceSettingsInfo | Audio device settings specific to application-based output devices. |
AudioDevice | Audio device available on the system. |
AudioDeviceParams | Parameters for selecting and configuring a specific audio device. |
AudioDeviceSettings | Configuration options for an audio input/output device used during recording or streaming. |
AudioDeviceSettingsInfo | Extended audio device configuration that includes identifying information. |
AudioDeviceSettingsUpdateInfo | Describes the settings used to update a specific audio device. |
AudioEncoderInfo | Supported audio encoder information. |
AudioGeneralSettings | General configuration for audio recording and playback behavior. |
AudioInformation | Information about the complete audio configuration, including input/output devices and supported audio encoders. |
AudioSettings | Configuration for all audio-related settings. |
CaptureReplayOptions | Options used when capturing a replay segment from the active recording buffer. |
CaptureSettings | Configuration object defining all required settings for capturing audio and video. |
CaptureSettingsBuilder | A builder interface for constructing a complete CaptureSettings configuration. |
CaptureSettingsOptions | Optional parameters used to configure a CaptureSettings object before creation. |
CaptureSource | Information about a generic capture source configuration, used for identifying and configuring a video capture input such as a display, game, or application window. |
CaptureSourceSettings | Configuration settings for how a capture source is rendered in the output video. |
DefaultAudioDeviceParams | Configuration options for default audio device behavior. |
EncoderInfoBase | The base `structure for an encoder, including codec and display name. |
EncoderInformation | Available audio and video encoders. |
EncoderProperty | Configurable property of an encoder. |
EncoderSettingsAMF | AMD AMF encoder settings. |
EncoderSettingsAMF264 | Configuration settings for AMD H.264 (AVC) video encoding. |
EncoderSettingsAMFAV1 | Configuration settings specific to AMD AV1 video encoding. |
EncoderSettingsAMFHVEC | Configuration settings for AMD HEVC (H.265) video encoding. |
EncoderSettingsNVENC | NVENC encoder settings. |
EncoderSettingsNVENC264 | NVENC H.264 encoder settings. |
EncoderSettingsNVENCHEVC | NVENC HEVC (H.265) encoder settings. |
EncoderSettingsQuickSync | Configuration settings for Intel Quick Sync video encoding. |
EncoderSettingsQuickSync264 | Configuration settings for H.264 encoding using Intel Quick Sync. |
EncoderSettingsQuickSyncH264 | Configuration settings for the Intel QuickSync H.264 encoder. |
EncoderSettingsQuickSyncHEVC | Configuration settings for HEVC (H.265) video encoding using Intel Quick Sync. |
EncoderSettingsX264 | Configuration options for the x264 software video encoder. |
GameCaptureSource | Information about a game-specific capture source configuration. |
GameCaptureSourceSettings | Settings for capturing a game window or process as a video source. |
GraphicsInformation | Provides information about the available GPU adapters and connected monitors. |
IOverwolfRecordingApi | API interface for managing Overwolf's recording and replay capture services. Includes methods for starting/stopping recordings, replays, configuring capture settings, and querying system capabilities. |
MonitorCaptureSource | Information about a display (monitor) capture source configuration. |
MonitorCaptureSourceSettings | Settings specific to capturing a monitor display as a video source. |
MonitorInfo | Information about a display monitor connected to the system. |
RecorderStats | Provides real-time performance statistics of the Recorder. Useful for monitoring system load and diagnosing performance issues during recording. |
RecordEventArgs | Information about a completed recording event, including file path, status, error (if any), and stats. |
RecordingAppOptions | Configuration options for launching or customizing the recording application behavior. |
RecordingBaseOptions | Base configuration options for video recording. These settings apply to all recording sessions and allow customization of format, audio routing, and shutdown behavior. |
RecordingInformation | Information about the complete recording configuration for the current system. |
RecordingOptions | Defines the configuration options for starting a recording session. |
RecordStopEventArgs | Provides additional details about a completed recording session, extending RecordEventArgs with more specific metadata related to the stop event. |
ReplayOptions | Defines the configuration options for using the replay buffer. |
ReplayVideo | Metadata and statistics about a replay video created from a buffered recording. Extends RecordEventArgs with replay specific information. |
SplitOptions | Configuration options for splitting video recordings. |
SplitRecordArgs | Information about a split video segment created during an ongoing recording. This extends RecordEventArgs with specific details for split-related events. |
VideoEncoderInfo | Information for a supported video encoder. |
VideoEncoderSettingsBase | Base configuration for video encoder settings. |
VideoInformation | Information about the complete video configuration available in the system, including supported video encoders and GPU adapters. |
VideoSettings | Configuration options for video recording settings. |
WindowCaptureSource | Window-based capture source configuration. |
WindowCaptureSourceSettings | Settings for capturing a specific window as a video source. |
Type Aliases
Type Alias | Description |
---|---|
AudioDeviceType | Defines the type of an audio device. |
AudioTracks | Audio track selection flags. |
CaptureSourceType | Type of source to capture during screen recording or streaming. |
DisplayCaptureType | Available methods for capturing the display in screen recording or streaming. |
ErrorCode | Enumeration of possible error codes returned by the recording system. Each error code represents a specific condition or failure during initialization, execution, or finalization of a recording session. |
kAMDEncoderPreset | Specifies the encoding performance preset for AMD hardware encoders. |
kAMDEncoderPresetAV1 | Defines available encoding presets for AMD AV1 hardware encoders. |
kAMDEncoderProfile264 | Specifies the H.264 encoding profiles supported by AMD hardware encoders. |
kAMDEncoderProfileAV1 | Specifies the AV1 encoding profile for AMD hardware encoders. |
kAMDEncoderRateControl | Defines supported AMD encoder rate control methods. |
kFileFormat | Video file format options used for recording or exporting. |
kKnownAudioEncodersTypes | List of audio encoder types available via FFmpeg. |
kNVENCEncoderMultipass | Specifies the multipass encoding mode for NVIDIA's NVENC encoder. |
kNVENCEncoderProfile264 | Specifies the supported H.264 encoding profiles for NVIDIA's NVENC encoder. |
kNVENCEncoderProfileHEVC | Specifies the supported HEVC (H.265) encoding profiles for NVIDIA's NVENC encoder. |
kNVENCEncoderRateControl | Specifies the rate control modes supported by NVIDIA's NVENC encoder. |
kNVENCEncoderTuning | - |
kQuickSyncEncoderProfile264 | Specifies the supported H.264 encoder profiles for Intel Quick Sync Video. |
kQuickSyncEncoderProfileHEVC | Specifies the supported HEVC (H.265) encoder profiles for Intel Quick Sync Video. |
kQuickSyncEncoderRateControl | Defines the supported rate control modes for Intel Quick Sync Video encoders. |
kQuickSyncTargetUsage | Target usage modes for Intel Quick Sync Video encoders. |
kSampleRate441kHz | Fixed audio sample rate of 44.1 kHz. |
kSampleRate48kHz | Fixed audio sample rate of 48kHz. |
kSpeakerLayout | Supported speaker layout configurations. |
kSupportedEncodersTypes | All available supported encoder types for video recording or streaming. |
kVideoColorFormat | Supported video color formats used during video encoding or capture. |
kVideoColorRange | Specifies the color range used during video capture or encoding. |
kVideoColorSpec | Defines the color specification used for encoding or rendering video. |
kX264EncoderPreset | Specifies the encoding speed and compression efficiency preset for the x264 encoder. |
kX264EncoderProfile | Specifies the H.264 encoding profiles available for the x264 encoder. |
kX264EncoderRateControl | Specifies the available rate control modes for the x264 encoder. |
kX264EncoderTune | Specifies the tuning presets for the x264 encoder. |
Rect | Defines a rectangle by specifying its top-left coordinates and dimensions. |
ReplayCallback | Callback used to handle a replay video once it's available. |
ReplayStopCallback | Callback triggered when a replay recording is stopped. |
SplitCallback | Callback invoked when a recording is split into a new video file. |
StartCallback | Callback triggered when a recording starts successfully. |
StopCallback | Callback invoked when a recording session stops. |
VideoRecordingSplitType | Defines the methods available for splitting video recordings. |