ffmpeg: ビデオにロゴを追加すると元のビデオの時間が長くなる

ffmpeg: ビデオにロゴを追加すると元のビデオの時間が長くなる

画面の中央に徐々に表示されるビデオにロゴを追加しようとしていますが、何らかの理由で、出力ビデオに 2 秒余分に追加され、ビデオがすぐに停止してしまいます。これを回避する方法はありますか。

ffmpeg -i "input.mp4" -loop 1 -i "logo.png" ^
-filter_complex "[1]scale=300:-1,hue=s=0,format=rgba[logo];[logo]split[logo1][logo2]; ^
[logo1]colorchannelmixer=aa=0.0[logo1];[logo2]colorchannelmixer=aa=0.2[logo2]; ^
[logo1][logo2]xfade=transition=fade:duration=5:offset=0[logo]; ^
[0][logo]overlay=x=(W-w)/2:y=(H-h)/2" -q:v 0 -shortest -y output.mp4 

答え1

物事を複雑にしすぎています。ロゴをビデオのインスタンスにオーバーレイします。次に、別のインスタンスにオーバーレイする前にこれをフェードします。

ffmpeg -i input.mp4 -i logo.png -filter_complex ^
[0]split[A][B];[A][1]overlay[OL];^
[OL]fade=type=in:start_time=0:duration=5:alpha=1[Top];^
[B][Top]overlay out.mp4

最初のオーバーレイの前に、ロゴをスケール、色相などでフィルタリングできます。

関連情報