使用 ffmpeg 分割视频产生错误的时长

使用 ffmpeg 分割视频产生错误的时长

我目前正在使用一个框架,在这个框架中,我必须将视频(最初使用 HEVC 视频和 AAC 音频编码)拆分成多个部分,然后分别处理它们。然后通过组合每个部分来获得最终结果(目前使用 concat 解复用器完成)。要进行拆分,我使用:

ffmpeg -i test.mkv -c copy -map 0 -segment_time 00:03:00 -reset_timestamps 1 -f segment split/split_%02d.mkv

然而,当仔细检查这些片段时,会发现有些片段出现了奇怪的行为。例如,在播放某些片段时,视频进度条会显示还有 3-4 秒,但视频会突然结束。

这只发生在少数片段上。然而,在后续步骤中将它们组合在一起时,这会导致最终视频在恢复播放之前冻结 3-4 秒,这看起来很糟糕。我该如何解决这个问题(最好不要重新编码)?

我尝试过其他方法,但都无济于事

  • -c copy-c:v libx265上面的命令中交换
  • 使用-force_key_frames 'expr:gte(t,n_forced*20)'
  • 使用带有 for 循环和多个命令的 bash 脚本-ss <initial_time> -t <duration>-c copy

相关内容