Um novo conjunto de código com quase 6 mil linhas foi submetido ao ecossistema do FFmpeg, trazendo integração nativa com as tecnologias de inteligência artificial da Nvidia. Desenvolvida por Philip Langdale, a implementação permite que os usuários apliquem filtros avançados como RTX Video Super Resolution (VSR), TrueHDR, DeepDVC e SmoothMotion diretamente no processamento de vídeo via linha de comando, utilizando a API CUDA.
A atualização introduz uma série de novos filtros de vídeo (vf_) que rodam diretamente nas GPUs RTX. Como as bibliotecas originais da Nvidia são proprietárias, a implementação adota uma abordagem de engenharia reversa para contornar restrições de licenciamento e distribuição do software livre.
O que isso muda na prática

Para os usuários e administradores de sistemas, a novidade significa que agora é possível utilizar o poder das redes neurais da Nvidia (Tensor Cores) dentro de pipelines de conversão do FFmpeg no Linux e no Windows, sem depender de softwares de terceiros com interfaces gráficas ou players de vídeo específicos.
Como o FFmpeg é um projeto de código aberto, ele não pode distribuir os arquivos binários proprietários da Nvidia (os chamados .cubin e os pesos da rede neural contidos em arquivos como weights.bin). Para resolver esse impasse técnico, o desenvolvedor interceptou e mapeou como o driver original da Nvidia envia os comandos para a placa de vídeo.
Na prática, o FFmpeg agora possui um “reprodutor” de grafos CUDA. O usuário precisará extrair os modelos de IA do driver oficial da Nvidia (usando ferramentas externas de extração criadas pelo próprio autor, agrupadas no pacote nvidia-video-filters) e apontar o diretório de dados no FFmpeg através do parâmetro data. O software então carrega esses arquivos e recria o processamento da rede neural de forma nativa.
Funcionamento técnico dos novos filtros

O código submetido revela o funcionamento interno de como cada modelo da Nvidia atua sobre os quadros de vídeo. Os principais filtros incluídos detalham abordagens distintas de processamento:
- TrueHDR (
vf_truehdr_cudaevf_truehdr_drv_cuda): Um filtro de mapeamento inverso de tons (SDR para HDR). O código revela que ele não altera a resolução, mas processa a imagem internamente com base na proporção da tela. Ele entrega duas opções de saída em espaços de cores diferentes:rgbaf16le(scRGB de luz linear com primárias Rec.709, padrão do Windows HDR) oux2bgr10le(HDR10 verdadeiro com curva PQ e espaço Rec.2020). O usuário pode ajustar parâmetros finos como contraste, saturação, cinza médio (middle gray) e luminância máxima (peak luminance). - Image Super Resolution (
vf_isr_cuda): Focado em fidelidade de imagem estática, o ISR opera de maneira independente da resolução geral do vídeo. O modelo processa a imagem quebrando-a em blocos (tiles) fixos de 256×256 pixels com sobreposição de 16 pixels. Diferente de outros métodos de upscaling, ele não possui caminhos de redimensionamento arbitrários, aceitando apenas saltos exatos de 2x, 4x ou 8x na resolução. - DeepDVC (
vf_deepdvc_drv_cuda): Conhecido comercialmente como RTX Dynamic Vibrance, atua como um aprimorador de cores baseado em redes neurais convolucionais (CNN). O código indica que ele opera na mesma resolução da entrada (in-place), lendo e gravando na mesma textura de memória para otimizar o desempenho. Permite ajustes de vibração (vibrance) e ganho (gain), aceitando formatos RGBA8. - Video Super Resolution (
vf_vsr_cudaevf_vsr_drv_cuda): O RTX VSR, focado em upscaling contínuo de vídeo, implementando a mesma rede neural encontrada no driver da Nvidia para navegadores e players compatíveis. - SmoothMotion (
vf_smoothmotion_cuda): Filtro de interpolação de quadros gerado por IA para suavizar a reprodução do vídeo, calculando e gerando frames intermediários.
Arquitetura e compatibilidade
Os módulos CUDA foram submetidos a validação rigorosa em arquiteturas recentes da Nvidia. O código-fonte confirma que os filtros são validados “byte-exact” (identidade exata em nível de byte comparado à execução nativa do driver) nas arquiteturas Blackwell (Compute Capability 12.x) e Ada Lovelace (Compute Capability 8.9, como a RTX 4060 Ti usada nos testes do desenvolvedor).
Placas baseadas em arquiteturas anteriores (como a série RTX 3000 baseada em Ampere) exigem um passo extra. Como os binários extraídos muitas vezes reúnem fatias de código para arquiteturas específicas, os usuários de placas mais antigas precisarão injetar essas fatias via ordem de carregamento ou habilitar a flag experimental_arch no FFmpeg para tentar rodar o código sub-Blackwell. Caso os arquivos cubin apropriados não estejam presentes no diretório, o carregamento do módulo falhará antes mesmo do processamento começar.
O sistema de compilação do FFmpeg (configure) foi atualizado para detectar automaticamente a presença do pacote nvidia-video-filters via pkg-config. Cada filtro é avaliado de forma independente, permitindo compilar apenas o suporte para os recursos extraídos pelo usuário.
