原型
int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,
int flags);
参数解释:
AVFormatContext *s, 解码的格式上下文
int stream_index, 默认-1 指按照视频时间来移动
int64_t timestamp,时间戳,计算是根据我们拖到的进度条占总视频长度比,来计算应该跳转到的时间。时间基数:AVStream.time_base
int flags 移动的时间,可能不是B帧或者说 计算的时间在2帧之间,取向前还是向后的一帧。
flag
向前,向后指的是 相对于当前时间来定的,如下图
AVSEEK_FLAG_BACKWARD = 1 往后找
AVSEEK_FLAG_BYTE = 2 按照字节来挑战移动位置
AVSEEK_FLAG_ANY =4针对frame来说的,就跳转那一帧,不找关键帧
AVSEEK_FLAG_FRAME = 8 表示往后找,找到关键帧
flag是二进制表示的,可以同时取2个,用或来操作。‘|’,