해상도가 다른 두 개의 비디오를 나란히 하나로 병합하는 방법은 무엇입니까?

해상도가 다른 두 개의 비디오를 나란히 하나로 병합하는 방법은 무엇입니까?

영상이 2개 있어요

  1. Deskshare.webm 1280x720(오디오 없음)
  2. 웹캠.webm 640x480 오디오 포함

아래 설명된 명령은 필요에 따라 작동합니다.

ffmpeg -i deskshare.webm -i webcams.webm -filter_complex 
"[0:v]pad=(iw+640):ih[bg]; [bg][1:v]overlay=w+640" out.mp4

ffmpeg -i deskshare.webm -i webcams.webm -filter_complex 
"[0:v]pad=(iw+640):ih[bg]; [bg][1:v]overlay=main_w-overlay_w" out.mp4

두 번째 비디오의 수동 입력 해상도(내 경우에는 640px)를 제거할 수 있는 구문이 있습니까?

[1:v]width와 같은 것을 사용하여 해당 값을 자동으로 얻을 수 있습니까?

내 경우에도 잘 작동합니다.

ffmpeg -i deskshare.webm -i webcams.webm -filter_complex "[0:v]pad=(iw+iw/2):ih[bg]; [bg][1:v]overlay=main_w-overlay_w" out.mp4

하지만 이는 첫 번째 비디오의 너비가 두 번째 비디오 너비의 두 배인 경우에만 작동합니다.

답변1

이것은 로터리 방식으로 수행될 수 있습니다.

사용

ffmpeg -i deskshare.webm -i webcams.webm -filter_complex 
   "[1:v][0:v]scale2ref=main_w:ih[sec][pri];
   [sec]setsar=1,drawbox=c=black:t=fill[sec];[pri][sec]hstack[canvas];
   [canvas][1:v]overlay=main_w-overlay_w" out.mp4

scale2ref는 원본 너비를 유지하면서 보조 비디오의 한 복사본 크기를 기본 비디오의 높이로 조정합니다. 그런 다음 검정색으로 채워지고 기본 비디오 오른쪽에 쌓입니다.

그런 다음 보조 비디오의 두 번째 복사본이 확장된 캔버스에 오버레이됩니다.

ffmpeg 4.0 이상이 필요합니다.

관련 정보