时时彩计划

电子发烧友网 > 音视频及家电 > 正文

微信小程序音视频与WebRTC互通的技术思路和实践

2019年06月17日 16:18 次阅读

2017年腾讯视频云团队跟微信团队联合,将视频云 SDK 跟微信小程序整合在一起,并通过和 两个标签的形式开放内部的功能。通过这两个标签,开发者可以实现在线直播、低延时监控、双人视频通话以及多人视频会议等功能。

WebRTC(Web Real-Time CommunicaTIon),是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌收购 GIPS 公司而获得的一项技术,在 Chrome 浏览器上无需安装插件,通过 javascript 就可以编写实时音视频通话程序。

如果您跟我一样是一个实用主义者,那我就简单从实用主义角度说一下我的结论:小程序音视频搞定了手机,WebRTC拿下了PC。如果你对技术比较感兴趣,那我们就可以从多个技术的角度去列举两者的区别,下面是一张详细对比的表格:

小程序音视频是将腾讯视频云的 liteavsdk 嵌入到微信内部实现的,然后通过和 两个标签将 SDK 内部的音视频能力开放出来。所以小程序的标签起到了开发者 API 的作用,而内部的 SDK 则是真正用来实现音视频功能。

WebRTC 由谷歌收购 GIPS 得来(这里不得不提一下,我加入腾讯时所在的第一个团队就是 QQ 团队,当时 QQ 的音视频还是购买的 GIPS 公司的产品,不过由于各种不靠谱,后来就转为自研路线了)。所以其技术被完整的保留并且加入到了 Google 的 Chrome 浏览器内核当中。而且最近苹果也已经开始在 Safari 浏览器中支持 WebRTC 的相关能力。

小程序音视频的主要协议是目前在直播领域最为常用的 RTMP 推流协议,以及 HTTP-FLV 播放协议,这两种协议都已经有多年的沉淀而且在互联网上的资料也是汗牛充栋。WebRTC的底层则是使用RTP和RTCP两种数据协议,其中RTP主要用于音视频数据传输,而RTCP则一般用于控制。小程序音视频由于是微信统一实现的,而且微信团队每个版本都尽量要求功能对齐,否则宁可不上,所以在碎片化问题上基本不存在。

微信小程序音视频与WebRTC互通的技术思路和实践

WebRTC在这里则要尴尬的多,一方面Android系统的碎片化本身让WebRTC的具体表现呈现“百花齐放”的景象,同时,iOS 目前的内嵌WebView(也就是在微信等APP里打开的各种内嵌网页)不支持WebRTC也还是个很麻烦的问题。

小程序音视频跟随微信的版本发布,有什么问题一般是当前代码流修正,然后跟随下一个版本发布,所以一般一个功能点(比如给 pusher 加一个美颜的功能)或者一个问题点(比如不支持手势放大)从确立到最终实现(或解决)仅需要一个月的时间,而且微信APP新版本的覆盖速度也确实挺快。

相比之下,WebRTC则不是一个团队或者一家公司的问题了,因为它现在已经走标准路线,所以每一个新特性都是先确定标准,然后再推动浏览器厂商(包括苹果)进行跟随。这里面的故事就多了,时间也就更久了。相信您已经发现,在前面几个问题的分析上,我的观点都倾向小程序音视频。确实,在目前国内的移动领域里,谷歌和苹果都不能一家说了算,真正说了算的还是微信。

但是在桌面浏览器这个部分,Chrome目前在PC浏览器市场上留到地位的存在决定了 WebRTC 的优势就很大了,开发者可以在不安装插件的情况下就可以实现自己想要的功能。相比之下,由于没有 Chrome 的原生支持,所以如果我们要在 PC 上对接小程序音视频,就需要安装浏览器插件或者通过 wxlite://start 这样的伪协议唤起本地 exe 应用程序(类似在网页上打开 QQ 聊天窗口)。

小程序音视频和WebRTC支架并非零和博艺,双方都有自己的优势和不足,所以本着“打不过他们,就加入他们”的思路,腾讯视频云团队在2018年春节回来后,就马不停蹄地开始了小程序音视频和WebRTC互通的相关工作。

目前,需要向各位开发者汇报的是,在最新版本的微信中,小程序音视频已经可以跟WebRTC打通,目前在PC 的Chrome浏览器上就可以跟小程序进行实时音视频互通。就像结婚一样,既然你决定要选择另一个人作为人生下半辈子的伴侣,那你肯定会先深入地了解一下TA这个人,比如性格,脾气,爱好等各个方面。

同样,我们要想很好的将小程序音视频和WebRTC打通,那也必须要多了解一下WebRTC,这里我就说一下我对 WebRTC 这个“人” 在性格上的一些理解。

说WebRTC长得不好看,只是我的一种比喻,我的意思是想说WebRTC的学习成本不低,虽然Google做了很多浅显易懂的PPT来教你怎么 GetTIng Start,但真要完整的学进去,还是需要静下心来,慢慢地把她当成自己认可的目标去学下去。但是如果你是第一次恋爱(也就是第一次接触实时音视频),你会发现学习WebRTC的过程,本身就是了解一个实时音视频技术细节的过程。

说WebRTC喜欢迁就比人,也是一种比喻,WebRTC所支持的后台架构非常多(比如 Mixer, Mesh,Router),而且谷歌认为这些后台实现都比较简单,所以既没有开放后台相关的源码,也没有提供统一的后台解决方案。这种开放式的设计思路非常好,但副作用就是实现成本高。在真刀真枪的项目落地时,小规模的公司或者开发者就很容易被这种技术门槛挡在门外。尤其是想要将 WebRTC 真正应用到企业级解决方案中,面对录制和存档的刚性需求,就需要花费大量时间进行定制开发。

但是看过《新闻联播》里国家领导人之间谈话镜头的人都知道,这种翻译是会影响交流速度的。小程序音视频和WebRTC之间互通,中间引入一个翻译员,是不是通讯延时也就增加了?

其实不会,因为小程序音视频和WebRTC的视频编码标准在常规应用场景中是一致的,都是H.264标准,这是音频格式不同而已。这就意味着,翻译员要做的事情很少,两边基本都能挺对对方在说什么,所以延时不会增加太多。

微信小程序音视频与WebRTC互通的技术思路和实践

仅仅完成了音视频数据在小程序和WebRTC之间的握手还远远不够,因为在一次成功的音视频通话背后,不仅仅是把一端的音视频数据传递到另一端这么简单,还有状态的同步和成员间的状态协同。

比如多人视频通话中,涉及到呼叫和接通的流程,其中一方如果挂断了,其他人要收到挂断的通知。同时,如果有新的参与者加入,那么其他人也要收到相应的通知。WebRTC 中有很多组件,比如 RTCPeerConnecTIon 就在处理上诉林林种种的逻辑。但是 WebRTC 的接口中引入的新名词非常多,对于初学者来说还是有一定的入门门槛,为了简化这里的逻辑,我们引入一个叫做“房间”的概念。

所谓房间(Room),就是把同时参与视频通话的各方圈在一起的一个东西。比如双人通话中,通话中的两个人 A 和 B 就可以认为在一个房间中。再比如在多人通话中,通话中的五个人(A B C D E)也可以认为是在一个房间里。

有了房间的概念,那我们就可以对刚才说的状态协同用两个简单的动作描述一下:如果有一个人加入了视频通话,那么就可以理解为他/她已经进房(EnterRoom)了;如果有一个退出了视频通话,那么就可以理解为他/她已经离开房间(LeaveRoom)了。而房间的门板上始终写着:“目前在房间里有哪几个人”。

有了房间的概念,我们就可以将小程序的两个简单的和 标签,同 WebRTC 那一套复杂的 API 进行功能上的对齐,我们甚至不需要修改我们在第一版中定义的接口,就可以达成这个目标:原理如下:1) 的 url 接口不再传递 rtmp:// 协议的推流地址,而是传递 room:// 协议的推流地址。room:// 协议的使用方式可以参考我们的原理版文档DOC。;

2)标签在 start 成功之后,就相当于成功进入一个 room,之后,您可以通过 onPushEvent (PUSH_EVT_ROOM_USERLIST = 1020) 事件,收到房间里还有那些人的信息。在视频通话期间,房间内各个成员的进进出出,也都会通过这个事件通知给您的小程序代码;

3)ROOM_USERLIST 里每一项都是一个二元组(如果是 1v1 的视频通话,ROOM_USERLIST 里只会有一个人): userid 和 playurl。 userid 代表是哪个用户, playurl 则是这个用户远程画面的播放地址。您要做的只是使用标签播放这些远程画面的图像和声音而已;

4)在 WebRTC 这一端,您可以参考我们的 webrtc API,这套 API 相对于 WebRTC 原生的 API,更适合初学者使用。

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

环信语音连麦聊天室体验指南

2019年5月,环信音视频云2.0正式对外发布,同时新推出一款语音连麦聊天室的体验应用「TC」。该项...

发表于 2019-06-17 10:07 17次阅读
环信语音连麦聊天室体验指南

我国音视频技术引领智能视听时代

“我国基于第二代AVS音视频标准技术的应用达到国际先进水准,在坚持创新音视频编解码标准的同时,启动了...

发表于 2019-06-13 10:10 126次阅读
我国音视频技术引领智能视听时代

评估与测试体系是音视频通话技术的质量关键

腾讯音视频实验室于2016年成立,它专注于音视频的前瞻性研究,依托于QQ的海量平台,在音视频实时通讯...

发表于 2019-06-13 10:01 95次阅读
评估与测试体系是音视频通话技术的质量关键

英特尔开源WebRTC开发套件OWT 带来巨大的...

为抢占实时视频的巨大市场,英特尔开源了WebRTC开发套件,并将其命名为Open WebRTC To...

发表于 2019-06-05 10:43 671次阅读
英特尔开源WebRTC开发套件OWT 带来巨大的...

探讨视频实时交互发展的新突破

从模拟到数字、从MPEG到H.265、从SIP/H.323到WebRTC,实时互联网技术标准的演进,...

发表于 2018-11-30 14:16 957次阅读
探讨视频实时交互发展的新突破

WebRTC实时通信可以运用在哪些方面?8个新兴...

每个月,WebRTC大约进行数十亿分钟的日常实时视频和音频通话。一些大型应用程序使用WebRTC进行...

发表于 2018-10-03 12:42 1410次阅读
WebRTC实时通信可以运用在哪些方面?8个新兴...

使用FreeSWITCH将WebRTC视频会议流...

如果你对Web组件感到很满意,你就会马上意识到A-Frame的作用。现在,你可能会问为什么我沿着A-...

发表于 2018-09-06 17:19 1918次阅读
使用FreeSWITCH将WebRTC视频会议流...

WebRTC的独特性及WebRTC的未来

随着Safari 11的发布,苹果是最后一个将其浏览器与Edge浏览器兼容的公司。在这段时间里,We...

发表于 2018-08-15 14:53 863次阅读
WebRTC的独特性及WebRTC的未来

探讨下WebRTC可能将发生的变化

在我们讨论 WebRTC API 未来的变化之前,我们应该考虑它的实际应用。当我们在2011年构建 ...

发表于 2018-07-20 15:28 1225次阅读
探讨下WebRTC可能将发生的变化

即将降临 WebRTC的“冰与火之歌”

WebM项目提供了另一种编解码器,称为VP8,谷歌是在2010年收购On2技术时获得的。

发表于 2018-07-16 15:48 977次阅读
即将降临 WebRTC的“冰与火之歌”

深度解析工业级WebRTC应用实践

网易在音视频领域有10多年丰富经验的积累,在公司内部我们把自己的这一套工业级的功能完整的音视频技术方...

发表于 2018-07-13 17:56 1531次阅读
深度解析工业级WebRTC应用实践

周正宁:WebRTC+AV1将会是未来技术的风向...

在WebRTCon 2018期间,Aupera CTO周正宁接受了LiveVideoStack的专访...

发表于 2018-07-10 15:29 1605次阅读
周正宁:WebRTC+AV1将会是未来技术的风向...

张琰彬:视频质量自动化测试还有很长的路要走

在WebRTCon 2018期间,英特尔Intel Collaboration Suite for...

发表于 2018-07-06 15:49 1515次阅读
张琰彬:视频质量自动化测试还有很长的路要走

WebRTC未来的发展方向会走向哪里?

联络中心面临着比以往任何时候都更大的压力,要求它们对数字转型(DX)做出良好反应。联络中心面临的变化...

发表于 2018-07-04 10:20 1125次阅读
WebRTC未来的发展方向会走向哪里?

基于trendline滤波的评估模型

网络波动带来的卡顿直接影响用户的体验,WebRTC中设计了一套基于延迟和丢包反馈的拥塞机制(GCC)...

发表于 2018-05-29 08:52 3483次阅读
基于trendline滤波的评估模型

姜健:WebRTC与VP9优化的进展

LiveVideoStack对Google软件工程师姜健进行了采访,聊到了在Google工作的幸福感...

发表于 2018-05-16 09:41 1544次阅读
姜健:WebRTC与VP9优化的进展

WebRTC技术服务商:预测2018年WebRT...

也许对于大部分WebRTC的开发者而言,2018年将是忙碌的一年。主流浏览器和苹果官方支持,标准和A...

发表于 2018-01-16 12:51 2531次阅读
WebRTC技术服务商:预测2018年WebRT...

WebRTC的JitterBuff介绍

如果网络是理想的,即无丢包、无抖动、低延时,那么接收到一帧完整数据就直接播放,效果一定会非常好。但是...

发表于 2017-11-30 14:59 654次阅读
WebRTC的JitterBuff介绍

成立8个月估值过亿,轻松斩获千万天使轮融资,迪韵...

对大部分初创企业而言,融资是一个比较难的事情。来看看迪韵科技是如何通过自己的技术实力与产业价值承载,...

发表于 2016-08-10 11:09 1649次阅读
成立8个月估值过亿,轻松斩获千万天使轮融资,迪韵...

详解智能家居的控制系统工作原理

智能家居一直是科技行业很热门的应用,常被提到,但智能家居的中枢——智能家居控制系统(smarthom...

发表于 2015-10-22 10:18 4228次阅读
详解智能家居的控制系统工作原理

Imagination 推出全球最高品质的 We...

Imagination Technologies 发布创新的 WebRTC 媒体引擎,可为采用 We...

发表于 2014-04-28 15:14 1342次阅读
Imagination 推出全球最高品质的 We...

HDBaseT联盟参加中国2013国际视听集成设...

nfoComm China 2013(中国2013国际视听集成设备与技术展):HDBaseT联盟将于...

发表于 2013-03-25 14:29 656次阅读
HDBaseT联盟参加中国2013国际视听集成设...
友情链接:时时彩平台  盛世集团
echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo'' echo''