移动互联网的音视频传输挑战一:视频通话那些坑 | WebRTC编风网
0

移动互联网的音视频传输挑战一:视频通话那些坑

已有 411 人阅读此文 - - - xiaoya

WebRTC开源之前,音视频通信听起来好高级:回声消除、噪声抑制……对于看到傅里叶变换都头疼的工程师很难搞定这些专业领域的问题。

1

Google收购了GIPS,开源了WebRTC项目之后,开发者可以自己折腾出互联网音视频通信了。下载、编译、集成之后,第一次听到通过互联网传过来的喂喂喂,工程师会非常兴奋,demo到万人直播现场只差一步了。

1

但是,电信行业要求可用性4个9,而刚刚让人兴奋的“喂喂喂”,1个9都到不了。某公司在展会上演示跨国音视频,多次呼叫无法接通,自嘲说我们还没有做网络优化嘛。这就等于互联网全民创业时期的”就差个程序员了“,本质上是和demo与真正产品之间的差距,是外行与内行之间的差距。

小红说家里WIFI聊QQ、打斗地主毫无压力,用你的音视频通话就卡的不行。想开发分享到微信这个功能,百度个文档照着一步步干就好了;但是找不到这样一个文档,照着做就能解决用户报的这些问题,进而把音视频通话做到电信水平。

音视频通话对教育、社交、约会类APP是刚需功能,上述问题会迫使用户使用更稳定的skype或微信来沟通。技术原因造成用户流失,是每个工程师都不愿意看到的事情。

1

为什么很难?

因为音视频通话 = 音视频处理 + 网络传输

而公共互联网不是为了实时通信设计的。

• 协议方面:tcp有无法忍受的延时,udp有丢包延时抖动乱序。

• 政治方面:各个国家出口光缆屈指可数,带宽也有严格限制。

• 商业方面:由于成本原因,跨运营商的网络传输惨不忍睹。

• 用户设备:无线路由器从802.11G开始才支持实时通信模式;多个路由器使用相同的频段会造成信号污染;2G网络上行带宽只有20kbps。

• 架构方面:公共网络每个节点都不可靠,后台工程师熟悉的mtr命令可以分析哪个路由节点丢包高,如果此时正在传输音视频,质量必然受到影响。

要在这样一个公共互联网上传输音视频数据,却没有做任何网络传输的工作,不遇到问题的话可以买彩票了。

网络传输要怎么搞?老师没讲过、网上搜不到,是不是有一种深深的无力感。

1

干货开始了,声网Agora.io怎么搞?

音频传输与视频传输有很多相同点,又有一些不同点。我们先从音频开8,在整个音频传输解决方案基础之上,再来研究视频的差异点。

先看下边一个工程师小明的故事:

• 老大在测试demo的时候来找小明:刚才声音卡成翔。小A这时候如果一脸懵B状基本要跪,如果拿出数据解释说在30秒到50秒之间丢包造成,效果好很多。所以首先需要通过网络参数来评估语音质量 —— 质量评估

• 老大体验了几次卡顿之后想起来问小明,其他用户质量怎么样?小A拿出数据说我们只有2%的用户遇到您这样卡顿 —— 数据统计

• 利用前边几个工具,小明找到了影响质量的原因1:联通用户和电信用户通话时丢包大。小明搞了个多线服务器,联通用户接联通线路,电信接电信 —— 智能接入

• 随着用户扩张到海外,小明发现电信用户和美国用户通话时丢包大,没有一边电信一边美国这种多线服务器,小明发现通过日本转发过去就不丢包了 —— 智能路由

• 小明觉得智能接入加上智能路由,可以媲美网络专线的质量了,所以得意地起了个名字叫做虚拟专线

•  现在抱怨的用户明显少了很多,还剩下一些自己网络不给力的用户。用户x一直用2G,用户y在公司里很多WIFI有信号污染,需要 ——丢包对抗

• 用户报虹桥机场打不通,小明过去抓了个包发现公共场所WIFI有很多限制 —— 网络可用性

•用户没问题了,但各种互联网公司事件让小A担心自己服务器电源也被挖掘机铲断 —— 后台高可用

1

 


来源:微信公众号(微信ID:声网Agora)

0
相关文章!