Post

Debian 13 (Trixie) Codec & Multimedia Guide: Enable H.264, H.265, and Restricted Formats

Can't play videos or stream media on Debian 13 Trixie? Follow this step-by-step guide to enable non-free repositories, install complete FFmpeg decoders, GStreamer plugins, and enable VA-API hardware video acceleration.

Debian 13 (Trixie) Codec & Multimedia Guide: Enable H.264, H.265, and Restricted Formats

If you followed our Debian 13 Trixie Post-Install Guide, you know that Debian strictly adheres to the Debian Free Software Guidelines (DFSG). Because of this commitment, Debian’s default installation omits patent-encumbered media decoders and proprietary plugins.

Out of the box, videos encoded in H.264 (AVC), H.265 (HEVC), AAC audio, or commercial MP4 streams will refuse to play in Firefox, Chromium, or media players like Totem.

This guide walks through configuring Debian 13 repositories and installing the complete multimedia stack with hardware acceleration.


1. Enable contrib, non-free, and non-free-firmware Repositories

Before you can install restricted codecs, ensure your APT sources list includes Debian’s non-free branches.

Open /etc/apt/sources.list:

1
sudo nano /etc/apt/sources.list

Verify that your repository lines look like this:

1
2
3
4
5
6
7
8
deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware

deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware

deb http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware

(If you are on Debian’s newer DEB822 format at /etc/apt/sources.list.d/debian.sources, ensure Components: main contrib non-free non-free-firmware is present).

Update your package index:

1
sudo apt update

2. Install Full FFmpeg and Extra Codecs

Debian ships a stripped version of the FFmpeg codec libraries by default. Replace it with the full-featured extra decoder builds:

1
2
3
4
5
6
sudo apt install -y \
  ffmpeg \
  libavcodec-extra \
  libavcodec-extra60 \
  libavformat-extra \
  libavformat-extra60

This immediately enables decoding and encoding for H.264, H.265, AAC, MP3, and proprietary container formats.


3. Install Complete GStreamer Plugins

GNOME, KDE Plasma, and many Linux desktop audio/video applications use the GStreamer framework to handle media pipeline playback.

Install the complete GStreamer stack:

1
2
3
4
5
6
7
sudo apt install -y \
  gstreamer1.0-plugins-base \
  gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad \
  gstreamer1.0-plugins-ugly \
  gstreamer1.0-libav \
  gstreamer1.0-vaapi
  • plugins-good: Free, well-maintained decoders (Ogg, Vorbis, FLAC, WebM).
  • plugins-bad: Modern and less common formats needing additional testing.
  • plugins-ugly: Patent-restricted high-quality codecs (MP3, MPEG-2/4, DVD decoders).
  • libav: Bridges GStreamer directly into FFmpeg’s complete decoder library.
  • vaapi: Offloads video decode/encode to your GPU.

4. Enable DVD Playback (libdvdcss)

If you watch encrypted DVD media or ISO image rips, install libdvd-pkg to automatically build and install libdvdcss2:

1
2
sudo apt install -y libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg

Follow the terminal dialog prompt to confirm automatic package builds.


5. Enable Hardware Video Acceleration (VA-API)

Running 1080p or 4K 60fps video in web browsers without GPU hardware acceleration will peg your CPU cores at 100%, causing fan noise, frame drops, and rapid battery drain on laptops.

Step 1: Install the Diagnostic Utility

1
sudo apt install -y vainfo

Step 2: Install Driver Drivers by GPU Vendor

For Intel (Core 8th Gen and newer):

1
sudo apt install -y intel-media-va-driver-non-free

For Intel (Older 7th Gen and legacy):

1
sudo apt install -y i965-va-driver

For AMD Radeon:

1
sudo apt install -y mesa-va-drivers

For NVIDIA:

1
sudo apt install -y nvidia-vaapi-driver

Step 3: Verify Hardware Acceleration

Run vainfo in your terminal:

1
vainfo

Look for VAProfileH264Main, VAProfileHEVCMain, and VAEntrypoint_VLD in the output. If present, your GPU is handling decoding.


To test and play virtually any video file without dependency conflicts, install MPV or VLC:

1
2
3
4
5
# Minimalist, keyboard-driven player (recommended)
sudo apt install -y mpv

# Feature-packed GUI media player
sudo apt install -y vlc

Your Debian 13 Trixie system is now fully equipped to play any modern audio or video stream with full GPU offloading.

This post is licensed under CC BY 4.0 by the author.