我们的视频播放软件(本地的,不是流媒体),可以随意跳到第 n 秒
这个功能是怎么实现的?
因为视频的一个一个 packet 组成,每个 packet 包含 [0,+∞)
个 frame
所以跳转到第 10 秒怎么实现?
一个视频 30 fps,难道要,从第 0 帧开始读取 300 帧,才播放吗?
这样的话,越拖到后面越慢
但是实际使用这些播放软件的时候,感觉都是秒级别的
我们的视频播放软件(本地的,不是流媒体),可以随意跳到第 n 秒
这个功能是怎么实现的?
因为视频的一个一个 packet 组成,每个 packet 包含 [0,+∞)
个 frame
所以跳转到第 10 秒怎么实现?
一个视频 30 fps,难道要,从第 0 帧开始读取 300 帧,才播放吗?
这样的话,越拖到后面越慢
但是实际使用这些播放软件的时候,感觉都是秒级别的
是通过关键帧和差分帧的机制,播放器可以很快跳转到视频的任何位置,而不用解码所有的帧。