File Recorder Target

File Recorder Target properties for Script Engine. Records the composed scene to a video file on local disk (typically MP4 with H.264 / HEVC video and AAC audio). Useful for archive recording of broadcasts, capturing footage for post-production review, evidence/compliance recording of live streams, building a library of clips for later editing, or simply keeping a local copy of an event while it is also being streamed live. Files are written to the Recordings folder next to the application. The file name auto-increments with _NNNN suffixes if a file with the same name already exists, so existing recordings are never overwritten. New files can be started automatically at fixed intervals (ClipInterval) to keep individual files manageable.

| Property | Type | Access | Description | |---|---|---|---| | FileVideoEncoderId | FileVideoEncoderId | get/set | Which video encoder to use for the recorded file. libx264 is software-encoded H.264 — broadest compatibility, but slower and CPU-heavy. h264_nvenc and hevc_nvenc use the GPU's hardware encoder and are far cheaper to run during a live show. hevc_nvenc_lossless produces a visually lossless master at the cost of a much larger file; OutputVideoBitrate and VideoGopSize are not used in that mode. | | OutputVideoBitrate | OutputVideoBitrate | get/set | Target video bitrate in bits per second. Higher bitrate gives better picture quality at the cost of larger files and more disk I/O. As a rough guide: 6–8 Mbit/s is comfortable for 1080p sports/news, 12–20 Mbit/s for high-motion 1080p archive, and 30 Mbit/s+ for 4K. Ignored when FileVideoEncoderId is set to hevc_nvenc_lossless. | | VideoGopSize | int | get/set | Distance between keyframes (full frames) in the encoded video. [min=10, max=300, default=30]. Smaller values make seeking and editing more accurate but slightly increase file size; larger values give the best compression for static content. 30 is a good general default at 30 fps (≈ one keyframe per second). Ignored when FileVideoEncoderId is set to hevc_nvenc_lossless. | | Filename | string | get/set | Base name of the file written to the Recordings folder. The extension determines the container format (e.g. .mp4, .mkv, .mov); if no extension is supplied, .mp4 is assumed. If a file with the same name already exists, a _0001, _0002, … suffix is appended automatically so existing recordings are never overwritten. Avoid characters that are invalid in Windows file names (\ / : * ? " | | AppendDateTimeToFileName|bool|get/set| When true, the current date and time is appended to the filename in the formYYYY-MM-DD HHMMSS, producing unique file names per recording session. Recommended for long-running installations and unattended recording so files can easily be sorted chronologically. | | ClipInterval | [NewFileInterval](/docs/datatypes-enums#newfileinterval) | get/set| Maximum length of each clip before a new file is started automatically. Set toNeverto keep recording into a single file until you stop manually. Splitting into shorter clips keeps file sizes manageable, makes failed-write recovery less painful, and is useful for chunked uploads or rolling archives. | |DeleteOldClips|bool|get/set| When true, old.mp4files in theRecordingsfolder are deleted automatically based onKeepRecordingDays. Use this for unattended 24/7 recording so the disk does not fill up. Only files in the Recordingsfolder are touched; nothing outside that folder is affected. | |KeepRecordingDays | [RecordingDays](/docs/datatypes-enums#recordingdays) | get/set| Number of days to keep old recordings on disk before they are deleted. Only used whenDeleteOldClipsis enabled. Set this with disk capacity in mind — pick a window that comfortably fits within the available free space at your chosen bitrate. | |RecordingLength | [TimeCode](/docs/datatypes-utility-classes#timecode) | get| Time code of the current recording inHH:MM:SS:FF(hours:minutes:seconds:frames). Updates while recording. Useful in scripts to enforce a hard maximum duration or to flag long recordings. | |StartCommand | [Command](/docs/datatypes-utility-classes#command) | get| Begin recording to disk using the current encoder, bitrate and filename settings. Equivalent to clicking the Record button in the UI. | |StopCommand | [Command](/docs/datatypes-utility-classes#command) | get | Stop the current recording and finalise (close) the file so it can be played back. Always call this before shutting down to avoid leaving an incomplete file. | | [RecordingState](/docs/datatypes-enums#recordingstate) | [RecordingState](/docs/datatypes-enums#recordingstate) | get| Current recording state:Stopped, Starting, RecordingorStopping. Useful to check from scripts before issuing StartCommand/StopCommandand to confirm that a recording actually began. | |CurrentFileName|string|get| Name of the file currently being written (read-only). Reflects any auto-appended date/time or_NNNNsuffix that was applied. Use this in scripts to know exactly which file holds the current take. | |RecordingDuration|string|get| Human-readable duration of the current recording (e.g.1m 23s). Read-only. For frame-accurate time code use RecordingLengthinstead. | |VideoFramesWritten|int|get| Total number of video frames written to the current file (read-only). Increments live during recording. Useful as a sanity check that the encoder is keeping up with the source frame rate. | |OutputQueueSize|int|get| Number of frames currently waiting to be written to disk (read-only, debug). A value that keeps growing means the disk or encoder cannot keep up with the source — lower the bitrate, switch to a faster encoder, or check that the destination drive is fast enough. | |AverageVideoEncoderTime|string|get| Average time, in milliseconds, spent encoding each video frame (read-only, debug). At 30 fps the encoder must finish each frame in under 33 ms to keep up; sustained values above that range mean the encoder is too slow for the chosen settings. | |OpenExplorerCommand | [Command](/docs/datatypes-utility-classes#command) | get| Opens theRecordings` folder in Windows Explorer so you can review or move the captured files. |

Inherits from: AbstractTarget.

See also: File Recorder Target in Targets — user-facing introduction, screenshots, and section summaries.