FFMPEG 연결에는 루프 이미지가 포함되지 않습니다(명명된 파이프 사용).

FFMPEG 연결에는 루프 이미지가 포함되지 않습니다(명명된 파이프 사용).

많은 연구와 테스트 끝에 FFMPEG를 사용하여 여러 소스를 연결하도록 조정할 수 있는 명령을 작성했습니다. 연결에 루프 이미지(비디오)를 추가하는 데 문제가 발생했습니다.

명령은 다음과 같습니다.

ffmpeg -y -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp1 2> /dev/null & \
ffmpeg -y -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp2 2> /dev/null & \
ffmpeg -y -f lavfi -i anullsrc  -loop 1 -f image2 -i input3.jpg -r 30 -t 3 -pix_fmt yuvj420p -map 0:a -map 1:v -f mpegts temp3 2> /dev/null & \
ffmpeg -y -f mpegts -i "concat:temp1|temp2|temp3" -bsf:a aac_adtstoasc out.mp4

최종 결과는 2개의 비디오와 3초 동안 반복되는 이미지(오디오 없음), 모두 긴 비디오로 연결되어야 합니다. 대신, 내가 얻는 것은 처음 두 개의 비디오가 포함된 하나의 연결된 비디오뿐이지만 반복되는 이미지는 아닙니다.

답변1

스크립트가 처음 3개 명령의 배경을 설정하는 것으로 나타나므로 스크립트는 거의 동시에 명령을 실행합니다. 4번째 명령이 출력을 연결하기 전에 명령 1-3이 완료된다는 보장은 없습니다. 후행 앰퍼샌드와 백슬래시를 제거하면 스크립트는 다음 명령을 시작하기 전에 각 명령이 완료될 때까지 기다리게 됩니다. 각 명령이 대부분의 I/O 대역폭을 사용하는 경우 이 변경으로 인해 스크립트 속도가 크게 느려지지는 않습니다. 그렇지 않은 경우 백그라운드에서 처음 3개 명령을 실행하고 완료될 때까지 기다려 4번째 명령(테스트되지 않음)을 실행하는 방법이 있습니다.

{ ./prog1 ; ./prog2 ; ./prog3 ; } && ./prog4

관련 정보