使用red5和OBS搞出自己的直播平台来挑战bilibili(B站),为什么文章标题叫这个,其实我学习red5和fms方面的东西是很久了的,加上我最近借助flex,要开发一套医疗远程会诊的系统(web端的视频聊天)。所以我对流媒体使用和环境搭建,还有客户端开发都已经很熟悉了。笔者混迹于B站多年(我大概是是2012年使用哔哩哔哩的,那时候只有弹幕,没有游戏和直播之类的东西),我之前是打算去面试B站做视频直播这块带头人的。可惜我那时候打听的时候人家不做直播方面的考虑。后来我就自己去开发一套图片网站,图片网站毕竟带宽不是很大 不挣钱的情况我还可以承受。所以今天来写个博客就是教大家自己搭建一个自己的专属直播平台,这样子就不怕哔哩哔哩封你房间什么,前提你是会自己技术,服务器管理。会Java flash等啊。不会的也可以问我。

一、准备工作


    1  在你电脑上安装jdk1.8 。我提供的这个red5必须使用jdk1.8,要不然不能运行


    2 下载red5-1.0.6,下载地址:    

    3  就是去下载OBS(open broadcast software), 

    4 你要能看见效果,你还需要准备一个flash播放器。

    

ob添加索引 obs怎么添加来源_直播平台

.二、安装说明

1 安装jdk

2 安装red5-server-1.0.6,首先确保你已经下载好了red5-server-1.0.6.zip,解压

(1 ) 进入到red5-server-1.0.6目录,看起是这样子的。因为新版的red5不在使用jetty作为内置服务器,而是使用tomcat(1.0.6使用的tomcat8容器的),所以看起来tomcat的目录结构很像,conf存放就是一些配置文件,我们主要修改是conf/red5.properties,根据自己需要修改端口号,log是日志目录,webapps下,就是你自己开发的red5的程序了,比如直播,点播,聊天等,共享对象的案例等。


ob添加索引 obs怎么添加来源_red5_02

( 2 ) 在启动red5,我们需要注意一点。如果你系统中的环境默认安装时jdk8,那么你不需要调整,直接进入下一步骤,但是如果你安装了其他版本的jdk,比如常见的jdk1.7.*。那么你就必须修改你red5使用的jdk是jdk1.8以上,找到red5.bat,用文本编辑工具打开,找到32行。





1. :launchRed5  
2. echo Starting Red5  
3. "%JAVA_HOME%\bin\java" %JAVA_OPTS% -cp "%RED5_CLASSPATH%" %RED5_MAINCLASS% %RED5_OPTS%  
4. goto finally


把上边%JAVA_HOME% 变量修改成C:\Program Files\Java\jdk1.8.0_05\bin\java 使用你jdk8的绝对路径。下面修改之后的配置文件。




1. :launchRed5  
2. echo Starting Red5  
3. "C:\Program Files\Java\jdk1.8.0_05\bin\java" %JAVA_OPTS% -cp "%RED5_CLASSPATH%" %RED5_MAINCLASS% %RED5_OPTS%  
4. goto finally


(3) 启动red5。在window中双击red5.bat 。即可启动。在linux上双击red5.sh,但是在linux中为了不是交互式模式运行,你启动的red5-highperf.sh。这个经过参数优化过的。也可以后台运行。

以上服务器环境就准备好了,下面开始介绍obs怎么发送视频流到red5服务器上,

二、OBS发布流到Red5服务器,

(1)打开OBS客户端,安装什么的我就不讲了。主要有两个地方FMS URL和播放路径/串流码(如果存在)。

FMS URL:  rtmp://127.0.0.1/live

播放路径/串流码(如果存在): test 

注:播放路径/串流码(如果存在)在OBS意思就是playPath。 在red5你理解为一个流名字(streamname)。随便取一个就是了,然后在你播放该流地方制定你现在取得这个名字,我这里就是test了。


ob添加索引 obs怎么添加来源_obs_03

(2)OBS设定点击确定之后,回到OBS主界面,在来源区域右键,添加-》显示获取。这样就创建了一个捕捉源,当然也可以使用摄像头作为捕捉源。

(3) 为了保险起见,你如果是第一次使用OBS,那么你应该点击预览串流。看看效果

(4)点击开始串流,就会把你视频流发布到Red5服务器。这里顺便说一句,这里开始串流就跟flash或者flex中的NetStream中publish()方式是一样。

三、预览效果

就是使用rtmp协议来播放你发布的视频流. 我用red5自带的这个案例来播放流,之前那个用自己开发一个flex程序播放是一样的。


ob添加索引 obs怎么添加来源_obs_04

主要有两个地方需要需要修改,就是Location中路径要跟你OBS的FMS URL一直,而且你RED5服务器上要有live这个程序,我给你下载red5压缩包中是有的。

第二个就是修改Name 为test,然后点击Play就可以播放了。