Download Latest Version ffplayout-v2.5.0_desktop_x86_64-pc-windows-msvc.zip (10.9 MB) Google Add to Preferred Sources
Home / v2.4.0
Name Modified Size InfoDownloads / Week
Parent folder
ffplayout-v2.4.0_desktop_x86_64-apple-darwin.zip 2026-09-12 10.5 MB
ffplayout-v2.4.0_desktop_x86_64-pc-windows-msvc.zip 2026-09-12 10.9 MB
ffplayout-v2.4.0-1.aarch64.rpm 2026-09-12 6.6 MB
ffplayout-v2.4.0_server_aarch64-unknown-linux-gnu.tar.gz 2026-09-12 9.1 MB
ffplayout_v2.4.0-1_arm64.deb 2026-09-12 5.8 MB
ffplayout-v2.4.0-1.x86_64.rpm 2026-09-12 6.9 MB
ffplayout-v2.4.0_server_x86_64-unknown-linux-gnu.tar.gz 2026-09-12 9.5 MB
ffplayout_v2.4.0-1_amd64.deb 2026-09-12 6.4 MB
ffplayout-v2.4.0_desktop_aarch64-unknown-linux-gnu.tar.gz 2026-09-12 11.7 MB
ffplayout-v2.4.0_desktop_aarch64-apple-darwin.zip 2026-09-12 9.8 MB
ffplayout-v2.4.0_desktop_x86_64-unknown-linux-gnu.tar.gz 2026-09-12 12.3 MB
README.md 2026-09-12 4.4 kB
v2.4.0 source code.tar.gz 2026-09-12 44.5 MB
v2.4.0 source code.zip 2026-09-12 44.7 MB
Totals: 14 Items   188.8 MB 1

ffplayout v2.4.0

ffplayout 2.4 focuses on live takeover reliability, timestamp-safe recording and subtitles, and more flexible FFmpeg output configuration.

Highlights

More reliable live takeover

  • Playlist playback now continues until the first live video frame is available.
  • Improved switching between scheduled playback and incoming RTMP streams.
  • Playlist playback resumes at the position it would have reached without the takeover.
  • Delayed or temporarily missing audio is padded with silence while maintaining A/V synchronization.
  • Late audio samples are trimmed or discarded when their time range has already been replaced by silence.
  • Video-only live sources receive synchronized silent audio.
  • Live audio buffering is bounded to prevent uncontrolled memory growth.
  • Improved backpressure handling prevents unnecessary frame loss and output stalls.
  • Timestamp jumps from unreliable publishers are detected and safely re-anchored.
  • Stuck live-input readers are bounded and cleaned up without indefinitely blocking new connections.
  • Navigation commands cannot race with live activation, while stop and restart remain available.
  • Improved recovery when returning to desktop, HLS, or stream output after a takeover.

Timestamp-safe recording

  • Corrected recording timestamps around live takeovers and generated audio padding.
  • Preserved audio padding order when buffered live audio resumes.
  • Prevented stale or overlapping audio from producing invalid recording timestamps.
  • Improved synchronization between segmented Matroska recordings and the main output timeline.

Safer HLS WebVTT subtitles

  • WebVTT cues are now submitted as playback reaches their actual position instead of being muxed for the entire clip in advance.
  • Returning from live takeover to a later position in the same clip no longer leaves subtitle packets from the future in the HLS muxer.
  • This prevents non-monotonic subtitle DTS errors that could otherwise interrupt HLS output.
  • WebVTT files extending beyond their associated media are now reported as warnings instead of validation errors.
  • Desktop subtitles can still be loaded locally without affecting the encoded HLS timeline.

Custom FFmpeg muxer options

  • Added an advanced muxer-options editor to the playout configuration.
  • Options are persisted per output and validated against the selected FFmpeg muxer.
  • Unsupported or unused options are rejected instead of being silently ignored.
  • HLS flags such as program_date_time can now be enabled without replacing ffplayout’s required internal HLS flags.
  • Existing segment duration and retention settings remain managed by their dedicated configuration fields.

Example:

:::text
hls_flags = program_date_time

Custom audio encoder options

  • Added advanced FFmpeg audio encoder options for regular outputs.
  • Added separate audio encoder options for re-encoded recordings.
  • Options are validated against the selected codec before restarting the output.
  • Invalid, unsupported, or ffplayout-managed options are rejected.
  • No additional codec defaults are imposed when the option map is empty.

Defensive handling of live playlist URLs

  • Network sources that inherently behave as live streams are no longer treated like seekable media.
  • Playlist in values are ignored for these sources.
  • Invalid seek attempts and unintended looping at the declared duration are avoided.
  • HTTP and HTTPS sources remain treated as ordinary potentially seekable media.

Resource and lifecycle improvements

  • Bounded live-input queues and reader counts reduce the risk of memory growth during stalled inputs.
  • Improved shutdown, restart, skip, and fallback handling.
  • Channel reset during fallback is once again handled as a normal playout restart.
  • Glyph caches now use bounded eviction to prevent long-running text rendering from retaining unlimited entries.
  • Additional regression coverage for live timing, delayed audio, output backpressure, recording timestamps, playlist handover, and WebVTT resume behavior.

Upgrade notes

A database migration is included. Existing RTMP live-ingest settings are migrated automatically, but backing up the database before upgrading is recommended.

No manual configuration changes should be required for existing standard output, recording, or live-ingest setups.

Source: README.md, updated 2026-09-12