如果说直播过程中出现卡顿、延时是很正常的,那么唯有音画不同步是最令人难以忍受的。对于直播开发完成之后出现音画不同步的现象,也是非常令人头疼的。我们可以从以下几个方面来简单分析一下,音画不同步现象产生的原因以及解决办法。
1.音频源与采集设备的距离
音频源跟设备的距离是有一定关系的,如果音频源离麦克风距离太远,那么声音传到麦克风的速度就会小于画面的速度。之后摄像头所采集到的画面之后给出的时间戳,也会小于麦克风采集到同一时刻音频的时间戳,所以此时会产生音画不同步的现象。所以在采集过程中,可以将音视频源与采集设备(比如麦克风)的距离拉近,避免由于距离而造成的音画不同步。
2.采集设备
通常在采集过程中,硬件上都会经过一些信号的处理模块。如果处理延时不问题,那么就会导致输出数据和时间不稳定,从而导致应用层获取时间戳时产生一定的误差,造成音画不同步,可以根据采集参数来做出适当的修改。
图源丨视觉中国
3.时间戳获取
假如音视频帧的时间戳没有在采集时就获取,而是在后续的环节中才进行获取,那么出现音画不同步现象的机率会大幅度增加。如果视频码流的时间戳没有呈现单调递增,而是出现频繁的回退,就容易导致播放器出现频繁的卡顿。或者如果出现视频帧小于主时钟的视频帧,那么播放器就会做出丢弃处理,造成画面没有更新但是音频还在继续播放的情况,也就是我们所说的音画不同步的现象。所以需要检查推流端的时间戳是否呈单调线性递增,或者检查服务端是否修改了时间戳导致频繁回退。
4.播放端性能
举个简单的例子,如果低端机型软解1080p的高清码流,就会发生解码不及时的现象从而导致部分视频解码完成后速度慢于当前的音频时钟,造成丢弃并导致画面更新不及时,造成音画不同步。在这里可以使用硬件解码,选择较低的码率,增大播放缓冲。
由此可见,不仅是在直播开发过程中,开发完成之后也会存在许多问题。比如音画不同步的问题,这些都是不容忽视的。想拥有优质的直播平台,就需要从细节处入手才能做到更好。
本文声明原创,转载请注明出处及作者