reduzindo o ruído na lógica de seleção de cena no ffmpeg

reduzindo o ruído na lógica de seleção de cena no ffmpeg

Deesta respostaEstou usando este comando para extrair apenas componentes de um feed de vídeo (em sua maioria imutável) que contém movimento:

ffmpeg -i input.mp4 -vf "select=gt(scene\,0.0001),setpts=N/(25*TB)" output.mp4

No entanto, descobri que sob certas condições de iluminação (por exemplo, mais baixa), começo a ver muita captura de quadros, apesar de aparentemente nada acontecer no vídeo. Nessas condições, parece haver muito ruído, o que presumo que esteja fazendo com que a quantidade total de alterações exceda o limite. Na verdade, se eu duplicar o limiar, a maior parte disto desaparecerá – mas ainda assim não será tudo. No entanto, se eu aumentar ainda mais o limite, começarei a perder pequenos movimentos reais que não quero perder.

Meu pensamento era que se o filtro primeiro fizesse algo para reduzir a quantidade de ruído na cena, talvez algum tipo de leve desfoque em uma resolução de 2 a 3 pixels, isso eliminaria a detecção de movimento espúrio e eu poderia detectar o movimento real em um Escala menor. Vejo algumas opções para desfocar, mas a documentação nofiltro de seleçãonão fala sobre como usá-los indiretamente, ou seja, não quero que a saída real seja afetada, apenas a detecção de cena.

Responder1

Você já experimentou um filtro anti-ruído real antes de selecionar em sua cadeia de filtros?

Algo como ffmpeg -i input.mp4 -vf "vaguedenoiser=PARAMS,select=gt(scene\,0.0001),setpts=N/(25*TB)" output.mp4?

Faça uma busca por denoiseemhttps://ffmpeg.org/ffmpeg-filters.html#vaguedenoiserpara alguns outros.

informação relacionada