| Name | Modified | Size | Downloads / 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_timecan 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
invalues 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.