如何快速获取视频的第 n 帧?

我们的视频播放软件(本地的,不是流媒体),可以随意跳到第 n 秒

这个功能是怎么实现的?

因为视频的一个一个 packet 组成,每个 packet 包含 [0,+∞) 个 frame

所以跳转到第 10 秒怎么实现?

一个视频 30 fps,难道要,从第 0 帧开始读取 300 帧,才播放吗?

这样的话,越拖到后面越慢

但是实际使用这些播放软件的时候,感觉都是秒级别的

阅读 3.3k
2 个回答

是通过关键帧和差分帧的机制,播放器可以很快跳转到视频的任何位置,而不用解码所有的帧。

我们的视频播放软件(本地的,不是流媒体),可以随意跳到第 n 秒

这个功能是怎么实现的?
Accept-Ranges

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进