我正在尝试为长视频添加“淡出”效果。我探索的一种方法是在视频结尾前几秒剪切视频,将淡出效果添加到第二个片段,然后将两个片段连接起来。
我想出了以下命令。
:: Cut the video into 2
ffmpeg -i myvideo.mp4 -c copy -map 0 -segment_time 00:00:40 -f segment -reset_timestamps 1 -y "split%%01d.mp4"
:: Add the fade out effect
ffmpeg -i split1.mp4 -vf "fade=t=out:st=5:color=red" split1-m.mp4 -y
:: Merge them without re-encoding
ffmpeg -safe 0 -f concat -i videolist.txt -c copy splitcombine.mp4 -y
在 Chrome 中播放合并的视频时,视频卡在了合并处。在 VLC 中,视频出现空白卡顿。
(在 Chrome 视频播放器中,视频卡在了连接处。如果我继续播放视频,它就会结束)
(在 VLC 中)
如果我删除“淡入淡出”效果并简单合并,则没有问题。(左侧没有淡入淡出效果。右侧有淡入淡出效果)
我不确定这里的问题是什么。
任何想法都会非常有帮助!也欢迎任何其他能达到类似结果的想法!
答案1
我自己发现了。我使用ffprobe
并比较了淡入淡出的视频和第二分割视频之间的差异。
褪色的视频与其他分割的 pix_fmt 不同。然后我通过添加来标准化像素格式,-pix_fmt yuv420p
因为其他分割的像素格式相同。
这样,合并后的视频就可以顺利运行了。