首页 » Linux » 正文

RTMP+HLS+SRS+OBS搭建网络直播平台

如今随着互联网行业发展,游戏产业发展,网路直播变得越来越热门。网络直播不光能转播赛事文艺节目等现场表演,更能通过个人电脑以及音视频采集工具实现个人面向多人的广播功能。如今的大数据时代,大水管时代,使得直播的门槛变得越来越低。

从最早的YY,到现在斗鱼、龙珠、战旗、虎牙、熊猫全民等游戏直播平台,一大波直播平台逐渐走进了用户的视野。

于是今天我通过自己尝试搭建一个建议的网络直播平台来探究一下网络直播的奥秘。

一、 RTMP

网络直播最重要的就是流媒体,也即是数据传输采用的协议。这边我使用了一种比较传统,也是应用的十分广泛的协议RTMP。RTMP(Real Time Messaging Protocol),中文叫实时消息传送协议。这个协议是属于Adobe公司开发的。该协议定义了一种Flash播放器与服务器之间的音频视频数据传输解决方案。

目前主流直播平台大多采用了该协议,故而本文也不例外。

二、实现流程简述

RTMP实现两个主要功能,一个是数据采集,一个是数据播放。

数据采集过程如下:

Client→Server :发送一个创建流的请求.
Server→Client :返回一个表示流的索引号.
Client→Server :开始发送.
Client→Server :发送视音频数据包(这些包在同一个频道(channel)并用流的索引号来唯一标识).

数据播放过程:
Client→Server:申请获取流的数据

Server→Client:发送数据包

数据的采集和播放时同步进行的,如此实现直播功能。
三、RTMP服务器(RTMP Server)的搭建

首先,RTMP协议需要服务器支撑。Adobe为实现自家RTMP功能开发了一款叫Flash Media Server[1] 的系统来作为服务器支持,使用该FMS可以方便的实现直播。但该软件是需要付费使用。

除了FMS以外,还有很多RTMP Server可供选择[2]。我选了一款开源的国产的RTMP Server,叫做Simple RTMP Server[3],根据该软件的文档很快在服务器上安装好了一个RTMP Server。

四、直播源的连接

如今业内公认的最好用的直播软件OBS,根据教程进行简单的配置,就可以将电脑上的数据发送到服务端,实现直播源的搭建。

例如: FMS URL填写 :rtmp://aduil.com:1935/live

串码流填写: liuda_live_room

五、播放平台的搭建

最后一步就是实现直播内容面向观众。

搜索了一下支持RTMP的网页播放器[5],由于RTMP是基于Flash的,故而HTML5是不能胜任的,必须是基于flash的网页播放插件才能实现。

我测试了ckplayerjwplayer 。只需要将上述的完整地址 rtmp://aduil.com:1935/live/liuda_live_room 作为视频源即可在线播放。

再完善一下网页播放和互动界面,一个网络直播平台就初见雏形了。

六、移动平台的支持

移动平台,Android和IOS均支持HLS,故而需要给移动设备适配HLS流。
https://github.com/ossrs/srs/wiki/v2_CN_SampleHTTP
将视频流转发为HLS可以支持移动设备的播放,
至于前端代码,原生HTML5的video标签足矣:
最后再根据浏览器UA对移动设备和PC端分别进行处理即可。

参考:

[1] http://www.dingwei.cn/blog/?p=67

[2] http://blog.csdn.net/avsuper/article/details/8446370

[3] https://github.com/ossrs/srs/

[4] http://www.qcloud.com/wiki/OBS%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E

[5] http://blog.csdn.net/leixiaohua1020/article/details/43936415/

[6] http://my.oschina.net/jerikc/blog/476951

本文共 2 个回复

  • Kill 2016/09/02 00:28

    I’ll immediately grab your rss as I can’t find your email subscription link or e-newsletter service. Do you have any? Please allow me realize so that I may just subscribe. Thanks. http://yahoo.co.uk

    • 刘大 博主 2016/09/26 09:56

      @ Kill Sorry , I haven't build any subscription yet.

发表评论