欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

[FMS]red5项目使用rtmp协议,且开启rtmpt,rtmps协议

shiping1 的头像

搭建RED5流媒体服务 RTMP流媒体 实现直播 可用jwplayer嵌入网页

分类: 直播服务 java 1020人阅读 评论(0) 收藏 举报

 

文章标题搭建RED5 流媒体服务器 使用RTMP流实现直播

 

 

真是曲径通幽处啊!(各种bug,各种google,各种英文)。

本文目的:告知那些搭建red5流媒体服务器,遇到种种问题的朋友。

建议:使用jdk1.6  red5 0.9版本(用jkd1.5和用red5 0.8会出现很多问题)

 

搭建环境(window xp、 jdk1.6 、red5 0.9)

red5 下载路径(请选择0.9版本):

http://red5.org/downloads/red5/

http://red5.org/downloads/red5/0_9/

JDK请选择:1.6.0 _01_r2

 

安装red5 :

1、设置ip为 127.0.0.1(可自选)

      设置端口80(可自选)

2、配置好jdk环境变量后,需要设置 RED5_HOME 值为 C://RED5(根据自己安装目录选择)。

3、运行RED5.BAT(有异常可能是环境变量的问题,请检查)。

4、打开http://127.0.0.1/installer  安装SOSample应用,重启red5.

5、打开Adobe Flash Media Live Encoder 3.2 软件(请自行下载http://www.adobe.com/cn/products/flash-media-encoder.html

     FMS URL 填入 :rtmp://127.0.0.1/SOSample(端口号可有可无)

     Stream填入:livestream

     勾选 video和audio ,驱动device选择安装的摄像头和音频设备,即可。

 

链接成功:

6、 打开FVPlayer.exe(下载地址:http://download.csdn.net/detail/qq540061627/4891205

      输入:rtmp://127.0.0.1/SOSample/livestream (端口号可有可无)点击 “播放” 即可(注意最后的 "/"斜杠 去掉)。

7、若想使用到网络可使用jwplayer播放器(下载地址:http://download.csdn.net/detail/qq540061627/4891365),指向rtmp流媒体,即可实现”直播“。

 结语:借助RED5流媒体和adobe技术的强大支撑,实现直播,竟如此简单。

             接下来,我们可以从google下载源码,自己部署到tomcat,并且可由自己的团队修改开发。

来自 http://blog.csdn.net/qq540061627/article/details/8299103


 

[FMS]red5项目使用rtmp协议,且开启rtmpt,rtmps协议

分类: 流媒体 439人阅读 评论(0) 收藏 举报

red5默认开启rtmp协议,但是有些网络环境限制此协议。
连接方式nc.connect( "rtmp://x.x.x.x:port/myapp");

rtmpt协议是封装了rtmp的http协议,可以穿透防火墙。
连接方式nc.connect( "rtmpt://x.x.x.x:port/myapp");

rtmps协议使用了https的安全连接。
连接方式nc.connect( "rtmps://x.x.x.x:port/myapp");

以下开启rtmpt方式:找到conf/red5-core.xml 文件,找到rtmpt.server的描述bean删除注释。

关键词:1111、1935、443、8080、80、rtmp、rtmpt、rtmps
首先 1111 是管理端口,就是 fms2_console 文件连接到 server 远程管理的时候需要用到的。

首先明确关系:
RTMP (默认端口: 1935)
RTMPT (http 隧道 - 默认端口:80)
RTMPS (https 隧道 - 默认端口:443)

nc.connect("rtmp://127.0.0.1:1935/myapp");
nc.connect("rtmpt://127.0.0.1:80/myapp");
nc.connect("rtmps://127.0.0.1:443/myapp");
rtmps 用得 很少...

看下面的代码:
fms_nc.connect("rtmp://127.0.0.1/test");
这行代码会自动尝试RTMP:1935 以及 RTMPT:80两种连接方式。
如果你想提高效率,指定端口来连接,那么就这样写:
fms_nc.connect("rtmp://127.0.0.1:1935/test");
这样它不会再尝试其他端口。

当然你会问如果要改成其他端口,在哪里可以更改:
C:\Program Files\Macromedia\Flash Media Server 2\conf\_defaultRoot_\Adaptor.xml
第42行修改为:<HostPort>:1935,443,8080</HostPort>
或者你想要的:<HostPort>:8080,80</HostPort>
如果你的server有多个IP:
<HostPort>XXX.XXX.XXX.XXX:1935, 443, 80</HostPort>
然后重启FMS(先Stop, 再Start),如果你的IIS或者web站点用了80,那么会抱错,更改端口为空闲的端口。

再说协议:
rtmp 全名为: real time message protocol
如果rtmp的连接方式失败(通常是防火墙阻止了该协议),那么flash 可以使用rtmpt协议来建立HTTP tunneling。
fms_nc.connect("rtmpt:/CuPlayer.com/test")
就可以连接成功了。

直接连接

防火墙关闭了1935,只允许80端口。那么此时你需要这么写:fms_nc.connect("rtmpt://ip:80/test")

防火墙允许1935,80端口。

服务器端我们如果可以控制,当然会尽可能的打开常用端口,当然也会允许rtmp协议。如果问题出现在客户端呢?看下图:

客户端只允许80端口,那么此时只有80端口可以连接成功。

极酷播放器CuPlayer.com总结:
鉴于客户端端口以及协议的不确定性,你需要准备好处理各种情况,思路如下:
1.<HostPort>:1935, 8080, 80</HostPort>
2.默认使用 rtmp 协议以及 1935 、8080、80来连接,尝试2次。如果仍然 failed ,那么使用 rtmpt 协议(HTTP tunneling)来连接。
//开始
fms_nc.connect("rtmp://127.0.0.1/test"); //会自动尝试可以使用的端口
//提示CuPlayer.com在onStatus 函数里面监测状态 如果连续两次 failed
fms_nc.connect("rtmpt://127.0.0.1:8080/test");
//提示CuPlayer.com结束

通过HTTP tunneling 建立的连接在传输视频的时候会不稳定,所以你要时刻监测nc的状况,如果断开要自动重连,简单的办法就是通过js刷新页面。

来自 http://blog.csdn.net/simongyley/article/details/8223603

 


 

普通分类: