Vale a pena executar um filtro de vídeo de desentrelaçamento durante a codificação de vídeo e isso pode muito bem diminuir alguns dos efeitos de tela estranhos que você está vendo em seu vídeo de saída. Um segundo pensamento, não relacionado ao artefato de movimento, mas que vale a pena adicionar, é o uso de um filtro anti-ruído.
1. Desentrelaçamento:
Para o FFmpeg, a melhor e mais rápida escolha é yadif
, que na moda geek peculiar significa simplesmente "Yet Another DeInterlacing Filter '!
yadif
pode ser usado sem opções ou você pode especificar uma opção para cada um dos três campos:
- mode : O modo básico de entrelaçamento para adotar
- parity : a paridade de campo de imagem assumida para o vídeo entrelaçado de entrada
- deint : especifica quais quadros devem desentrelaçar
Os padrões seguros podem ser especificados na linha de comando do FFmpeg como:
-vf yadif=0:-1:0
Se você quiser alterar todos esses detalhes, leia aqui:
FFmpeg Filter Documentation: yadif
link
Um outro filtro de desentrelaçamento chamado mcdeint
(desentrelaçamento de compensação de movimento) também pode ser aplicado, mas você pode achar isto dolorosamente lento. Uma linha de comando típica para uso desse filtro seria:
-vf yadif=1:-1:0,mcdeint=2:1:10
E novamente os detalhes das opções mcdeint
podem ser vistos na documentação do FFmpeg:
Documentação do filtro FFmpeg: mcdeint
link
2. Denoising:
Um final que pode valer a pena alguma experimentação é o uso de um filtro de denoising, embora isso não deva afetar o artefato de movimento, ainda é uma adição valiosa. Sob o FFmpeg, existem algumas opções, mas uma que merece atenção énlmeans
(quadros de denoise usando o algoritmo Non-Local Means). Você precisará do mais recente FFmpeg para este.
Para usar isso na linha de comando mais fácil, tente o seguinte:
-vf yadif=0:-1:0,nlmeans
Há um acerto com nlmeans
em termos de tempo de codificação, não uma penalidade tão severa como é visto com mcdeint
, mas ainda é uma consideração ...
Se você tiver uma cópia mais antiga do FFmpeg sem acesso a este filtro mais recente, há um filtro denoise mais antigo que pode ser usado com segurança com confiança nos padrões de sane:
-vf yadif=0:-1:0,hqdn3d
Eu noto no meu próprio sistema que hqdn3d
é muito, muito mais rápido que o mais recente nlmeans
. Melhor? Bem, eu suspeito que isso seja um debate para outro fórum:)
E esperamos que uma combinação de qualquer um desses pensamentos resolva seu problema ...
Referências: