使用WebRTC的直播流

作者:Aleksandra Dikusar(原文链接

翻译:刘通

原标题:Live Streaming Using WebRTC

现代互联网的一大流行趋势就是将你的生活与其他人分享。不管你是在读新闻还是在看音乐视频,你很有可能会想把它通过社交网络分享出去。高速且低价的宽带网络连接让一种新兴的人际交流形式得以出现—视频流直播。像Twitch视频流直播平台以及Periscope这种移动端直播流应用最近变得异常火热。

streaming1

原因是用户想要参与到全球任意一个地方的事件中去。那么一个新的问题就出现了:“实现流直播平台的最好的技术是什么?”为了帮助你回答这个问题,我们准备使用WebRTC技术来创建一个视频流应用。

用WebRTC做视频直播流值得吗?

WebRTC给开发者提供一个简单的API来实现网页以及移动应用的视频通话功能。这个功能最近被所有的主流浏览器所支持,比如Firefox,Chrome,Opera(译者注:以及Safari),并且可在主流移动平台上使用:安卓和iOS。

你可以将WebRTC视为允许实现实时通信的一系列协议,可以创建视频交流软件以及端到端视频流应用。现在让我们来讨论一下WebRTC作为p2p流软件核心技术的主要优势。

第一,用户不需要下载安装任何第三方软件。WebRTC是浏览器的一个特性,所以只要浏览器支持这种技术,用户的设备就完全可以运行基于WebRTC的应用。现在已经很难找到有什么现代浏览器不支持WebRTC了。甚至苹果公司也不能继续无视这个快速流行的技术,已经宣布从Safari 11开始支持WebRTC。因为它对带宽的要求较低,所以移动端用户也会感到很开心。还有,WebRTC也可以与服务器及云端进行连接,这样可以带来更快的连接速度。因为WebRTC不像Flash那样要求安装插件,所以可以允许使用原生HTML 5元素开发通信工具。

即使创建一个广播服务并不是你计划的一部分,WebRTC还是值得你关注的。这项技术通过提供额外的人际交流方式可以给任何社交媒体极大的增加吸引力。举个例子,在Periscope集成入Twitter应用不到一年的时间里,这个公司宣布有1亿的广播开始使用直播流特性了。

根据现在饿数据来看,到2019年会有超过60亿的设备支持WebRTC技术。我们会看到这项技术不仅仅会出现在移动设备上,还会看到出现在WiFi摄像头等等设备上。端到端加密以及p2p特性可以保护信号不会被人为因素或者服务器所窃取。用户可以通过浏览器接入并控制视频设备。像VP8这种免费的视频codec会降低开发成本。这种好处可不会被开发者忽视。举个例子,你可以看看使用WebRTC搭建的家庭安全解决方案,比如NodeLink和Camio。在娱乐方便也是这样。想象一下如果你在直播平台看你最爱的乐队演出时可以随意切换摄像头视角,是多么好的一件事啊!

在2012年的时候Google Hangouts应用中就有了分享看到的场景这个概念。开发者做了一个功能,可以允许在一个通话中的用户共同观看一个YouTube视频,并且还能同时看到对方。从那时起,这个功能就十分流行了。WebRTC这种技术可以让开发者的精力集中在用户体验上而不是媒体流本身,因为API就会处理好媒体引擎的相关工作。

现在让我们来通过几个例子来说说你应该如何实现WebRTC直播流功能。

使用WebRTC实现P2P视频流直播功能

在此章,我们要来看一看一些直播流选项是什么样的。每个解决方案都是可伸缩的,所以你既可以将其广播到很大的观众群也能广播到小的观众范围中。

streaming2

WebRTC多对等端方案,指的是搭建一个WebRTC观众客户网络,每个对等端都可以将视频流传送给其他三个对等端。所以,你可以将原始视频流传给第一个对等端,它会复制给其他三个端,然后又会复制给九个端点,如此依次进行传递。这种方法允许在不需要服务提供者网络的额外空间的前提下就可以创建一个可伸缩的广播网。

streaming3

基于流的WebRTC对于较慢网络连接的情况下可以提高服务性能。这种方法将每个对等端都连接到两个其他的对等端用来复制数据流。网速较慢的用户可以作为独立端点加入到这类网络中去。

streaming4

对多对等端的WebRTC中继节点。这种方法可以使用MediaStream和PeerConnection API开发一个职业等级WebRTC直播流平台。通过用来表现控制和信令的中继器和socket.IO,它可以用来建一个可伸缩的广播方案。关键点是发布者要以高上行和下行带宽将原始视频流传递给中继点。中继点需要能够处理留个输出流,所以留个观众可以连接到同一个中继点。举个例子,这个方案可以只用4个中继点处理24个观众。通过增加中继点的个数,你就可以将你的广播平台扩大到适合大量观众的情况。

总结

WebRTC技术因为用户使用简便,以及对于程序员来说开发的方便性,快速发展。但是在WebRTC直播视频流领域,更重要的是可以通过WebRTC可以搭建一个可控制大小的广播网以适应各种使用环境。WebRTC可以帮助你减少不不要的投入,并且可以在低速网络连接的场景中正常工作。

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营