CentOS

Install VLC on Fedora 45 / 44

VLC is in the Fedora repositories, and it plays H.264 out of the box. HEVC (H.265) is the gap. The Fedora build refuses it with “Codec not supported”, and the RPM Fusion package most guides tell you to add does not fix playback. The fix is a different RPM Fusion package, or the Flatpak. We tested all three routes with the same set of clips on a Fedora 45 Workstation and a Fedora 44 machine, with VLC 3.0.24 from the Fedora repos.

Original content from computingforgeeks.com - post 116

Install VLC from the Fedora repos

No third-party repo is needed for the player itself. Check what Fedora offers:

dnf info vlc | grep -E "^(Name|Epoch|Version|Release|Repository)"

On Fedora 45 it comes from the main fedora repo:

Name           : vlc
Epoch          : 1
Version        : 3.0.24
Release        : 3.fc45
Repository     : fedora

Install it:

sudo dnf install -y vlc

On a Workstation that already has the desktop stack, the transaction was small:

Transaction Summary:
 Installing:        43 packages

Total size of inbound packages is 19 MiB. Need to download 19 MiB.
After this operation, 77 MiB extra will be used (install 77 MiB, remove 0 B).

On the Fedora 44 Cloud image the same command pulled 95 packages and 160 MiB, because Qt 6 and the X11 libraries were missing.

Confirm the version:

vlc --version 2>/dev/null | head -2

The build string matches the package:

VLC version 3.0.24 Vetinari (3.0.24-rc1-0-g6de05adcba)
Compiled by mockbuild on 2949fed6e176420dab1654b4527f2dbb (Sep 23 2026 00:00:00)

The vlc package is a meta package. It pulls the Qt interface, the codec plugins and the PipeWire and PulseAudio outputs:

rpm -qa "vlc*" | sort

The installed set:

vlc-3.0.24-3.fc45.x86_64
vlc-cli-3.0.24-3.fc45.x86_64
vlc-gui-qt-3.0.24-3.fc45.x86_64
vlc-gui-skins2-3.0.24-3.fc45.x86_64
vlc-libs-3.0.24-3.fc45.x86_64
vlc-plugin-ffmpeg-3.0.24-3.fc45.x86_64
vlc-plugin-gnome-3.0.24-3.fc45.x86_64
vlc-plugin-lua-3.0.24-3.fc45.x86_64
vlc-plugin-notify-3.0.24-3.fc45.x86_64
vlc-plugin-pipewire-3-8.fc45.x86_64
vlc-plugin-pulseaudio-3.0.24-3.fc45.x86_64
vlc-plugins-base-3.0.24-3.fc45.x86_64
vlc-plugins-extra-3.0.24-3.fc45.x86_64
vlc-plugins-video-out-3.0.24-3.fc45.x86_64
vlc-plugin-visualization-3.0.24-3.fc45.x86_64

Check what plays out of the box

Fedora ships libavcodec-free, an FFmpeg build with the patent-encumbered decoders removed. To see exactly what that means for VLC, we made three 20-second test clips: H.264 with AAC audio in MP4, HEVC with AAC in MP4, and VP9 with Opus in WebM. Then we played each one headless and filtered the VLC debug log for the decoder it picked. Some runs below read the clips from ~/Videos, so swap in the path to your own files:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 test-h264-aac.mp4 2>&1 | grep -E 'using (audio|video) decoder module|is not supported'

H.264 played:

[00007efc08c07830] main decoder debug: using video decoder module "avcodec"
[00007efc08ff6030] main decoder debug: using audio decoder module "faad"

Swap in the HEVC clip:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 test-hevc-aac.mp4 2>&1 | grep -E 'using (audio|video) decoder module|is not supported'

The HEVC clip failed at the video decoder. The audio track still played:

[00007ff260c156e0] main decoder error: Codec `hevc' (MPEG-H Part2/HEVC (H.265)) is not supported.
[00007ff260c156e0] main decoder debug: using audio decoder module "faad"

VP9 and Opus are open formats, so they work everywhere:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 test-vp9-opus.webm 2>&1 | grep -E 'using (audio|video) decoder module|is not supported'

And the WebM clip:

[00007ff878c02340] main decoder debug: using video decoder module "avcodec"
[00007ff878c9c2b0] main decoder debug: using audio decoder module "opus"

H.264 works because Fedora routes it through the Cisco OpenH264 library, which the fedora-cisco-openh264 repo provides. AAC goes through the separate faad decoder. Both were already installed on the Workstation:

rpm -q openh264 mozilla-openh264 faad2-libs 2>&1; rpm -qf /usr/lib64/vlc/plugins/codec/libfaad_plugin.so

The packages:

openh264-2.6.0-3.fc45.x86_64
mozilla-openh264-2.6.0-3.fc45.x86_64
faad2-libs-2.11.2-7.fc45.x86_64
vlc-plugins-base-3.0.24-3.fc45.x86_64

A different grep on the codec start line confirms OpenH264 for the H.264 clip:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 test-h264-aac.mp4 2>&1 | grep -E 'codec \(|codec not found|is not supported'

The decoder line:

[00007f1034c07830] avcodec decoder debug: codec (libopenh264) started

The Fedora 44 machine gave the same results with its own FFmpeg build:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 test-hevc-aac.mp4 2>&1 | grep -E 'using (audio|video) decoder module|is not supported|codec \('

The result:

[00007f9694c145e0] main decoder error: Codec `hevc' (MPEG-H Part2/HEVC (H.265)) is not supported.
[00007f9694c145e0] main decoder debug: using audio decoder module "faad"

First launch

Open VLC from Activities. The first run asks whether VLC may fetch cover art and metadata from the internet:

VLC Privacy and Network Access Policy dialog on first launch on Fedora 45

Untick the box if you do not want VLC contacting metadata services, then click Continue.

Open the HEVC clip with only the Fedora packages installed and VLC shows this error while the audio keeps playing:

VLC Codec not supported error for HEVC H.265 on Fedora 45 without RPM Fusion

Add HEVC playback with RPM Fusion

RPM Fusion carries the codecs Fedora cannot ship. Enable the free and nonfree repos:

sudo dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Look at the OpenPGP warning near the end. dnf installs local and URL packages without checking signatures, so these two release packages go in unverified. The tail of the output:

[4/4] Installing rpmfusion-free-release 100% |  26.1 KiB/s |   7.1 KiB |  00m00s
Warning: skipped OpenPGP checks for 2 packages from repository: @commandline

The RPM Fusion signing key is imported later, from the release package, the first time you install anything from those repos. On Fedora 45 before the final release, RPM Fusion enables its base repos plus updates-testing in place of updates, the same way Fedora does:

dnf repolist | grep -i rpmfusion

The RPM Fusion repos on the Fedora 45 prerelease:

rpmfusion-free                    RPM Fusion for Fedora 45 - Free
rpmfusion-free-updates-testing    RPM Fusion for Fedora 45 - Free - Test Updates
rpmfusion-nonfree                 RPM Fusion for Fedora 45 - Nonfree
rpmfusion-nonfree-nvidia-driver   RPM Fusion for Fedora 45 - Nonfree - NVIDIA Driver
rpmfusion-nonfree-steam           RPM Fusion for Fedora 45 - Nonfree - Steam
rpmfusion-nonfree-updates-testing RPM Fusion for Fedora 45 - Nonfree - Test Updates

vlc-plugins-freeworld does not fix playback

Most older guides say to install vlc-plugins-freeworld. Look at what it contains:

dnf repoquery -l vlc-plugins-freeworld | grep "\.so$"

Three x264 and x265 plugins. Those are encoders, used when VLC converts or streams video:

Updating and loading repositories:
 Fedora 45 - x86_64 - Updates           100% |  14.7 KiB/s |  52.5 KiB |  00m04s
 RPM Fusion for Fedora 45 - Nonfree - T 100% |   5.2 KiB/s |  24.7 KiB |  00m05s
 Fedora 45 - x86_64 - Test Updates      100% |   3.1 MiB/s |  14.4 MiB |  00m05s
 RPM Fusion for Fedora 45 - Nonfree - S 100% |   4.6 KiB/s |  22.2 KiB |  00m05s
 RPM Fusion for Fedora 45 - Nonfree - N 100% |   6.2 KiB/s |  31.6 KiB |  00m05s
 RPM Fusion for Fedora 45 - Free - Test 100% |   3.6 KiB/s |  21.3 KiB |  00m06s
 RPM Fusion for Fedora 45 - Nonfree     100% |  80.2 KiB/s | 501.3 KiB |  00m06s
 google-chrome                          100% |   1.8 KiB/s |   9.8 KiB |  00m05s
 RPM Fusion for Fedora 45 - Free        100% |  80.1 KiB/s | 583.4 KiB |  00m07s
 Fedora 45 openh264 (From Cisco) - x86_ 100% | 853.0   B/s |   7.3 KiB |  00m09s
 Fedora 45 - x86_64                     100% |   4.5 MiB/s |  57.8 MiB |  00m13s
Repositories loaded.
/usr/lib64/vlc/plugins/codec/libx26410b_plugin.so
/usr/lib64/vlc/plugins/codec/libx264_plugin.so
/usr/lib64/vlc/plugins/codec/libx265_plugin.so

We installed it anyway and replayed the HEVC clip. Same error:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 Videos/test-hevc-aac.mp4 2>&1 | grep -E 'using (audio|video) decoder module|is not supported'

The result:

[00007f843cc03890] main decoder error: Codec `hevc' (MPEG-H Part2/HEVC (H.265)) is not supported.
[00007f843cc03890] main decoder debug: using audio decoder module "faad"

Install libavcodec-freeworld

The decoder VLC needs is in libavcodec-freeworld. It installs a full FFmpeg libavcodec under /usr/lib64/ffmpeg and adds a linker config so programs load it instead of the Fedora build:

sudo dnf install -y libavcodec-freeworld

It pulled one dependency:

Installing:
 libavcodec-freeworld x86_64 0:9.0.2-1.fc45  rpmfusion-free  14.2 MiB
Installing dependencies:
 vvenc-libs           x86_64 0:1.14.0-1.fc45 rpmfusion-free   3.3 MiB

Transaction Summary:
 Installing:         2 packages

Total size of inbound packages is 7 MiB. Need to download 7 MiB.
After this operation, 18 MiB extra will be used (install 18 MiB, remove 0 B).

The package files show how it takes over:

rpm -ql libavcodec-freeworld | grep -E "ld.so|\.so\."

The files:

/etc/ld.so.conf.d/ffmpeg-lib64.conf
/usr/lib64/ffmpeg/libavcodec.so.63
/usr/lib64/ffmpeg/libavcodec.so.63.1.102

Replay the HEVC clip:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 Videos/test-hevc-aac.mp4 2>&1 | grep -E 'using (audio|video) decoder module|is not supported|codec \('

It decodes now:

[00007f7c28c03890] avcodec decoder debug: codec (hevc) started
[00007f7c28c03890] main decoder debug: using video decoder module "avcodec"
[00007f7c28cbacb0] main decoder debug: using audio decoder module "faad"

The whole sequence on the Fedora 45 box, from the stock decoders to the freeworld library:

VLC decoder log on Fedora 45 showing HEVC unsupported, vlc-plugins-freeworld not helping, and libavcodec-freeworld fixing it

H.264 moves from OpenH264 to the FFmpeg decoder at the same time:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 Videos/test-h264-aac.mp4 2>&1 | grep -E 'codec \('

The codec start line:

[00007efd90c109c0] avcodec decoder debug: codec (h264) started

The GUI agrees. Tools, Codec Information (Ctrl+J) on the same clip:

VLC Codec Information showing HEVC H.265 decoding on Fedora 45 after installing libavcodec-freeworld

Or swap the whole FFmpeg stack

libavcodec-freeworld only replaces the decoder library. If you also want the full ffmpeg command line and the extra encoders for every app on the system, swap the Fedora build out entirely. We did this on the Fedora 44 machine:

sudo dnf swap -y ffmpeg-free ffmpeg --allowerasing

On the Cloud image ffmpeg-free itself was not installed, so dnf5 printed “No packages to remove for argument: ffmpeg-free” and removed the five libav*-free and libsw*-free libraries instead, then installed the RPM Fusion FFmpeg with 26 more packages. A Workstation has more packages built against the free libraries, so its counts differ:

Transaction Summary:
 Installing:        27 packages
 Removing:           5 packages

Total size of inbound packages is 23 MiB. Need to download 23 MiB.
After this operation, 57 MiB extra will be used (install 72 MiB, remove 15 MiB).

HEVC played after the swap too:

cvlc -vv -V dummy -A dummy --play-and-exit --run-time=2 test-hevc-aac.mp4 2>&1 | grep -E 'using (audio|video) decoder module|is not supported|codec \('

The result:

[00007fd354c09630] avcodec decoder debug: codec (hevc) started
[00007fd354c09630] main decoder debug: using video decoder module "avcodec"
[00007fd354c926b0] main decoder debug: using audio decoder module "faad"

The full codec setup for Firefox, GStreamer and hardware decoding is in the RPM Fusion and multimedia codecs guide for Fedora.

Install VLC as a Flatpak

The Flathub build bundles its own FFmpeg, so it plays HEVC without RPM Fusion. It needs Flathub enabled; the Flatpak and Flathub guide for Fedora covers that. Check the listing first:

flatpak remote-info flathub org.videolan.VLC | grep -E "ID|Version|Runtime|Download|Installed"

The Flatpak was one point release behind the Fedora RPM on the test day. The 52.7 MB is the app alone; it runs on the KDE 5.15 runtime:

            ID: org.videolan.VLC
       Version: 3.0.23
 Download Size: 52.7 MB
Installed Size: 139.4 MB
       Runtime: org.kde.Platform/x86_64/5.15-25.08

Install it:

sudo flatpak install -y --noninteractive flathub org.videolan.VLC

On the test box that pulled the KDE 5.15-25.08 runtime and its locale, the GL.default and GL extra runtimes, codecs-extra and the KStyle theme along with the app, and took 1 minute 27 seconds.

Inside the sandbox the same clip decoded, AAC included, with no RPM Fusion packages involved:

flatpak run --command=cvlc org.videolan.VLC -vv -V dummy -A dummy --play-and-exit --run-time=2 Videos/test-hevc-aac.mp4 2>&1 | grep -E 'using (audio|video) decoder module|is not supported|codec \('

The HEVC test inside the sandbox:

[00007fec80c03ce0] avcodec decoder debug: codec (hevc) started
[00007fec80c03ce0] main decoder debug: using video decoder module "avcodec"
[00007fec80cb4a40] avcodec decoder debug: codec (aac) started
[00007fec80cb4a40] main decoder debug: using audio decoder module "avcodec"

The listing and the sandboxed decode together:

VLC Flatpak on Fedora 45 decoding HEVC with its bundled FFmpeg and the vlc-plugins-freeworld file list

The sandbox is not tight. The Flatpak gets the whole host filesystem and all devices:

flatpak info --show-permissions org.videolan.VLC | sed -n "1,8p"

The permissions:

[Context]
shared=ipc;network;
sockets=pulseaudio;x11;
devices=all;
filesystems=xdg-config/kdeglobals:ro;host;xdg-run/gvfs;

[Session Bus Policy]
org.kde.kwalletd5=talk

Pick the RPM if you already use RPM Fusion. Pick the Flatpak if you want HEVC without touching the system FFmpeg.

Keep VLC updated

The RPM updates with every dnf upgrade. The Flatpak updates with flatpak update. On Fedora 45 before the final release, updates-testing held an older VLC build than the main repo. dnf picks the newest version, so the testing build was ignored:

dnf repoquery --qf "%{name} %{version}-%{release} %{repoid}\n" vlc vlc-plugins-base vlc-plugins-freeworld vlc-plugin-ffmpeg

The query:

Updating and loading repositories:
Repositories loaded.
vlc 3.0.23-18.fc45 updates-testing
vlc 3.0.24-3.fc45 fedora
vlc-plugin-ffmpeg 3.0.23-18.fc45 updates-testing
vlc-plugin-ffmpeg 3.0.24-3.fc45 fedora
vlc-plugins-base 3.0.23-18.fc45 updates-testing
vlc-plugins-base 3.0.24-3.fc45 fedora

Uninstall VLC

Remove the player and the plugin package. dnf also removes the dependencies nothing else needs:

sudo dnf remove vlc vlc-plugins-freeworld

A dry run with --assumeno on the Workstation, filtered to the summary:

sudo dnf remove --assumeno vlc vlc-plugins-freeworld 2>&1 | grep -E "^Removing|Transaction Summary|Removing: |Freed|After this"

It would remove 44 packages:

 Removing:          44 packages
After this operation, 77 MiB will be freed (install 0 B, remove 77 MiB).

libavcodec-freeworld and its vvenc-libs dependency are not part of that transaction and stay installed. Remove them separately with sudo dnf remove libavcodec-freeworld vvenc-libs; if one of them is already gone, dnf5 prints “No packages to remove for argument” for it and carries on.

The settings directory stays behind. Delete ~/.config/vlc if you want a clean start next time. The Flatpak comes out with sudo flatpak uninstall --delete-data org.videolan.VLC.

Troubleshooting

Codec `hevc’ (MPEG-H Part2/HEVC (H.265)) is not supported

Fedora’s libavcodec has no HEVC decoder. Install libavcodec-freeworld from RPM Fusion, swap to the RPM Fusion ffmpeg, or use the Flatpak.

HEVC still fails after installing vlc-plugins-freeworld

That package carries x264 and x265 encoders only. It does nothing for playback. Install libavcodec-freeworld.

RPM Fusion repo errors right after a new Fedora release

RPM Fusion repo URLs follow the Fedora release number. During the Fedora 45 prerelease the base RPM Fusion repos were enabled, but updates-testing stood in for updates. If dnf reports a 404 for an RPM Fusion repo after an upgrade, see the third-party repo 404 guide for Fedora 45.

“skipped OpenPGP checks” when adding RPM Fusion

dnf does not verify packages installed from a file or URL. Fedora 45 tightened rpm -i, not dnf. The NOKEY and RPM signature guide for Fedora 45 shows how to turn the check on for local packages.

For a browser to go with the player, see Google Chrome on Fedora or Brave on Fedora. The rest of a new desktop setup is in the Fedora 45 post-install checklist.

Keep reading

Customize KDE Plasma Desktop with Themes|Modules|Extensions AlmaLinux Customize KDE Plasma Desktop with Themes|Modules|Extensions How To Extract .xz files on a Linux System CentOS How To Extract .xz files on a Linux System Extend Root Filesystem Using LVM on Linux KVM Extend Root Filesystem Using LVM on Linux Fedora 45 vs CentOS Stream 10: Versions, Lifecycle and CPU CentOS Fedora 45 vs CentOS Stream 10: Versions, Lifecycle and CPU How to Install and Enable EPEL on RHEL 10 and CentOS Stream 10 CentOS How to Install and Enable EPEL on RHEL 10 and CentOS Stream 10 CentOS 8 vs Amazon Linux 2 – Feature Comparison CentOS CentOS 8 vs Amazon Linux 2 – Feature Comparison

Leave a Comment

Press ESC to close