уменьшение шума в логике выбора сцены в ffmpeg

уменьшение шума в логике выбора сцены в ffmpeg

Отэтот ответЯ использую эту команду для извлечения только тех компонентов (в основном неизменного) видеопотока, в которых есть движение:

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

Однако я обнаружил, что при определенных (например, более низких) условиях освещения я начинаю видеть много захвата кадров, хотя на видео, по-видимому, ничего не происходит. В этих условиях, кажется, действительно много шума, который, как я предполагаю, заставляет общее количество изменений превышать порог. Действительно, если я удваиваю порог, большая часть этого уходит — но все равно не все. Однако, если я еще больше повышаю порог, я начинаю пропускать реальное небольшое движение, которое я не хочу пропускать.

Я думал, что если бы фильтр сначала сделал что-то, чтобы уменьшить количество шума в сцене, возможно, что-то вроде легкого размытия при разрешении 2-3 пикселя, это устранило бы ложное обнаружение движения, и я мог бы обнаружить фактическое движение в меньшем масштабе. Я вижу некоторые варианты размытия, но документация пофильтр выборане говорится о том, как использовать их косвенно, т.е. я не хочу, чтобы это влияло на фактический вывод, а только на обнаружение сцены.

решение1

Пробовали ли вы использовать настоящий фильтр шумоподавления перед выбором в своей цепочке фильтров?

Что-то вроде ffmpeg -i input.mp4 -vf "vaguedenoiser=PARAMS,select=gt(scene\,0.0001),setpts=N/(25*TB)" output.mp4?

Выполните поиск по denoiseзапросуhttps://ffmpeg.org/ffmpeg-filters.html#vaguedenoiserдля некоторых других.

Связанный контент