1. Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.
    Сокриј

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

Дискусија во форумот 'GNU/Linux' започната од bokiscout, 21 Јануари 2020.

Тагови:
  1. bokiscout

    bokiscout
    Unstoppable

    1,719
    2,015
    17 Март 2011
    Машко
    Embedded C, Linux Kernel, Java, JavaScript
    Пред неколку месеци приметив лагови при репродукција на 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

    Поздрав.
     
    На alekcackko, Luxell, pwned и уште 5 други им се допаѓа ова.
  2. Avid

    Avid
    Guru

    4,165
    6,204
    21 Јануари 2009
    Да не ме сфати OP погрешно, супер ова што го постирал, ставив и лајк но...
    после ќе ми речат Линукс... гледај кој rocket science треба да го направиш за... графичката да ти декодира видеа у browser :D
     
    worker_x, Маша и на moongose им се допаѓа ова.
  3. Zippo

    Zippo
    On your way to fame

    800
    709
    22 oктомври 2014
    Data Analyst
    Не е баш така, OP се потрудил да понуди побезбеден начин за хром да декодира видеа. За Arch, Debian и Fedora има готови пакети кои со една команда се инсталираат.
     
    На shifty му/ѝ се допаѓа ова.
  4. boriseto

    boriseto
    Gaining Experience

    263
    224
    7 Јули 2013
    Машко
    Ова е за Хромиум, ако добро разбрав, од мобилен кликам, на Хром има декодери како шо знам директни од гугл некои и е вклучено hardware acceleration by default.
     
Слични теми
  1. HijackHacker
    Одговори:
    59
    Прегледи:
    6,178
  2. dragonV
    Одговори:
    6
    Прегледи:
    1,600
  3. olikomerc
    Одговори:
    6
    Прегледи:
    1,381
  4. pane96
    Одговори:
    49
    Прегледи:
    4,251
  5. Zabegann
    Одговори:
    30
    Прегледи:
    1,240
Вчитување...

Сподели

Вчитување...