FFmpeg -ss -t(寻求)输出不准确,有什么解决方法吗?

use*_*188 9 video ffmpeg

我的任务是从较大的视频片段制作小视频片段,然后将它们合并成一个文件。经过大量搜索和阅读,我决定使用下一个命令

ffmpeg -y -ss 03:00 -i myvideo.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -t 00:05 segment01.ts
Run Code Online (Sandbox Code Playgroud)

我的问题;希望您有任何解决方法来解决它们:

1- 如您所见,所需输出的持续时间为 5 秒,而我根本没有得到。我对不同的段有不同的持续时间;4、6、8、9 秒。

**搜索后我发现这是由于关键帧问题而发生的。

但我完全不明白这与段的持续时间有什么关系。

我完全理解寻找位置可能因关键帧而异,但为什么持续时间?

2-经过更多阅读,我决定使用 -fs 命令来限制段的大小。除了一件事,它以某种方式起作用。

这些片段在最后有点挂起(掉帧!我不知道),这使得连接在一起时的最终结果很糟糕。我该怎么做才能摆脱这种“挂起”

有任何想法吗?

**注意:我已经尝试了两种(输入/输出)搜索,但没有任何改变。

Beh*_*far 8

-ss当and与or-t一起使用时,经常会发生这种情况。-c copy-codec copy

不要使用copy, 并使用其他编解码器,或者干脆不指定-c,-codec选项。这不会发生。

例如:ffmpeg -y -ss 03:00 -i myvideo.mp4 -c:v libx264 -f mpegts -t 00:05 segment01.ts或者类似的东西。

  • 这不是一个解决方案,因为它会根据操作员的请求强制重新编码并扰乱后续的拆分连接。 ss 的问题在于它有缺陷。即使 ss 位于关键帧,它应该可以工作,但事实并非如此。凭经验说话。 (3认同)