ffmpeg удалить части без движения

ffmpeg удалить части без движения

У меня есть IP-камера безопасности (192.168.0.8), которая может транслировать RTSP-контент по сети.

Я могу сохранить этот (RAW) контент без изменений, используя следующую команду ffmpeg на моем компьютере:

ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -acodec copy -vcodec copy test-raw.mp4

Я также могу изменять его размер на лету:

ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -vf  "scale=640:-1" test640.mp4

Но как сохранить только то видео, которое содержит только фрагменты обнаружения движения?

Я попытался решить эту проблему с помощью ffmpeg.фильтры смены сцен, но не повезло.

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

Мой поток камеры передается без звука. Поэтому я могу сгенерировать набор изображений из исходного видео, затем выбрать нужные изображения и затем сохранить новое видео из изображений.

решение1

Я бы сделал именно так, как вы сказали, и сохранил бы большой файл потока, а затем использовал быselect Фильтр FFMPEGс sceneвыражением, которое сравнивает схожесть последовательных кадров: select=gt(scene\,0.003)например. Чем выше число, тем больше изменений между кадрами игнорируется, при быстром тестировании вам может потребоваться опуститься до 0,00001–0,00005 в зависимости от типа отснятого материала, с которым вы имеете дело.

Объедините это сsetpts фильтр, который изменяет «время начала» видеокадров, и в итоге вы получите что-то вроде (для видео с частотой 25 кадров в секунду):

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

Имейте в виду, вы не сможете использовать -vcodec copyвидеофильтры.

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