iOS 音视频同步
Welkin Lv3

音视频同步原理

在探讨音视频同步前,首先应该清楚音视频从产生到展示的过程,即音视频分别由麦克风、摄像头采集数据,处理编码后经过网络传递至服务器(或另一台终端),在到达终端后经过解码后通过扬声器、显示器播放。由此可以推测异常可能会产生于三个步骤中:

  1. 采集
  2. 传播
  3. 播放

1- 采集端作为音视频的生产者,采集端的源头异常会导致后续很难处理至正常状态,因此在采集端保证音视频同步尤为重要。
2- 在传播过程中,因为网络状态的复杂,可能会导致丢包、卡顿,以及后续的补发及相应处理,也可能会导致不同步的出现。
3- 在播放视频时,可能会对视频做一些识别、美颜等处理,在处理速度跟不上时也会造成音视频不同步。

时间戳标准

常见的时间戳标准有如下几种:

  1. 以格林尼治时间为标准,音视频以采集时间与格林尼治时间的时间差作为时间戳
  2. 以开机时间为标准,音视频采集时间与开机时间的时间差作为时间戳。iOS的AVCaptureSession API作用此标准。
  3. 其他标准。

参考

iOS音视频同步探讨