2010-07-18 3 views
3

Я использую FFmpeg для преобразования последовательности JPEGs в видео, используя следующий синтаксисновообращенных с помощью FFmpeg

ffmpeg -f image2 -i frame%d.jpg -vcodec mpeg4 -b 800k video.avi 

работает лакомство, однако, если имена файлы не начинает с 0, а затем продолжить в по приказу я получаю странные результаты. например, первым файлом в каталоге является frame1, а последний файл - это кадр 61. Я должен указать, что im всегда использует список jpegs, которые принимаются в инкрементальном порядке. например, список файлов, называемых frame1, fram2, fram3 и т.д.

следующие работает отлично

frame1.jpg to frame9.jpg 

frame1.jpg в frame10.jpg frame2.jpg к frame8.jpg frame2.jpg в frame10 .jpg frame2.jpg к frame11.jpg frame2.jpg к frame17.jpg frame2.jpg к frame20.jpg frame2.jpg к frame30.jpg frame2.jpg к frame61.jpg

следующего оленьей кожи приста К

26 to 57 fail 

11 до 61 не в состоянии 10 до 61 не в состоянии 20 до 61 не в состоянии 24 до 61 неудачу

Могу ли я изменить аргументы для FFmpeg так, что он будет делать видео, независимо от имен файлов? (frame% d)

+0

привет, я также сталкиваюсь с тем же вопросом. Могу ли я узнать адрес электронной почты ur для контакта. – rams

+0

любое окончательное решение с полным образцом исходного кода? – Kiquenet

ответ

1

Вы можете переименовать все файлы jpeg, чтобы нумерация всегда начиналась с нуля, и нет пробелов.

+0

Я думал, что пробовал это, и именно поэтому я приписывал ошибку ffmpeg DOH..it работает сейчас, как только я переименую файлы. благодаря – brux

3

Единственный способ, с помощью которого я работал, - это присвоить имена файлам фреймов с постоянной фиксированной шириной для счетчиков кадров. Если вы делаете фреймы с веб-камер, проверьте, может ли это сделать сама веб-камера, в противном случае вам придется переименовать ее самостоятельно. Вы можете создать службу Windows, которая использует класс FileWatcher в C#, который «прослушивает» папку, которую нужно нарисовать с помощью фрейма, а затем переименуйте ее в другую папку с форматом предварительного просмотра. Это сработало для меня.

frame01.jpg 
frame02.jpg 
... 
frame10.jpg 
frame11.jpg 
... 
frame61.jpg 

Затем с помощью этого:

ffmpeg.exe -r 1 -f image2 -i frame%02d.jpg -r 16 -vcodec mpeg4 -b 800k -y video.avi 

-i кадр% 02d.jpg: указывает на 2 цифры для счетчика кадров

Я добавил -r 1 и -R 16, как дополнительные частоты кадров, что я тест, который сработал для меня.

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