24
декабрь
2021
16:20

Настройка аппаратного ускорения видео: краткая инструкция

24 декабрь 2021 16:20

На своем нетбуке (одноядерный процессор AMD C-30, видеокарта AMD Radeon HD 6250) настроил ускорение видео, делюсь опытом.

Для ускоренного на аппаратном уровне воспроизведения видео нужно выполнение трёх условий:
1) Аппаратное ускорение за счёт графического адаптера с поддержкой аппаратного ускорения и драйверов графического адаптера,
2) Включение VA и VDPAU (необходимо проверить, что они задействованы),
3) Настройка веб-браузера Mozilla Firefox.

Инструкцию выполнял по гиду на https://wiki.archlinux.org/title/
Hardware_video_acceleration#ATI/AMD

По порядку:

1) Установил нужные пакеты (т.к. у меня AMD - использовал amdgpu, а для встроенной графики Intel потребуется пакет Intel-prime

Только для Ubuntu:

sudo apt install ubuntu-restricted-extras

Для всех ОС Linux:

sudo apt-get install linux-firmware mpv vdpauinfo

Если графика AMD:

sudo apt-get install xserver-xorg-video-amdgpu 

Если графика Intel:

sudo apt install intel-gpu-tools
sudo intel_gpu_top

Если графика nVidia - либо использовать фирменный драйвер с закрытым исходным кодом ("nvidia"), либо Open-Source драйвер "nouveau" - рекомендую. В ОС на основе Ubuntu драйвер Nouveau встроен в систему.
Нужно только проверить файл /etc/X11/xorg.conf, какой драйвер используется, "nvidia" или "nouveau". В случае ATI / AMD в файле строчка "Driver "amdgpu".

Дополнение от 18.08.2023: конфигурация X-сервера находится в папке /usr/share/X11/xorg.conf.d и файле /etc/X11/xorg.conf.
Практика показала, что наличие файла xorg.conf желательно (без него не работают команды inxi -Gxx или inxi -G --extra 2).
Нужно выполнить перезагрузку, выбрать дополнительные параметры восстановления ("Advanced recovery options") и войти в меню "root", где выполнить команды:

X -configure
cp /root/xorg.conf.new /etc/X11/xorg.conf

2) Перезагрузка. Проверяем на любом видео, скачанном из Интернет (файл.mp4), что в системе работает аппаратное ускорение видео (тестовый файл желательно брать разрешением 720p, например 1280x720, частотой кадров 25fps и длиной не больше 2 минут) в программе воспроизведения видео.

Примеры видео файла: Sample - MP4 files.

wget url_видео_файла

mpv --hwdec=auto "filename.mp4"

Начнется воспроизведение видеоклипа с окном во весь экран. Можно оценить частоту кадров на глаз - нет ли пропусков.
После окончания воспроизведения фокус ввода вернётся в терминал, в котором нужно прочитать последние 2 строки:
Если есть упоминание vaapi, то аппаратное ускорение видеокарты и драйвера работает.

В случае ошибок воспроизведения - получаем с помощью inxi версию видеокарты и ищем решение в Интернете с драйверами:

lspci | grep -i display
inxi -Gxxz

Если аппаратное ускорение видео отсутствует, оставшиеся пункты не имеют смысла, ищем сторонние драйверы.
(Гид по установке драйвера для видеокарт nVidia в Ubuntu 20.04).
У меня аппаратное ускорение в видео плеере включилось сразу. Продолжаю...

Проверка VAINFO

sudo apt-get install vainfo 
vainfo

В выводе должно быть показано, что видеокарта поддерживает хотя бы основные кодеки: mpeg2 и h.264.

VAProfileH264 и т.д.:

libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.6.0)
vainfo: Driver version: Mesa Gallium driver 21.2.6 for AMD PALM (DRM 2.50.0 / 5.4.0-139-generic, LLVM 12.0.0)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple : VAEntrypointVLD
      VAProfileMPEG2Main : VAEntrypointVLD
      VAProfileVC1Simple : VAEntrypointVLD
      VAProfileVC1Main : VAEntrypointVLD
      VAProfileVC1Advanced : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264Main : VAEntrypointVLD
      VAProfileH264High : VAEntrypointVLD
      VAProfileNone : VAEntrypointVideoProc

Примечание: VA - это специальный программный интерфейс (API), разработанный Intel для использования аппаратного ускорения. (Video Acceleration API).

Проверка VDPAU

grep -iE 'vdpau | dri driver' /var/log/Xorg.0.log

Должно быть написано, что VDPAU драйвер (в данном случае RADEON) установлен:

[ 61.505] (II) RADEON(0): [DRI2] DRI driver: r600
[ 61.505] (II) RADEON(0): [DRI2] VDPAU driver: r600

Примечание: VDPAU - программный интерфейс с открытым исходным кодом для декорирования видео в Unix. (Video Decode and Presentation API for Unix)

3) Настройка Mozilla FireFox для аппаратного воспроизведения видео YouTube:

В первую очередь нужно установить в FireFox расширение "h264ify":
https://addons.mozilla.org/ru/
firefox/addon/h264ify/

Во-вторых, проверьте, что в FireFox включен и работает контейнер WebRender.

about:support

В разделе "Лог решения" при включенном аппаратом ускорении должны использоваться следующие значения:

  • в графе HW_COMPOSITING - available
  • в графе WebRender - available

Немного настраиваем конфигурацию:
about:config
и затем изменил ключи:
media.ffmpeg.vaapi.enabled = true (включение аппаратного ускорения воспроизведения FFmpeg с помощью VAAPI)
media.navigator.mediadatadecoder_vpx_enabled = true (разрешает аппаратное ускорение WebRTC - видеоконференций)
media.rdd-vpx.enabled = false (отключение встроенного программного декодера VP8/VP9)
media.peerconnection.video.vp9_enabled = false (отключение медленного кодека VP9 - дополнение от 05.07.2024)

Проверяем на панели расширений, что в FireFox включено расширение h264ify. Перезапускаем FireFox.
После указанной настройки видео воспроизводится с низкой загрузкой центрального процессора.

P.S. Некоторые инструкции рекомендуют добавить export переменной в ~/.profile , инструкцию для Wayland или Xorg. Я не выполнял этот пункт: инструкция.

4) Отключение композитора окон compton (потребляет ресурсы процессора - примечание от 05.07.2024) и перезагрузка

 sudo apt remove compton && sudo shutdown -r now

Что было и стало:

  • до включения ускорения аппаратного видео : YouTube не воспроизводилось в окне (замороженный кадр, только звук). Загрузка 1-ядерного процессора около 90%.
  • когда включил аппаратное ускорение AMD Radeon HD: видео воспроизводится видео 480p в окне без пропусков 25fps, а в полном экране видео 25 fps; видео разрешения 720p в полный экран - 25fps; максимальное разрешение Full HD 1080p - частота кадров около 25 fps (в начале воспроизведения около 10-15 секунд есть пропуски кадров - 10-15 кадров в секунду).

Источники:



Похожие публикации