이 패턴을 따르는 많은 이미지가 있습니다.
0001.png
0004.png
0007.png
0010.png
0013.png
0016.png
0019.png
...
올바른 순서로되어 있지만 FFMPEG는 첫 번째 파일 뒤에있는 파일을 찾을 수 없으므로 무시합니다 0002.png
. 이 파일들을 어떻게 결합시킬 수 있습니까?
나는 시도했다
ffmpeg -i %04d.png out.avi
이 패턴을 따르는 많은 이미지가 있습니다.
0001.png
0004.png
0007.png
0010.png
0013.png
0016.png
0019.png
...
올바른 순서로되어 있지만 FFMPEG는 첫 번째 파일 뒤에있는 파일을 찾을 수 없으므로 무시합니다 0002.png
. 이 파일들을 어떻게 결합시킬 수 있습니까?
나는 시도했다
ffmpeg -i %04d.png out.avi
답변:
ffmpeg 0.11.1을 사용하면 다음과 같이 쉽습니다.
ffmpeg -f image2 -i %*.png out.avi
로부터 man
"비디오 및 오디오 파일 형식 변환"아래 예제 페이지 :
이미지 시퀀스를 가져올 때
-i
내부적으로 쉘과 같은 와일드 카드 패턴 (글 로빙) 확장을 지원합니다. 실제 파일 이름과 쉘의 글로브 확장을 방해 가능성을 낮추기 위해, 단일로 접두사를 지정하여 활성화 글로브 메타 문자에 필요한%
처럼, 문자foo-%*.jpeg
,foo-%?%?%?.jpeg
또는foo-00%[234%]%*.jpeg
.
주석 별 업데이트 : 최신 버전에서는 이제 -i '*.png'
구문을 사용해야 합니다.
glob_sequence
패턴 유형은 사용되지 않습니다,하지만 glob
패턴 유형은 아니다. Mulvya와 Peter Cordes의 답변이 효과가 있습니다.
Pattern type 'glob_sequence' is deprecated: use pattern_type 'glob' instead
Pattern type 'glob_sequence' is deprecated
마찬가지로이 페이지는 현재 해당 경고 메시지 ( ...)에 대한 Google의 최고 결과 이므로 위의 rymo (특히)에서 제공 한 명령으로 경고 -i %*.png
가 발생 합니다. 그것을 없애려면 Peter Cordes answer ( -i '*.png'
) 의 약간 다른 구문을 사용하십시오 .
내 의견의 해결 방법 외에도 ffmpeg 설명서 에서이 구문을 사용할 수 있습니다 .
ffmpeg -f image2 -pattern_type glob -i '*.png' out.avi
따옴표는 중요 *
합니다. 쉘을 확장하지 말고 ffmpeg가 필요 합니다.
*.png
단일 따옴표 (그래서 '*.png'
)가 유닉스 스타일 쉘 (그래서, OSX와 리눅스 등)으로 확대되지 않도록합니다.
에서 http://www.ffmpeg.org/faq.html : 이름을 바꿀 사진의 수가 많은 경우 부담을 완화하기 위해 다음 명령을 사용할 수 있습니다. Bourne 쉘 구문을 사용하는 명령은 * jpg와 일치하는 현재 디렉토리의 모든 파일을 'img001.jpg', 'img002.jpg'등의 순서로 '/ tmp'디렉토리에 심볼릭 링크합니다.
x=1; for i in *jpg; do counter=$(printf %03d $x); ln -s "$i" /tmp/img"$counter".jpg; x=$(($x+1)); done
seqA-[0001-n].png
, seqB-[0001-n].png
등의 글 로빙 이미지 2와 CONCAT 필터 장난보다 훨씬 쉽습니다.
for i in *jpg
으로 for i in /full/path/*jpg
모든 심볼릭 링크가 졌 있었다 때문에,