FFmpeg Target
FFmpeg Target properties for Script Engine. Pipes the project's video and audio into a user-controlled FFmpeg command line so any encoder, container or output protocol that FFmpeg supports can be used. Useful for custom MP4/MKV file recording, RTMPS push to non-Vindral CDNs, SRT publishing with specific encoder tuning, experimenting with codec parameters that the dedicated targets don't expose, and one-off integrations with bespoke streaming endpoints. Templates provide quick starting points; the FFmpeg options string supports @@LocalIP() and @@HostName() macros for dynamic stream names. Power-user target — incorrect FFmpeg options will fail at start.
| Property | Type | Access | Description |
|---|---|---|---|
FFmpegConfigurationTemplate |
FFmpegConfigurationTemplate |
get/set |
Selects a starting-point FFmpeg command line. Pick MP4 file writer, RTMPS output or SRT output, then press LoadTemplateCommand to copy it into FfMpegOptions for further editing. |
LoadTemplateCommand |
Command |
get |
Replaces the current FfMpegOptions text with the example command line for the selected FFmpegConfigurationTemplate. Existing options are overwritten — copy them out first if you want to keep them. |
FfMpegOptions |
string |
get/set |
The FFmpeg arguments that follow the input. Composer prepends the input arguments automatically; this string supplies the encoder, muxer and output destination. Supports the @@LocalIP() and @@HostName() macros which are substituted at start to make stream names per-machine. Treat this like a credential when it contains stream keys — avoid committing the project to public repos. |
OutputResolution |
OutputResolution |
get/set |
Output video resolution sent into FFmpeg. The project's compositor scales to this size before piping. Pick 1080p for full HD streaming, 720p to save bandwidth, or a lower size for thumbnail-style outputs. |
MonitorProcessIfNoActivity |
bool |
get/set |
When enabled, Composer watches for the FFmpeg process going silent or dying unexpectedly and restarts it according to FfmpegRestartInterval. Useful for keeping a long-running stream alive across transient network or encoder hiccups. |
RestartMaxIdleTimeOut |
ProcessIdleTimeOut |
get/set |
How long FFmpeg can go without producing a frame before it is considered stalled and torn down. Shorter values restart faster but risk false positives on slow encoder warmup. Only used when MonitorProcessIfNoActivity is on. |
FfmpegRestartInterval |
ReconnectInterval |
get/set |
Wait time between automatic restart attempts. Set to Never to disable auto-restart even when MonitorProcessIfNoActivity is on. Longer intervals avoid hammering a remote endpoint that is briefly unavailable. |
PlaybackState |
PlaybackState |
get |
Current state of the target — Stopped, Starting, Running, Stopping or Restarting (read-only, debug). Drives the enabled state of the command buttons. |
StartCommand |
Command |
get |
Launches the FFmpeg process with FfMpegOptions after substituting any @@LocalIP() / @@HostName() macros. Disabled if FfMpegOptions is empty. |
StopCommand |
Command |
get |
Closes FFmpeg's stdin so it can finalise the output cleanly (write trailers, flush buffers) and then waits for the process to exit. Also disables auto-restart for this stop so the process stays down. |
PipeDataThroughput |
string |
get |
Megabytes per second currently being piped into FFmpeg (read-only, debug). |
FfmpegInitMessage |
string |
get |
Initialization output from FFmpeg captured during start (read-only, debug). Useful for spotting wrong codec or container choices before the stream actually fails. |
FfmpegOutputMessage |
string |
get |
Latest line of FFmpeg progress output — frame count, fps, bitrate (read-only, debug). |
FfmpegFrameCount |
long |
get |
Number of video frames FFmpeg has processed in the current session (read-only, debug). |
FfmpegProcessId |
long |
get |
Operating-system process id of the running FFmpeg child process (read-only, debug). Useful when correlating with Task Manager or external tools. |
FfmpegLocation |
string |
get |
Full path to the FFmpeg executable Composer launched (read-only, debug). |
FfmpegUptime |
string |
get |
How long the current FFmpeg session has been running (read-only, debug). |
FfmpegProcessRunning |
bool |
get |
true while the FFmpeg child process is alive, false after it has exited (read-only, debug). |
FfmpegProcessAutoRestartEnabled |
bool |
get |
true when Composer will restart FFmpeg automatically after a stall or crash (read-only, debug). Driven by MonitorProcessIfNoActivity and FfmpegRestartInterval. |
FfmpegNumberOfRestarts |
int |
get |
Total automatic restarts since the user pressed Start (read-only, debug). A growing number indicates an unstable downstream service or encoder. |
ComponentLog |
ComponentLog |
get |
Rolling list of recent status, warning and error lines from the target (read-only, debug). |
ReconnectAttempts |
int |
get |
Number of times Composer has tried to reconnect after a failure (read-only, debug). Resets on a clean Start. |
LogAllFFmpegMessages |
bool |
get/set |
When enabled, every line FFmpeg writes to stderr is forwarded into Composer's log. Verbose — useful when diagnosing a failing command line, but turn it off again for production to keep the log readable. Disables LogFrameInformationMessages while active. |
LogFrameInformationMessages |
bool |
get/set |
When enabled, FFmpeg's per-frame progress lines (frame count, fps, bitrate) are logged. Useful for confirming steady throughput; redundant when LogAllFFmpegMessages is on. |
Inherits from: AbstractTarget.
See also: FFmpeg Target in Targets — user-facing introduction, screenshots, and section summaries.