попробуйте удалить части без движения

у меня есть камера 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 и создать новый видеофайл, который содержит только части, обнаруженные движением. Если вы можете дать мне совет, что именно я должен исследовать больше, я буду действительно благодарный.

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

7
задан user243152
13.01.2023 18:29 Количество просмотров материала 3570
Распечатать страницу

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 при использовании видео-фильтров.

5
отвечен shinmai 2023-01-15 02:17

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх