simplescreenrecorder录制的mp4,用vlc无法精确暂停。

simplescreenrecorder录制的mp4,在使用vlc播放时,无法精确暂停在某一个位置,比如无法暂停在第5秒,会自动跳到第0秒的位置,这是什么原因?
(好像所有mp4视频都,vlc都不能精确暂停在某一个指定位置)

如果播放器换成haruna的话,精确暂停就没问题;换成firefox播放时,精确暂停也没问题。
(这论坛不能上传mp4视频)

下面是simplescreenrecorder录制mp4时的参数:


猜测一下,你的 VLC 设置是 seek 默认跳转到关键帧。

然后我去看了一下代码库,注意到这么一个 issue:

如果描述是真的说明这个录屏软件的编码配置设置了过低的关键帧频率。

通过对 ffmpeg 文档的查询注意到这么个参数:

https://ffmpeg.org/doxygen/4.1/structAVCodecContext.html#a9b6b3f1fcbdcc2ad9f4dbb4370496e38

int AVCodecContext::gop_size

the number of pictures in a group of pictures, or 0 for intra_only

    encoding: Set by user.
    decoding: unused

搜索对应的结构体成员得到:

https://github.com/search?q=repo%3AMaartenBaert/ssr%20gop_size&type=code

默认 goc_size 都是 250。如果理解的没错的话,含义是相邻关键帧最大间隔是 250 帧。

考虑到你的帧数设置为 12,这就意味着最坏的情况下每隔 250/12=20.83 秒才会有一个关键帧,因此如果 VLC 配置为跳转到关键帧那么结果就很明显了。当然,这只是一个猜测。

我猜你打开了“快速定位”这个选项:

1 个赞

果然,这个 快速定位 取消勾选后就可以了 :+1: