Download Latest Version ffplayout-v2.1.0-beta.1_desktop_x86_64-apple-darwin.zip (10.3 MB)
Email in envelope

Get an email when there's a new version of ffplayout

Home / v2.0.0
Name Modified Size InfoDownloads / Week
Parent folder
ffplayout-v2.0.0_desktop_x86_64-apple-darwin.zip 2026-08-11 10.3 MB
ffplayout-v2.0.0_desktop_x86_64-pc-windows-msvc.zip 2026-08-11 10.6 MB
ffplayout-v2.0.0-1.aarch64.rpm 2026-08-11 6.5 MB
ffplayout-v2.0.0_server_aarch64-unknown-linux-gnu.tar.gz 2026-08-11 8.9 MB
ffplayout_v2.0.0-1_arm64.deb 2026-08-11 5.7 MB
ffplayout-v2.0.0-1.x86_64.rpm 2026-08-11 6.7 MB
ffplayout-v2.0.0_server_x86_64-unknown-linux-gnu.tar.gz 2026-08-11 9.3 MB
ffplayout_v2.0.0-1_amd64.deb 2026-08-11 6.3 MB
ffplayout-v2.0.0_desktop_aarch64-unknown-linux-gnu.tar.gz 2026-08-11 11.4 MB
ffplayout-v2.0.0_desktop_x86_64-unknown-linux-gnu.tar.gz 2026-08-11 12.0 MB
ffplayout-v2.0.0_desktop_aarch64-apple-darwin.zip 2026-08-11 9.6 MB
README.md 2026-08-11 5.7 kB
v2.0.0 source code.tar.gz 2026-08-11 44.4 MB
v2.0.0 source code.zip 2026-08-11 44.5 MB
Totals: 14 Items   186.2 MB 2

ffplayout v2.0.0

ffplayout v2 is a major rewrite of the playout engine. It replaces the former FFmpeg command-line based processing with a Rust engine that uses FFmpeg libraries directly. The result is a more integrated, configurable, and observable playout pipeline with improved desktop, HLS, streaming, live-ingest, and hardware-encoding support.

Important: v2 is not compatible with v1

v2 cannot be installed as a simple in-place update of a v1 installation.

The configuration model, database schema, backend API, engine, and frontend have changed fundamentally. Existing v1 databases are not compatible with v2 and must not be reused.

Before installing v2:

  • Back up the v1 database, configuration, playlists, media paths, and custom assets.
  • Install v2 with a fresh database initialization.
  • Open the web interface and complete the initial setup flow.
  • Recreate global settings, users, channels, outputs, and playout configuration in v2.
  • Existing media and playlist files can be reused after configuring their paths again, but the database configuration itself is not migrated automatically.
  • Advanced Settings and Custom Filters from v1 are no longer available in v2.

Highlights Since v1.1

New Rust FFmpeg engine

  • Rewritten playout pipeline based on FFmpeg libraries through Rust bindings.
  • Integrated decoding, scaling, compositing, audio processing, encoding, muxing, HLS generation, desktop output, and live ingest.
  • Improved shutdown, restart, error handling, and long-running playout stability.
  • Better HLS continuation after restarts, including segment cleanup and playlist sequence handling.

Outputs and codecs

  • Per-output configuration for resolution, frame rate, codecs, bitrate, HLS settings, and stream targets.
  • HLS, desktop, stream, and custom FFmpeg output formats.
  • Custom stream output supports formats such as DeckLink where supported by the linked FFmpeg build.
  • Codec capabilities and curated encoder options are detected and exposed to the frontend.
  • Software and hardware encoding support, including Intel QSV and VAAPI where available.
  • GOP size is aligned with HLS segment duration and uses a two-second GOP for streaming.
  • Improved static builds and FFmpeg packaging, including optional VAAPI/libdrm support.

Desktop output

  • Native Winit/WGPU desktop output.
  • Native GPU backends: Vulkan on Linux, DirectX 12 on Windows, and Metal on macOS. Linux desktop output requires a working Vulkan driver; the CPU fallback is available through the separate desktop-cpu build feature.
  • Fullscreen toggle with F or a left-button double-click; Esc stops playout.
  • Keyboard volume control with left/right arrow keys.
  • Desktop video scaling is prepared against the actual desktop resolution.
  • 44.1 kHz media is resampled correctly for desktop playback, preventing the progressive video stutter and audio dropouts seen with mismatched sample rates.
  • YUV color range and color space are handled on the GPU, including BT.2020 and HDR transfer handling.
  • More robust window, GPU-device, and presentation-surface lifecycle and recovery handling.

Live ingest and playout behavior

  • Improved live ingest switching and timestamp handling.
  • Backpressure-aware live frame delivery to avoid unnecessary frame drops.
  • Recovery from stalled output through playout restart handling.
  • Better synchronization when returning from live ingest to scheduled media.
  • Audio fallback for video-only live sources.

Overlays and audio

  • New compositor for logo and text overlays.
  • Logo fading and optimized alpha blending.
  • Runtime text rendering improvements and lower overlay processing cost.
  • Audio mixer with live volume updates.
  • Audio level meter for playout monitoring.

Monitoring and diagnostics

  • Optional processing benchmark feature for decoding, scaling, logo, text, audio, encoding/muxing, and desktop output.
  • Configurable benchmark interval.
  • Improved console benchmark output.
  • Additional system and resident-memory metrics.
  • More resilient logging, including bounded mail queues and retry handling.

Web interface and setup

  • New first-time setup flow in the frontend.
  • Global settings can be configured through the web interface by global administrators.
  • Improved output configuration UI with codec-specific options.
  • Resumable uploads with improved validation and conflict handling.
  • File-access tokens for controlled media access.
  • Improved player controls and playout status handling.

Authentication and security

  • Improved login and two-factor authentication flow.
  • Short-lived access tokens.
  • Rotating, server-side tracked refresh tokens.
  • Refresh-token reuse detection revokes the affected session family.
  • Server-side logout revokes refresh tokens.
  • Security hardening for file access, path handling, permissions, and role checks.

Reliability improvements

  • Transactional creation and update of channels, users, outputs, presets, and setup data.
  • Rollback of incomplete channel creation.
  • Safer storage initialization and playlist reading without panic-based failures.
  • External tasks are supervised per channel, cancelled on playout stop or clip change, and limited to 30 seconds.
  • Improved file watcher handling for renamed and unsupported media files.

Documentation

The documentation has been revised for the new architecture, configuration model, API, outputs, hardware encoding, processing benchmarks, frontend setup, and external tasks.

Please read the updated installation and configuration documentation before deploying v2 in production.

Source: README.md, updated 2026-08-11