av_seek_frame使用-附源码
项目中做点播功能,需要快进快退功能,一个ts文件里可能包含多路视频流,根据视频流数seek即可。
大概思路:
可以根据pts来计算一桢在整个视频中的时间位置:
timestamp(秒) = pts * av_q2d(st->time_base)
然后再转换为内部的时间戳
ffmpeg同样为我们提供了不同时间基之间的转换函数:
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq);
最后根据流索引seek即可。
下面是源码: