2016-12-16 2 views
0

Я использую Python3, subprocess и ffmpeg для преобразования нескольких изображений PNG в одно видео.Использование ffmpeg с подпроцессом Python3 для преобразования нескольких PNG в видео

У меня есть 400 PNG с номером «00001.png».

Этот вызов для одного конкретного изображения для аа одного кадра-видео работает:

subprocess.call(["ffmpeg","-y","-r","24","-i", "00300.png","-vcodec","mpeg4", "-qscale","5", "-r", "24", "video.mp4"]) 

Однако, когда я пытаюсь некоторые методы увиденные онлайн для вызова всех моих изображений отформатированных как «### . ## PNG»с помощью "% 05d.png", как показано ниже, он больше не работает:

subprocess.call(["ffmpeg","-y","-r","24","-i", "%05d.png","-vcodec","mpeg4", "-qscale","5", "-r", "24", "video.mp4"]) 

Я получаю сообщение об ошибке: "%05d.png: No such file or directory".

У меня есть ощущение, что приведенный выше синтаксис правилен Python2 и не работает на моем python3, но не может найти правильный синтаксис python3 в любом месте.

Заранее спасибо за вашу помощь

+0

где вы видите ''% 05d.png? '? В Linux может работать '* .png', потому что' Bash' преобразует его в список файлов с именами, соответствующими '* .png'. Я видел что-то вроде «% 05d.png» 'только с конвертером изображений« ImageMagic ». – furas

+0

Синтаксис ffmpeg выглядит нормально. Может быть, его нужно каким-то образом избежать. @furas ffmpeg принимает этот синтаксис (http://ffmpeg.org/ffmpeg-formats.html#Examples-1) для последовательностей изображений. – Mulvya

+0

Я пробовал этот «подпроцесс», и это сработало для меня. Потому что у меня были более короткие имена 001.png - 003.png в подпапке «test», поэтому я использовал «test /% 03d.png». Запустил ли сценарий в папке с изображениями? – furas

ответ

1

Ну, я, наконец, нашел ответ, и, как ожидается, он удручающе прост: Нумерация должна начинаться с 1 (00001 в моем случае), в то время как на самом деле мои файлы варьировались от 00002.png до 00301.png.

Работал, как только я добавил исходный файл 00001.png.

+1

Ваши требования Q в противном случае :). FFmpeg имеет параметр start_number, поэтому '' ffmpeg "," - y "," - r "," 24 "," - start_number "," 2 "," - i ","% 05d.png "' – Mulvya

+0

Это моя ошибка! Спасибо за подсказку Мульвия. – ylnor

 Смежные вопросы

  • Нет связанных вопросов^_^