Pular para o conteúdo

Usar NVENC no FFmpeg: verificar suporte e codificar na GPU

A aceleração por hardware pode tornar a codificação de vídeo muito mais rápida em comparação com os codificadores de software baseados em CPU. Um dos codificadores por hardware mais populares é o NVENC, da NVIDIA. Ele está disponível na maioria das GPUs NVIDIA modernas e pode ser usado no FFmpeg.


🔍 Passo 1. Verifique os aceleradores de hardware disponíveis

Seção intitulada “🔍 Passo 1. Verifique os aceleradores de hardware disponíveis”
Terminal window
ffmpeg -hwaccels

Procure por cuda ou nvdec na lista.


🧩 Passo 2. Verifique os codificadores disponíveis

Seção intitulada “🧩 Passo 2. Verifique os codificadores disponíveis”
Terminal window
ffmpeg -encoders | grep h264

Procure por h264_nvenc na saída.


⚙️ Passo 3. Verifique as opções do codificador

Seção intitulada “⚙️ Passo 3. Verifique as opções do codificador”
Terminal window
ffmpeg -h encoder=h264_nvenc

▶️ Passo 4. Exemplo básico de codificação com NVENC

Seção intitulada “▶️ Passo 4. Exemplo básico de codificação com NVENC”
Terminal window
ffmpeg -hwaccel cuda -i source.mp4 -c:v h264_nvenc -cq 23 -r 30 encoded.mp4
  • -hwaccel cuda — ativa a aceleração por hardware CUDA na decodificação.

  • -c:v h264_nvenc — codifica o vídeo usando o NVENC (o codificador de vídeo por hardware da NVIDIA).

  • -cq 23 — define o nível de qualidade (semelhante ao -crf do x264, mas com outra escala).

  • -r 30 — define a taxa de quadros de saída em 30 quadros por segundo.


Terminal window
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i ${i} \
-c:v h264_nvenc -profile:v high -level 4.0 -preset p7 \
-b:v 0 -cq 23 -c:a copy ${o}

-hwaccel_output_format cuda — decodifica e mantém os quadros na memória da GPU (evita a transferência via PCIe).

-profile:v high -level 4.0 — define o perfil H.264 adequado para 1080p.

-preset p7 — um dos presets do NVENC mais lentos, porém de maior qualidade.

-b:v 0 -cq 23 — usa o modo de Qualidade Constante (CQ), em que cq=23 oferece um equilíbrio entre qualidade e tamanho do arquivo.

-c:a copy — copia o stream de áudio sem recodificar.



O Senta pode mostrar a utilização do codificador, do decodificador e da memória de vídeo de cada stream em uma coluna separada da tabela Streams. Ative o recurso em Settings → GPU monitoring e defina o intervalo de consulta em segundos. Por padrão, ele vem desativado.

Por enquanto, só há suporte a placas NVIDIA: os dados vêm do nvidia-smi, que precisa estar instalado no servidor junto com o driver.