0%

音视频同步

在短视频与直播APP中,采集端作为音视频的生产者,如果采集端产生的音视频源本身就无法保证同步,那么后面不管经过什么处理,都很难再让用户看到音视频同步的画面了,因此,在采集端保证音视频同步上尤其重要。

基本概念

时间基

时间基是指时间刻度。因为时间信息是以整数存储的,而我们常使用的秒是浮点数,为了存储浮点数则把浮点数使用分数表达。时间基就是其中的分母,时间值是分子,得出浮点型的时间。

分类:

  • tbr,time base of rate: 通常所说的帧率。
  • tbn,time base of stream: 视频流的时间基。
  • tbc,time base of codec: 视频解码的时间基。

不同场景的时间戳对应不同的时间基,对于视频渲染则使用视频流的时间基。

音视频同步方式

  • 视频同步到音频。适用于音频各种参数固定,即其PTS是可以简单计算的,所以很方便地与视频帧的PTS对比进行同步。
  • 音频同步到视频。在音视频流长度不一致时,要考虑对音频进行丢帧和补帧。
  • 音频和视频都同步到系统时钟。

基本思路:

  1. 展示第一帧视频帧后,获得要显示的下一个视频帧的PTS;
  2. 设置一个定时器;
  3. 当定时器超时后刷新新的视频帧。
  4. 循环反复。

欢迎关注我的其它发布渠道