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.