
영상이 2개 있어요
- Deskshare.webm 1280x720(오디오 없음)
- 웹캠.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 이상이 필요합니다.