ffmpeg 剪切、淡入淡出和连接导致视频卡住

ffmpeg 剪切、淡入淡出和连接导致视频卡住

我正在尝试为长视频添加“淡出”效果。我探索的一种方法是在视频结尾前几秒剪切视频,将淡出效果添加到第二个片段,然后将两个片段连接起来。

我想出了以下命令。

:: 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因为其他分割的像素格式相同。

这样,合并后的视频就可以顺利运行了。

相关内容