2009-09-29 1 views
3

Приложение My Delphi создало скретч под названием frame_001.png для frame_100.png.Использование Delphi или FFMpeg для создания фильма из последовательности изображений

Мне нужно, чтобы он был скомпилирован в мувиклип. Я думаю, что, возможно, проще всего позвонить в FFmpeg из командной строки, в соответствии с их документацией:

For creating a video from many images:

ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi

The syntax foo-%03d.jpeg specifies to use a decimal number composed of three digits padded with zeroes to express the sequence number. It is the same syntax supported by the C printf function, but only formats accepting a normal integer are suitable.

От: http://ffmpeg.org/ffmpeg-doc.html#SEC5

Однако мои файлы (без потерь) PNG формата, так что я должен преобразовать с помощью ImageMagick первый.

Моя командная строка теперь:

ffmpeg.exe -f image2 -i c:\temp\wentelreader\frame_%05d.jpg -r 12 foo.avi

Но тогда я получаю ошибку:

[image2 @ 0x133a7d0]Could not find codec parameters (Video: mjpeg) c:\temp\wentelreader\Frame_C:\VID2EVA\Tools\Mencoder\wentel.bat5d.jpg: could not find codec parameters

Что я делаю неправильно?

Альтернативно это можно сделать с Delphi?

ответ

2

Посмотрите на имя файла в сообщении об ошибке. Это не может быть правильным. Знак процента должен полностью соответствовать программе, которую вы используете, но вместо этого расшифровывается пакетным файлом, где %0 расширяет свое полное имя и путь к файлу. Двойной знак процента в пакетном файле:

ffmpeg.exe -f image2 -i c:\temp\wentelreader\frame_%%05d.jpg -r 12 foo.avi

Кроме того, почему вы хотите пять цифр, когда вы уже сказали, что ваши файлы называются как frame_001.png, которая имеет только три цифры?

+0

Спасибо, Роб! Очевидное теперь в ретроспективе ... Теперь я получаю следующую ошибку, также проверял ее из командного файла: c: \ temp \ goelreader \ Frame_% 05d.jpg: произошла ошибка ввода-вывода Обычно это означает этот входной файл усечен и/или поврежден. Рамка_001.png был всего лишь образцом, я решил позже процитировать мой код. Реальные имена файлов - Frame_00000.jpg - Frame_03961.jpg. –

+0

Ok update - используя оригинальный png, похоже, теперь он работает. Я думаю, что у меня был неправильный путь для jpeg. Еще раз спасибо! –

2

ffmpeg может создать фильм из png изображений, почему вы думаете, что вам нужно преобразовать их в jpeg?

+1

У меня был ошибка раньше что заставило меня предположить, что и там нет никакого упоминания о детских в (разреженном!) Руководстве. Спасибо, приятно знать. Теперь, если я могу просто вычислить командную строку :) –

+0

Такая же командная строка как jpeg. –

+0

png или jpeg не проблема - я не могу заставить командную строку работать, поскольку она заменяет параметр% 0d именем командного файла, с которого я его вызываю. –

2

Ребята в DelphiFFMpeg были изготовлены компонентной оберткой для FFMpeg. Это очень дорого, но стоит проверить его. Однако то, что вы хотите сделать, очень просто, и для вас более чем достаточно командной строки.

+0

Спасибо, выглядит очень сильным, будет иметь в виду. –