Перейти к основному содержимому

Аппаратное ускорение кодирования и кодеки

Требования

Все четыре условия должны быть выполнены для поддержки аппаратного ускоренного кодирования с помощью Owncast.

  1. Вы не используете VPS, предоставленный хостингом, так как общие виртуальные серверы не позволяют получить прямой доступ к оборудованию.
  2. У вас есть совместимое оборудование, и у вас есть к нему прямой доступ.
  3. Вы установили и настроили все необходимые драйверы и библиотеки, чтобы использовать ваши возможности оборудования.
  4. You have a copy of ffmpeg that is specifically built to utilize these drivers and libraries. Version 4.1.5 or newer is suggested.

Что следует учитывать

  1. Большинство людей не смогут воспользоваться этой возможностью, если у вас нет собственного оборудования.
  2. Просто потому, что конкретный аппаратный кодек с ускорением отображается в админке Owncast, это не означает, что ваш компьютер настроен для его поддержки. Owncast builds that list by running ffmpeg -encoders and keeping the H.264 encoders it knows how to use. An entry appearing means your copy of ffmpeg advertises that encoder, not that the drivers and hardware behind it are proven to work.
  3. Очень мало того, что необходимо для работы вашего оборудования, связано с Owncast. Все вопросы о вашем конкретном оборудовании должны быть направлены производителю оборудования или тому, кто предоставляет драйверы и библиотеки для его использования. Скорее всего, в интернете уже существует много информации, поэтому, пожалуйста, проведите собственное исследование.

Совместимое оборудование

Графика Intel

Если у вас есть интегрированная графика Intel, вы можете использовать ее с помощью VA-API или Quicksync.

Графические процессоры NVIDIA

Графические процессоры NVIDIA поставляются с встроенным аппаратным модулем кодирования, часто называемым NVENC. Отдельно от ядер CUDA, NVENC выполняет задачи кодирования, не замедляя выполнение графических или CUDA задач, работающих одновременно.

Большинство современных графических процессоров NVIDIA поставляются с NVENC. Проверьте Матрицу поддержки GPU NVIDIA, чтобы подтвердить, что ваш GPU находится в списке "кодирующих".

Графические процессоры AMD

VA-API поддерживается на графических процессорах AMD и ATI с помощью libva-mesa-driver.

Совместимые кодеки/библиотеки

Intel QuickSync

"Intel Quick Sync Video" — это маркетинговое название функций аппаратного декодирования и кодирования видео на процессорах Intel с интегрированной графикой. Процессоры с iGPU от Intel могут использоваться для аппаратного кодирования видео, если у вас установлен libva, и iGPU в процессорах поддерживает кодек видео и разрешение, которые вы хотите использовать.

Следуйте инструкциям на сайте Intel о том, как настроить QuickSync на Linux.

Ссылки:

VA-API

VA-API (API ускорения видео) является слоем для поддержки аппаратного ускоренного кодирования в Linux. Вам нужно установить библиотеку libva, чтобы это работало. VA-API не совместим с ARM чипами.

ffmpeg 5 и новее поддерживаются с VA-API.

Ссылки:

Кодировщик NVIDIA (nvenc)

Следуйте инструкциям на руководстве по транскодированию NVIDIA ffmpeg для установки всех необходимых драйверов и библиотек. Это требует установки драйвера с веб-сайта NVIDIA, загрузки и установки CUDA toolkit, загрузки nv-codec-headers и сборки ffmpeg. Прокрутите до раздела под названием Аппаратное ускоренное транскодирование с FFmpeg в руководстве по транскодированию NVIDIA для получения дополнительной информации.

Возможно, вам удастся найти предварительно собранную версию ffmpeg, которая поддерживает nvenc, однако это вне рамок этого документа. Тем не менее, вам все равно нужны драйвера NVIDIA.

Ссылки:

OpenMAX (omx)

OpenMAX (h264_omx) is a hardware encoding interface most commonly used on older Raspberry Pi boards. It shows in the admin as "OpenMax (omx) for Raspberry Pi". Your copy of ffmpeg must be built with OpenMAX support, which many distribution builds no longer include.

Apple VideoToolbox

VideoToolbox (h264_videotoolbox) is Apple's hardware video encoding framework. If you run Owncast on macOS, ffmpeg builds from Homebrew and most other sources include it, and it uses the media engine built into Apple hardware.

ffmpeg

После того, как ваша система будет настроена для использования правильных драйверов и библиотек, вам нужно убедиться, что ваша версия ffmpeg поддерживает это.

Owncast suggests ffmpeg version 4.1.5 or newer. This is a suggestion, not a hard requirement. Owncast does not refuse to run with an older version, but you may experience issues with video.

$ ffmpeg -version
ffmpeg version 6.1.1 Copyright (c) 2000-2024 the FFmpeg developers

Verify the encoder you expect to use is enabled in your version of ffmpeg. This mirrors what Owncast itself does to populate the codec dropdown in the admin.

$ ffmpeg -hide_banner -encoders | grep 264
V....D libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec: h264)
V....D h264_v4l2m2m V4L2 mem2mem H.264 encoder wrapper (codec: h264)
V....D h264_vaapi H.264/AVC (VAAPI) (codec: h264)

If the encoder you hope to use is not in this list then you may need to build your own copy of ffmpeg that supports it.


Improve this page

See something missing or incorrect? Edit this page and improve the documentation for everyone.

Contributors to this documentation
Gabe KangasGabe Kangas
B
Bye
T
TheInvincible