iOS 音视频同步
音视频同步原理
在探讨音视频同步前,首先应该清楚音视频从产生到展示的过程,即音视频分别由麦克风、摄像头采集数据,处理编码后经过网络传递至服务器(或另一台终端),在到达终端后经过解码后通过扬声器、显示器播放。由此可以推测异常可能会产生于三个步骤中:
- 采集
- 传播
- 播放
1- 采集端作为音视频的生产者,采集端的源头异常会导致后续很难处理至正常状态,因此在采集端保证音视频同步尤为重要。
2- 在传播过程中,因为网络状态的复杂,可能会导致丢包、卡顿,以及后续的补发及相应处理,也可能会导致不同步的出现。
3- 在播放视频时,可能会对视频做一些识别、美颜等处理,在处理速度跟不上时也会造成音视频不同步。
时间戳标准
常见的时间戳标准有如下几种:
- 以格林尼治时间为标准,音视频以采集时间与格林尼治时间的时间差作为时间戳
- 以开机时间为标准,音视频采集时间与开机时间的时间差作为时间戳。iOS的AVCaptureSession API作用此标准。
- 其他标准。