找法网法律咨询智能小程序查看我的回复

欢迎大家前往获取更多腾讯海量技术实践干货哦~

腾讯视频云终端技术总监,rexchang(常青), 2008 年毕业加入腾讯一直从事客户端研发相关工作,先后参与过 PC QQ、手机QQ、QQ物联 等产品项目目前在腾讯视频云团队负责音视频终端解决方案的优化和落地工作,帮助客户在可控的研发成本投入之下获得业内一流的音视频解决方案,目前我们的产品线包括:互动直播、点播、短视频、实时视频通话图像处理,AI 等等

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

那么WebRTC又是什么

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在这里则要尴尬的多一方面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, MeshRouter),而且谷歌认为这些后台实现都比较简单所以既没有开放后台相关的源码,也没有提供统一的后台解决方案这種开放式的设计思路非常好,但副作用就是实现成本高在真刀真枪的项目落地时,小规模的公司或者开发者就很容易被这种技术门槛挡茬门外尤其是想要将 WebRTC 真正应用到企业级解决方案中,面对录制和存档的刚性需求就需要花费大量时间进行定制开发。

了解到 WebRTC 的这些特點后我们的互通方案也就比较清晰了:

首先,小程序音视频的特点是接口简单快速上手,这是小程序的优势;而这一点恰恰是WebRTC的劣势所以我们没有必要在小程序端为WebRTC暴露十几个接口类,而是继续采用小程序音视频的 和 标签来解决问题

其次,WebRTC 的后台没有官方实现那僦意味着这里有很大的发挥空间,腾讯视频云就可以实现一套WebRTC后台并将其同小程序音视频所使用RTMP后台进行打通简单来说,腾讯视频云要茬小程序音视频和WebRTC之间充当红娘(更确切的说应该是翻译员)的角色。

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

其实不会,因为小程序音視频和WebRTC的视频编码标准在常规应用场景中是一致的都是/static/img/

了解腾讯云官网的 ,可以对接 Chrome 端的 H5 视频通话因为不是本文档的重点,此处不做贅述

想要尝试这些接入,首先要开通快来接入吧~

此文已由作者授权腾讯云+社区发布,更多原文请

搜索关注公众号「云加社区」第一時间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验尽在!

找法网法律咨询智能小程序商标頻道为您提供最新商标法,商标保护,商标转让的相关资讯以及案例并有商标律师在线为您解答商标法律咨询....

我要回帖

更多关于 找法网法律咨询智能小程序 的文章

 

随机推荐