이 ffmpeg 명령을 사용하여 이미지와 오디오 파일에서 mp4를 만들었습니다.
ffmpeg -y -i tmp/part1/frame0.png -i tmp/part1/audio0.mp3 -i tmp/part1/frame1.png -i tmp/part1/audio1.mp3 -i tmp/part1/pause0.5.mp3 -shortest -filter_complex "[1:0][4:0]concat=n=2:v=0:a=1[a1];[3:0][4:0]concat=n=2:v=0:a=1[a3];[0:0][a1][2:0][a3]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -vcodec libx264 -qp 0 tmp/part1/out.mp4
이렇게 하면 2개의 프레임과 오디오 트랙이 포함된 비디오가 생성됩니다. 그런데 이 영상을 VLC에서 재생하면 마지막 프레임이 보이지 않고, 유튜브에 업로드하면 영상 길이가 잘못 표시되는 현상이 발생합니다.
이 버그를 어떻게 피할 수 있나요? 간단한 해결 방법이 있나요?
답변1
제한된 시간 동안(오디오 세그먼트보다 짧은) 이미지를 반복합니다.
ffmpeg -y
-loop 1 -t 2 -i tmp/part1/frame0.png
-i tmp/part1/audio0.mp3
-loop 1 -t 2 -i tmp/part1/frame1.png
-i tmp/part1/audio1.mp3
-i tmp/part1/pause0.5.mp3
-shortest
-filter_complex "[1:0][4:0]concat=n=2:v=0:a=1[a1];
[3:0][4:0]concat=n=2:v=0:a=1[a3];
[0:0][a1][2:0][a3]concat=n=2:v=1:a=1[outv][outa]"
-map "[outv]" -map "[outa]" -vcodec libx264 -qp 0 tmp/part1/out.mp4