Аппаратное ускорение linux в браузере
Аппаратное ускорение видео (англ.) позволяет выполнять операции кодирования и декодирования видео на стороне видеокарты, разгружая CPU и экономя энергию.
Существуют несколько реализаций этой технологии на Linux:
-
(VA-API) — разработанная Intel спецификация и свободная библиотека, предоставляющая аппаратное ускорение кодирования и декодирования видео. (VDPAU) — разработанная NVIDIA свободная библиотека и API для переноса части процесса декодирования видео и его постобработки на сторону GPU. — проприетарные API аппаратного ускорения, используемые в таких поколениях GPU от NVIDIA, как Fermi, Kepler, Maxwell и Pascal.
Contents
Установка
Intel
Свободные драйверы Intel graphics поддерживают VA-API:
-
Серия HD Graphics, начиная с Broadwell(
NVIDIA
Свободный драйвер Nouveau поддерживает как VA-API, так и VDPAU:
- GeForce 8 series и новее (до GeForce GTX 750) поддерживаются libva-mesa-driver и mesa-vdpau . nouveau-fwAUR — пакет с микропрограммой, которая на сегодняшний день извлекается из бинарного драйвера NVIDIA.
Проприетарный драйвер NVIDIA поддерживает следующие технологии с помощью пакета nvidia-utils :
- VDPAU на серии GeForce 8 и новее;
- NVDECODE на Fermi и новее [1];
- NVENCODE на Kepler и новее.
ATI/AMD
Свободные драйверы ATI и AMDGPU поддерживают как VA-API, так и VDPAU:
- VA-API на Radeon HD 2000 и новее поддерживается libva-mesa-driver .
- VDPAU на Radeon R300 и новее поддерживается mesa-vdpau .
Проприетарный драйвер AMDGPU PRO основывается на драйвере AMDGPU и поддерживает как VA-API, так и VDPAU.
Слои преобразований
Активация поддержки VA-API при её отсутствии в драйвере:
- libva-vdpau-driver – бекенд VDPAU для VA-API.
- libva-vdpau-driver-chromiumAUR – бекенд VDPAU для VA-API с патчем, позволяющим взаимодействовать с Chromium.
- libva-vdpau-driver-vp9-gitAUR – экспериментальная поддержка VP9.
Активация поддержки VDPAU при её отсутствии в драйвере:
Проверка
Аппаратное ускорение, скорее всего, хорошо заработает по умолчанию. Проверить это можно описанными ниже способами.
Совет: mpv отлично подходит для проверки аппаратного ускорения на практике.Проверка VA-API
Проверьте настройки VA-API, выполнив vainfo (предоставляется пакетом libva-utils ):
VAEntrypointVLD означает, что видеокарта способна декодировать данный формат, а VAEntrypointEncSlice означает, что данный формат можно кодировать.
В данном примере используется драйвер i965 :
Если при выполнении vainfo отображается следующая ошибка:
Проверка VDPAU
Установите пакет vdpauinfo , чтобы получить полный отчёт о конфигурации драйвера VDPAU и убедиться, что он загружен корректно:
Настройка
Названия драйверов по умолчанию угадываются системой, если остутствуют какие-либо другие настройки. Однако они часто не совпадают и не работают. Предполагаемые значения можно просмотреть, выполнив следующую команду:
В данном случае по умолчанию используется radeonsi для VA-API и VDPAU.
Примечание: Если используется GDM, выполните вместо этого следующую команду: journalctl -b | grep -iE 'vdpau | dri driver' .Настройка VA-API
Драйвер VA-API можно переопределить с помощью переменной окружения LIBVA_DRIVER_NAME :
-
:
- Укажите i965 , если используется libva-intel-driver .
- Укажите iHD , если используется intel-media-driver .
- Укажите nouveau , если используется Nouveau.
- Укажите vdpau , если используется NVIDIA.
- Укажите radeonsi , если используется AMDGPU.
- Укажите fglrx , если используется AMD Catalyst [archived page] .
- Установленные драйверы находятся в /usr/lib/dri/ и используются как /usr/lib/dri/$ _drv_video.so .
- Некоторые драйверы устанавливаются несколько раз под разными именами в целях совместимости. Их список можно увидеть, выполнив команду sha1sum /usr/lib/dri/* | sort .
- LIBVA_DRIVERS_PATH может использоваться для переопределения расположения драйверов VA-API.
- Начиная с версии 12.0.1, libva-mesa-driver предоставляет radeonsi вместо gallium .
- Установленные драйверы находятся в /usr/lib/vdpau/ и используются как /usr/lib/vdpau/libvdpau_$ .so .
- Некоторые драйверы устанавливаются несколько раз под разными именами в целях совместимости. Их список можно увидеть, выполнив команду sha1sum /usr/lib/vdpau/* .
- В случае с конфигурацией с гибридной графикой (как с NVIDIA, так и с AMD), может потребоваться задать переменную окружения DRI_PRIME=1 . См. статью PRIME для получения более подробной информации.
Настройка VDPAU
Драйвер VDPAU можно переопределить с помощью переменной окружения VDPAU_DRIVER .
Корректное название драйвера зависит от конфигурации:
Настройка приложений
Решение проблем
Ошибка "Failed to open VDPAU backend"
Российская ОС РОСА Линукс | Сообщество Linux запись закреплена
Losst | Все о Linux
В настоящее время Firefox поставляется по умолчанию с отключенным аппаратным ускорением во всех дистрибутивах Linux.
Firefox 57, вероятно, будет первым релизом, в котором аппаратное ускорение будет включено по умолчанию для Linux. Но так как Firefox 53 только что вышел и до Firefox 57 еще долго ждать, вы можете самостоятельно включить аппаратное ускорение в Firefox. Для этого необходимо выполнить всего лишь одно действие в настройках браузера.
Далее в строку поиска скопируйте/вставьте layers.acceleration.force-enabled и сделайте двойной клик в столбце Значение на слове false, чтбы получилось true:
Вот и всё. Остаётся перезапустить браузер, чтобы пользоваться аппаратным ускорением.
P.S. Если у вас что-то пойдёт не так, войдите опять в настройки браузера: about:config и проделайте всё в обратном порядке, т.е. вернитесь к прежним настройкам. И вновь перезапустите браузер.
Андрей, не секрет:
FT DeepDark - тёмная тема интерфейса лисы.
Hide Caption Titlebar Plus - скрыть заголовок окна.
Tree Style Tab - вертикальная панель вкладок, единственная полностью адекватно работающая и гибко настраиваемая.
Показать полностью.
Classic Theme Restorer - возвращает классический вид, который не конфликтует с вертикальной панелью вкладок, иначе вкладки по виду не вписываются с закруглёнными элементами.
Dark Background and Light Text - глобально меняет CSS-стили всех сайтов - задаёт цвет текста и фона опционально. (штатная настройка работает криво, поэтому приходится его ставить).
Stylish - персональные настройки внешнего вида для определённых сайтов
NoSquint Plus - настройка масштаба по умолчанию. Может запоминать для каждого сайта отдельно.
CopyLinks - копировать выделенные ссылки
Menu Wizard - настройка контекстного меню.
Multiple Tab Handler - выделение и обработка группы вкладок
Tab Groups - функция "панорамы" вкладок.
Super Tab Mode - настройка поведения вкладок.
Open Tabs Next to Current - открыть новую вкладку справа от текущей (пришлось ставить отдлельно).
FindBar Tweak - подсветка при поиске по странице.
FireGestures - жесты мыши.
Менеджер сессий
EverSync - синхронизация закладок, экспресс панели, настроек..
FWD SpeedDial - экспресс панель
OneTab - сохранить открытые вкладки в список (с возможностью последующего восстановления)
S3 Google переводчик
Select like a Boss - выделение текста в ссылках так, как это делается в Opera
UnloadTab - выгрузить вкладки из памяти
Вероятно, не все пользователи знают, что в браузерах на движке Chromium помимо тех настроек, которые доступны обычному пользователю, имеются и такие, что скрыты и активируются специальными командами. Аппаратное ускорение используется для того, чтобы информация на странице отображалась более плавно и корректно, мультимедиа контент воспроизводился быстрей, а также, используется в таких сервисах, как Google Earth — обзор планеты в 3D режиме. что окажется полезным для пользователей таких браузеров. Именно эту функцию мы сейчас и рассмотрим.
Если у вас еще не установлен браузер Chrome, но вы хотели бы попробовать весь его функционал в Linux системе, выполните следующие команды в консоли:
Импортируем ключ безопасности:
Добавляем репозиторий:
Обновляемся и устанавливаем сам браузер:
По-умолчанию функция аппаратного ускорения, скорей всего, отключена для вашей видеокарты. Чтобы убедиться в этом, наберите в адресной строке браузера: chrome://gpu. Ниже, на картинке представлены два варианта, которые вы можете увидеть в окне браузера.
До того, как вы активировали режим ускорения:
И после активации режима:
Активация режима производится в разделе настроек, для доступа к которым достаточно ввести команду chrome://flags в адресной строке. Найдите параметр Override software rendering list (Переопределение списка программного рендеринга) и включите его, а затем просто перезапустите браузер и посмотрите результат.
Теперь, настало время экспериментов. Попробуйте запустить в полноэкранном режиме FullHD видео во Flash или HTML5 плеере, к примеру, на странице YouTube, и посмотрите результаты использования ресурсов системой до включения и после включения режима.
Если что-то пойдет не так, просто отключите аппаратное ускорение, проделав те же операции.
2 комментария Включаем аппаратное ускорение в Chrome/Chromium
А как через гугл хром сохранить закладки и перенести их на другой аккаунт?
Любая достаточно развитая технология неотличима от волшебства.
Ускорение Youtube, GeForce NOW и Stadia в Ubuntu
В этой статье объясняется, как установить бета-версию Chromium или сборку для разработчиков, которая включает исправление, касающееся VA-API в Linux, обеспечивая поддержку декодирования видео с ускорением на GPU, что должно значительно снизить загрузку ЦП при просмотре HD-видео в Интернете и при использовании сервисов облачного гейминга. Инструкции относятся только к видеокартам Intel и Nvidia, но, скорее всего, это должно работать с ATI/AMD графикой тоже.
Это Chromium из репозиториев Ubuntu (18.04) без аппаратного декодирования видео с помощью графического процессора, воспроизводящий видео YouTube 1080p: То же видео 1080p YouTube, воспроизводимое в Chromium с патчем VA-API и аппаратным ускорением декодирования видео, включенным в Ubuntu 18.04:
Сравните загрузку процессора на скриншотах выше.
Установка и использование браузера Chromium с поддержкой VA-API на Ubuntu или Linux 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 также доступен для некоторых других дистрибутивов Linux в сторонних репозиториях, таких как Arch Linux (например, для Nvidia вам понадобится этот пропатченный драйвер libva-vdpau). Если вы не используете Ubuntu или Linux Mint, вам придется найти эти пакеты самостоятельно.
1. Добавьте Chromium с VA-API, поддерживающим PPA.
Чтобы добавить PPA-репозиторий Chromium Beta и установить браузер Chromium в Ubuntu, Linux Mint, Xubuntu, Kubuntu, Ubuntu MATE, Lubuntu, Linux Mint MATE и т. д., используйте:
Вы можете добавить PPA-репозиторий Chromium Dev и установить последнюю версию для разработки браузера Chromium в Ubuntu или Linux Mint (и других дистрибутивах Linux на основе Ubuntu, включая Elementary, а также версии Ubuntu или Linux Mint, такие как Xubuntu, Kubuntu, Ubuntu MATE, Linux Mint MATE и так далее), используя:
2. Закрепите PPA с приоритетом 1001.
Версия Chromium из PPA может быть перезаписана обновлением Ubuntu. Чтобы избежать этого, мы можем привязать пакеты PPA Chromium VAAPI к приоритету 1001 (500 по умолчанию в Ubuntu, а > 1000 означает установку пакетов, даже если это более ранняя версия), чтобы пакеты из PPA не перезаписывались любыми обновлениями Ubuntu, и их можно установить, даже если в системе установлена более новая версия. Сделаем это следующим образом.
Запустите это в терминале:
И в открывшемся текстовом редакторе nano вставьте следующее:
Теперь сохраните файл и выйдите (в nano сохраните с помощью Ctrl + o , затем выйдите с помощью Ctrl + x ).
Запустите это в терминале:
И вставьте следующее:
Теперь сохраните файл и выйдите (в Nano сохраните с помощью Ctrl + o , затем выйдите с помощью Ctrl + x ).
3. Установите браузер Chromium из PPA Saiarcot895 (VA-API):
4. Установите драйвер VA-API.
Для видеокарт Intel поколения 7 и старше вам необходимо установить i965-va-driver-shaders пакет (возможно, он уже установлен):
Для графики Intel Gen 8 и новее:
Для драйверов Nouveau и AMD:
Для видеокарт Nvidia, использующих проприетарные драйверы, вам потребуется исправление vdpau-va-driver из Chromium Dev PPA. Если вы добавили Chromium Dev PPA, вы можете установить его с помощью этой команды (для версий Ubuntu до 20.04):
Для тех, кто использует 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
18.10.1_amd64.deb && sudo apt install -f
5. Включите параметр Hardware-accelerated video в 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 из /usr/share/applications/ в
/.local/share/applications/ и изменить его Exec строку, чтобы включить этот флаг. Таким образом, при запуске браузера Chromium он будет автоматически использовать этот флаг (и он не будет перезаписан обновлениями):
Как проверить, использует ли Chromium декодирование видео на GPU
Откройте видео на YouTube. Затем нажмите, Ctrl + Shift + i чтобы открыть Chrome DevTools. В меню с тремя вертикальными точками нажмите More tools -> Media . Затем щелкните заголовок видео на левой боковой панели DevTools ( Players раздел) и посмотрите Video Decoder раздел Media вкладки из Chrome DevTools:
Если аппаратное ускорение не работает, вы можете попробовать отладить его, запустив chromium-browser из командной строки, и посмотреть, показывает ли он какие-либо ошибки, связанные с VA-API. Вы также можете запустить vainfo (установить в Ubuntu или Linux Mint 🙂 sudo apt install vainfo и vdpauinfo (для Nvidia; установить в Ubuntu или Linux Mint: sudo apt install vdpauinfo ) и посмотрите, показывает ли вывод этого приложения ошибки. Должно быть так:
Важное примечание: если после этого вы видите полностью белое видеоизображение (но вы видите 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, которую можно установить с помощью:
А затем очистите добавленный Chromium PPA:
Также следует удалить файл настроек APT, который мы использовали для закрепления этого PPA, потому что он больше не нужен:
Как включить декодирование видео-потока с аппаратным ускорением на GPU в приложениях GeForce NOW и Google Stadia
Если вы откроете GeForce NOW или Stadia в браузере Chromium с патчем VA-API и параметрами запуска, указанными выше, то вы автоматически получите декодирование видео-потока с аппаратным ускорением на GPU. Вы уже сможете играть прямо сейчас в браузере Chromium с минимально возможными задержками, а ниже мы покажем, как проделать то же самое с приложениями GeForce NOW и Stadia.
Создайте приложение Stadia.
Запустите Stadia.
СОВЕТ. Если в полноэкранном режиме при нажатии клавиши esc появляется панель оконного менеджера в верхней части игры, вы можете убрать её, включив опцию «Держать поверх других» в окне Stadia.
[НЕОБЯЗАТЕЛЬНО] Проверьте аппаратное ускорение.
Для приложения GeForce NOW поступаем аналогичным образом.
Создайте приложение GeForce NOW
Запустите GeForce NOW
Обратите внимание, что теперь в браузере Chromium с патчем VA-API значительно сократятся задержки при трансляции и в таких потоковых сервисах как Parsec, Rainway и, конечно в Paperspace. Вам теперь не нужны нативные приложения этих сервисов!
Читайте также: