ffmpeg и командная строка windows

Я пытаюсь использовать ffmpeg для окон, чтобы преобразовать тысячи изображений и звуков в один видеофайл.

ffmpeg -i apples.jpg -i oranges.jpg -i orangessound.wav -i bananas.jpg -vcodec mpeg4 test.avi

Моя программа Delphi генерирует командную строку в виде строки, и я использую shellexecute для ее вызова.

Но правда ли, что командная строка не может быть длиннее 8191 символа? Если да, то может ли ffmpeg читать параметры из файла?

В этом случае невозможно переименовать изображения с последовательными номерами.


person Kasper DK    schedule 05.01.2013    source источник
comment
32 768 символов, включая завершающий нуль, поскольку ShellExecute вызывает CreateProcess.   -  person Sertac Akyuz    schedule 05.01.2013
comment
почему бы вам не вызвать ffmpeg -i appels.jpg, дождаться его завершения, затем вызвать ffmpeg -i Oranges.jpg и т. д., добавляя к последнему выведенному файлу?   -  person opc0de    schedule 06.01.2013
comment
Обратите внимание, что длина пути может зависеть от версий Delphi/FPC (если версии -A и -W имеют разную длину пути).   -  person Marco van de Voort    schedule 07.01.2013


Ответы (2)


Вместо этого вы можете рассмотреть возможность использования библиотеки libavcodec с открытым исходным кодом в собственном коде. Это та же самая библиотека, которую ffmpeg использует внутри (существует отдельная библиотека под названием libav, которая является ответвлением оригинальная библиотека ffmpeg libavcodec). Затем вы можете делать с файлами все, что хотите. Вы можете посмотреть исходный код ffmpeg, чтобы увидеть, как он интерпретирует параметры, которые вы хотите использовать, а затем адаптировать эту логику к вашему собственному коду.

person Remy Lebeau    schedule 05.01.2013
comment
Вы ссылаетесь на форк FFmpeg. Сюда не входит исходный код ffmpeg. - person llogan; 06.01.2013
comment
В прошлый раз, когда я загружал libav/libavcodec, исходный код ffmpeg был включен в качестве демонстрационного проекта. - person Remy Lebeau; 06.01.2013

ffmpeg не поддерживает получение всей команды из файла. вам нужно изменить код для вашего пользовательского использования.

он может принимать параметр кодирования, используя опцию "-fpre".

person rajneesh    schedule 05.01.2013