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”ffmpeg -hwaccelsProcure por cuda ou nvdec na lista.
🧩 Passo 2. Verifique os codificadores disponíveis
Seção intitulada “🧩 Passo 2. Verifique os codificadores disponíveis”ffmpeg -encoders | grep h264Procure 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”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”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-crfdox264, mas com outra escala). -
-r 30— define a taxa de quadros de saída em 30 quadros por segundo.
🚀 Exemplo avançado
Seção intitulada “🚀 Exemplo avançado”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.
Uso da GPU por stream
Seção intitulada “Uso da GPU por stream”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.