Перейти к содержимому

Создать видео из набора JPEG

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 1IIRC) привела к созданию единого изображения для всего видео! Ясно, что я не понимаю различные аргументы в команде FFMPEG, хотя я смотрел на руководство!

520 просмотров
neildeadman спросил 7 лет назад
N 252

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 

Я уже переименовывал изображения в формате «yyyyMMdd_000001.jpg» и т. Д., Но когда я запускаю вашу команду, я получаю тот же результат, который я видел ранее с FFMPEG одного изображения на протяжении всего видео (41 минута). Будет ли это имя вызывать это или что-то еще ?!

neildeadman · 7 лет назад · 0

Добавьте -report к вашему исполнению и вставьте или укажите ссылку на него в вашем Q.

Gyan · 7 лет назад · 0

С таким количеством изображений журнал был слишком длинным для публикации в pastebin, поэтому я уменьшил количество обработанных изображений, результат тот же: https://pastebin.com/03CTErCu

neildeadman · 7 лет назад · 0

В журнале нет ошибок; это как и ожидалось. Можете ли вы поделиться выходом?

Gyan · 7 лет назад · 0

Вы имеете в виду фактическое видео?

neildeadman · 7 лет назад · 0

Да. Это лучший способ проверить.

Gyan · 7 лет назад · 0

Итак, я загрузил его, однако, когда я его просмотрел, он работал! Пробовал из файла на моем локальном HDD и до сих пор просто показывал одно изображение. Попробовал другой плеер и все заработало! Таким образом, это похоже на проблему с VLC, никогда бы не подумал, что VLC будет иметь проблемы!

neildeadman · 7 лет назад · 0

В VLC была давняя ошибка с низкой частотой кадров. Исправлено несколько месяцев назад.

Gyan · 7 лет назад · 0

Последняя версия VLC действительно решает проблему. Спасибо!

neildeadman · 7 лет назад · 0
Gyan ответил 7 лет назад
G 14 022