Skip to main content

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

ClassDescription
ColorsA utility class for defining named color constants.
RecorderErrorRecording error information including a specific error code and description. Useful for detailed debugging and error handling during recording operations.

Interfaces

InterfaceDescription
ActiveReplayManages an ongoing replay capture session. Provides control over stopping the active replay either immediately or after a timeout.
AdapterInfoInformation about a GPU adapter (graphics device).
ApplicationAudioCaptureParamsParameters used to configure audio capture from a specific application.
ApplicationAudioDeviceSettingsInfoAudio device settings specific to application-based output devices.
AudioDeviceAudio device available on the system.
AudioDeviceParamsParameters for selecting and configuring a specific audio device.
AudioDeviceSettingsConfiguration options for an audio input/output device used during recording or streaming.
AudioDeviceSettingsInfoExtended audio device configuration that includes identifying information.
AudioDeviceSettingsUpdateInfoDescribes the settings used to update a specific audio device.
AudioEncoderInfoSupported audio encoder information.
AudioGeneralSettingsGeneral configuration for audio recording and playback behavior.
AudioInformationInformation about the complete audio configuration, including input/output devices and supported audio encoders.
AudioSettingsConfiguration for all audio-related settings.
CaptureReplayOptionsOptions used when capturing a replay segment from the active recording buffer.
CaptureSettingsConfiguration object defining all required settings for capturing audio and video.
CaptureSettingsBuilderA builder interface for constructing a complete CaptureSettings configuration.
CaptureSettingsOptionsOptional parameters used to configure a CaptureSettings object before creation.
CaptureSourceInformation about a generic capture source configuration, used for identifying and configuring a video capture input such as a display, game, or application window.
CaptureSourceSettingsConfiguration settings for how a capture source is rendered in the output video.
DefaultAudioDeviceParamsConfiguration options for default audio device behavior.
EncoderInfoBaseThe base `structure for an encoder, including codec and display name.
EncoderInformationAvailable audio and video encoders.
EncoderPropertyConfigurable property of an encoder.
EncoderSettingsAMFAMD AMF encoder settings.
EncoderSettingsAMF264Configuration settings for AMD H.264 (AVC) video encoding.
EncoderSettingsAMFAV1Configuration settings specific to AMD AV1 video encoding.
EncoderSettingsAMFHVECConfiguration settings for AMD HEVC (H.265) video encoding.
EncoderSettingsNVENCNVENC encoder settings.
EncoderSettingsNVENC264NVENC H.264 encoder settings.
EncoderSettingsNVENCHEVCNVENC HEVC (H.265) encoder settings.
EncoderSettingsQuickSyncConfiguration settings for Intel Quick Sync video encoding.
EncoderSettingsQuickSync264Configuration settings for H.264 encoding using Intel Quick Sync.
EncoderSettingsQuickSyncH264Configuration settings for the Intel QuickSync H.264 encoder.
EncoderSettingsQuickSyncHEVCConfiguration settings for HEVC (H.265) video encoding using Intel Quick Sync.
EncoderSettingsX264Configuration options for the x264 software video encoder.
GameCaptureSourceInformation about a game-specific capture source configuration.
GameCaptureSourceSettingsSettings for capturing a game window or process as a video source.
GraphicsInformationProvides information about the available GPU adapters and connected monitors.
IOverwolfRecordingApiAPI interface for managing Overwolf's recording and replay capture services. Includes methods for starting/stopping recordings, replays, configuring capture settings, and querying system capabilities.
MonitorCaptureSourceInformation about a display (monitor) capture source configuration.
MonitorCaptureSourceSettingsSettings specific to capturing a monitor display as a video source.
MonitorInfoInformation about a display monitor connected to the system.
RecorderStatsProvides real-time performance statistics of the Recorder. Useful for monitoring system load and diagnosing performance issues during recording.
RecordEventArgsInformation about a completed recording event, including file path, status, error (if any), and stats.
RecordingAppOptionsConfiguration options for launching or customizing the recording application behavior.
RecordingBaseOptionsBase configuration options for video recording. These settings apply to all recording sessions and allow customization of format, audio routing, and shutdown behavior.
RecordingInformationInformation about the complete recording configuration for the current system.
RecordingOptionsDefines the configuration options for starting a recording session.
RecordStopEventArgsProvides additional details about a completed recording session, extending RecordEventArgs with more specific metadata related to the stop event.
ReplayOptionsDefines the configuration options for using the replay buffer.
ReplayVideoMetadata and statistics about a replay video created from a buffered recording. Extends RecordEventArgs with replay specific information.
SplitOptionsConfiguration options for splitting video recordings.
SplitRecordArgsInformation about a split video segment created during an ongoing recording. This extends RecordEventArgs with specific details for split-related events.
VideoEncoderInfoInformation for a supported video encoder.
VideoEncoderSettingsBaseBase configuration for video encoder settings.
VideoInformationInformation about the complete video configuration available in the system, including supported video encoders and GPU adapters.
VideoSettingsConfiguration options for video recording settings.
WindowCaptureSourceWindow-based capture source configuration.
WindowCaptureSourceSettingsSettings for capturing a specific window as a video source.

Type Aliases

Type AliasDescription
AudioDeviceTypeDefines the type of an audio device.
AudioTracksAudio track selection flags.
CaptureSourceTypeType of source to capture during screen recording or streaming.
DisplayCaptureTypeAvailable methods for capturing the display in screen recording or streaming.
ErrorCodeEnumeration 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.
kAMDEncoderPresetSpecifies the encoding performance preset for AMD hardware encoders.
kAMDEncoderPresetAV1Defines available encoding presets for AMD AV1 hardware encoders.
kAMDEncoderProfile264Specifies the H.264 encoding profiles supported by AMD hardware encoders.
kAMDEncoderProfileAV1Specifies the AV1 encoding profile for AMD hardware encoders.
kAMDEncoderRateControlDefines supported AMD encoder rate control methods.
kFileFormatVideo file format options used for recording or exporting.
kKnownAudioEncodersTypesList of audio encoder types available via FFmpeg.
kNVENCEncoderMultipassSpecifies the multipass encoding mode for NVIDIA's NVENC encoder.
kNVENCEncoderProfile264Specifies the supported H.264 encoding profiles for NVIDIA's NVENC encoder.
kNVENCEncoderProfileHEVCSpecifies the supported HEVC (H.265) encoding profiles for NVIDIA's NVENC encoder.
kNVENCEncoderRateControlSpecifies the rate control modes supported by NVIDIA's NVENC encoder.
kNVENCEncoderTuning-
kQuickSyncEncoderProfile264Specifies the supported H.264 encoder profiles for Intel Quick Sync Video.
kQuickSyncEncoderProfileHEVCSpecifies the supported HEVC (H.265) encoder profiles for Intel Quick Sync Video.
kQuickSyncEncoderRateControlDefines the supported rate control modes for Intel Quick Sync Video encoders.
kQuickSyncTargetUsageTarget usage modes for Intel Quick Sync Video encoders.
kSampleRate441kHzFixed audio sample rate of 44.1 kHz.
kSampleRate48kHzFixed audio sample rate of 48kHz.
kSpeakerLayoutSupported speaker layout configurations.
kSupportedEncodersTypesAll available supported encoder types for video recording or streaming.
kVideoColorFormatSupported video color formats used during video encoding or capture.
kVideoColorRangeSpecifies the color range used during video capture or encoding.
kVideoColorSpecDefines the color specification used for encoding or rendering video.
kX264EncoderPresetSpecifies the encoding speed and compression efficiency preset for the x264 encoder.
kX264EncoderProfileSpecifies the H.264 encoding profiles available for the x264 encoder.
kX264EncoderRateControlSpecifies the available rate control modes for the x264 encoder.
kX264EncoderTuneSpecifies the tuning presets for the x264 encoder.
RectDefines a rectangle by specifying its top-left coordinates and dimensions.
ReplayCallbackCallback used to handle a replay video once it's available.
ReplayStopCallbackCallback triggered when a replay recording is stopped.
SplitCallbackCallback invoked when a recording is split into a new video file.
StartCallbackCallback triggered when a recording starts successfully.
StopCallbackCallback invoked when a recording session stops.
VideoRecordingSplitTypeDefines the methods available for splitting video recordings.