ffmpeg - 한 비디오를 다른 비디오에 오버레이

ffmpeg - 한 비디오를 다른 비디오에 오버레이

한 비디오를 다른 비디오에 오버레이하고 싶습니다. 동일한 시간의 두 비디오가 있습니다.

목표는 배경 비디오에서 무슨 일이 일어나고 있는지 볼 수 있도록 상단 비디오를 약간 투명하게 만드는 것입니다.

나는 아래에서 시도했다명령:

String command="ffmpeg -y -i /sdcard/videokit/two.mp4 -i /sdcard/videokit/inone.mp4 -filter_complex [0:v][1:v]overlay=100:100:eof_action=pass[v] -map [v] /sdcard/videokit/output.mp4";

이 명령에서는 위쪽 비디오가 뒤쪽 비디오와 높이 및 너비의 맥락에서 일치하지 않습니다.

착란 : 배경 비디오가 위쪽 비디오와 동일한 높이 너비를 갖지 않을 가능성이 있습니다. 이 경우 어떻게 관리해야 합니까..!!!

어떤 도움이나 제안이라도 주시면 감사하겠습니다.

답변1

아래 명령은 기본 비디오와 일치하도록 위쪽 비디오의 크기를 조정하고 투명도도 제공합니다.

ffmpeg -y -i /sdcard/videokit/two.mp4 -i /sdcard/videokit/inone.mp4 -filter_complex "[1:v][0:v]scale2ref[ua][b];[ua]setsar=1,format=yuva444p,colorchannelmixer=aa=0.5[u];[b][u]overlay=eof_action=pass[v]" -map [v] /sdcard/videokit/output.mp4

두 번째 비디오의 크기 scale2ref가 첫 번째 비디오의 크기와 일치하도록 조정됩니다. 그런 다음 colorchannelmixer알파 채널을 조정하여 50% 투명도를 제공합니다.

관련 정보