项目中做点播功能,需要快进快退功能,一个ts文件里可能包含多路视频流,根据视频流数seek即可。

大概思路:

可以根据pts来计算一桢在整个视频中的时间位置:

timestamp(秒) = pts * av_q2d(st->time_base)

然后再转换为内部的时间戳

ffmpeg同样为我们提供了不同时间基之间的转换函数:

int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq);

最后根据流索引seek即可。

下面是源码:

av_seek_frame使用-附源码

 

相关文章:

  • 2021-07-26
  • 2022-12-23
  • 2021-12-14
  • 2021-11-21
  • 2022-12-23
  • 2021-06-16
  • 2022-01-03
猜你喜欢
  • 2021-11-07
  • 2021-09-18
  • 2022-12-23
  • 2021-08-07
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
相关资源
相似解决方案