Имена файлов приводят к неправильному порядку при использовании mencoder для создания видео из последовательности изображений
Я хотел бы создать видео изображений с mencoder
Я могу сделать это с:
mencoder mf://*.jpeg -mf fps=50 -ovc copy -oac copy output.avi
Но проблема заключается в названии моих фотографий... действительно, у меня есть video000001.jpg
..., video0000100,
... поэтому, когда он создает видео, последовательность не соблюдается... она классифицирует video10000.jpeg
, video100000.jpeg
С python мы можем использовать эту команду:
sorted(glob.glob('*.jpeg'), key=os.path.getmtime)
Как я могу получить эквивалент для достижения моего видео в консоли с mencoder
?
3 ответа
С помощью
mencoder mf://video{000001..100000}.jpeg -mf fps=50 -ovc copy -oac copy output.avi
Но может быть ошибка, если список слишком длинный, например video{00000000..10000000}.jpg
argument list too long: touch
Поэтому лучше создать отсортированный список
find . -type f -name 'video*.jpeg' | sort -V > list
и использовать список
mencoder mf://@list -mf fps=50 -ovc copy -oac copy output.avi
Ты можешь использовать mencoder
с mf://@list.txt
переключатель, где вы можете создать список файлов в list.txt
как вы хотите, например, с вашей командой Python выше.
Смотрите также: mencoder и последовательность картинок
У меня нет 50 представителей, чтобы комментировать. Ответ, предоставленный AB, работает. хотя команда должна читать
mencoder mf://@list -mf fps=50 -ovc copy -oac copy -o output.avi
Синтаксис выше приводит к следующему.
mencoder mf://@list -mf fps=50 -ovc copy -oac copy output.avi
MEncoder 1.2.1 (Debian), built with gcc-5.3.1 (C) 2000-2016 MPlayer Team
Exiting... (No output file specified, please see the -o option.)