微信公众号小程序如何做流媒体视频直播?

第一个是延迟要足够低。如果单向延迟不能低于500毫秒的话,视频通话的互动体验就无法保障。

第二个是回声消除。因为用户A和用户B之间进行视频通话时,用户A的声音在传到用户B端时被采集并反馈回来,用户A在一定的延迟后会听到回声,这个对通话的体验是十分有影响的,因此必须做回声消除。

第三个是要流畅不卡顿。为什么流畅性很必要呢?因为有超低延迟的要求,流畅和延迟本身就是一对相互矛盾的技术要求,如果延迟足够低的话就要求抖动缓冲区足够的小,这样网络抖动就很容易显现出来,导致出现画面过快、过慢,或者卡顿的情况。

那我们一起来看看上面三个技术难点分别在哪些环节。

1)低延迟,基本上引入延迟的有三类环节:采集和渲染、编解码、网络传输。第一类是采集和渲染环节,带来的延迟比较大,尤其是渲染,几乎没有任何移动端系统可以保证百分之百做到50毫秒的延迟,这是一些硬件上的限制造成的。第二类是编解码环节,特别是音频编解码器是往前编码的,这个本身就会带来延迟,甚至有些音频编解码器能带来200毫秒的延迟。第三类是网络传输,在即构科技的实时传输网络里,往返的传输延迟分别都可以做到50毫秒以下。其中,采集和渲染、编解码都是在终端实现的。

2)回声消除,属于语音前处理3A,需要在前处理环节进行,也就是在终端实现的。

3)抖动缓冲,是在接收端实现的,通过接收端的抖动缓冲来决定发送端要以多大的时间间隔来发送数据包。

经验分享 程序员 微信小程序 职场和发展