ffmpeg - 1 つのビデオを別のビデオにオーバーレイする

ffmpeg - 1 つのビデオを別のビデオにオーバーレイする

1 つのビデオを別のビデオにオーバーレイしたいです。同じ時間の長さのビデオが 2 つあります。

目的は、背景のビデオで何が起こっているかが見えるように、上部のビデオを少し透明にすることです。

以下を試してみました指示:

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

は、scale2ref2 番目のビデオのサイズを最初のビデオのサイズに合わせて変更します。次に、colorchannelmixerアルファ チャネルを微調整して、透明度を 50% にします。

関連情報