Skip to content

Jellyfin FFmpeg Jellyfin FFmpeg

Description / nameInput element
Container Registry
Container Configuration Root Path
Jellyfin FFmpeg /work Path

Build Status Last Commit

FFmpeg with the Jellyfin patch set for HDR tone mapping (the SIMD-optimized tonemapx / libplacebo filters) on FreeBSD. Ships both the 7.x and 8.x lines: jellyfin-ffmpeg (= v7, the default) / jellyfin-ffmpeg7 / jellyfin-ffmpeg8 (and matching *probe) are all on PATH. Standalone CLI image, not a service.

Registry ghcr.io/daemonless/jellyfin-ffmpeg
Daemonless daemonless/jellyfin-ffmpeg
Source jellyfin/jellyfin-ffmpeg
Website jellyfin.org

Version Tags

Tag Description Best For
7 / latest Upstream Binary. Built from official release. Most users. Matches Linux Docker behavior.
8 Upstream Binary. Built from official release. Alternative build.

Root Privileges Required

Podman on FreeBSD currently requires root. All commands must be run as root (or via doas/sudo).

Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.

Deployment

1
2
3
4
5
6
7
services:
  jellyfin-ffmpeg:
    image: "ghcr.io/daemonless/jellyfin-ffmpeg:latest"
    container_name: jellyfin-ffmpeg
    volumes:
      - "/path/to/containers/jellyfin-ffmpeg/work:/work"
    restart: unless-stopped
1
2
3
# .env

DIRECTOR_PROJECT=jellyfin-ffmpeg
# appjail-director.yml

options:
  - virtualnet: ':<random> default'
  - nat:
services:
  jellyfin-ffmpeg:
    name: jellyfin_ffmpeg
    options:
      - container: 'boot args:--pull'
    volumes:
      - JELLYFIN_FFMPEG_WORK_PATH: /work
volumes:
  JELLYFIN_FFMPEG_WORK_PATH:
    device: '/path/to/containers/jellyfin-ffmpeg/work'
1
2
3
4
5
6
# Makejail

ARG tag=latest

OPTION overwrite=force
OPTION from=ghcr.io/daemonless/jellyfin-ffmpeg:${tag}
1
2
3
podman run -d --name jellyfin-ffmpeg \
  -v /path/to/containers/jellyfin-ffmpeg/work:/work \
  ghcr.io/daemonless/jellyfin-ffmpeg:latest
1
2
3
4
5
6
7
appjail oci run -Pd \
  -o overwrite=force \
  -o container="args:--pull" \
  -o virtualnet=":<random> default" \
  -o nat \
  -o fstab="/path/to/containers/jellyfin-ffmpeg/work /work <pseudofs>" \
  ghcr.io/daemonless/jellyfin-ffmpeg:latest jellyfin-ffmpeg
1
2
3
4
5
6
7
8
- name: Deploy jellyfin-ffmpeg
  containers.podman.podman_container:
    name: jellyfin-ffmpeg
    image: "ghcr.io/daemonless/jellyfin-ffmpeg:latest"
    state: started
    restart_policy: always
    volumes:
      - "/path/to/containers/jellyfin-ffmpeg/work:/work"

Interactive Configuration

Parameters

Volumes

Path Description
/work

Implementation Details

  • Architectures: amd64
  • User: root (UID/GID set via PUID/PGID). Defaults to 1000:1000.
  • Base: Built on ghcr.io/daemonless/base (FreeBSD 15.1).

Need help? Join our Discord community.