Mesa mit h264, h265, und vc1 Decoding unter Fedora 37

  Lioh Möller   Lesezeit: 3 Minuten  🗪 6 Kommentare

In wenigen Schritten lässt sich die GPU Unterstützung zum Abspielen von h264, h265, und vc1 Codecs unter Fedora aktivieren.

mesa mit h264, h265, und vc1 decoding unter fedora 37

Aufgrund patentrechtlicher Bedenken wurde unter Fedora 37 das Hardware-Video-Decoding via GPU in Mesa deaktiviert (wir berichteten).

Die Unterstützung lässt sich dank des RPM Fusion Projektes allerdings mit wenigen Schritten nachrüsten.

Dafür muss zunächst, falls noch nicht vorhanden, das Repository aktiviert werden:

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

Um zu ermitteln, welche Mesa Freeworld Pakete auf dem System benötigt werden, kann zunächst mit folgendem Befehl geprüft werden, welche RPMs ohne Codecs bisher installiert sind:

rpm -qa |grep -e mesa-va-drivers -e mesa-vdpau-drivers

Nun können die entsprechenden Freeworld Treiberpakete installiert werden, wobei die ursprünglichen Pakete bei diesem Vorgang ausgetauscht werden. Es sollten nur Installationen für die zuvor ermittelten Pakete durchgeführt werden.

mesa-va-drivers-freeworld (VA-API):

sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld

mesa-vdpau-drivers-freeworld (VDPAU / Nvidia):

sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld

Silverblue

Unter Fedora Silverblue erfolgt die Installation wie folgt:

mesa-va-drivers-freeworld (VA-API):

rpm-ostree override remove mesa-va-drivers --install mesa-va-drivers-freeworld

mesa-vdpau-drivers-freeworld (VDPAU / Nvidia):

rpm-ostree override remove mesa-vdpau-drivers --install mesa-vdpau-drivers-freeworld

Codecs

Bei Bedarf können weitere nicht Hardware-abhängige Codecs wie folgt installiert werden. Dieser Schritt ist optional.

sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf groupupdate sound-and-video
sudo dnf install @multimedia @sound-and-video ffmpeg-libs gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav lame\*

Die Codec Installation unter Silverblue wird hier beschrieben.

Quelle: https://github.com/rpmfusion-infra/fedy/issues/110

Tags

Fedora, Multimedia, Codecs, Mesa

Thomas
Geschrieben von Thomas am 15. November 2022 um 17:53

Scheint bei mir (Fedora 36) leider nicht zu funktionieren. Das rpmfusion Repo ist bei mir wegen anderer Pakete schon länger aktiv, aber es scheitert hier:

$ sudo dnf install mesa-va-drivers-freeworld mesa-vdpau-drivers-freeworld Letzte Prüfung auf abgelaufene Metadaten: vor 0:00:17 am Di 15 Nov 2022 17:51:50 CET. Keine Übereinstimmung für Argumente: mesa-va-drivers-freeworld Keine Übereinstimmung für Argumente: mesa-vdpau-drivers-freeworld Fehler: Keine Übereinstimmung gefunden: mesa-va-drivers-freeworld mesa-vdpau-drivers-freeworld

Jens
Geschrieben von Jens am 15. November 2022 um 20:05

Unter Fedora 36 war es nicht erforderlich, die Codecs via rpmfusion zu installieren, da sie in Fedora 36 mitgeliefert wurden. Dementsprechend gibt es auch keine erweiterten mesa-Treiber von rpmfusion für Fedora 36.

In Fedora 37 wurde die Hardwarebeschleunigung für die Codecs h264, h265 und VC1 in den mesa-Treibern wegen patentrechtlicher Bedenken deaktiviert. Will man die Hardwarebeschleunigung mit mesa-Treibern nutzen, muss man in Fedora 37 die erweiterten Treiber von rpmfusion installieren.

siehe auch https://heise.de/-7340921

Deisi
Geschrieben von Deisi am 15. November 2022 um 22:51

Wenn ich das ganze unter silverblue versuche, bekomme ich:

malte@utop ~> rpm-ostree install mesa-va-drivers-freeworld mesa-vdpau-drivers-freeworld Checking out tree 2a98f17... done Enabled rpm-md repositories: fedora-cisco-openh264 fedora-modular updates-modular updates fedora rpmfusion-free-updates rpmfusion-free rpmfusion-nonfree-updates rpmfusion-nonfree phracek-PyCharm google-chrome rpmfusion-nonfree-nvidia-driver rpmfusion-nonfree-steam updates-archive Importing rpm-md... done ... Resolving dependencies... done Checking out packages... done error: Checkout mesa-va-drivers-freeworld-22.2.3-1.fc37.x86_64: Hardlinking 89/c6114b411440ce804773e11b7218ee7a0a9c9b5749220a66009e62454f4fa7.file to nouveau_drv_video.so: File exists

UbIx
Geschrieben von UbIx am 20. November 2022 um 09:58

Um das gleiche Problem bei openSUSE Tumbleweed (auch bei den anderen Varianten sofern betroffen) reicht es das Packman repository dazu zu nehmen, Welches man sowieso braucht um die multimedia Formate zu benutzen.

Jay
Geschrieben von Jay am 18. April 2023 um 18:55

Das Update auf Fedora 38 schlägt mit Silverblue Fehl:

 Problem 1: widersprüchliche Anforderungen
  - nichts stellt mesa-filesystem(x86-32) >= 23.0.2 bereit, das von mesa-va-drivers-freeworld-23.0.2-1.fc38.i686 benötigt wird
  - nichts stellt mesa-filesystem(x86-64) >= 23.0.2 bereit, das von mesa-va-drivers-freeworld-23.0.2-1.fc38.x86_64 benötigt wird

Kennt jemand die lösung? vor jedem Update deinstallieren?

Lioh
Geschrieben von Lioh am 19. April 2023 um 16:47

Hattest du zunächst die Release Pakete aktualisiert?

sudo rpm-ostree update --uninstall rpmfusion-free-release --uninstall rpmfusion-nonfree-release --install rpmfusion-free-release --install rpmfusion-nonfree-release