Стани премиум член и добиј попуст на 2000+ производи и куп други бенефити!
  • Важно
    Имате проблем со најава или регистрација на it.mk?
    Побарајте го решението на вашиот проблем ТУКА!

Туторијал Hardware accelerated video decoding - Chroium [ Google Chrome ]

bokiscout

Unstoppable
17 март 2011
1.721
2.016
Скопје
Пред неколку месеци приметив лагови при репродукција на 4к видеа од мојот компјутер преку било кој web browser на Kubuntu 18.04. Истиот проблем го нема на Windows 10.

Дојдов до заклучок дека декодирањето на видеото го прави процесорот наместо графичката карта, па затоа истиот е речиси 100% оптеретен и се чуствува намалена респонзиност.

Постои patch кој уште од 2017-та година овозможува графичката карта да прави декодирање на видео преку VA-API но истиот сеуште не е merge-ан.

Спрод ова решението се сведува на инсталирање на patch-увана верзија од Chromium и драјвер за графичката карта кој може да поддржва VA-API.

  • Чекор 1:
    • Инсталација на пачувана верзија на Chromium

      Постојат две PPA-dev и PPA-beta репозитори со пачувана верзија од Chromium која го содржи горе споменатиот patch. Одбираме една, бета е по стабилна од дев.

      Додаваме PPA:
      Код:
      sudo add-apt-repository ppa:saiarcot895/chromium-beta

      Бидејки верзијата на Chromium во оваа ppa може да биде помала (постара) постои можност истата да биде пребришана при апдејт и заменета со понова верзија но од официјалните репозитори која не го содржи гореспоменатиот patch. За да го избегнеме ова секогаш ке ја преферираме верзијата од PPA-то.

      Креираме текстуален документ на локација :
      Код:
      /etc/apt/preferences.d/chromium

      Со содржина:
      Код:
      Package: *
      Pin: release o=LP-PPA-saiarcot895-chromium-beta
      Pin-Priority: 700

      Напомена, доколку користите dev PPA тогаш користете:
      Код:
      Package: *
      Pin: release o=LP-PPA-saiarcot895-chromium-dev
      Pin-Priority: 700

      Следува инсталација на Chromium:
      Код:
      sudo apt-get update
      Код:
      sudo apt-get install chromium-browser

  • Чекор 2
    • Development build-овите во себе не содржат клучеви за пристап кон goolge API-a и сервиси па затоа потребно е да се регистрираме како chrome developer и да побараме клучеви и пристап.

      Претплатете се на следнава група со вашиот google account: [email protected].

      Отворете console.cloud.google.com/ и креирајте проект (клик на 1, клик на 2) chrome-dev-create-project.png
      Отворете API & Service -> Library (клик 1, клик 2, клик 3) chrome-dev-api-library.png

      Пребарајте за сите овие API-a и сервиси и кликнете на Enable
      Код:
      Calendar API
      Contacts API
      Drive API (Optional, enable this for Files.app on Chrome OS and SyncFileSystem API)
      Chrome Remote Desktop API
      Chrome Spelling API
      Chrome Suggest API
      Chrome Sync API (This will NOT work on Android!)
      Chrome Translate Element
      Chrome Web Store API
      Chrome OS Hardware ID API (Optional, Chrome OS)
      Device Registration API (Optional, Chrome OS)
      Google Cloud DNS API
      Google Cloud Storage
      Google Cloud Storage JSON API
      Google Maps Geolocation API
      (requires enabling billing but is free to use; you can skip this one, in which case geolocation features of Chrome will not work)
      Google Maps Time Zone API
      Google Now For Chrome API (Optional, enabled to show Google Now cards)
      Google+ API
      Nearby Messages API
      Safe Browsing API
      Speech API (See the "Speech API" box at the top of the page)
      chrome-dev-api-library-search.png chrome-dev-api-library-enable.png
      Игнорирајте ја pop-up пораката за credentials, ке наместиме понатаму. Доволно е да кликнете Enable.

      Ке напоменам дека некои од API-ата и сервисите се со променето име, ке го вклучите она што е нај слично (долга е лситата да ги проверувам сите).

      Сетирајте credentials:
      chrome-dev-credentials.png

      Одберете OAuth Client ID и пополнете Application type "Other", application name произволно. chrome-dev-credentials-create.png

      Следете го процесот до крај, и ке добиете два клуча, API Key и OAUTH ID.

      Копирајте ги и запишете ги во следниов документ, ке бидат пратени до Chromium како environment variables и ке имате пристап до сите google API-a и сервиси:
      Код:
      ~/.profile

      И ке ја додадеме следната содржина на крајот од документот:
      Код:
      # keys for chromium-hardware-accelerated
      export GOOGLE_API_KEY="вашиот api key"
      export GOOGLE_DEFAULT_CLIENT_ID="вашиот Client ID"
      export GOOGLE_DEFAULT_CLIENT_SECRET="вашиот Client Secret"
  • Чекор 3
    • подесување на Chromium

      Отворете:
      Код:
      chrome://flags/#disable-accelerated-video-decode и
      chrome://flags/#ignore-gpu-blacklist

      И штиклирајте Enabled на двете.
      chrome-dev-chrome-settings.png

      Најголема веројатност за успешно декодирање имате со H.264 кодек (во споредба со VP8 / VP9). Форсираме јутуб да користи H.264 кодек со тоа што ке блокираме VP8 /VP9 кодеци како неподдржани. За ова ја користиме h264ify екстензијата за хром. Инсталирајте ја.
  • Чекор 4
    • VA-API драјвер.

      Моментално користам AMD графичка карта со open source драјвери (amd-gpu) и немав потреба од никакви дополнителни пакети. Можеби затоа што сум ги инсталирал претходно или како dependency.

      Во секој случај препорачувам да ги имате сите овие пакети за да биде опфатен секој use case независно од производителот на графичката.
      Код:
      libva-x11 или libva-x11-2
      libva-glx1 или libva-glx2
      mesa-vdpau-video
      i965-va-driver 
      vdpau-va-driver
  • Чекор 5
    • Проверка дали се функционира како што е очеквано.

      Доколку сте инсталирале дополнителни пакети во чекор 4, направете рестарт.

      Отворете
      Код:
      chrome://gpu/
      chrome-dev-chrome-gpu.png

      Треба да изгледа вака. Доколку не е, ке треба да се истражи подетално но тоа е индивидуално дебагирање.

      Како и да е, дури и се да изгледа убаво не значи дека навистина користите hardware acceleration.

      Вистинската проверка е:
      Код:
      chrome://media-internals/
      Пуштете видео на youtube и погледнете во полето video_decoder (kVideoDecoder). Доколку има вредност MojoVideoDecoder или GpuVideoDecoder тогаш се е во ред.
      chrome-dev-chrome-media.png

Поздрав.
 

Avid

Epic
21 јануари 2009
6.214
10.945
Скопје
Да не ме сфати OP погрешно, супер ова што го постирал, ставив и лајк но...
после ќе ми речат Линукс... гледај кој rocket science треба да го направиш за... графичката да ти декодира видеа у browser :D
 

Zippo

On your way to fame
22 октомври 2014
978
874
Zippo's setup  
Processor & Cooler
Intel i7-3930K CM Hyper D92
Motherboard
ASUS SABERTOOTH X79
Storage
Samsung 750 EVO 500GB
PSU
CM V 650
RAM
32GB DDR3 1333
Video card
Onboard
Case
CM Storm Trooper
Mouse
Gembird Bluetooth
OS
Windows 10, Windows Server 2016
Не е баш така, OP се потрудил да понуди побезбеден начин за хром да декодира видеа. За Arch, Debian и Fedora има готови пакети кои со една команда се инсталираат.
Да не ме сфати OP погрешно, супер ова што го постирал, ставив и лајк но...
после ќе ми речат Линукс... гледај кој rocket science треба да го направиш за... графичката да ти декодира видеа у browser :D
 

boriseto

Gaining Experience
7 јули 2013
484
446
boriseto's setup  
Video card
970M
OS
Manjaro
Да не ме сфати OP погрешно, супер ова што го постирал, ставив и лајк но...
после ќе ми речат Линукс... гледај кој rocket science треба да го направиш за... графичката да ти декодира видеа у browser :D
Ова е за Хромиум, ако добро разбрав, од мобилен кликам, на Хром има декодери како шо знам директни од гугл некои и е вклучено hardware acceleration by default.
 

Нови мислења

Последни Теми

Онлајн членови

Статистика

Теми
47.249
Мислења
977.406
Членови
35.554
Најнов член
dorchek
На врв Дно