IBigerBiger的成长之路

移动端直播开发(一)直播服务器搭建

对于2016年,毋庸置疑的是直播年,在这样一个大环境的推动下,我想作为一个开发者,不对直播相关的内容去做了解与涉猎肯定是说不过去吧,所以这一篇就作为直播相关开发的启篇。

工欲善其事必先利其器,对于直播开发,肯定是需要采集视频源,然后把视频推流到服务端,本地在进行拉流播放的流程。所以这个过程中,我们需要首先来把服务端这个中间环节的工作搞定,后续再弄推流和拉流功能。现在推流大部分都是使用RTMP/HLS协议,接下来我们看下这两个协议的区别


图1 协议区别

RTMP是主流的直播传输协议,延迟低,可用于pc和移动端;HLS就是专门为适应苹果的一种直播协议,但它的延迟比RTMP要高,在移动web端一般采用HLS协议。

对于流媒体服务器,选择性很多,接下用一张图展示下主流的流媒体服务器


图2 流媒体服务器

对于做客户端的我们来说,其实选择那种都可以,因为这个其实并不在我们的工作范围里面,我这边选择的是Red5,这是纯java开发的,并且他的搭建相对来说还是比较简单的,so,开始我们的Red5服务器搭建吧

一.Red5服务器搭建

1.下载Red5

首先我们需要下载最新版本的 red5 服务器

下载页面地址如下:
https://github.com/Red5/red5-server/releases

找到最新的版本下载,如下


图3 Red5服务器下载

当然,我相信你是下载不下来的,因为我下载也是下了好久

so,这里有别人传到CSDN的版本,虽然不是最新的,但是whatever

下载好以后找一个合适的位置解压

2.配置环境变量

在 文件 ~/.bash_profile(如果没有请创建) 内部 添加一行,设置 RED5_HOME 变量,变量值就是你的 red5根目录路径,如下

首先打开.bash_profile

1
open -e .bash_profile

然后添加red5根目录路径


图4 添加路径

保存并关闭更新刚配置的环境变量

1
source .bash_profile

3.启动Red5

cd 到 red5根目录下执行 ls 命令查看一下 ,会看到几个.sh 后缀的文件
如下


图5 red5根目录

其中:

red5.sh 是用来启动 red5服务器的
red5-shutdown.sh 是用来关闭red5服务器的

执行脚本

1
sh ./red5.sh

接下就看到服务器启动起来了,如下


图6 red5运行

打开浏览器,输入http://http://localhost:5080/ 回车
出现如下页面表示启动成功


图7 red5运行成功画面

服务器到这里就已经搭建完毕了,接下来就是让Red5服务器完成转发的任务

二.Red5服务器转发功能


看成功界面会有一个Launch a demo,这些demo都是Red5提供的,这些demo呢,我们通过csdn下载的版本其实已经包含在里面了

点击后可以看到如下的界面


图8 Red5Demos

这里的Publisher就是我们需要的Demo了,Publisher是用于采集视频数据推流的

打开如下


图9 Publisher

这里首先将Location里面的链接中的localhost替换成我们本机的IP地址,然后Connect,接下来点击Vedio选择Vedio Device,一般我们都是用的电脑打开这个界面,所以选择笔记本或者其他内置摄像头,点击Start,最后点击上方的Publish就可以将摄像头采集的数据上传了。

数据上传后自然要拉流验证,拉流可以用VLC,至于VLC是什么,自行谷歌,

打开VLC如下


图10 VLC

选择Open NetWork,输入链接为Publisher中的Location+Name

运行,稍后如下


图11 VLC运行成功图

到这里我们就看到了Red5流媒体服务器转发功能成功了

写在后面的话

直播服务器相关到这里就结束了,其实相关的东西并不多,而且只要安装结束后,在整个的直播开发中就不用在做操作了,那么下一篇文章就是对于手机端数据源相关的采集,以及编码相关,peace~~~~