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

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

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

На своем нетбуке (процессор AMD C-30 с 1 ядром обработки, видеокарта AMD Radeon HD 6250 - Unified Video Decoder 2.3 с поддержкой аппаратного декодирования видео H.264 and VC-1) настроил ускорение вывода видео, делюсь опытом.

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

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

По порядку:

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

Только для Ubuntu / Linux Mint:

sudo apt install ubuntu-restricted-extras linux-firmware 

(где пакет ubuntu-restricted-extras содержит кодеки для видео и аудио, шрифты и многое другое для Ubuntu,
linux-firmware - прошивки для драйверов ядра Ubuntu Linux).

Для всех ОС Linux:

sudo apt-get install mpv lshw vainfo vdpauinfo libegl-mesa0 libgl1-mesa-dri libglu1-mesa libglx-mesa0 mesa-utils mesa-utils-bin mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers

(где пакет mpv - проигрыватель видео, lshw - вывод отчёта об аппаратном обеспечении, vainfo и vdpauinfo - информация о ускорении видео VA и VDPAU, пакеты mesa-utils и mesa-utils-bin содержат утилиты glxinfo и glxgears, пакет mesa-va-drivers - VA-API-драйверы Mesa для ускорения видео, mesa-vdpau-drivers - VDPAU-драйверы Mesa для ускорения видео, mesa-vulkan-drivers - драйверы 3D графики).

Для современных Debian и Sparky Linux, antiX на основе Debian 13 "trixie":

sudo apt install firmware-linux mesa-libgallium

(где firmware-linux - пакет, который устанавливает через зависимости драйверы и микропрограммы: firmware-linux-free, firmware-linux-nonfree, amd64-microcode, intel-microcode, которые могут использоваться с драйверами в ядре Linux. Gallium — это API для написания графических драйверов).

В ОС Debian последней версии sid пакеты mesa-va* для ускорения видео будут использоваться реже, вместо них новый пакет mesa-libgallium. Это не окажет влияния на пользователей, у кого работают фирменные драйверы Nvidia с закрытым исходным кодом, т.к. они имеют свою библиотеку, libnvidia-decode.

Если графика 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". Эти драйверы работают на разных принципах - non-free и free, но обеспечивают воспроизведение видео форматов MPEG 1/2, H.264, VC-1, MPEG-4 на видеокартах серий Nvidia GeForce 8, 9, GeForce 9300, GeForce IGPs, GeForce 200, 300, 400, 500, 600, 700. При использовании процессора Core2Duo воспроизведение видео 720p с драйвером nouveau программное и даёт нагрузку процессора 60-80% в зависимости от веб-браузера. Если устраивает такая производительность, драйвер nvidia можно не устанавливать и остановиться на nouveau. Так как установка драйвера nvidia в Debian и Sparky Linux, antiX Linux сложна.

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

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

Если при запуске ОС возникла циклическая перезагрузка, зайдите в параметры восстановления ("Advanced recovery options" / "Recovery mode"), введите пароль root и затем удалите файл:

rm /etc/X11/xorg.conf

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

Примеры видео файла: Sample - MP4 files (https://thetestdata.com) - желательно загрузить видео 1080p.

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

mpv --hwdec=auto "filename.mp4"

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

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

lspci | grep -i -E "display|VGA"
inxi -Gxxz

Если аппаратное ускорение видео отсутствует, оставшиеся пункты не имеют смысла, ищем сторонние драйверы (non-free).
(Например, Гид по установке драйвера для видеокарт nVidia в Ubuntu 20.04).

Установка драйвера видеокарты Nvidia (non-free) для Debian / Sparky Linux

Для старых видеокарт Nvidia подходит устаревший драйвер nvidia-340, который можно загрузить с официального сайта Nvidia. Но он не совместим с ядрами выше 5.4.

Новый драйвер 550.163.02-2 из пакетов nvidia-driver, nvidia-driver-bin, nvidia-driver-full не работает со старыми видеокартами. Поддержка видеокарт/) - не ниже GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 745!

Драйвер Nvidia 340 работает только с ядрами до Linux 5.4 включительно - "Поддержка ядер Linux до версии 5.4 включительно была добавлена в версии 340.108. Дальнейшие выпуски серии 340.* не планируются". Драйвер Nvidia 390 для видеокарты Geforce 610 работает с ядром 5.15.

Установка драйвера Nvidia 340 завершается ошибкой в Debian 13 / Sparky 8.3, т.к. драйвер Nvidia 340.xx не совместим с ядром Linux 6.12.
Драйвер 340 больше не поддерживается Nvidia и содержит критические уязвимости.
Поэтому, фирма Nvidia советует использовать драйвер Nouveau.


Переместите файл NVIDIA-Linux-x86_64-340.108.run из папки "Загрузки" в домашний каталог пользователя.

Перед установкой драйвера отключите Nouveau:

cat <<EOF | sudo tee /etc/modprobe.d/nvidia-blacklists-nouveau.conf
blacklist nouveau
options nouveau modeset=0
EOF

и выполните перезагрузку:

sudo reboot

В меню Grub2

  • войдите в режим восстановления (* Advanced options for Sparky GNU/Linux) - Sparky ... (recovery mode)
  • нажмите "e"
  • добавьте параметр ядра nomodeset в строке после quiet nosplash
  • F10
  • введите пароль и выполните команды:

    cd /home/user
    sh NVIDIA-Linux-x86_64-340.108.run

Примите условия (стрелка влево - "Accept" - нажмите Enter).
Выберите при необходимости:

  • Ignore CC version check - Enter.

Начнётся установка драйвера Nvidia в Linux!

Если будет ошибка нажимите:

  • OK (Enter)

    reboot

Если по какой-то причине нужно вернуться к драйверу Nouveau, из режима восстановления (выбранного в меню Grub2):

sudo apt-get purge nvidia*
sudo apt-get install xserver-xorg-video-nouveau
sudo rm /etc/X11/xorg.conf
sudo modprobe nouveau
startx

Для ОС antiX, как сильно изменённого Debian, не рекомендуется пользоваться никакими инструкциями и советами из Интернета, а только форумом antiX и часто задаваемыми вопросами по antiX Linux.

Список видеокарт Nvidia, совместимых с драйвером Nvidia 550 и новыми ядрами 6.x
nvidia550driver_compat.txt.zip

У меня аппаратное ускорение в видео плеере на ноутбуке Asus Eee PC (с видеокартой AMD Radeon HD 6250) включилось сразу.
Продолжаю...

Проверка 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

Если произошла ошибка "-1", то установите vdpau-va-driver.

Примечание: 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 включен и работает контейнер WebRender.

about:support

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

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

Немного настраиваем конфигурацию:

about:config

Где я изменил ключи:

  • gfx.webrender.all - true

  • gfx.x11-egl.force-enabled = true

  • layers.accelaration.force-enabled = true

  • layers.gpu-process.enabled = true

  • layers.gpu-process.force-enabled = true

  • media.ffmpeg.vaapi.enabled = true

  • media.rdd-ffmpeg.enabled = true

  • media.rdd-vpx.enabled** = false

  • media.av1.enabled = false

  • media.hardware-video-decoding.enabled = true

  • media.hardware-video-decoding.force-enabled = true

  • media.hardware-video-encoding.enabled = true

  • media.hardware-video-encoding.force-enabled = true

  • media.navigator.mediadatadecoder_vpx_enabled = true

  • media.peerconnection.video.vp9_enabled = false

  • widget.dmabuf.force-enabled = true

После указанной настройки видео воспроизводится с низкой загрузкой центрального процессора.

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

Например, в конце файла .bashrc добавить

sudo nano ~/.bashrc 
  • для графики Intel с драйвером libva-intel-driver:

export LIBVA_DRIVER_NAME=i965

  • для графики Intel с драйвером intel-media-driver:

export LIBVA_DRIVER_NAME=iHD

  • для Nvidia с драйвером Nouveau:

export LIBVA_DRIVER_NAME=nouveau

  • для Nvidia с драйвером Nvidia:

export LIBVA_DRIVER_NAME=nvidia

  • для AMD Radeon:

export LIBVA_DRIVER_NAME=radeonsi

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

 sudo apt remove compton && sudo shutdown -r now

Проверка наличия ускорения видео в Mozilla Firefox

about:support ->

  • HW_COMPOSITING,
  • HARDWARE_VIDEO_DECODING,
  • Codec Support Information -> Hardware Decoding

Если ускорение видео в FireFox не работает, можно попробовать проигрыватель VLC. В нём в расширенных настройках Инструменты - Настройки - Все, можно включить Видео - Модули вывода видео - вывод видео через OpenGL или VDPAU. В качестве источника (Медиа - Открыть URL) можно использовать ссылку на видео YouTube, например https://youtube.com/shorts/vxOhtjx9Tng.

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

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

Источники:

Дата последнего изменения: 07.07.2026



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