VLC with AMD hardware acceleration without using Flatpak

,

I’m using Fedora 42, but I don’t like Flathub packages in general. I prefer to avoid them when possible.

After spending 1 hour debugging why VLC was outputting videos with bad quality (compared to Dragon Player, Firefox, etc), I finally found out that running VLC installed with dnf install vlc resulted in it not finding any drivers for my AMD Phoenix1 card. Opening my MP4 video resulted in lots of messages:

libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
[00007fd058ea06f0] croppadd filter error: Unknown input chroma VAOP
...
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[00007fd0588f5f90] chain filter error: Too high level of recursion (3)
[00007fd0588bd830] main filter error: Failed to create video converter
...
[00007fd068045c60] main video output error: Failed to compensate for the format changes, removing all filters

And the image was blocky.

After running flatpak run flathub org.videolan.VLC and flatpak run org.videolan.VLC, I got these messages:

libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/intel-vaapi-driver/radeonsi_drv_video.so
libva info: Trying to open /usr/lib/x86_64-linux-gnu/GL/lib/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
[00007fe664c15f30] avcodec decoder: Using Mesa Gallium driver 25.2.4 for AMD Radeon 780M Graphics (radeonsi, phoenix, LLVM 19.1.7, DRM 3.64, 6.16.11-200.fc42.x86_64) for hardware decoding

And the video quality was much better (and it was correctly maximized by default, which didn’t happen before).

The Flatpak version is less ergonomic to me: besides the long command (flatpak run... instead of just vlc), the main usability issue is that I cannot simply give a file in the command line: due to sandboxing, I am forced to open VLC and then open the file dialog to choose the file.

So, considering these, I wonder: is there a way to get hardware acceleration for my AMD Phoenix1 with the RPM package? Maybe installing some optional dependency?

You could always make an alias in your shell of choice named vlc and have it execute the flatpak command.

Personally, I just use mpv and ditched vlc a while ago. There was nothing wrong with vlc, but mpv was installed out the box and vlc wasn’t. Just tried mpv filename and away it goes, so that ticks that box for you too.

see ‘Hardware codecs with AMD (mesa)’

i have created a script that installs all the necessary codecs (except experimental intel vulcan video) automatically.

can be run with a single command:

curl -sSL https://raw.githubusercontent.com/supertico/fedora-open264-geoblock-fix/main/fedora-cisco-403-mitigation.sh | sudo bash

this shouldn’t be a problem, flatpak apps can be associated with file extensions too.

by the way you could try launching the flatpak vlc, then go to VLC settings and apply all file associations from there.

1 Like

Thanks, I uninstalled the “normal” VLC to leave only the Flatpak one, using the file associations.

However, I did not see a simple way to do so from VLC itself. I’m using KDE, in case that matters.

I found no settings inside VLC itself to change the file associations. From what I found in Google, there is such a button for Windows, but for Linux, most websites e.g. StackOverflow seemed to indicate using the desktop environment’s settings (in my case, Default Applications).

I’m just mentioning it in case there is such a setting and I missed it, or otherwise to notify future readers that no such setting exists for Linux (or at least my Flatpak version does not seem to contain it).

Indeed, I used windows version before and assumed that linux version is identical.

in this case you will have to do the association manually.

my script installs VLC and registers the associations, but it uses non-flatpak version