derSobi Yet another blog

Tvheadend for Ubuntu (PPA), built against FFmpeg 9 – Jammy, Noble and Resolute

T

Tvheadend is a TV streaming server and PVR backend for DVB, IPTV and other tuner sources, with transcoding support via FFmpeg.
ppa:dersobi/tvheadend packages Tvheadend straight from upstream’s master branch (there has been no tagged release since v4.3 in 2017, so this PPA tracks a specific,tested commit rather than a version tag) and links it against ppa:dersobi/ffmpeg9 instead of Ubuntu’s stock, older FFmpeg.
That gives you a Tvheadend build with a current transcoding engine, hardware encodingvia NVENC, and libfdk-aac audio encoding enabled.

Requirements

  • Ubuntu 22.04 (Jammy), 24.04 (Noble) or 26.04 (Resolute) – amd64
  • software-properties-common (provides add-apt-repository)
  • ppa:dersobi/ffmpeg9 must also be enabled. This package’s binaries depend on library names such as libavcodec63 and libavutil61, which only exist in the FFmpeg 9 PPA — installing tvheadend from this PPA without also enabling ppa:dersobi/ffmpeg9 will fail to resolve dependencies.
  • An NVIDIA GPU with current drivers, only if you intend to use NVENC hardware encoding profiles — Tvheadend itself installs and runs without one.

Installation

  1. Add both PPAs (FFmpeg 9 first, since Tvheadend depends on it):

    sudo add-apt-repository ppa:dersobi/ffmpeg9
    sudo add-apt-repository ppa:dersobi/tvheadend
    sudo apt update
  2. Install Tvheadend:

    sudo apt install tvheadend
    The installer prompts for a Tvheadend administrator username and password.
  3. Confirm the packages resolved against FFmpeg 9, not a stock build:

    dpkg -l | grep libavcodec
    You should see a libavcodec63 (or newer, matching the FFmpeg 9 PPA) package, not Ubuntu’s own older libavcodec version.
  4. Open the web interface: http://<server-ip>:9981/

Notes

  • Versions in this PPA are named after the exact upstream commit they were built from, for example 4.3.0~pre+20260911~git06899e3-0build1~ubuntu24.04 — the date and short Git SHA identify precisely which upstream snapshot is packaged, since there is no upstream version tag to reference.
  • Because this build tracks upstream master, updates are prepared and tested manually against ppa:dersobi/ffmpeg9‘s current headers before being uploaded, rather than pushed automatically — this avoids shipping a build broken by an unrelated upstream API change.
  • If the machine also has Ubuntu Pro / ESM enabled, the same APT pinning described on the FFmpeg 9 PPA page applies here too, using o=LP-PPA-dersobi-tvheadend in the pin file’s origin match.
derSobi By derSobi
derSobi Yet another blog