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

Логотип можно фильтровать по масштабу, оттенку и т. д. перед первым наложением.

Связанный контент