Ir para o conteúdo principal

Codificação e Codecs Acelerados por Hardware

Requisitos

Todas essas quatro coisas precisam ser verdadeiras para suportar a codificação acelerada por hardware com Owncast.

  1. Você não está usando um VPS fornecido por um provedor de hospedagem, pois servidores virtuais compartilhados não permitem acesso direto ao hardware.
  2. Você tem hardware compatível e acesso direto a ele.
  3. Você instalou e configurou todos os drivers e bibliotecas necessários para aproveitar seu 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.

Coisas para ter em mente

  1. A maioria das pessoas não poderá aproveitar isso a menos que esteja utilizando seu próprio hardware.
  2. Apenas porque um codec acelerado por hardware específico aparece no administrador do Owncast, não significa que sua máquina está configurada para suportá-lo. 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. Muito pouco do que é necessário para fazer seu hardware funcionar está relacionado ao Owncast. Quaisquer perguntas que você tenha sobre seu hardware específico devem ser direcionadas ao fabricante do hardware ou a quem fornece os drivers e bibliotecas para utilizá-lo. Provavelmente, há muita informação já disponível online, então faça sua pesquisa.

Hardware compatível

Gráficos Intel

Se você tem gráficos integrados Intel, pode ser capaz de usá-los com VA-API ou Quicksync.

GPUs NVIDIA

GPUs NVIDIA vêm com uma unidade de codificação de hardware integrada, frequentemente chamada de NVENC. Separado dos núcleos CUDA, o NVENC executa cargas de trabalho de codificação sem desacelerar a execução de gráficos ou cargas de trabalho CUDA que estão rodando ao mesmo tempo.

A maioria das GPUs NVIDIA modernas vem com NVENC. Verifique a Matriz de Suporte de GPUs NVIDIA para confirmar se sua GPU aparece na lista de "codificadores".

GPUs AMD

VA-API é suportado em GPUs AMD e ATI pelo libva-mesa-driver.

Codecs/bibliotecas compatíveis

Intel QuickSync

"Intel Quick Sync Video" é o nome comercial para os recursos de codificação e decodificação de vídeo em hardware em processadores Intel com gráficos integrados. Processadores com um iGPU Intel podem ser usados para realizar codificação de vídeo em hardware, desde que você tenha o libva instalado e o iGPU do processador suporte o codec de vídeo e a resolução que você deseja usar.

Siga as instruções no site da Intel sobre como configurar o QuickSync no Linux.

Links:

VA-API

VA-API (API de aceleração de vídeo) é uma camada que suporta codificação acelerada por hardware no Linux. Você precisa da biblioteca libva instalada para que funcione. VA-API não é compatível com chipsets ARM.

As versões 5 e superiores do ffmpeg são suportadas com VA-API.

Links:

Codificador NVIDIA (nvenc)

Siga as instruções do guia de transcodificação NVIDIA ffmpeg para instalar todos os drivers e bibliotecas necessárias. Isso requer a instalação de um driver do site da NVIDIA, baixar e instalar o CUDA toolkit, baixar nv-codec-headers, e construir o ffmpeg. Role até a seção intitulada Codificação acelerada por hardware com FFmpeg no guia de transcodificação NVIDIA para mais informações.

Você pode ser capaz de encontrar uma versão pré-construída do ffmpeg que tenha suporte a nvenc, no entanto, isso está fora do escopo deste documento. Você ainda precisa dos drivers NVIDIA de qualquer forma.

Links:

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

Uma vez que seu sistema esteja configurado para usar os drivers e bibliotecas corretos necessários, você precisará garantir que sua cópia do ffmpeg suporte isso.

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