Hardware video acceleration (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
Hardware video acceleration
. Дата последней синхронизации: 11 июня 2025. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Аппаратное ускорение видео
позволяет выполнять операции кодирования и декодирования видео на стороне видеокарты, разгружая процессор и экономя энергию.
Существуют несколько реализаций этой технологии на Linux:
Video Acceleration API
(VA-API) — разработанная Intel спецификация и свободная библиотека, предоставляющая аппаратное ускорение кодирования и декодирования видео.
Video Decode and Presentation API for Unix
(VDPAU) — разработанная NVIDIA свободная библиотека и API для переноса части процесса декодирования видео и его постобработки на сторону видеокарты.
Advanced Media Framework SDK
(AMF) — разработанный AMD свободный фреймворк, который обеспечивает «оптимальный» доступ к видеокартам AMD для обработки мультимедиа с помощью стека
AMDGPU PRO
.
NVDEC
/
NVENC
— разработанные NVIDIA проприетарные API для аппаратного ускорения видео, используемые для Fermi и более новых видеокарт.
Vulkan Video
— расширение
Vulkan
для аппаратного кодирования и декодирования видео.
Также всесторонний обзор поддержки данных технологий со стороны драйверов и приложений доступен в разделе
#Сравнительные таблицы
.
Установка
Intel
VA-API
Свободные драйверы
Intel graphics
поддерживают VA-API:
Серия HD Graphics, начиная с
Broadwell
(2014)
и новее (например, Intel Arc), поддерживается
intel-media-driver
.
GMA 4500 (2008) и более новые GPU до
Coffee Lake
(2017) поддерживаются
libva-intel-driver
.
Декодирование H.264 на GMA 4500 поддерживается
libva-intel-driver-g45-h264
AUR
[
ссылка недействительна
: package not found]
, см.
Intel graphics (Русский)#Декодирование H.264 на GMA 4500
.
Декодирование VP9 на процессорах от
Haswell Refresh
до Skylake, а также гибридное декодирование VP8 на процессорах от Broadwell до Skylake поддерживаются
intel-hybrid-codec-driver-git
AUR
.
Примечание
Skylake и более новые поколения также требуют
linux-firmware
.
Смотрите также
список поддерживаемого оборудования и доступных возможностей
на сайте Intel.
Vulkan
Свободный
Vulkan
-драйвер ANV, предоставляемый пакетом
vulkan-intel
, поддерживает Vulkan Video.
Примечание
Для включения Vulkan Video требуются дополнительные действия, описанные в разделе
#Настройка Vulkan Video
.
Intel Video Processing Library (Intel VPL)
Для
Intel VPL
установите
базовую библиотеку
libvpl
и как минимум одну из реализаций:
vpl-gpu-rt
: поддерживает Tiger Lake и более новую графику Intel
intel-media-sdk
(разработка прекращена): поддерживает старую графику Intel
NVIDIA
Свободный драйвер
Nouveau
поддерживает как VA-API, так и VDPAU:
GeForce 8 series и новее (до GeForce GTX 750) поддерживаются
mesa
.
Необходим
nouveau-fw
AUR
— пакет с микропрограммой, которая на сегодняшний день извлекается из бинарного драйвера NVIDIA.
Проприетарный драйвер
NVIDIA
поддерживает следующие технологии с помощью пакета
nvidia-utils
:
VDPAU на серии
GeForce 8
и новее;
NVDEC на
Fermi
и новее
[1]
;
NVENC на
Kepler
и новее;
Vulkan Video на
Pascal
и новее
[2]
.
AMD/ATI
Свободные драйверы
AMDGPU
и
ATI
поддерживают как VA-API, так и VDPAU через
mesa
:
VA-API на Radeon HD 2000 и новее.
VDPAU на Radeon R600 и новее.
Свободный
Vulkan
-драйвер RADV, предоставляемый пакетом
vulkan-radeon
, поддерживает Vulkan Video.
Проприетарный драйвер
AMDGPU PRO
работает поверх AMDGPU и в дополнение к VA-API и VDPAU также поддерживает AMF.
AMF на
Fiji
и более новых видеокартах поддерживается
amf-amdgpu-pro
AUR
.
Примечание
Вам может понадобиться настроить используемые вами приложения на использование
Vulkan
-драйвера
AMDGPU PRO
.
Кодирование
HEVC
может быть недоступно на
Navi
и более старых видеокартах.
Слои трансляции
libvdpau-va-gl
— Драйвер, который позволяет приложениям VDPAU использовать OpenGL/VAAPI. Только H.264.
https://github.com/i-rinat/libvdpau-va-gl
||
libvdpau-va-gl
nvidia-vaapi-driver
— Драйвер, который позволяет приложениям VA-API (в первую очередь
Firefox
) использовать
CUDA
NVDEC.
https://github.com/elFarto/nvidia-vaapi-driver/
||
libva-nvidia-driver
Примечание
Хотя
libva-nvidia-driver
выполняет аппаратное декодирование видео, текущие ограничения на управление питанием NVIDIA приводят к тому, что система
потребляет больше энергии, чем при декодировании процессором
.
Проверка
Аппаратное ускорение, скорее всего, хорошо заработает по умолчанию. Проверить это можно описанными ниже способами.
Совет
mpv
отлично подходит для проверки аппаратного ускорения на практике. Запустите
mpv --hwdec=auto
видеофайл
и изучите выводимый в консоли журнал. Подробнее в документации mpv:
hwdec
.
nvtop
позволяет проверить уровень нагрузки на декодер (строка «DEC» вверху) во время воспроизведения видео на видеокартах AMD, Intel и NVIDIA.
Для Intel можно запустить
intel_gpu_top
из пакета
intel-gpu-tools
(от имени суперпользователя) для мониторинга нагрузки, например, во время воспроизведения видео. Ненулевое значение video означает работу аппаратного ускорения видео.
Для AMD можно использовать
radeontop
, но отображение нагрузки на декодер может не работать на некоторых видеокартах
[3]
.
При использовании любой видеокарты вы также можете проверить нагрузку на процессор с помощью любого системного монитора вроде
htop
. При включенном аппаратном ускорении видео нагрузка на процессор должна быть существенно ниже, чем без ускорения, особенно при воспроизведении видео в высоком разрешении (4K и более) или на маломощных ноутбуках.
Проверка VA-API
Проверьте настройки VA-API, выполнив
vainfo
(предоставляется пакетом
libva-utils
):
$ vainfo
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.3)
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
VAEntrypointVLD
означает, что видеокарта способна декодировать данный формат, а
VAEntrypointEncSlice
означает, что данный формат можно кодировать.
В данном примере используется драйвер
i965
:
vainfo: Driver version: Intel
i965
driver for Intel(R) Skylake - 1.7.3
Если при выполнении
vainfo
отображается следующая ошибка:
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
Необходимо задать корректный драйвер, см.
#Настройка VA-API
.
Проверка VDPAU
Установите пакет
vdpauinfo
, чтобы получить полный отчёт о конфигурации драйвера VDPAU и убедиться, что он загружен корректно:
$ vdpauinfo
display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name   width height types
-------------------------------------------
420    16384 16384  NV12 YV12
422    16384 16384  UYVY YUYV
444    16384 16384  Y8U8V8A8 V8U8Y8A8

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                    3  9216  2048  1152
MPEG2_MAIN                      3  9216  2048  1152
H264_BASELINE                  41  9216  2048  1152
H264_MAIN                      41  9216  2048  1152
H264_HIGH                      41  9216  2048  1152
VC1_SIMPLE                      1  9216  2048  1152
VC1_MAIN                        2  9216  2048  1152
VC1_ADVANCED                    4  9216  2048  1152
...
Проверка Vulkan Video
Установите пакет
vulkan-tools
и используйте команду
vulkaninfo
для получения информации о доступных расширениях для работы с видео:
$ vulkaninfo | grep VK_KHR_video_
VK_KHR_video_decode_av1                       : extension revision 1
	VK_KHR_video_decode_h264                      : extension revision 9
	VK_KHR_video_decode_h265                      : extension revision 8
	VK_KHR_video_decode_queue                     : extension revision 8
	VK_KHR_video_encode_h264                      : extension revision 14
	VK_KHR_video_encode_h265                      : extension revision 14
	VK_KHR_video_encode_queue                     : extension revision 12
	VK_KHR_video_maintenance1                     : extension revision 1
	VK_KHR_video_queue                            : extension revision 8
Настройка
Несмотря на то, что видеодрайвер должен автоматически активировать поддержку аппаратного ускорения видео с помощью VA-API и VDPAU, в некоторых случаях может потребоваться настроить VA-API/VDPAU вручную. Перед тем как продолжать чтение данного раздела, просмотрите раздел
#Проверка
.
Названия драйверов по умолчанию, которые будут использоваться при отсутствии настроек, угадываются системой. Однако зачастую это может не работать. Предполагаемые значения можно просмотреть в журнале
Xorg
(
~/.local/share/xorg/Xorg.0.log
при запуске от имени обычного пользователя или
/var/log/Xorg.0.log
при запуске от имени root):
$ grep -iE 'vdpau | dri driver'
журнал_xorg
(II) RADEON(0): [DRI2] DRI driver: radeonsi
(II) RADEON(0): [DRI2] VDPAU driver: radeonsi
В данном случае по умолчанию используется
radeonsi
для VA-API и VDPAU.
Примечание
Если используется
GDM
, выполните вместо этого следующую команду:
journalctl -b --grep='vdpau | dri driver'
.
Имейте в виду, что эти строки не отображают
настройки
: значения не изменятся даже после выбора другого драйвера.
Настройка VA-API
Драйвер VA-API можно переопределить с помощью
переменной окружения
LIBVA_DRIVER_NAME
:
Intel graphics
:
Укажите
i965
, если используется
libva-intel-driver
.
Укажите
iHD
, если используется
intel-media-driver
.
NVIDIA:
Укажите
nouveau
, если используется
Nouveau
.
Укажите
nvidia
, если используется
NVIDIA
NVDEC.
AMD:
Укажите
radeonsi
, если используется
AMDGPU
.
Примечание
Установленные драйверы находятся в
/usr/lib/dri/
и используются как
/usr/lib/dri/
${LIBVA_DRIVER_NAME}
_drv_video.so
.
Некоторые драйверы устанавливаются несколько раз под разными именами в целях совместимости. Их список можно увидеть, выполнив команду
sha1sum /usr/lib/dri/* | sort
.
LIBVA_DRIVERS_PATH
может использоваться для переопределения расположения драйверов VA-API.
Начиная с версии 12.0.1, Mesa предоставляет
radeonsi
вместо
gallium
.
Настройка VDPAU
Драйвер VDPAU можно переопределить с помощью
переменной окружения
VDPAU_DRIVER
.
Корректное название драйвера зависит от конфигурации:
Если используется Intel graphics,
необходимо
задать
va_gl
.
Если используется свободный драйвер AMD, задайте
radeonsi
.
Если используется свободный драйвер Nouveau, задайте
nouveau
.
Если используется проприетарный драйвер NVIDIA, задайте
nvidia
.
Примечание
Установленные драйверы находятся в
/usr/lib/vdpau/
и используются как
/usr/lib/vdpau/libvdpau_
${VDPAU_DRIVER}
.so
.
Некоторые драйверы устанавливаются несколько раз под разными именами в целях совместимости. Их список можно увидеть, выполнив команду
sha1sum /usr/lib/vdpau/*
.
В случае с конфигурацией с гибридной графикой (как с NVIDIA, так и с AMD), может потребоваться
задать
переменную окружения
DRI_PRIME=1
. См. статью
PRIME
для получения более подробной информации.
Настройка Vulkan Video
Intel graphics
: поддержку Vulkan Video в
vulkan-intel
можно включить с помощью
переменной окружения
ANV_DEBUG=video-decode,video-encode
.
AMD
: поддержка Vulkan Video в
vulkan-radeon
включена по умолчанию для VCN 2, 3 и 4+, начиная с Mesa 25. Чтобы включить её для более старых видеокарт, установите
переменную окружения
RADV_PERFTEST
со значением
video_decode,video_encode
.
Настройка приложений
Мультимедийные фреймворки:
FFmpeg#Hardware video acceleration
(англ.)
GStreamer#Hardware video acceleration
(англ.)
Видеоплееры:
Kodi#Hardware video acceleration
(англ.)
MPlayer#Hardware video acceleration
(англ.)
mpv (Русский)#Аппаратное декодирование
VLC media player#Hardware video acceleration
(англ.)
Веб-браузеры:
Chromium#Hardware video acceleration
(англ.)
Firefox (Русский)#Аппаратное ускорение видео
GNOME (Русский)/Web (Русский)#Видео
Запись и потоковое вещание:
Open Broadcaster Software#Hardware video acceleration
Решение проблем
Ошибка "Failed to open VDPAU backend"
Необходимо задать переменную
VDPAU_DRIVER
, указывающую на корректный драйвер. См.
#Настройка VDPAU
.
Ошибка "init failed" с VAAPI
Данная ошибка (например,
libva: /usr/lib/dri/i965_drv_video.so init failed
) может происходить из-за неправильного определения Wayland. Одно из решений — сбросить переменную
$DISPLAY
, таким образом, mpv, MPlayer, VLC и т.д. не будут исходить из того, что используется X11. Также можно добавить аргумент
--gpu-context=wayland
, если используется mpv.
Ошибка также может возникать при выборе неправильного драйвера VA-API.
Повреждённое видео при декодировании с помощью драйвера AMDGPU
В некоторых приложениях, некорректно обрабатывающих 10-битную глубину цвета, может наблюдаться повреждение изображения при использовании аппаратного декодирования видео. В качестве обходного пути можно запустить проблемное приложение с
переменной окружения
allow_rgb10_configs=false
.
[4]
Сравнительные таблицы
Драйверы VA-API
Кодек
libva-intel-driver
[5]
intel-media-driver
[6]
mesa
[7]
[8]
libva-nvidia-driver
(адаптер NVDEC)
Декодирование
MPEG-2
GMA 4500 и новее
Broadwell и новее
Radeon HD 6000 и новее
GeForce 8 и новее
1
Смотрите
#Драйвер NVIDIA
H.263/MPEG-4 Visual
4
Нет
Нет
Radeon HD 6000 и новее
VC-1
Sandy Bridge и новее
Broadwell и новее
Radeon HD 2000 и новее
GeForce 9300 и новее
1
H.264/MPEG-4 AVC
GMA 4500
2
, Ironlake и новее
Radeon HD 2000 и новее
GeForce 8 и новее
1
H.265/HEVC 8bit
Cherryview/Braswell и новее
Skylake и новее
Radeon R9 Fury и новее
H.265/HEVC 10bit
Broxton и новее
Broxton/Apollo Lake и новее
Radeon 400 и новее
VP8
Broadwell и новее
Broadwell и новее
Нет
VP9 8bit
Broxton и новее
Гибридное: от Haswell refresh до Skylake
3
Broxton/Apollo Lake и новее
Raven Ridge + Radeon RX 5000 и новее
VP9 10bit & 12bit
Kaby Lake и новее
Kaby Lake и новее
AV1 8bit & 10bit
Нет
Tiger Lake и новее
Radeon RX 6600 и выше/новее
Кодирование
MPEG-2
Ivy Bridge и новее
Broadwell и новее
кроме Broxton/Apollo Lake
Нет
Нет
5
H.264/MPEG-4 AVC
Sandy Bridge и новее
Broadwell и новее
Radeon HD 7000 и новее
H.265/HEVC 8bit
Skylake и новее
Skylake и новее
Radeon 400 и новее
H.265/HEVC 10bit
Kaby Lake и новее
Kaby Lake и новее
Raven Ridge + Radeon RX 5000 и новее
VP8
Cherryview/Braswell и новее
Гибридное: от Haswell до Skylake
3
Нет
VP9 8bit
Kaby Lake и новее
Ice Lake и новее
VP9 10bit & 12bit
Нет
AV1 8bit & 10bit
Alchemist и новее
Radeon RX 7900 и выше/новее
До GeForce GTX 750.
Поддерживается
libva-intel-driver-g45-h264
AUR
[
ссылка недействительна
: package not found]
.
Гибридный кодировщик VP8 и декодировщик VP9 поддерживается
intel-hybrid-codec-driver-git
AUR
.
MPEG-4 Part 2 отключён по умолчанию из-за ограничений VAAPI. Задайте
переменную окружения
VAAPI_MPEG4_ENABLED=true
, если вы всё-таки хотите протестировать данную функцию.
Адаптер NVIDIA CUDA находится в активной разработке, и набор поддерживаемых возможностей может измениться в будущем
[9]
.
Драйверы VDPAU
Кодек
Глубина
цвета
mesa
[10]
[11]
nvidia-utils
libvdpau-va-gl
(адаптер VA-API)
Декодирование
MPEG-2
8bit
Radeon R600 и новее
GeForce 8 и новее
1
GeForce 8 и новее
Нет
H.263/MPEG-4 Visual
8bit
Radeon HD 6000 и новее
GeForce 200 и новее
1
GeForce 200 и новее
VC-1
8bit
Radeon HD 2000 и новее
GeForce 9300 и новее
1
GeForce 8 и новее
2
H.264/MPEG-4 AVC
8bit
Radeon HD 2000 и новее
GeForce 8 и новее
1
GeForce 8 и новее
Смотрите
#Драйверы VA-API
H.265/HEVC
8bit
Radeon R9 Fury и новее
GeForce 900 и новее
3
Нет
10bit
Radeon 400 и новее
Нет
4
VP9
8bit
Raven Ridge + Radeon RX 5000 и новее
GeForce 900 и новее
3
10bit/12bit
Нет
4
AV1
8bit
Radeon RX 6600 и выше/новее
GeForce 30 и новее
5
10bit
Нет
4
До GeForce GTX 750.
Кроме
GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB).
Кроме GeForce GTX 970 и GTX 980.
Реализация NVIDIA ограничена 8-битными потоками
[12]
[13]
.
Начиная с драйвера версии 510.
[14]
Драйвер NVIDIA
Кодек
nvidia-utils
[15]
NVDEC
NVENC
MPEG-2
Fermi и новее
1
Нет
VC-1
H.264/MPEG-4 AVC
Kepler и новее
2
H.265/HEVC 8bit
Maxwell (GM206) и новее
Maxwell (2nd Gen) и новее
H.265/HEVC 10bit
Pascal и новее
VP8
Maxwell (2nd Gen) и новее
Нет
VP9 8bit
Maxwell (GM206) и новее
VP9 10bit & 12bit
Pascal и новее
AV1 8bit & 10bit
Ampere и новее
3
Ada Lovelace и новее
Кроме GM108 (не поддерживается)
Кроме GM108 и GP108 (не поддерживаются)
Кроме A100 (не поддерживается)
Поддержка приложениями
Приложение
Декодирование
Кодирование
Документация
VA-API
VDPAU
NVDEC
Vulkan
VA-API
NVENC
Vulkan
FFmpeg
Да
Да
Да
Да
Да
Да
Да
FFmpeg#Hardware video acceleration
(англ.)
GStreamer
Да
Нет
Да
Да
Да
Да
Нет
GStreamer#Hardware video acceleration
(англ.)
Kodi
Да
Да
Нет
Нет
–
–
–
Kodi#Hardware video acceleration
(англ.)
mpv
Да
Да
Да
Да
–
–
–
mpv (Русский)#Аппаратное декодирование
VLC media player
Да
Да
Нет
Нет
–
–
–
VLC media player#Hardware video acceleration
(англ.)
MPlayer
Нет
Да
Нет
Нет
–
–
–
MPlayer#Hardware video acceleration
(англ.)
Chromium
Да
Нет
Нет
Нет
Да
Нет
Нет
Chromium#Hardware video acceleration
(англ.)
Firefox
Да
Нет
Нет
Нет
Нет
Нет
Нет
Firefox (Русский)#Аппаратное ускорение видео
GNOME Web
GStreamer
?
?
?
GNOME (Русский)/Web (Русский)#Видео