微信是现在人手都有的最便捷的通讯工具了,随着腾讯的不断开发,微信的功能日益完善,前几年开始火热的小程序也带动了微信卖货的营销模式,着实是给微信增添了一个利器啊,能使微信更好的普及到每一个行业的人群!厉害!2017年12月,微信小程序向开发者开放了实时音视频能力,给业内带来广阔的想象空间。有很多人又想着把直播程序集成到微信小程序里,使直播的观看更为便捷。
那么现阶段的微信小程序能实现直播功能么?答案是:可以的。视频直播分为两种模式,一种是单向直播,通过CDN分发,成本低,延迟1~3秒,小程序通过Live模式搞定。另外一种是互动直播(连麦),需要比较低的延迟,要500ms以内,小程序通过RTC模式搞定。但实际上小程序实现直播功能还有几个点需要克服:
第一个是延迟要足够低。如果单向延迟不能低于500毫秒的话,视频通话的互动体验就无法保障。
第二个是回声消除。因为用户A和用户B之间进行视频通话时,用户A的声音在传到用户B端时被采集并反馈回来,用户A在一定的延迟后会听到回声,这个对通话的体验是十分有影响的,因此必须做回声消除。
第三个是要流畅不卡顿。为什么流畅性很必要呢?因为有超低延迟的要求,流畅和延迟本身就是一对相互矛盾的技术要求,如果延迟足够低的话就要求抖动缓冲区足够的小,这样网络抖动就很容易显现出来,导致出现画面过快、过慢,或者卡顿的情况。
那我们一起来看看上面三个技术难点分别在哪些环节。
1)低延迟,基本上引入延迟的有三类环节:采集和渲染、编解码、网络传输。第一类是采集和渲染环节,带来的延迟比较大,尤其是渲染,几乎没有任何移动端系统可以保证百分之百做到50毫秒的延迟,这是一些硬件上的限制造成的。第二类是编解码环节,特别是音频编解码器是往前编码的,这个本身就会带来延迟,甚至有些音频编解码器能带来200毫秒的延迟。第三类是网络传输,在即构科技的实时传输网络里,往返的传输延迟分别都可以做到50毫秒以下。其中,采集和渲染、编解码都是在终端实现的。
2)回声消除,属于语音前处理3A,需要在前处理环节进行,也就是在终端实现的。
3)抖动缓冲,是在接收端实现的,通过接收端的抖动缓冲来决定发送端要以多大的时间间隔来发送数据包。
综上所述,刚才说的三个技术难点都是在终端实现的,因此终端非常重要。我们EasyDSS流媒体服务器就能够集成在微信小程序用于直播,同时也很好避免了高延迟以及回声的情况出现,适用于小程序进行课堂直播以及安防行业等场景。