Ускорение Youtube, GeForce NOW и Stadia в Ubuntu

Время на прочтение: 10 минут(ы)

Возможно, вы заметили, что просмотр HD-видео с Youtube и других подобных веб-сайтов в браузерах Google Chrome или Chromium в значительно увеличивает загрузку вашего процессора, а если вы используете ноутбук, он сильно нагревается, а батарея очень быстро разряжается. Это связано с тем, что Chrome / Chromium на момент написания статьи не поддерживал аппаратное ускорение декодирования видео в Linux. Эта же проблема касается и облачного гейминга от Nvidia и Google Stadia. Если у вас совсем старый компьютер, то центральный процессор без «помощи» графического адаптера может не справляться с декодированием видео-потока с GeForce NOW. В этом случае вы заметите задержки в управлении даже на быстром интернет соединении.

В этой статье объясняется, как установить бета-версию Chromium или сборку для разработчиков, которая включает исправление, касающееся VA-API в Linux, обеспечивая поддержку декодирования видео с ускорением на GPU, что должно значительно снизить загрузку ЦП при просмотре HD-видео в Интернете и при использовании сервисов облачного гейминга. Инструкции относятся только к видеокартам Intel и Nvidia, но, скорее всего, это должно работать с ATI/ графикой тоже.

Это Chromium из репозиториев Ubuntu (18.04) без ускоренного декодирования видео с помощью графического процессора, воспроизводящего видео YouTube 1080p:
Это Chromium из репозиториев Ubuntu (18.04) без аппаратного декодирования видео с помощью графического процессора, воспроизводящий видео YouTube 1080p:
То же видео 1080p YouTube, воспроизводимое в Chromium с патчем VA-API и аппаратным ускорением декодирования видео, включенным в Ubuntu 18.04:
То же видео 1080p YouTube, воспроизводимое в Chromium с патчем VA-API и аппаратным ускорением декодирования видео, включенным в Ubuntu 18.04:

Сравните загрузку процессора на скриншотах выше.

Установка и использование браузера Chromium с поддержкой VA-API на Ubuntu или Mint

Всем, кто читает эти строки, должно быть ясно, что Chromium Beta или Dev Branch не считаются стабильными. Так что вы можете при работе обнаружить ккие-то ошибки, может произойти сбой и т. д. Сейчас он работает нормально, но кто знает, что может случиться после обновления. Использование приведенных ниже PPA перезапишет текущую стабильную установку Chromium (если она у вас уже установлена).

Более того, репозитории PPA Chromium Beta и Dev Branch, используемые в этой статье, требуют выполнения некоторых дополнительных действий, если вы хотите включить поддержку Widevine (чтобы вы могли воспроизводить видео Netflix, платные видео на YouTube и т. д.), Или если вам нужны такие функции, как Sync (для чего необходимо зарегистрировать ключ API и настроить его в вашей системе). Инструкции по выполнению этих настроек объяснены в описании PPA Chromium Dev Branch.

Для графики Nvidia необходимо обновить видеодрайвер vdpau, чтобы реализовать vaQuerySurfaceAttributes. Таким образом, для использования с Nvidia требуется исправленный драйвер vdpau-va-driver. К счастью, Chromium-dev PPA предоставляет этот исправленный пакет, и мы свяжем его, чтобы вы могли вручную загрузить его, если хотите использовать Beta PPA.

Chromium с патчем VA-API также доступен для некоторых других дистрибутивов в сторонних репозиториях, таких как Arch Linux  (например, для Nvidia вам понадобится этот пропатченный драйвер libva-vdpau). Если вы не используете Ubuntu или Mint, вам придется найти эти пакеты самостоятельно.

1. Добавьте Chromium с VA-API, поддерживающим PPA.

Chromium с поддержкой VA-API доступен в двух репозиториях PPA — в одном есть Chromium Beta, а в другом — Chromium Dev. Выберите один из этих двух (и добавьте только один)! По идее, Beta PPA должен быть более стабильным.

Чтобы добавить PPA-репозиторий Chromium Beta и установить браузер Chromium в Ubuntu, Mint, Xubuntu, Kubuntu, Ubuntu MATE, Lubuntu, Linux Mint MATE и т. д., используйте:

sudo add-apt-repository ppa:saiarcot895/chromium-beta

Вы можете добавить PPA-репозиторий Chromium Dev и установить последнюю версию для разработки браузера Chromium в Ubuntu или Mint (и других дистрибутивах Linux на основе Ubuntu, включая Elementary, а также версии Ubuntu или Linux Mint, такие как Xubuntu, Kubuntu, Ubuntu MATE, Linux Mint MATE и так далее), используя:

sudo add-apt-repository ppa:saiarcot895/chromium-dev

2. Закрепите PPA с приоритетом 1001.

Версия Chromium из PPA может быть перезаписана обновлением Ubuntu. Чтобы избежать этого, мы можем привязать пакеты PPA Chromium VAAPI к приоритету 1001 (500 по умолчанию в Ubuntu, а > 1000 означает установку пакетов, даже если это более ранняя версия), чтобы пакеты из PPA не перезаписывались любыми обновлениями Ubuntu, и их можно установить, даже если в системе установлена ​​более новая версия. Сделаем это следующим образом.

  • для бета-репозитория PPA:
Читайте также:  Голливудский актер обыграл Стивена Хокинга в квантовые шахматы

Запустите это в терминале:

sudo nano /etc/apt/preferences.d/saiarcot895-chromium-beta-pin-1001

И в открывшемся текстовом редакторе nano вставьте следующее:

Package: *
Pin: release o=LP-PPA-saiarcot895-chromium-beta
Pin-Priority: 1001

Теперь сохраните файл и выйдите (в nano сохраните с помощью Ctrl + o, затем выйдите с помощью Ctrl + x).

  • для Dev PPA:

Запустите это в терминале:

sudo nano /etc/apt/preferences.d/saiarcot895-chromium-dev-pin-1001

И вставьте следующее:

Package: *
Pin: release o=LP-PPA-saiarcot895-chromium-dev
Pin-Priority: 1001

Теперь сохраните файл и выйдите (в Nano сохраните с помощью Ctrl + o, затем выйдите с помощью Ctrl + x).

3. Установите браузер Chromium из PPA Saiarcot895 (VA-API):

sudo apt update

sudo apt install chromium-browser

4. Установите драйвер VA-API.

Для видеокарт Intel поколения 7 и старше вам необходимо установить i965-va-driver-shaders пакет (возможно, он уже установлен):

sudo apt install i965-va-driver-shaders

Для графики Intel Gen 8 и новее:

sudo apt install intel-media-va-driver-non-free

Для драйверов Nouveau и AMD:

sudo apt install mesa-va-drivers

Для видеокарт Nvidia, использующих проприетарные драйверы, вам потребуется исправление  vdpau-va-driverиз Chromium Dev PPA. Если вы добавили Chromium Dev PPA, вы можете установить его с помощью этой команды (для версий Ubuntu до 20.04):

sudo apt install vdpau-va-driver

Для тех, кто использует Ubuntu 20.10 или 21.04 (для которых этот пакет не был загружен в PPA), вы можете загрузить исправленныйvdpau-va-driverпакет DEB отсюда  (вам также понадобится этот libvdpau1 ) и установить его вручную. Работает не только на Ubuntu 20.04, но и на 20.10 и 21.04. Или в случае неудачи, можете попробовать загрузить этот deb и установить его с помощью командной строки:

sudo dpkg -i vdpau-va-driver_0.7.4-7ubuntu1~ppa1~18.10.1_amd64.deb && sudo apt install -f

5. Включите параметр Hardware-accelerated video в Chromium.

Скопируйте и вставьте следующее в адресную строку Chromium:chrome://flags/#enable-accelerated-video-decode (или найдите параметр Hardware-accelerated video decode  вchrome://flags) и включите его. [[Edit]] Этот флаг больше не нужно включать в Chromium 91 и новее (и он больше не доступен в списке флагов).

Затем также включите параметр Override software rendering list: chrome://flags/#ignore-gpu-blocklist. Когда вы закончите, перезапустите браузер Chromium.

В сборке Google Chrome / Chromium по умолчанию этот параметр отображается как недоступный, но вы сможете включить его сейчас, потому что мы использовали сборку Chromium с поддержкой VA-API.

6. Установите расширение h264ify для Chrome. Если это расширение вам не подходит, установите вместо него enchanced-h264ify.

YouTube (и, возможно, некоторые другие веб-сайты) по умолчанию использует видеокодеки VP8 или VP9, ​​и многие графические процессоры не поддерживают аппаратное декодирование для этого кодека. Расширение h264ify заставит YouTube использовать H.264, который должен поддерживаться большинством графических процессоров, вместо VP8 / VP9.

Это расширение также может блокировать видео со скоростью 60 кадров в секунду, что полезно на слабых компьютерах.

Вы можете проверить кодек, используемый YouTube, щелкнув видео правой кнопкой мыши и выбрав Stats for nerds. При включенном расширении h264ify вы должны увидеть avc / mp4a в качестве кодеков. Без этого расширения кодек должен быть чем-то вроде vp09 / opus.

[[Edit]] Пользователи Nvidia: упомянутый выше пропатченный драйвер vdpau-va больше не ускоряет аппаратно VP9 в браузере на основе Chromium. Поэтому вы должны использовать расширение h264ify и избегать VP9, ​​чтобы получить аппаратное ускорение декодирования видео.
7. Начиная с Chromium 76, вам нужно запустить браузер Chromium с  --use-gl=desktopфлагом, чтобы отключить ANGLE. Без этого аппаратное ускорение декодирования видео работать не будет. [[Edit]] В Chromium 91 и новее вам также потребуется добавить VDAVideoDecoderфлаг.
Итак, вам нужно запустить браузер Chromium следующим образом:
chromium-browser --use-gl=desktop --enable-features=VaapiVideoDecoder

Вы можете скопировать файл рабочего стола Chromium из /usr/share/applications/в ~/.local/share/applications/и изменить его Execстроку, чтобы включить этот флаг. Таким образом, при запуске браузера Chromium он будет автоматически использовать этот флаг (и он не будет перезаписан обновлениями):

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

sed -i 's/Exec=chromium-browser %U/Exec=chromium-browser --use-gl=desktop --enable-features=VaapiVideoDecoder %U/' ~/.local/share/applications/chromium-browser.desktop

Или же вы можете использовать приложение «Главное Меню» (alacarte) и отредактировать параметры запуска Chromium там.

Читайте также:  Игpoк пять лeт выживaл в хapдкopнoм peжимe Minecraft и пoгиб поcлe встрeчи c peбeнкoм-зoмби и пауком
Добавьте в параметры запуска в строке Command значения --use-gl=desktop --enable-features=VaapiVideoDecoder 
Добавьте в параметры запуска Chromium в поле Command: значения --use-gl=desktop --enable-features=VaapiVideoDecoder 

Как проверить, использует ли Chromium декодирование видео на GPU

Откройте видео на YouTube. Затем нажмите, Ctrl + Shift + iчтобы открыть Chrome DevTools. В меню с тремя вертикальными точками нажмите More tools -> Media. Затем щелкните заголовок видео на левой боковой панели DevTools ( Playersраздел) и посмотрите Video Decoderраздел Mediaвкладки из Chrome DevTools:

Если там указано, что имя декодера — VideoDecode Acceleratorили VDAVideoDecoder(ранее было MojoVideoDecoder, и до этого было GpuVideoDecoder, поэтому, если вы получите что-либо из них, и вы используете старую версию браузера, это нормально, у вас есть аппаратное ускорение) и Hardware decoderбудет true, тогда вы используете декодирование видео с аппаратным ускорением. Если указано FFmpegVideoDecoderVpxVideoDecoderили Dav1dVideoDecoder(и в этом случае Hardware decoderбудет false), ваш веб-браузер не использует декодирование видео с аппаратным ускорением.

Если аппаратное ускорение не работает, вы можете попробовать отладить его, запустив chromium-browserиз командной строки, и посмотреть, показывает ли он какие-либо ошибки, связанные с VA-API. Вы также можете запустить vainfo(установить в Ubuntu или Mint 🙂 sudo apt install vainfoи vdpauinfo(для Nvidia; установить в Ubuntu или Linux Mint:sudo apt install vdpauinfo) и посмотрите, показывает ли вывод этого приложения ошибки. Должно быть так:

libva info: va_openDriver() returns 0
Важное примечание: если после этого вы видите полностью белое видеоизображение (но вы видите MojoVideoDecoder), проверьте chrome://flagsи убедитесь, что там не включен Vulkan. Если Vulkan включен, но запуск браузера с использованием этой --use-gl=desktopопции приведет к этой проблеме.

Как удалить Chromium с патчем VA-API и использовать официальные стабильные сборки Chromium для Ubuntu / Linux Mint

Если что-то пошло не так, и вы хотите полностью удалить Chromium со сборками VA-API из своей системы и вернуться к официальным стабильным сборкам браузера Chromium, предоставляемым для  Ubuntu / Linux Mint, вы можете очистить PPA.

Для очистки PPA вам понадобится служебная программа очистки PPA, которую можно установить с помощью:

sudo apt install ppa-purge

А затем очистите добавленный Chromium PPA:

  • Chromium Beta PPA:
sudo ppa-purge ppa:saiarcot895/chromium-beta
  • Chromium Dev PPA:
sudo ppa-purge ppa:saiarcot895/chromium-dev

Также следует удалить файл настроек APT, который мы использовали для закрепления этого PPA, потому что он больше не нужен:

sudo rm /etc/apt/preferences.d/saiarcot895-chromium-*-pin-1001

Как включить декодирование видео-потока с аппаратным ускорением на GPU в приложениях GeForce NOW и

Если вы откроете GeForce NOW или Stadia в браузере Chromium с патчем VA-API и параметрами запуска, указанными выше, то вы автоматически получите декодирование видео-потока с аппаратным ускорением на GPU. Вы уже сможете играть прямо сейчас в браузере Chromium с минимально возможными задержками, а ниже мы покажем, как проделать то же самое с приложениями GeForce NOW и Stadia.

Создайте приложение Stadia.

  • В chromium-browser, перейдите на https://stadia.google.com/home и нажмите на пиктограмму в адресной строке, обозначающую «Установить приложение», затем закройте открывшееся окно и закройте Chromium.
  • В приложении «Главное Меню» (alacarte) найдите новый значок приложения Stadia в папке Приложения Chromium, щелкните его правой кнопкой мыши и отредактируйте параметры запуска приложения в поле Command.
  • Измените команду с /usr/bin/chromium-browser --profile-directory=Default --app-id=[APP-ID]на /usr/bin/chromium-browser --use-gl=desktop --enable-features=VaapiVideoDecoder --profile-directory=Default --app-id=[APP-ID]([APP-ID]— это фактический идентификатор приложения, его не трогайте, оставьте как есть). Т.е. фактически вам, как и в случае с Chromium, нужно просто добавить следующие параметры запуска --use-gl=desktop --enable-features=VaapiVideoDecoder

Запустите Stadia.

  • Убедитесь, что chromium-browserне запущен (т.е. нет открытого окна Chromium). Обратите внимание, что Google Chrome — это другое приложение, поэтому его можно открыть.
  • Запустите приложение Stadia из списка приложений вашего оконного менеджера.
  • Наслаждайтесь игрой!
Читайте также:  Как работает огнеметная система «Солнцепек»

СОВЕТ. Если в полноэкранном режиме при нажатии клавиши esc появляется панель оконного менеджера в верхней части игры, вы можете убрать её, включив опцию «Держать поверх других» в окне Stadia.

[НЕОБЯЗАТЕЛЬНО] Проверьте аппаратное ускорение.

  • Откройте Chromium, перейдите к chrome://flags/#enable-media-internals-devtools, включите media log in developer tools («), затем закройте окно.
  • Запустите приложение Stadia из средства запуска приложений.
  • Откройте инструменты разработчика с помощью ctrl+shift+i, затем перейдите к настройкам инструментов разработчика ( F1) и в разделе «Эксперименты» включите Media Element Inspection , затем закройте окно инструментов разработчика.
  • Запустите любую игру, дождитесь ее запуска, затем долгое нажатие escдля выхода из полноэкранного режима.
  • Откройте инструменты разработчика и перейдите в меню> дополнительные инструменты> Мультимедиа.
  • Убедитесь, что в проигрывателе в разделе «Видеодекодер» для параметра «Аппаратный декодер» установлено значение true.

Для приложения GeForce NOW поступаем аналогичным образом.

Создайте приложение GeForce NOW

  • В chromium-browser, перейдите на https://play.geforcenow.com/ и нажмите на пиктограмму в адресной строке, обозначающую «Установить приложение», затем закройте открывшееся окно и закройте Chromium.
  • В приложении «Главное Меню» (alacarte) найдите новый значок приложения GeForce NOW в папке Приложения Chromium, щелкните его правой кнопкой мыши и отредактируйте параметры запуска приложения в поле Command.
  • Измените команду с /usr/bin/chromium-browser --profile-directory=Default --app-id=[APP-ID]на /usr/bin/chromium-browser --use-gl=desktop --enable-features=VaapiVideoDecoder --profile-directory=Default --app-id=[APP-ID]([APP-ID]— это фактический идентификатор приложения, его не трогайте, оставьте как есть). Т.е. фактически вам, как и в случае с Chromium и Stadia, нужно просто добавить следующие параметры запуска --use-gl=desktop --enable-features=VaapiVideoDecoder
Добавьте в параметры запуска GeForce NOW в поле Command: значения --use-gl=desktop --enable-features=VaapiVideoDecoder 
Добавьте в параметры запуска GeForce NOW в поле Command: значения --use-gl=desktop --enable-features=VaapiVideoDecoder

Запустите GeForce NOW

  • Убедитесь, что chromium-browserне запущен (т.е. нет открытого окна Chromium). Обратите внимание, что Google Chrome — это другое приложение, поэтому его можно открыть.
  • Запустите приложение GeForce NOW из списка приложений вашего оконного менеджера.
  • Наслаждайтесь игрой!

Обратите внимание, что теперь в браузере Chromium с патчем VA-API значительно сократятся задержки при трансляции и в таких потоковых сервисах как ParsecRainway и, конечно в Paperspace. Вам теперь не нужны нативные приложения этих сервисов!

По материалам: www.linuxuprising.com

Читайте также:

Присоединяйтесь к нашему -каналу: https://t.me/technomagic и группе в Facebook.

Похожие статьи:

Вам будет интересно:

Здесь самые популярные товары из Китая по волшебным ценам!

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии