Skip to content

Features

gnattu edited this page Sep 14, 2025 · 3 revisions

This page summarizes the key differences and additions in Jellyfin‑FFmpeg that matter for Jellyfin users. The focus is on practical playback usability, reliability and performance for home media servers.

Dolby Vision & HDR

  • Dolby Vision remux support into HLS (both fMP4 and MPEG‑TS), preserving side data for client playback where supported.
  • Improved DV RPU handling and related bitstream filter flows to keep more metadata intact during demux/remux.
  • HDR to SDR tone mapping improvements:
    • CUDA tonemap implementation for NVIDIA GPUs.
    • OpenCL tonemap with extra BT.2390 EETF, a 3D-LUT based code path and a major refactor for quality and speed.
    • Videotoolbox and Metal tonemap for Apple platforms.
    • tonemapx software filter with SIMD optimizations for high performance CPU based tone mapping.

Hardware Acceleration Pipeline

General

  • Cross‑API interop glue to reduce copies and enable full hardware pipelines:
    • D3D11/OpenCL interop for AMD and Intel QSV paths on Windows.
    • Vulkan pipeline fixes and backports for more stable import/export.
    • VAAPI helper filters (e.g., hwupload and scaling defaults) and driver workarounds.
    • QSV VPP improvements, better device handling, and safer low‑power fallbacks.
  • Performance tuning:
    • Smarter defaults for async depth, buffer queues, and scaler algorithms.
    • Avoiding extra copies (e.g., DXVA/QSV alignment tweaks) to keep data on GPU.

Intel (QSV/VPL/D3D11/OpenCL)

  • QSV VPP improvements (scaling/tonemap), safer low‑power fallback behavior.
  • Better device init flows with VPL and legacy MSDK paths.
  • D3D11/OpenCL interop paths to keep frames on GPU and avoid expensive mapping.

NVIDIA (CUDA/NVENC)

  • CUDA tonemap implementation for fast HDR→SDR.
  • Enhanced CUDA pixel format conversion and transpose filters to reduce copies.
  • NVENC HEVC HDR metadata support to preserve HDR signaling where applicable.

AMD (AMF/D3D11/OpenCL/Vulkan)

  • AMF fixes/tunings and D3D11↔OpenCL interop for full hardware pipelines.
  • Vulkan pipeline stability improvements (image usage, linear formats where needed).

Apple(VideoToolbox/Metal)

  • Videotoolbox filters for overlay, transpose/flip, bwdif deinterlacing.
  • AV1 VT backports, 12‑bit decode where supported, and MJPEG encoder.
  • Hardware tonemap with Videotoolbox and format controls in vt_scale and a Metal based tonemap filter tonemap_videotoolbox.

Rockchip (RKMPP/OpenCL)

  • End‑to‑end hardware pipeline (decode→process→encode) tailored for RK3588.
  • Practical patches to make overlays, scaling, and colorspace steps work together.

Streaming, Muxing, and Containers

  • Segment muxer improvements and HLS demuxer fixes for better client compatibility.
  • Pass Dolby Atmos (EAC‑3 with additional BSI) through mov where applicable.
  • Fixes for libx265 fMP4 HLS playback on Safari.
  • ID3v2 improvements (multiple values, embedded artwork like WebP) for better tagging.

Subtitles & Filters

  • PGS subtitle overlay support in hardware filters, improving end‑to‑end HW pipelines.
  • YADIF/BWDIF implementations with GPU acceleration to keep deinterlacing in hardware paths where possible.
  • sub2video performance improvements and warnings noise reduction.

Codecs & Utilities

  • AC‑4 decoder (useful for ATSC 3.0 material).
  • Practical CLI additions:
    • Pause support in the ffmpeg CLI for controlled workflows.
    • ffprobe option only_first_vframe to return only the first video frame info quickly.

Philosophy

We implement changes that directly improve Jellyfin media server scenarios: HDR/DV handling, stable HW acceleration, and fewer client‑side surprises. Many items are backports, fixes, or targeted features that are slow to land upstream or not aligned with upstream priorities.