你应该自己搭建整个WebRTC架构呢?还是应该尝试使用供应商的服务?希望本篇文章能够帮你决定。
作者:Chris Kranky(原文链接)
翻译:刘通
随着移动视频直播软件的兴起,很多开发者急于想在他们的新产品中加入自己的视频功能。如果你想自己搭建一个多方视频直播软件,那么你最终很有可能就会用到WebRTC。
但是问题来了,你是应该全部靠自己呢,还是使用WebRTC平台供应方的技术呢?
一对一通信
对于简单的一对一通信,像“Facetime”这样的视频通话可以使用WebRTC P2P功能轻松的实现。说实话,你应该可以自己搭建整个结构。并且有了新的iOS Cocoapod可以将WebRTC“塞到”你的移动端软件中,让整个工作变得更容易。
但是你还是需要信令来连接各视频参与方,这就意味着你需要信令服务器。其决策和部署都是你必须独自完成的。你还必须将TURN服务器考虑进去。如果你需要任何形式的使用报告和错误报告,你可以在你的客户端代码中订阅Callstats.io.Pop adapter.js,希望在所有种类的浏览器中都能全天候工作。
但是,这些原因也许会说服你考虑使用平台供应方的服务。如果上面说的任意一项你觉得有些困难的话,那么买WebRTC服务也许是你应该考虑的。平台供应方的职责就是将上一段说的所有工作变得简单—而且还会提供产品给你—完备的iOS以及安卓版本的移动SDK。
你应该期待平台供应方有全天24小时的全球范围的技术设施,并且能满足你以后大量工作的需求。
最终,不要忘了查看一下他们的devops工具。你可以提取出哪些实时数据?活跃信息的日志?错误报告?是的,这是他们的平台他们的技术,但是软件和用户是你自己的,所以遇到问题他们还是会找你投诉。
多方视频
多方视频有多个讲述人和多个观看人。相比于一对一通信,多方视频好像瞬间就变得难了很多。WebRTC的网格连接需要你的PC或者移动设备对每个连接进行管理,而且这项任务是由你的app程序代码来完成。由于网络及设备自身的限制的原因,每个设备差不多只能同时处理3个或者4个参与者。
如果你需要自己的多方视频能够像Google Hangouts一样稳定地工作,你就需要选择发送单元(SFU)或者多点控制单元(MCU)来管理视频流。如果这两个单元你听起来就像是政府秘密组织的名字一样,我劝你还是去购买WebRTC平台提供商的服务吧。现在我针对SFU来谈一谈。
SFU就像是一头野兽,十分的复杂,大致来讲SFU是一个WebRTC的视频路由器,通常是处在云端的。在Hangouts的5方通话中,SFU接收5个输入视频流,但是会发送20个备份给所有的视频参与者(每人会收到4份)。输入输出一共有25个视频流。如果你的平台目前有100个正在同时进行的5方通话,那么你的SFU就需要同时路由2500个视频流。
能够处理大量的视频流肯定是你在选择供应方之前需要考虑的事情。Tokbox已经部署了他们自己的SFU云技术,Twilio准备在其云基础上部署Kurento,Vidyo目前已经上线了他们的Vidyo.io服务,还有其他的一些供应方也可以提供。
API
对于每个平台提供商,都要自己检查他们提供的API,阅读他们在GitHub上更新的资料,查看他们的示例代码以及SDK。你绝对需要搭建一个示例应用软件。如果你不能用他们的API在一小时之内自己建一个简单的小软件,那么这个平台提供商可能就不适合你。如果他们的API乱做一团,那么他们的整体平台也很有可能是同样杂乱的。需要多多询问关于他们基础架构的问题。
让我来列举一个数据,如果你不能够拥有每个月至少一百万分钟的通话量,那么你应该立刻考虑使用WebRTC平台提供方的产品。我见过太多初创公司把他们的全部精力都放在后台开发上,但是他们真的应该将精力集中在应用软件本身上。掏钱给提供商买现成的技术,然后把注意力投在应该投的地方上—应用本身。
移动端
如果你的应用只是在移动端上运行的,如果你在后台开发没有占用太多的时间,你还应该致力于移动端SDK工作上。网上有很多开源的模组,但还是,至于WebRTC,你需要全部自己做工作来使其保持最新的状态。这是直接购买WebRTC平台的好处之一,让上面说的这些成为他们的噩梦,而不是你自己的。
当开发移动应用时,测试往往是最痛苦的事情。安卓有数以百计的不同的硬件,足够你夜以继日的挨个测试了。现在没有哪个模拟器可以覆盖全部情况。除非你准备好在实验室购进全部主流型号的安卓手机,有能力精力自己测试,否则购买技术是更好的选择。在这一方面iOS全面获胜,因为它没有像安卓那么多的设备(这也是为什么很多开发者通常从iOS着手的原因)。
总而言之
尽管WebRTC的核心代码是免费的,但是开发应用可不是免费的。如果一个WebRTC平台提供商的产品符合你所需要的特点及功能,你最好选择购买他们的产品,否则你会遇到一大堆令人头疼的问题。成本优化是你做大之后会考虑的事情。我永远会选择将精力放在大有势头的应用上。
以上节选于Chris Kranky的博文Build vs Buy Your WebRTC Services
声网Agora.io的介绍
声网Agora.io于2014年在硅谷创立,是全球实时云开创者。它为开发者提供稳定、高可用、有QoE质量保证的实时通信服务。一个SDK,一整套API,4行代码就能让开发者以最低成本,实现高质量的音视频通话和多人连麦的全互动直播能力。基于互联网不是为“实时”而设计的痛点,声网Agora.io开创性地在全球部署了虚拟通信网SD-RTC (Software Defined Realtime Network),有近100个数据中心。同时通过智能路由和Last mile算法,从根本上解决实时传输问题,为开发者7*24小时高质量保证的跨国跨网通话,全球端到端延迟平均仅76ms。声网SDK支持iOS、Android、Web、macOS、Windows。
声网Agora.io技术团队90%为全球技术工程师,聚集了全球实时通信行业的顶尖科学家,包括苹果Apple视频核心算法架构师、Vidyo产品负责人、Polycom工程总监等,平均行业经验达10年以上,团队有年服务数千亿分钟音视频通话经验。
目前,声网Agora.io的实时API连接了全球数亿终端,服务客户有阿里、小米、陌陌、联想、金蝶、Talkspace等。