Red5学习日志一

来源:互联网 发布:足球球员数据 编辑:程序博客网 时间:2024/05/17 22:44

最近有项目需要用到流媒体播放,因为从来没有涉及过,所以调查之。

Google了一圈,发现一个JAVA开源的Flash流媒体服务器,名为Red5,于是动手下载相关包,开始搭建。

一、下载

Red5下载地址:http://www.red5.org/downloads/red5/

我下载的是red5-1.0.1.zip。

二、配置环境变量

下载完后,解压。

我解压到了D:\Program Files\red5-server-1.0,配置RED5_HOME环境变量到D:\Program Files\red5-server-1.0。

点击D:\Program Files\red5-server-1.0\red5.bat,应用可以正常启动,OK。

备注:如果你的不能启动,框是一闪而过,请用CMD去调试之,看看是不是TOMCAT的环境变量,或是JAVA的环境变量没有配置,也有可能是端口被占用,Red5的默认端口是5080。

如果你的TOMCAT可以点击BAT文件正常启动的话,那red5.bat应该可以启动成功。

三、着手第一个程序前的准备工作

首先你得有Eclipse或者其他的JAVA开发工具,然后下载Eclipse的Red5Plugin


Name: Red5Plugin 1.0.x (Eclipse 3.7+)
URL: http://www.red5.org/downloads/projects/red5plugin/update_1.0.x

四、码代码(这里是网上拷别人写得,后面我有补充及实际中遇到的问题,原文地址:http://blog.csdn.net/h407210874/article/details/22438835)

1. 在Server Runtime Environment里添加一个Red5 Server Runtime,
   添加过程和添加Tomcat服务器类似,这里略。
   
注意点:Red5 1.0.1版本在Red5的安装目录下有个red5-server-1.0.jar。
               而之前的版本在安装目录是red5.jar,实际上他们两个没什么多大的区别,
       但是因为截止到现在,官方给出的Red5Pulgin最新版本是针对Red5 1.0版本的。
       所以我要把red5-server-1.0.jar再复制一份,记住,是“复制”,且将名字改为red5.jar,
       否则Eclipse里不识别Red5,或者不要安装Red5 1.0.1版本,而安装Red5 1.0版本。

2. 新建一个Dynamic Web Project项目,其中将Target runtime指定为Red5 Server Runtime。

3. 将Red5安装目录下的lib和plugins文件夹下的jar包,
   以及red5-server-1.0.jar都添加到新建项目的Java Build path的Libraries里。


4. 将Red5安装目录下webapps\live\WEB-INF文件夹下的web.xml,red5-web.xml,red5-web.properties
    三个文件拷贝到新建项目的WEB-INF下。


5. 打开web.xml文件,将<display-name>节点的值改为新建项目的名字,
   将<param-name>webAppRootKey</param-name>对应的<param-value>节点的值改为新建项目的名字。
   
6. 打开red5-web.properties文件,将webapp.contextPath的值改为新建项目的名字。

7. 新建一个类,该类继承ApplicationAdapter,在这个类里可以编写我们的处理流程。
   重写connect方法,在里面追加一句System.out.println("Hello World");

8. 打开red5-web.xml文件,将web.handler的class指向以上新建的类。

9. 打开http://localhost:5080/页面,点击Demo链接,然后点击Shared Ball目录下的View demo链接,
   就会进入http://localhost:5080/demos/BallControl.html页面,
   将rtmp://localhost/SOSample中的SOSample改为新建项目的名字,
   然后点击Connect to Red5,也就是那个像链条的图标,如果那个5的图标颜色变成青色,
   并且在控制台上输出了Hello World,就说明我们第一个Red5项目的Server端代码实现了。

问题来了:1、我没有成功,直接报错:

java.lang.RuntimeException: Failed to load webapplication context class. at org.red5.server.tomcat.TomcatLoader$1.run(TomcatLoader.java:579)
Caused by: java.lang.ClassCastException:
org.springframework.web.context.support.XmlWebApplicationContext cannot be cast to org.springframework.web.context.ConfigurableWebApplicationContext at org.red5.server.tomcat.TomcatLoader$1.run(TomcatLoader.java:577)

继续Google之,解决方法:到Red5安装路径的webapps目录下面,然后进入 你的项目的WEB-INF/lib目录,将里面的所有的jar包删除


再重启服务,按照9的步骤进行测试,发现可以正常打印出来“Hello World”。

但是会接着报

org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - Action _error异常,这个暂时不知道是什么原因,有知道的麻烦说一下。


0 0