音视频同步方法
- 音频向视频同步
- 视频向音频同步
- 统一向外部时钟同步
音频向视频同步
-
视频保持一定的刷新帧率,填充音频数据时会和当前渲染的视频帧的时间戳进行比较,如果差值不在阈值范围内则进行对齐操作
- 如果音频时间戳小于视频的时间戳,则进行跳帧操作(加快速度或者丢弃部分音频)
- 如果音频时间戳大于视频的时间戳,则进行等待(补空白帧)
-
优点:画面流畅
-
缺点:插帧或者丢帧用户是可以感受到的
视频向音频同步
-
因为任何平台播放音频的引擎都可以保证播放的音频时间长度和实际音频所代表的时间长度一致,所以可以依赖音频来确定时间戳,如果视频帧的时间戳不在阈值内,则进行对齐操作
- 如果视频帧的时间戳小于音频的时间戳,则进行跳帧操作
- 如果视频帧的时间戳大于音频的时间戳,则进行等待操作
-
优点:音频可以连续播放
-
缺点:视频的画面可能出现跳帧的现象(但是用户对于视频帧的丢失感知不强烈)
统一向外部时钟对齐
- 外部维护一个时钟,分别使用上述两种方式分别对音视频进行对齐操作
- 优点:最大限度保证音视频都不发生跳帧现象
- 缺点:外部时钟的控制不精确会引发音视频同步的跳帧行为
注意:
- 一般情况下,针对人类的感官体验,我们使用的是第二种视频向音频同步的对齐方式