Skip to content

SeekOptions

fengxing edited this page Sep 26, 2018 · 2 revisions

Seek原理介绍

播放器seek的时候,需要重新读取文件并解码,重新读取文件的位置因文件格式不同,计算方法也不同。 MP4使用视频索引(MOOV BOX),HLS在m3u8文件中描述。

需要注意的是,无论哪种格式,索引都不能精确到任意时间点。精确的seek需要做如下事情

  1. 计算seek时间在文件中最近的偏移
  2. 从偏移位置读数据,解码PTS
  3. 重复步骤2,直到PTS>=seek时间

整个seek操作时间和视频GOP大小有关,GOP越大时间越长;索引的粒度越细,读取无用数据越少,速度也越快。

TXVodPlayer默认支持精确seek,超时时间为5s。 关闭精确seek需要设置config.enableAccurateSeek = NO。关闭后会出现seek回退的情况