<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

本文涉及的产品
转发路由器TR,750小时连接 100GB跨地域
简介:        使用red5和OBS搞出自己的直播平台来挑战bilibili(B站),为什么文章标题叫这个,其实我学习red5和fms方面的东西是很久了的,加上我最近借助flex,要开发一套医疗远程会诊的系统(web端的视频聊天)。

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


一、准备工作

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

    2 下载red5-1.0.6,下载地址:    http://download.csdn.net/detail/wk313753744/9374983

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

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

   


.二、安装说明

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的程序了,比如直播,点播,聊天等,共享对象的案例等。


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

:launchRed5
echo Starting Red5
"%JAVA_HOME%\bin\java" %JAVA_OPTS% -cp "%RED5_CLASSPATH%" %RED5_MAINCLASS% %RED5_OPTS%
goto finally
把上边%JAVA_HOME% 变量修改成C:\Program Files\Java\jdk1.8.0_05\bin\java 使用你jdk8的绝对路径。下面修改之后的配置文件。

:launchRed5
echo Starting Red5
"C:\Program Files\Java\jdk1.8.0_05\bin\java" %JAVA_OPTS% -cp "%RED5_CLASSPATH%" %RED5_MAINCLASS% %RED5_OPTS%
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了。



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

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

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


三、预览效果

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



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

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


最后大功告成欢迎访问我图片网站 http://lockbur.com/

目录
相关文章
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Found lingering reference异常 ERROR: Found lingering reference file hdfs://jiujiang1:9000/hbase/month_hotstatic/...
730 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
java链接MongoDB处理大量数据时经常碰到cursor not found 的异常,其实是超时所致 Exception in thread "main" com.
836 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
负载均衡: LVS(Layer 4), HAProxy(Layer 4、 7),Nginx(Layer 7) 虚拟化: LXC、KVM、Xen HA:Keepalived、Heartbeat 分布式缓存...
764 0
|
Web App开发 监控 前端开发
|
Web App开发 前端开发 算法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
import java.util.LinkedHashMap;import java.util.Map; /** * LRU (Least Recently Used)  */public class LRUCache e...
635 0
|
Web App开发 前端开发 关系型数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
云服务器 ECS > Linux操作运维问题 > 应用配置 > linux系统关闭IPv6的方式 linux系统关闭IPv6的方式 IPv6被认为是IPv4的替代产品,它用来解决现有IPv4地址空间即将耗尽的问题。
1053 0
|
Web App开发 Java Apache
|
Web App开发 前端开发 测试技术
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
ClusterId read in ZooKeeper is null. Re-running the program after fixing issue 1 will result in the following e...
816 0
|
Web App开发 算法 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
(1)直接插入排序 [java] view plaincopy /** 直接插入排序 **/   /** 数组是引用类型,元素值将被改变 **/   public static void insertSort(i...
708 0
|
Web App开发 前端开发 大数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
数据案例-蓝米手机的精准广告营销 2016-01-25 劲说 背景介绍:假设我是大米手机的数据分析师大傅,今天收到市场运营小旋同学的春节投放需求,在大米平台的DMP投放展示广告,做促销蓝米手机活动,投放预算是100万,同时悄悄告诉我,如果投放ROI超过2,她们市场运营总监设立奖励金额为(n-2)*1万的奖金。
735 0