2

У меня есть камера видеонаблюдения, которая загружает изображения JPEG (.jpg) на FTP-сервер, когда обнаруживает движение. Кажется, мы получаем довольно много изображений, поэтому я хотел бы превратить их в видео для облегчения просмотра.

Я сделал несколько поисков в Google, но ничего не дает того, что я ожидаю увидеть. В папке, которую я использую, содержится более 2000 изображений с именем AyyMMddhhmmssff.jpg. Если мне нужно переименовать, я могу сделать это, так как я уже нахожу, что мне нужно, чтобы FFMPEG работал.

Я бы хотел, чтобы изображение в секунду, или, возможно, 2 в секунду, чтобы изображения легко просматривать при воспроизведении видео. Да, я знаю, что это приведет к 20/40мин + видео!

Я доволен решением для Windows, MacOS или Ubuntu! Я бы предпочел Windows (так как именно там находится FTP-сервер).

ImageMagick

convert *.jpg video.mpg

Это звучало здорово, красиво и просто. Тем не менее, я попробовал на своем Mac (установленном через brew) и Ubuntu, и оба прервали производительность соответствующей системы и через 20 минут все еще не закончили. Мне пришлось перезагрузить Mac, так как я ничего не мог сделать!

FFMPEG

ffmpeg -y -r 6 -f image2 -s 1920x1080 -i <path>\%06d.jpg -vcodec libx264 -pix_fmt yuv420p <path>/video.mp4

Я не эксперт, когда дело доходит до использования FFMPEG, но я использовал его для нескольких задач и обнаружил, что это отличная утилита для работы. Приведенная выше команда действительно производит видео, но изображения отображаются слишком быстро, удаляя точку видео. Я попытался настроить значения и могу получить это лучше, но не совсем то, что я после. Одна попытка (установка -r 1 IIRC) привела к созданию единого изображения для всего видео! Ясно, что я не понимаю различные аргументы в команде FFMPEG, хотя я смотрел на руководство!

1 ответ1

2

Если вы переименуете изображения в последовательную нумерацию, вы можете использовать

ffmpeg -y -framerate 1 -i <path>\%06d.jpg -r 5 -c:v libx264 -pix_fmt yuv420p <path>/video.mp4

Пронумерованы, как в 000001.jpg , 000002.jpg , 000003.jpg ... Обратите внимание, что в каждом имени содержится ровно 6 символов, что соответствует %06d переданному в ffmpeg.

Если вы не хотите переименовывать, то создайте текстовый файл формы,

file first.jpg
file second.jpg
file third.jpg
...
file last.jpg

а потом

ffmpeg -f concat -r 1 -i list.txt -r 5 -c:v libx264 -pix_fmt yuv420p <path>/video.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .