前言
项目中需要使用流媒体服务,经过同事建议,使用red5开发流媒体服务器。但red5现今是直接将项目集成到自己的tomcat的服务器中。服务与项目不分离,我们需要将项目独特出来,特此研究red5独立并放在我们项目的tomcat中。
red5我使用的是red5-1.0.0-RC1版本。官网已找不到下载地址,所以本人上传到CSDN上:http://download.csdn.net/detail/u013569416/9382654
准备工作:
- 解压red5-1.0.0-RC1.zip 为 red5-1.0.0-RC1 并解压里面的src.zip 为目录src
- 在eclipse下创建web工程,名称自取,我的为myRed5Test。
- 把red5-1.0.0-RC1下lib拷贝到web-inf下lib
- 拷贝src下org目录到red5工程下src下
- 拷贝src下conf下war下的配置文件到red5工程src下
配置文件修改
把red5-core.xml文件下的”@”符号全部用”${}”符号,并引入red5.properties
<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="red5.properties" /> </bean>
在red5.properties的#rtmp下增加以下代码
rtmp.event_threads_core=16
rtmp.event_threads_max=32
rtmp.io_threads=16
rtmp.connect_threads=4
rtmp.send_buffer_size=271360
rtmp.receive_buffer_size=65536
把配置文件下的web.xml替换web-inf下的web.xml并@webapp.root.key@ 替换为”/myRed5Test”
- logback.xml把
<consolePlugin/>
删除,否则项目启动会报错。
整合示例oflaDemo
- 下载oflaDemo的源码文件:http://download.csdn.net/detail/u013569416/9382689
- 将oflaDemo_src中的src文件下的org放入我们工程的src下。
- 将oflaDemo_src\WebContent下的所有文件(除了web-inf和META-INF)拷贝到myRed5Test\ WEB-INF(eclipse)下
修改red5工程下src下red5-web.properties
context.path=/myRed5Test virtual.hosts=*,localhost, localhost:8080, 127.0.0.1:8080
并拷贝到web-inf下
在web.xml下添加
<servlet> <display-name>SecurityTest</display-name> <servlet-name>SecurityTest</servlet-name> <servlet-class>org.red5.demos.oflaDemo.SecurityTest</servlet-class> </servlet> <listener> <listener-class>org.red5.logging.ContextLoggingListener</listener-class> </listener>
修改root-web.xml
<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="/WEB-INF/red5-web.properties" /> </bean> <!-- ROOT web context --> <bean id="web.context" class="org.red5.server.Context" autowire="byType"> <property name="scopeResolver" ref="red5.scopeResolver" /> <property name="clientRegistry" ref="global.clientRegistry" /> <property name="serviceInvoker" ref="global.serviceInvoker" /> <property name="mappingStrategy" ref="global.mappingStrategy" /> </bean> <bean id="web.scope" class="org.red5.server.WebScope" init-method="register"> <property name="server" ref="red5.server" /> <property name="parent" ref="global.scope" /> <property name="context" ref="web.context" /> <property name="handler" ref="web.handler" /> <!-- global.handler --> <property name="contextPath" value="${webapp.contextPath}" /> <property name="virtualHosts" value="${webapp.virtualHosts}" /> </bean> <bean id="web.handler" class="org.red5.demos.oflaDemo.Application" /> <bean id="demoService.service" class="org.red5.demos.oflaDemo.DemoService" />
修改webRoot下的index.html
把里面’streamer’: ‘rtmp://localhost/oflaDemo’ 修改为以下
<script type='text/javascript'> jwplayer('mediaspace').setup({ 'flashplayer': 'player.swf', 'file': 'hobbit_vp6.flv', 'streamer': 'rtmp://localhost:1935/myRed5Test', 'controlbar': 'bottom', 'width': '848', 'height': '360' }); </script>
启动tomcat,输入http://localhost:8080/myRed5Test/。