Ir al contenido principal

Codificación y códecs acelerados por hardware

Requisitos

Las cuatro cosas deben ser verdaderas para soportar la codificación acelerada por hardware con Owncast.

  1. No estás ejecutando en un VPS proporcionado por un proveedor de hosting, ya que los servidores virtuales compartidos no permiten el acceso directo al hardware.
  2. Tienes hardware compatible y acceso directo a él.
  3. Has instalado y configurado los controladores y bibliotecas necesarios para aprovechar tu hardware.
  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.

Cosas a tener en cuenta

  1. La mayoría de las personas no podrán aprovechar esto a menos que estén utilizando su propio hardware.
  2. Solo porque un códec específico acelerado por hardware aparezca en el admin de Owncast no significa que tu máquina esté configurada para soportarlo. 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. Muy poco de lo que se requiere para hacer que tu hardware funcione tiene que ver con Owncast. Cualquier pregunta que tengas sobre tu hardware particular debe ser dirigida a tu fabricante de hardware o a quien proporcione los controladores y bibliotecas para utilizarlo. Probablemente haya mucha información ya disponible en línea, así que por favor haz tu investigación.

Hardware compatible

Gráficos Intel

Si tienes gráficos integrados Intel, puede que puedas usarlos usando VA-API o Quicksync.

GPUs NVIDIA

Las GPUs NVIDIA se envían con una unidad de codificación de hardware integrada a menudo denominada NVENC. Separado de los núcleos CUDA, NVENC ejecuta cargas de trabajo de codificación sin ralentizar la ejecución de cargas de trabajo gráficas o CUDA que se ejecutan al mismo tiempo.

La mayoría de las GPU NVIDIA modernas se envían con NVENC. Consulta la Matriz de Soporte de GPUs NVIDIA para confirmar que tu GPU aparece en la lista de "codificadores".

GPUs AMD

VA-API es compatible con las GPUs AMD y ATI a través del libva-mesa-driver.

Códecs/bibliotecas compatibles

Intel QuickSync

"Intel Quick Sync Video" es el nombre comercial de las características de codificación y decodificación de video por hardware en los procesadores Intel con gráficos integrados. Los procesadores con un iGPU de Intel pueden usarse para realizar codificación de video por hardware siempre que tengas libva instalado y el iGPU del procesador soporte el códec de video y la resolución que deseas utilizar.

Sigue las instrucciones en el sitio de Intel sobre cómo configurar QuickSync en Linux.

Enlaces:

VA-API

VA-API (API de aceleración de video) es una capa para soportar la codificación acelerada por hardware en Linux. Necesitas tener instalada la biblioteca libva para que funcione. VA-API no es compatible con chipset ARM.

ffmpeg 5 y versiones más recientes son compatibles con VA-API.

Enlaces:

Codificador NVIDIA (nvenc)

Sigue las instrucciones en la guía de transcodificación de NVIDIA ffmpeg para instalar todos los controladores y bibliotecas requeridos. Esto requiere instalar un controlador desde el sitio web de NVIDIA, descargar e instalar el CUDA toolkit, descargar encabezados de nv-codec y construir ffmpeg. Desplázate a la sección titulada Codificación acelerada por hardware con FFmpeg en la guía de transcodificación de NVIDIA para más información.

Puede que puedas encontrar una versión preconstruida de ffmpeg que tenga soporte para nvenc, sin embargo eso está fuera del alcance de este documento. Aún necesitas drivers de NVIDIA de todos modos.

Enlaces:

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

Una vez que tu sistema esté configurado para usar los controladores y bibliotecas correctos requeridos, necesitarás asegurarte de que tu copia de ffmpeg lo soporte.

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 the English version of this page or help improve translations.

Contributors to this documentation
Gabe KangasGabe Kangas
B
Bye
T
TheInvincible