GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So aktivieren Sie die hardwarebeschleunigte Videodekodierung in den Browsern Google Chrome, Brave, Vivaldi und Opera unter Debian, Ubuntu oder Linux Mint

Google Chrome 88 (und neuer) hat die hardwarebeschleunigte Videodekodierung unter Linux verfügbar gemacht, ist aber standardmäßig nicht aktiviert. Google Chrome ist jedoch nicht der einzige Chromium-basierte Webbrowser, der die Hardwarebeschleunigung unter Linux unterstützt. In diesem Artikel wird erläutert, wie Sie die hardwarebeschleunigte Videodekodierung in den Webbrowsern Google Chrome, Brave, Vivaldi und Opera unter Debian, Ubuntu, Pop! _OS oder Linux Mint (nur Xorg).

Die Verwendung von hardwarebeschleunigter Videodekodierung in Ihrem Webbrowser sollte zu einer geringeren CPU-Auslastung (und damit zu einem geringeren Batterieverbrauch) beim Abspielen von Online-Videos führen.

Es ist erwähnenswert, dass der Chromium-Webbrowser Patches hatte, die es ermöglichten, hardwarebeschleunigte Videodekodierung für einige Zeit unter Linux verfügbar zu machen, und einige Linux-Distributionen haben es mit diesen Patches verpackt. Chromium-Benutzer haben also seit einiger Zeit Hardwarebeschleunigung unter Linux, abhängig von ihrer Linux-Distribution oder wenn sie das gepatchte Chromium auf andere Weise installiert haben. Beispielsweise gibt es unter Ubuntu / Linux Mint ein PPA mit VA-API gepatchten Chromium-Builds. Daher kann diese Anleitung je nach Aufbau auch für den Chromium-Browser funktionieren.

Ich möchte auch hinzufügen, dass diese Anweisungen zum Aktivieren der hardwarebeschleunigten Videodekodierung auch auf anderen Linux-Distributionen funktionieren, nicht nur auf Debian / Ubuntu-basierten Linux-Distributionen, aber die Treibernamen sind unterschiedlich.

Ich habe diese Anweisungen mit Ubuntu 20.10 Desktop mit Nvidia-Grafik getestet und die unten aufgeführten Webbrowser mit ihrer ursprünglichen Ubuntu-Verpackung (mit einem DEB-Paket) installiert. Auch getestet mit einem Laptop mit Intel-Grafik (10. Generation) unter Ubuntu 20.04 und 20.10. Ich besitze kein AMD-Grafikgerät, um dies zu testen.

In meinem Test konnte ich die hardwarebeschleunigte Videodekodierung unter Linux zum Laufen bringen mit:

  • Google Chrome Stable 88
  • Brave Stable 1.19
  • Vivaldi Snapshot 3.6 / [Bearbeiten] Der neueste Vivaldi Stable 3.6 funktioniert auch
  • Opera Beta 74

Natürlich sollte es auch mit neueren Versionen (z. B. Google Chrome 89, Brave 1.20 usw.) funktionieren.

Für mich hat die hardwarebeschleunigte Videodekodierung nicht funktioniert mit:

  • Vivaldi stabil 3.5 . Vivaldi Stable ist jetzt Version 36 und hat eine funktionierende hardwarebeschleunigte Videodekodierung
  • Opernstall 73
  • Microsoft Edge – es gibt nicht einmal einen chrome://flags/#enable-accelerated-video-decode Flag (um hardwarebeschleunigte Videodekodierung zu aktivieren).

Sie können die VA-API auf XWayland verwenden, indem Sie --use-gl=egl verwenden Befehlszeilen-Flag, aber ich habe es nicht versucht . Ab Google Chrome 91 (und anderen Chromium 91-basierten Browsern) benötigen Sie zusätzlich den --enable-features=VaapiVideoDecoder Flagge.

[[Bearbeiten]]Ich habe versucht, die folgenden Anweisungen zu befolgen und dann den Browser mit dem --use-gl=egl zu verwenden Flag on Wayland, arbeite an einem Laptop mit Intel-Grafik und hardwarebeschleunigter Videowiedergabe. Allerdings ruckeln die Videos auf diesem Laptop mit diesen Einstellungen. In diesem Fall bevorzuge ich also die hardwarebeschleunigte Videowiedergabe von Firefox (auf der bei Verwendung von Wayland und Firefox auf demselben Laptop die Videowiedergabe flüssig ist, aber die CPU-Auslastung höher ist als bei Verwendung eines Chromium-basierten Browsers). b>

So aktivieren Sie die hardwarebeschleunigte Videodekodierung in den Webbrowsern Google Chrome, Brave, Vivaldi und Opera unter Debian, Ubuntu oder Linux Mint (X11)

Dinge, die Sie benötigen, um die hardwarebeschleunigte Videodekodierung in den oben genannten Webbrowsern zu aktivieren (d. h. Google Chrome 88+, Brave 1.19+, Vivaldi 3.6+ und Opera 74+):

1. Aktivieren Sie die folgenden Webbrowser-Flags:

Für Browser, die auf Google Chrome 90 und älter basieren:

  • Software-Rendering-Liste überschreiben:chrome://flags/#ignore-gpu-blocklist
  • Hardwarebeschleunigte Videodekodierung:chrome://flags/#enable-accelerated-video-decode

Für Browser, die auf Google Chrome 91 und neuer basieren (es gibt keine hardwarebeschleunigte Videodekodierung mehr, aber wir müssen ein neues Befehlszeilen-Flag verwenden – siehe Schritt 4):

  • Software-Renderingliste überschreiben:chrome://flags/#ignore-gpu-blocklist

2. Installieren Sie den VA-API-Treiber, um Medien (Quelle) decodieren zu können, sowie libva-drm2 und libva-x11-2 (Diese 2 sind wahrscheinlich bereits installiert, aber nur für den Fall; ich habe diese 2 in einer späteren Bearbeitung hinzugefügt, nachdem ich festgestellt hatte, dass die Hardwarebeschleunigung ohne sie nicht funktioniert, und sobald ich vainfo installiert habe, dass diese 2 Pakete als Abhängigkeiten enthalten sind, würde es anfangen zu arbeiten):

  • Für Intel Gen 7 und frühere Hardware:

sudo apt install i965-va-driver-shaders libva-drm2 libva-x11-2

  • Für Intel-Hardware der Generation 8+:

sudo apt install intel-media-va-driver-non-free libva-drm2 libva-x11-2

  • Für Nouveau- und AMD-Treiber (Ich konnte keinen Browser dazu bringen, die Hardwarebeschleunigung mit den Nouveau-Treibern zu verwenden, vielleicht haben Sie mehr Glück):

sudo apt install mesa-va-drivers libva-drm2 libva-x11-2

  • Für proprietäre Nvidia-Treiber – Sie können sie aus den Repositories installieren oder den Proprietary GPU Driver PPA verwenden (z. B. den Additional Drivers Dialog auf Ubuntu starten und von dort aus installieren). Wenn Sie proprietäre Nvidia-Treiber verwenden, benötigen Sie einen gepatchten zu vdpau-va-driver ([[Bearbeiten]]Dieser Patch unterstützt VP9 nicht mehr, auch wenn Ihre Grafik dies unterstützt, daher müssen Sie in jedem Fall die h264ify-Erweiterung verwenden – siehe unten). Sie können es von hier herunterladen (Sie benötigen außerdem libvdpau1 ab hier, da es eine Abhängigkeit von vdpau-va-driver ist) für Debian / Ubuntu / Linux Mint / Pop! _OS usw. Das Ubuntu 20.04-Paket von dort funktioniert auch auf Ubuntu 20.10 und neuer. Wenn Sie die von diesem Paket verwendeten Patches sehen möchten, laden Sie das .debian.tar.gz-Archiv herunter (über denselben Link wie oben) und sehen Sie im Ordner „patches“ nach. Falls diese DEBs unter Debian nicht funktionieren (ich habe es nicht ausprobiert), verwenden Sie diese Links für vdpau-va-driver (orig.tar.gz | debian.tar.xz) und libvdau (orig.tar.gz | debian.tar.xz), um die Archive .orig.tar.gz und .debian.tar.xz herunterzuladen und das DEB-Paket auf Ihrem System zu erstellen. Installieren Sie auch libva-drm2 und libva-x11-2:sudo apt install libva-drm2 libva-x11-2

Warum die unfreien Versionen von intel-media-va-driver und i965-va-driver ? Theoretisch sollte dies mit der kostenlosen Version (?) funktionieren, aber in meinem Test auf einem Intel Gen 10 Laptop funktionierte die hardwarebeschleunigte Videodekodierung nur mit dem intel-media-va-driver-non-free Treiber und nicht intel-media-va-driver (Ich bin mir bei dem i965-Treiber nicht sicher, dachte aber, dass es ähnlich sein könnte). Es gibt hier auch noch jemanden, der gesagt hat, dass es bei ihr funktioniert hat.

3. Nur für Grafikkarten erforderlich, die die VP9-Hardware-Videodekodierung nicht unterstützen:Installieren Sie die h264ify-Browsererweiterung.

Wenn Ihre Grafikkarte die VP9-Hardware-Videodekodierung nicht unterstützt, installieren Sie die h264ify-Browsererweiterung (oder Enhanced-h264ify – einige Benutzer sagen, dass dies für sie funktioniert, während die ursprüngliche Erweiterung nicht funktioniert; bei mir ist es umgekehrt) und stellen Sie sicher, dass dies der Fall ist für VP9 aktiviert.

[[Bearbeiten]]Nvidia-Nutzer:Der oben erwähnte gepatchte vdpau-va-Treiber beschleunigt die VP9-Hardware in Chromium-basierten Browsern nicht mehr. Sie müssen also die h264ify-Erweiterung verwenden und VP9 vermeiden, um hardwarebeschleunigte Videodekodierung zu erhalten.

Wenn Sie den MojoVideoDecoder immer noch nicht im chrome://media-internals sehen (Siehe Abschnitt unten, um zu überprüfen, ob die hardwarebeschleunigte Videodekodierung aktiviert ist und tatsächlich vom Browser verwendet wird), versuchen Sie, den Webbrowser nach der Installation dieser Erweiterung neu zu starten. Ich habe Fälle gesehen, in denen dies erforderlich war, und einige, in denen dies nicht der Fall war.

4. Starten Sie den Webbrowser mit dem --use-gl=desktop Flag zum Aktivieren der VA-API-Hardwarebeschleunigung. [[Bearbeiten] Für Browser, die auf Chromium 91 und höher basieren, müssen Sie es auch mit --enable-features=VaapiVideoDecoder starten Flagge.

Um die VA-API für die Videodekodierung zu verwenden, müssen Sie den Webbrowser, sei es Chromium, Google Chrome, Brave, Opera oder Vivaldi, mit dem folgenden Befehlszeilen-Flag starten:--use-gl=desktop . Dadurch verwendet der Webbrowser OpenGL und deaktiviert ANGLE als Rendering-Backend. Während ich an einigen Stellen gelesen habe, dass dies nicht mehr benötigt werden sollte, war es in meinem Test sowohl mit Nvidia- als auch mit Intel-Grafik erforderlich (ich habe keine AMD-Grafik, um dies zu testen).

Um beispielsweise Google Chrome mit diesem Flag zu starten:

google-chrome-stable --use-gl=desktop

Starten Sie Brave damit:

brave-browser --use-gl=desktop

Und so weiter.

Um diese Änderung dauerhaft zu machen, kopieren Sie die .desktop-Datei des Browsers von /usr/share/applications bis ~/.local/share/applications (Wenn dieser Ordner nicht existiert, erstellen Sie ihn). Indem wir die Datei hierher kopieren, stellen wir sicher, dass sie bei einem Update nicht überschrieben wird. Öffnen Sie dann die .desktop-Datei (z. B. brave-browser.desktop , brave-browser-beta.desktop , google-chrome.desktop , usw.) daraus ~/.local/share/applications Ort, mit einem Texteditor. Suchen Sie in dieser Datei nach der Zeile, die mit Exec= beginnt und ändern Sie die ausführbare Datei so, dass sie --use-gl=desktop enthält . Z.B. für Mutige:Exec=/usr/bin/brave-browser-stable --use-gl=desktop , oder für Google Chrome:Exec=/usr/bin/google-chrome-stable --use-gl=desktop %U

[Sehr wichtige Änderung] Mit Chromium 91 (und allen darauf basierenden Browsern) ist das Browser-Flag für die hardwarebeschleunigte Videodekodierung verschwunden. Um eine hardwarebeschleunigte Videowiedergabe zu erhalten, müssen Sie ein neues Befehlszeilen-Flag hinzufügen:--enable-features=VaapiVideoDecoder

Fügen Sie dieses Flag genauso hinzu, wie Sie dieses --use-gl=desktop hinzufügen Flagge. Sie werden beides brauchen, oder zumindest das, was ich brauchte, um eine hardwarebeschleunigte Videodekodierung zu erhalten.

Um beispielsweise Google Chrome mit diesen beiden Flags zu starten, verwenden Sie:

google-chrome-stable --use-gl=desktop --enable-features=VaapiVideoDecoder

Oder starte stattdessen Brave:

brave-browser --use-gl=desktop --enable-features=VaapiVideoDecoder

Wichtiger Hinweis:Wenn Sie beim Starten des Browsers mit --use-gl=desktop ein komplett weißes Videobild sehen , überprüfen Sie chrome://flags und stellen Sie sicher, dass Vulkan dort nicht aktiviert ist. Wenn Vulkan aktiviert ist und der Browser mit --use-gl=desktop gestartet wird Option bewirkt, dass dies geschieht.

Noch ein Hinweis, diesmal für Opera-Benutzer :Wenn Sie keine Videos auf YouTube und anderen Websites abspielen können, nachdem Sie die h264ify-Erweiterung verwendet haben, sehen Sie sich die Lösungen von hier an, um die h264-Unterstützung in Opera zu aktivieren (beachten Sie, dass, wenn der von Ihnen verwendete Webbrowser Opera Beta ist, der Ordner /opera-beta ).

Das ist es.

So überprüfen Sie, ob die hardwarebeschleunigte Videodekodierung aktiviert ist und in jedem Chromium-basierten Webbrowser funktioniert

Lassen Sie uns nun prüfen, ob der Webbrowser hardwarebeschleunigte Videodekodierung verwendet.

Lassen Sie uns zunächst prüfen, ob der Browser hardwarebeschleunigtes Video unterstützt. Öffnen Sie dazu einen neuen Tab und besuchen Sie chrome://gpu . Auf dieser Seite sollte „Videodekodierung:Hardwarebeschleunigt“ (in Grün, wie hier) zu sehen sein:

Das bedeutet, dass Ihr Webbrowser jetzt hardwarebeschleunigte Videodekodierung unterstützt. Aber ist es tatsächlich in der Lage, Videos mithilfe von Hardware zu decodieren? Lassen Sie uns das auch überprüfen, indem wir ein YouTube-Video öffnen und dann Ctrl + Shift + i drücken um die Chrome DevTools zu öffnen. Klicken Sie im Menü mit den 3 vertikalen Punkten auf More tools -> Media . Klicken Sie dann auf den Videotitel in der linken Seitenleiste von DevTools (Players Abschnitt) und schauen Sie in Video Decoder nach Abschnitt des Media Chrome DevTools-Registerkarte:

Wenn es sagt, dass der Decodername VideoDecode Accelerator ist oder, habe ich auch so gesehen VDAVideoDecoder (vorher war es MojoVideoDecoder , und davor war es GpuVideoDecoder Wenn Sie also eines davon bekommen und eine ältere Browserversion verwenden, ist das in Ordnung, Sie haben Hardwarebeschleunigung) und Hardware decoder ist true , und verwenden Sie dann die hardwarebeschleunigte Videodecodierung. Wenn es FFmpegVideoDecoder heißt , VpxVideoDecoder oder Dav1dVideoDecoder (und in diesem Fall der Hardware decoder sollte false lauten ) verwendet Ihr Webbrowser keine hardwarebeschleunigte Videodekodierung.


Debian
  1. So installieren Sie Pip unter Ubuntu 18.04, Debian 9 und Linux Mint 19

  2. So kompilieren und installieren Sie wxWidgets unter Ubuntu/Debian/Linux Mint

  3. Aktivieren Sie Webgl in Google Chrome auf Ubuntu

  4. So installieren Sie Oracle Java 14 (JDK 14) unter Ubuntu, Debian oder Linux Mint aus dem APT PPA-Repository

  5. So installieren und konfigurieren Sie Node.js und npm in Ubuntu, Debian oder Linux Mint

So deaktivieren Sie das „Sudo“-Passwort in Linux Mint 20 und Ubuntu Linux

So löschen Sie den Apt-Cache in Debian, Ubuntu und Linux Mint

So installieren Sie NetBeans IDE 12.4 in Ubuntu, Debian und Linux Mint

Unterschiede zwischen Linux Mint, Ubuntu, Manjaro und Debian Desktop-GUI

So installieren Sie NetBeans IDE 12 in Debian, Ubuntu und Linux Mint

So installieren Sie Wine 5.0 unter Debian, Ubuntu und Linux Mint