ffmpeg에서 한 번에 필터링 및 병합

ffmpeg에서 한 번에 필터링 및 병합

비디오 파일을 한 번에 여러 가지 수정하고 싶습니다.

입력 비디오에 인트로 및 아웃트로 비디오 조각을 추가해야 합니다. 즉, 3개의 비디오를 병합하는 것입니다. 입력 비디오(두 번째 세그먼트)에만 오버레이 이미지를 추가해야 합니다. 이것을 한 줄로 어떻게 합칠 수 있나요?

저는 이 작업을 두 단계로 수행했습니다. 먼저 오버레이:

ffmpeg -i input.mkv -i image.png -filter_complex overlay=main_w-overlay_w-0:0 output_file.mkv

그런 다음 병합:

ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv

답변1

[v1]출력에 임시 이름을 지정한 overlay=main_w-overlay_w-0:0다음 필터 [v1]에 대한 입력으로 사용할 수 있습니다 concat.

ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -i image.png -filter_complex "[1:v][3:v]overlay=main_w-overlay_w-0:0[v1];[0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv


  • 다음 부분은 오버레이 단계를 적용합니다.
    [1:v][3:v]overlay=main_w-overlay_w-0:0[v1]
    오버레이된 출력은 임시 이름을 가져옵니다 [v1].
  • [0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat
    (대신 ) [v1]에 대한 입력으로 사용됩니다 .concat[1:v:0]

관련 정보