FFMPEG 在将 gif 叠加到视频上时冻结最后一秒

问题描述 投票:0回答:0

我使用此代码将 gif 添加到视频中:

(base) E:\>ffmpeg -i tt102e.mp4 -ignore_loop 0 -i e:\gals\flags\RoyaumeUni.gif -filter_complex "[1:v][0:v]scale2ref=oh*mdar:ih/5[ua][b];[ua]setsar=1,format=yuva
420p,colorchannelmixer=aa=0.75[u];[b][u]overlay" -shortest -c:a copy -y tt102e-.mp4

这有效,但最后一秒,甚至大约 1.5 被冻结 - gif 和视频停止 - 只有声音播放到最后。但是,如果我更改为

mkv
格式,它会以其他方式进行 - 整个视频和音频削减 1.5 秒 - 它更短。当我使用
mts
格式时它没问题,但质量很低,因为这会产生 12 位视频,而不是 24 位。但是如果我添加
 -vcodec libx264 -b:v 4000k
以获得 24 位并且比默认比特率更好它又是错误的 - 作为 mp4案件。到底是怎么回事??是使用不同编解码器的情况吗? Gif 是 24 位的,具有未知的 fps,bgra 格式。这里有什么东西吗?

编辑

好吧,很快就找到了问题......有些SO答案实际上并不准确,所以我错误地使用了

-shortest
。它应该在
overlay=shortest=1
.

video ffmpeg animated-gif
© www.soinside.com 2019 - 2024. All rights reserved.