![ffmpeg 剪切、淡入淡出和连接导致视频卡住](https://linux22.com/image/1690566/ffmpeg%20%E5%89%AA%E5%88%87%E3%80%81%E6%B7%A1%E5%85%A5%E6%B7%A1%E5%87%BA%E5%92%8C%E8%BF%9E%E6%8E%A5%E5%AF%BC%E8%87%B4%E8%A7%86%E9%A2%91%E5%8D%A1%E4%BD%8F.png)
我正在尝试为长视频添加“淡出”效果。我探索的一种方法是在视频结尾前几秒剪切视频,将淡出效果添加到第二个片段,然后将两个片段连接起来。
我想出了以下命令。
:: 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
因为其他分割的像素格式相同。
这样,合并后的视频就可以顺利运行了。