当 FFmpeg 剪切视频的一部分时,剪切视频部分的第一秒冻结

gor*_*tsa 5 ffmpeg

我用它从 MP4 文件中剪下一部分:

ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:36:18 -to 00:39:50 output.mp4
Run Code Online (Sandbox Code Playgroud)

它运行良好,但视频图像总是在开始时冻结 1 秒。

无论我尝试从哪个视频文件中剪下一部分,在视频开始前大约需要 1 秒。

这是我所看到的一个例子

Gia*_*968 5

问题可能是视频试图仅根据关键帧而不是中间帧进行剪切,并且您的初始时间00:36:18比关键帧早几秒钟。解决方案应该是使用手册中描述-copyinkf选项:

在进行流复制时,还要复制开头找到的非关键帧。

所以你的命令看起来像这样:

ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:36:18 -to 00:39:50 output.mp4
Run Code Online (Sandbox Code Playgroud)

然后需要调整成这样,-copyinkf混合进去:

ffmpeg -i input.mp4 -vcodec copy -acodec copy -copyinkf -ss 00:36:18 -to 00:39:50 output.mp4
Run Code Online (Sandbox Code Playgroud)