2013-01-05 3 views
1

Windows 용 ffmpeg를 사용하여 수천 개의 이미지와 사운드를 단일 비디오 파일로 변환하려고합니다.ffmpeg 및 windows 명령 줄

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

My Delphi 프로그램은 명령 줄을 문자열로 생성하고 shellexecute를 사용하여 호출합니다.

그러나 명령 줄은 8191자를 초과 할 수 없습니까? 그렇다면 ffmpeg가 파일에서 매개 변수를 대신 읽을 수 있습니까?

이 경우

+0

ShellExecute는 [CreateProcess] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85) .aspx)를 호출하므로 null 종결자를 포함하여 32,768 자입니다. –

+0

왜 ffmpeg -i appels.jpg를 호출하면 완료 될 때까지 기다린 다음 ffmpeg -i oranges.jpg를 호출하여 마지막 출력 파일에 추가할까요? – opc0de

+0

경로 길이는 Delphi/FPC 버전에 따라 달라질 수 있습니다 (-A 및 -W 버전의 경로 길이 문제가 다른 경우) –

답변

0

는 FFmpeg 파일에서 전체 명령을 복용 지원하지 않습니다 연속 번호와 사진의 이름을 바꿀 수 없습니다. 사용자 지정 용도로 코드를 수정해야합니다.

"-fpre"옵션을 사용하여 인코딩 매개 변수를 사용할 수 있습니다.

1

자신의 코드 대신 오픈 소스 libavcodec library을 사용하는 것이 좋습니다. ffmpeg가 내부에서 사용하는 것과 동일한 라이브러리입니다 (원래 ffmpeg libavcodec 라이브러리의 off-shoot 인 libav이라는 별개의 라이브러리가 있습니다). 그러면 파일로 원하는 모든 작업을 수행 할 수 있습니다. ffmpeg 소스 코드에서 사용하려는 매개 변수를 해석하는 방법을 확인한 다음 해당 논리를 사용자 고유의 코드에 적용 할 수 있습니다.

+0

FFmpeg 분기에 연결했습니다. 이것은'ffmpeg' 소스 코드를 포함하지 않습니다. – LordNeckbeard

+0

libav/libavcodec를 마지막으로 다운로드 한 시간에 ffmpeg 소스 코드가 데모 프로젝트로 포함되었습니다. –

+0

답변을 업데이트했습니다. –