Στο Google Chrome 88 κατέστη δυνατή η αποκωδικοποίηση βίντεο με επιτάχυνση υλικού (κάρτας γραφικών) σε Linux, αλλά δεν είναι ενεργοποιημένη από προεπιλογή. Ας δούμε πώς μπορείτε να ενεργοποιήσετε την επιλογή σε όλα τα Chrome based browsers όπως το Brave, Vivaldi και Opera.

Η χρήση αποκωδικοποίησης βίντεο με επιτάχυνση υλικού στο πρόγραμμα περιήγησης ιστού θα πρέπει να έχει ως αποτέλεσμα τη χρήση λιγότερης CPU κατά την αναπαραγωγή βίντεο στο διαδίκτυο. Την χρήση της επιτάχυνσης με GPU την έχουμε κάνει για το τερματικό μας, τον Firefox browser για όσους το χάσατε, οπότε σήμερα θα το κάνουμε στους Google Chrome, Chromium (για όσο καιρό υπάρχει ακόμα στις διανομές Linux), Brave, Vivaldi και Opera Browser.

Να σημειώσουμε ότι όσοι χρησιμοποιείτε Wayland, ίσως να μην λειτουργήσουν οι ρυθμίσεις που θα κάνουμε Μπορείτε να χρησιμοποιήσετε το VA-API στο XWayland, χρησιμοποιώντας το --use-gl=egl flag κατά την εκκίνηση αλλά επειδή δεν χρησιμοποιώ Wayland δεν το δοκίμασα.

Advertisements

Πώς να ενεργοποιήσετε την αποκωδικοποίηση βίντεο με επιτάχυνση υλικού GPU

Το πρώτο πράγμα που πρέπει να δείτε είναι η έκδοση του browser σας. Οι ρυθμίσεις θα πρέπει να είναι διαθέσιμες σε εκδόσεις :

  • Google Chrome 88+
  • Brave 1.19+
  • Vivaldi 3.6+
  • Opera 74+

Στην αρχή θα χρειαστεί να πάτε στις ρυθμίσεις για ενεργοποίηση της επιτάχυνσης. Για ευκολία αντιγράφετε τους παρακάτω συνδέσμους στην μπάρα διευθύνσεων και επιλέγετε Enabled:

  • Override software rendering list : chrome://flags/#ignore-gpu-blocklist
  • Hardware-accelerated video decode: chrome://flags/#enable-accelerated-video-decode

Έπειτα, ανάλογα με την κάρτα γραφικών σας, θα πρέπει να επιβεβαιώσετε ότι έχετε εγκατεστημένους κάποιους drivers. Το πακέτο που πρέπει να ψάξετε είναι το πρόγραμμα οδήγησης VA-API ( πηγή ):

  • Για κάρτα γραφικών Intel Gen 7 και παλαιότερο υλικό:
sudo apt install i965-va-driver-shaders
  • Για κάρτα γραφικών Intel Gen 8+:
sudo apt install intel-media-va-driver-non-free
  • Για τους ανοιχτούς drivers Nouveau και AMD (το Nouveau έχει αναφερθεί ότι δεν δουλεύει καλά, ίσως έχετε καλύτερη τύχη): 
sudo apt install mesa-va-drivers

Τέλος για όσους έχουν κάρτα γραφικών που δεν υποστηρίζει αποκωδικοποίηση βίντεο VP9 μέσω GPU τότε μπορείτε να εγκαταστήσετε την επέκταση του browser h264ify και κάντε επανεκκίνηση τον browser. Την επέκταση αυτή θα την έχετε συναντήσει όσοι είστε χρήστες του Raspberry Pi OS το οποίο χρησιμοποιεί την επέκταση στον Chromium.

Advertisements

Εκκίνηση του browser χρησιμοποιώντας την --use-gl=desktop flag για επιτάχυνση υλικού με VA-API.

Για να μπορέσετε να χρησιμοποιήσετε την αποκωδικοποίηση βίντεο με το VA-API θα πρέπει να ξεκινήσει ο Chromium, ο Google Chrome, Brave, Opera ή Vivaldi, χρησιμοποιώντας την παράμετρο--use-gl=desktop

Αυτό αναγκάζει τον browser να χρησιμοποιεί το OpenGL και να απενεργοποιεί το ANGLE ως backend. Κάποιοι αναφέρουν ότι αυτό δεν απαιτείται, παρόλα αυτά στις δοκιμές μου έπρεπε να το κάνω. Εσείς μπορείτε να το δοκιμάσετε και χωρίς την παρακάτω διαδικασία και αν δείτε ότι δεν δούλεψε μπορείτε να επιστρέψετε πάλι εδώ για να το κάνετε.

Για παράδειγμα αν θέλουμε να το κάνουμε στο Google Chrome, ανοίγουμε το τερματικό και γράφουμε:

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

Εκκινήστε το Brave χρησιμοποιώντας αυτό:

brave-browser --use-gl=desktop

Και ούτω καθεξής. 

Προφανώς αυτό το κάνετε μια φορά για να δοκιμάσετε. Με άλλα λόγια για να γίνει αυτή η αλλαγή μόνιμη, αντιγράψτε το αρχείο εκκίνησης του προγράμματος περιήγησης .desktop από το /usr/share/applications στο ~/.local/share/applications (αν δεν υπάρχει αυτός ο φάκελος, δημιουργήστε τον).  π.χ. εγώ που χρησιμοποιώ Brave Browser το αντέγραψα με τον παρακάτω τρόπο:

cp /usr/share/applications/brave-browser.desktop ~/.local/share/applications/brave-browser.desktop

Αντιγράφοντας το αρχείο, φροντίζουμε να μην αντικατασταθεί από μια μελλοντική αναβάθμιση του λογισμικού. Στη συνέχεια, ανοίξτε το αρχείο .desktop από αυτήν την τοποθεσία ~/.local/share/applications, με ένα πρόγραμμα επεξεργασίας κειμένου όπως το αγαπημένο μας VIM

vim ~/.local/share/applications/brave-browser.desktop

Σε αυτό το αρχείο, αναζητήστε τη γραμμή που ξεκινά από Exec= και αλλάξτε το ώστε να συμπεριληφθεί το --use-gl=desktop

Π.χ. για το Brave: 

Exec=/usr/bin/brave-browser-stable --use-gl=desktop %U

ή για το Google Chrome:

Exec=/usr/bin/google-chrome-stable --use-gl=desktop %U

Σημαντική σημείωση: Εάν βλέπετε μια εντελώς λευκή εικόνα βίντεο κατά την εκκίνηση του προγράμματος περιήγησης με --use-gl=desktop, ελέγξτε πάλι το chrome://flags και βεβαιωθείτε ότι το Vulkan δεν είναι ενεργοποιημένο. Η ενεργοποίηση του Vulkan και η εκκίνηση του προγράμματος περιήγησης χρησιμοποιώντας την --use-gl=desktop επιλογή θα το κάνει αυτό.

Μια άλλη σημείωση, αυτή τη φορά για τους χρήστες του Opera : εάν μετά τη χρήση της επέκτασης h264ify, δεν μπορείτε πλέον να αναπαράγετε βίντεο στο YouTube και άλλους παρόμοιους ιστότοπους, δείτε τις λύσεις από εδώ για να ενεργοποιήσετε την υποστήριξη h264 στο Opera.

Αυτές ήταν οι ρυθμίσεις !

Advertisements

Πώς να ελέγξετε εάν η αποκωδικοποίηση βίντεο με επιτάχυνση υλικού είναι ενεργοποιημένη και λειτουργεί

Τώρα ας δούμε αν οι ρυθμίσεις μας είναι ενεργές και ο browser μας χρησιμοποιεί αποκωδικοποίηση βίντεο με επιτάχυνση υλικού (GPU).

Ας δούμε αν το πρόγραμμα περιήγησης υποστηρίζει βίντεο με επιτάχυνση υλικού. Ανοίγοντας μια νέα καρτέλα με chrome://gpu θα πρέπει να δείτε το «Video Decode: Hardware accelerated » (με πράσινο χρώμα, όπως εδώ):

Video Decode: Hardware accelerated

Αυτό σημαίνει ότι ο browser σας υποστηρίζει τώρα αποκωδικοποίηση βίντεο με επιτάχυνση υλικού. 

Είναι όμως σε θέση να αποκωδικοποιήσει βίντεο μέσω GPU; Ας το ελέγξουμε ανοίγοντας ένα βίντεο στο YouTube σε μία νέα καρτέλα. Αφού ανοίξετε το βίντεο αφήστε την καρτέλα σε λειτουργία και ανοίξτε μια νέα καρτέλα με chrome://media-internals.

Στην chrome://media-internals καρτέλα, κάντε κλικ στο βίντεο url (για να το αναπτύξετε) και κοιτάξτε κάτω στο Player Properties όπου θα πρέπει να βρείτε την ιδιότητα kVideoDecoderName :

Αν η τιμή της kVideoDecoderName είναι MojoVideoDecoder (στο παρελθόν ήταν GpuVideoDecoder, αλλά τώρα σε Linux ονομάζεται MojoVideoDecoder) σημαίνει ότι το βίντεο που παίζει αυτήν τη στιγμή στο YouTube στην άλλη καρτέλα χρησιμοποιεί αποκωδικοποίηση βίντεο με επιτάχυνση υλικού GPU

Αντίθετα αν δείτε άλλες τιμές όπως VpxVideoDecoder, FFmpegVideoDecoder και Dav1dVideoDecoder σημαίνει ότι το βίντεο που παίζει στην άλλη καρτέλα χρησιμοποιεί software acceleration και όχι hardware acceleration.

Παραπομπές