[ffmpeg]当使用 -codec copy 时搜索值较小时,输入搜索似乎会导致输出文件的持续时间不正确

[ffmpeg]当使用 -codec copy 时搜索值较小时,输入搜索似乎会导致输出文件的持续时间不正确

我试图在不重新编码的情况下删除一些 mp4 文件开头的几秒钟。起初,我使用输出搜索,即

E:\>ffmpeg -i input.mp4 -ss 00:00:05 -t 00:01:00 -c copy output.mp4

但是,这导致输出文件开头的帧冻结了几秒钟(我猜这与寻找关键帧有关,所以我尝试添加标志 -copyinkf,但没有帮助),因此我尝试使用输入寻找,即

E:\>ffmpeg -ss 00:00:05 -i input.mp4 -t 00:01:00 -c copy output.mp4

最终的输出文件令人兴奋,一开始播放流畅且准确,只是输出文件的持续时间信息与实际值不同。上述命令应该生成持续时间为 00:01:00 的视频文件。然而,我得到的是持续时间为 00:01:05 的文件,其中包含 00:01:00 长度的视频。我也尝试过更大的搜索值,结果很好。

E:\>ffmpeg -ss 00:00:10 -i input.mp4 -t 00:01:00 -c copy output10.mp4
E:\>ffmpeg -ss 00:00:15 -i input.mp4 -t 00:01:00 -c copy output15.mp4

此图表示输出文件的持续时间

我不知道它们之间为什么会有差异,希望有人能帮我解决这个问题。我将非常感谢您的帮助。

笔记:

  1. ffmpeg 版本 N-93439-gb073fb9eea,我尝试了一些旧版本并得到了相同的输出。
  2. 输入文件的视频和音频编解码器分别为 avc 和 aac。

相关内容