API ускорения видео
![]() | Эта статья может быть слишком технической для понимания большинства читателей . ( Ноябрь 2021 г. ) |
Оригинальный автор(ы) | Интел |
---|---|
Первоначальный выпуск | 2008 |
Стабильная версия | 2.21.0 [1] / 26 марта 2024 г |
Репозиторий | |
Написано в | С |
Операционная система | Linux , Android , BSD , Windows 10 , Windows 11 |
Тип | API |
Лицензия | МОЯ лицензия |
Веб-сайт | www ![]() |
API ускорения видео ( VA-API ) — это с открытым исходным кодом интерфейс прикладного программирования , который позволяет таким приложениям, как медиаплеер VLC или GStreamer, использовать возможности аппаратного ускорения видео, обычно предоставляемые графическим процессором (GPU). Он реализован с открытым исходным кодом. бесплатной библиотекой libva в сочетании с драйвером для конкретного оборудования, обычно предоставляемым вместе с драйвером графического процессора.
Интерфейс декодирования/кодирования видео VA-API не зависит от платформы и оконной системы, но в первую очередь ориентирован на инфраструктуру прямого рендеринга (DRI) в системе X Window в Unix -подобных операционных системах (включая Linux , FreeBSD , Solaris ) и Android , однако он может потенциально также может использоваться с прямым кадровым буфером и графическими подсистемами для вывода видео. Ускоренная обработка включает поддержку декодирования видео , кодирования видео , смешивания фрагментов изображений и рендеринга. [2]
Спецификация VA-API была первоначально разработана Intel для GMA (Graphics Media Accelerator) серии аппаратных средств графического процессора с конкретной целью в конечном итоге заменить стандарт XvMC в качестве многоплатформенного эквивалента Unix по умолчанию для Microsoft Windows DirectX Video Acceleration (DxVA) API. , но сегодня API больше не ограничивается оборудованием или графическими процессорами Intel. [3] Другое оборудование и производители могут свободно использовать этот открытый стандартный API для аппаратной ускоренной обработки видео на своем собственном оборудовании без уплаты роялти. [4]
Обзор [ править ]

Основной мотивацией для VA-API является возможность аппаратного ускорения декодирования видео в различных точках входа ( VLD , IDCT , компенсация движения , деблокировка) . [5] ) для преобладающих сегодня стандартов кодирования ( MPEG-2 , MPEG-4 ASP / H.263 , MPEG-4 AVC/H.264 , H.265/HEVC и VC-1/WMV3 ). Рассматривалось расширение XvMC, но из-за его первоначальной конструкции только для MPEG-2 MotionComp имело смысл разработать интерфейс с нуля, который мог бы полностью раскрыть возможности декодирования видео в современных графических процессорах . [6]
Поддерживаемое оборудование и драйверы [ править ]
По состоянию на 2022 год VA-API изначально поддерживается: [7]
- Драйверы Intel Quick Sync с открытым исходным кодом для Linux
- Драйверы Mesa с открытым исходным кодом для видеокарт AMD и Nvidia
- Драйверы AMDGPU-PRO для видеокарт AMD в Linux
- libva-vdpau-драйвер для карт, поддерживаемых VDPAU
- Реализации Direct3D 12 с драйвером VAOn12 [8]
Поддерживаемые видеокодеки [ править ]
VA-API в настоящее время поддерживает эти видеокодеки в официальной основной версии, но учтите, что именно поддерживаемые видеокодеки зависят от оборудования и возможностей драйвера.
- Ускорение декодирования MPEG-2 Основной профиль
- Ускорение декодирования VC-1/WMV3 Расширенный профиль
- MPEG-4 Part 2 (H.263) (он же MPEG-4 SP/MPEG-4 ASP, более известный как Xvid ) ускорение декодирования
- Ускорение кодирования H.264 AVC Основной профиль
- Ускорение декодирования H.264 AVC Высокий профиль
- Аппаратное декодирование переменной длины H.264/AVC (VLD) — CABAC
- Аппаратное декодирование переменной длины H.264/AVC (VLD) — CAVLC
- Аппаратное обратное преобразование H.264/AVC (IT)
- Аппаратная компенсация движения H.264/AVC (HWMC)
- Аппаратная внутриконтурная деблокировка H.264/AVC (ILDB)
- H.265/HEVC Ускорение кодирования
- Ускорение декодирования H.265/HEVC
- VP9 Ускорение 8-битного кодирования [9]
- Ускорение 8-битного и 10-битного декодирования VP9 [9]
- AV1 Ускорение 8-битного и 10-битного кодирования
- Ускорение 8-битного и 10-битного декодирования AV1 [7]
которые можно ускорить с помощью VA API - Процессы ,
Процессы декодирования и постобработки видео, которые можно разгрузить и ускорить, если их поддерживают как драйверы устройств, так и оборудование графического процессора:
- Компенсация движения
- Обратное дискретное косинусное преобразование
- Внутриконтурный фильтр деблокировки
- Внутрикадровое предсказание
- декодирование переменной длины , более известное как ускорение на уровне среза
- Обработка битового потока ( контекстно-адаптивное кодирование переменной длины / контекстно-адаптивное двоичное арифметическое кодирование )
Архитектура программного обеспечения [ править ]

Текущий интерфейс не зависит от оконной системы, поэтому потенциально его можно использовать с графическими подсистемами, отличными от DRI (Direct Rendering Infrastructure) в X Window System , например напрямую с кадровым буфером , и он может работать со сторонним DRM ( Direct Rendering Manager) . Вкратце, это схема передачи различных типов буферов данных из приложения в графический процессор для декодирования или кодирования сжатого битового потока .
Программное обеспечение с поддержкой VA-API [ править ]

- для устранения беспорядка Набор инструментов
- Jellyfin Медиа-сервер
- datarhei Restreamer потоковое видео в реальном времени
- Emby (начиная с версии 3.0.6400) Медиасервер [10]
- Медиаплеер Helix ( Linux ) [11] [12]
- ffmpeg , инструмент командной строки из проекта FFmpeg , поддерживает кодирование VA-API через CLI с версией, начиная с 3.1, а также libavcodec (также часть проекта FFmpeg) содержит код, который другие приложения используют для поддержки аппаратного ускоренного декодирования, включая VA- API. [13]
- Течет [14]
- Gnash Flash/ SWF -плеер [15]
- GStreamer через gstreamer-vaapi [16]
- Kodi (ранее XBMC Media Center) ( Linux ) [17]
- Kodibuntu (ранее XBMC Live) (операционная система Linux Live CD/USB) [17]
- MPlayer (v1 с патчами) [18] и его вилка мпв (родная)
- MythTV (начиная с версии 0.25) [19]
- OpenShot
- Медиаплеер VLC (начиная с версии 1.1.0) [20]
- Клиент Bluecherry DVR (начиная с версии 2.2.6) [21]
- Xine « xine-lib-vaapi »), начиная с версии 1.2.3. (через библиотеку [22]
- Примечание Студия [23]
- Firefox (на Wayland с версии 78 и на X11 с версии 80) [24] [25]
См. также [ править ]
- Distributed Codec Engine (libdce) — API Texas Instruments для механизма видеокодеков во встроенных системах на базе OMAP.
- OpenMAX — бесплатный кроссплатформенный API-интерфейс медиаабстракции от Khronos Group.
Ссылки [ править ]
- ^ «Либва 2.21.0» . 26 марта 2024 г. Проверено 26 марта 2024 г.
- ^ «Ускорение видео VA-API на Intel Medfield — Phoronix» . Фороникс.com . Проверено 23 февраля 2019 г.
- ^ «Video4Linux2: путь к стандартизированному API видеокодека» (PDF) . Events.linuxfoundation.org . Проверено 23 февраля 2019 г.
- ^ Натан Уиллис (1 июля 2009 г.). «VA API медленно, но верно прогрессирует» . Lwn.net .
- ^ «Mplayer, FFmpeg получают поддержку VA-API — Phoronix» . Фороникс.com . Проверено 23 февраля 2019 г.
- ^ «ваапи» . Freedesktop.org . Проверено 23 февраля 2019 г.
- ^ Jump up to: Перейти обратно: а б «Аппаратное ускорение видео» . wiki.ArchLinux.org .
- ^ Вилерино, Сил (15 февраля 2023 г.). «API ускорения видео (VA-API) теперь доступен в Windows!» . Блог разработчиков DirectX . Проверено 8 марта 2023 г.
- ^ Jump up to: Перейти обратно: а б «Оборудование/ваапи» . wiki.libav.org . Архивировано из оригинала 01 февраля 2017 г. Проверено 20 января 2017 г.
- ^ «Выпущен Emby Server 3.0.6400» . Эмби.медиа . 29 августа 2016 года . Проверено 23 февраля 2019 г.
- ^ «Запись в списке рассылки, описывающая использование VA-API» . Lists.moblin.org . Проверено 23 февраля 2019 г.
- ^ «Часто задаваемые вопросы по RealPlayer для MID и Intel/Linux» . HelixCommunity.org . Архивировано из оригинала 24 марта 2012 г. Проверено 12 мая 2011 г.
- ^ «Архивная копия» . Архивировано из оригинала 16 сентября 2016 г. Проверено 31 августа 2016 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ «Новые кодеки Fluendo поддерживают VDPAU, VA-API — Phoronix» . Фороникс.com . Проверено 23 февраля 2019 г.
- ^ «Ускорение видео H.264 VA-API GPU для Flash — Phoronix» . Фороникс.com . Проверено 23 февраля 2019 г.
- ^ «Аппаратное ускорение декодирования, кодирования и обработки видео на графике Intel через VA-API» . Cgit.freedesktop.org . Проверено 23 февраля 2019 г.
- ^ Jump up to: Перейти обратно: а б «XBMC получает рабочую поддержку Intel VA-API — Phoronix» . Фороникс.com . Проверено 23 февраля 2019 г.
- ^ «Mplayer в ваапи — Gitorious» . Архивировано из оригинала 3 августа 2013 г. Проверено 10 февраля 2014 г.
- ^ «Примечания к выпуску — 0.25 — Официальная Wiki MythTV» . Mythtv.org . Проверено 23 февраля 2019 г.
- ^ «Выпуск VLC 1.1.0 — VideoLAN» . Видеолан.орг . Проверено 23 февраля 2019 г.
- ^ «[Клиент] 2.2.6 выпущен – включено значительное снижение использования ЦП» . Bluecherrydvr.com . 2 марта 2017 года . Проверено 23 февраля 2019 г.
- ^ "Проект xine - Лента новостей" . Xine-project.org . Проверено 23 февраля 2019 г.
- ^ «OBS Studio теперь поддерживает VA-API для кодирования видео — Phoronix» . www.phoronix.com . Проверено 6 августа 2020 г.
- ^ «Firefox в Fedora наконец-то получил VA-API в Wayland» . mastransky.wordpress.com . 3 июня 2020 г. Проверено 19 августа 2020 г.
- ^ «Firefox 80 доступен с VA-API на X11, поддержка компиляции параллельных шейдеров WebGL» . www.phoronix.com . Проверено 25 августа 2020 г.