使用七牛云快速搭建直播服务

2016,直播很火。各大公司都推出了自己的直播平台,直播行业风生水起。不光传统的游戏、体育教育行业有了直播,连淘宝也有了购物直播。大型公司各种基础设施都比较齐全,搭建一套直播平台自然不在话下,但是如果普通企业,想自己搭建一套完整的直播平台,并不是一件容易的事,也不太现实。

互联网的精神在于分享和协作。并不是每件事都需要自力更生,亲力亲为,比如要搭建一个普通企业门户网站,你可以从github 上下载开源 cms ,然后部署到从 xx 云购买的服务器上就行了。很多事情,已经有人帮你做好了,直接付费使用就行,大多数情况下,这都是非常明智的做法。

直播也是一样,七牛,又拍等服务商都推出了直播解决方案(包含直播、水印、美颜、连麦等各种常用功能),通过使用这些服务,可以快速的搭建自己的直播平台。

先看看直播类产品的基本架构:

我们需要关注的是采集端和播放端主要逻辑:

采集端:

播放端:

下面,我以七牛直播云为例,完成一个从采集到播放的例子:

1.在七牛后台创建一个直播空间,按照提示一步步填写即可,这里不多赘述

2.直播空间创建好后,会得到一系列直播域名,按提示到域名提供商的后台配置好cname域名后,准备工作就完成了

live-domains
live-domains

3.创建一个直播流,也就是通常意义上的“房间”,我用的是七牛提供的PHP直播 sdk

当然也可以在七牛后台“直播空间->直播流管理”里面手工创建直播流。直播流创建成功后,会得到一个直播流 id,形如z1.aiddroid.room-100000000-1

<?php

//创建直播流

define('QINIU_ACCESS_KEY', 'FuLBHI4-*****************');
define('QINIU_SECRET_KEY', 'qAcW9jJFReC2JZv-*******************');
//直播空间名
define('QINIU_PILI_HUB', 'live-aiddroid');

$credentials = new \Qiniu\Credentials(QINIU_ACCESS_KEY, QINIU_SECRET_KEY);
$hub = new \Pili\Hub($credentials, QINIU_PILI_HUB);

//房间名
$title = 'room-100000000-1';     // optional, auto-generated as default
$publishKey = NULL;     // optional, auto-generated as default
$publishSecurity = NULL;     // optional, can be "dynamic" or "static", "dynamic" as default

$stream = $hub->createStream($title, $publishKey, $publishSecurity); # => Stream Object
$data = json_decode($stream->toJSONString(), true);

4.查询直播流信息

<?php
//查询直播流信息

define('QINIU_ACCESS_KEY', 'FuLBHI4-*****************');
define('QINIU_SECRET_KEY', 'qAcW9jJFReC2JZv-*******************');
//直播空间名
define('QINIU_PILI_HUB', 'live-aiddroid');

$data = [];
//直播流 id
$streamId = 'z1.aiddroid.room-100000000-1';

$credentials = new \Qiniu\Credentials(QINIU_ACCESS_KEY, QINIU_SECRET_KEY);
$hub = new \Pili\Hub($credentials, QINIU_PILI_HUB);

//直播流信息
$stream = $hub->getStream($streamId);
$data = json_decode($stream->toJSONString(), true);
//直播推流 url
$data['rtmpPublishUrl'] = $stream->rtmpPublishUrl();

5.上面得到的rtmpPublishUrl即是直播推流 url,这个 url 也可以在七牛后台“直播空间->直播流管理”里面找到。把它配置到直播采集软件里,即可进行直播。这里,我使用的是 Android 平台下的 Larix Broadcaster直播app做演示,该软件也有 iOS 等其他平台版本。当然,你也可以使用其他类似软件

broadcaster-screenshotbroadcaster-setting

6.直播软件配置好后,需要配置直播播放页面,我使用的是 videojs这款开源的 HTML5 & Flash 视频播放器,把相应的直播播放url 配置到页面上即可,这些 url 可以在七牛后台“直播空间->直播流管理->直播流信息”里面找到,你也可以按照规则,自行拼装,这里是我的示例页面

RTMP:rtmp://pili-live-rtmp.aiddroid.com/live-aiddroid/room-100000000-1
HLS:http://pili-live-hls.aiddroid.com/live-aiddroid/room-100000000-1.m3u8
FLV:http://pili-live-hdl.aiddroid.com/live-aiddroid/room-100000000-1.flv

7.直播播放页面配置好后,就可以在上面提到的Larix Broadcaster里面点击红色按钮开始直播了!直播开始后,在直播播放页面上就能看到。下面是 Safari 中的直播效果

broadcast-screenshot
broadcast-screenshot

8.至此,从创建直播流,直播采集,直播播放的直播核心流程已经完成。剩下的就是专注自己的业务需求,完成剩下的工作。比如,开发直播礼物系统等等。

 

%1 $ S

发表回复