`
tkivdrip
  • 浏览: 9274 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Red5研究与积累(一)

    博客分类:
  • Red5
阅读更多

前段时间一直想研究Red5 但是发现网上的很多例子 和配置的方法都跑不通 

不知道是我Red5版本问题 还是JDK编译问题

 

先说下我的环境 JDK1.6 MyEclipse7.5 Red5 0.9.0 windows安装版

安装没什么特别好说的 如果你想设置成服务 就勾上 影响都不大 我一般是手动启动Red5的

 

先从最基本的 连接开始

先写Java 端 MyEclipse 新建一个Web工程 Path 加入Red5 lib 文件夹下的jar 不过除了 servlet *.jar 和 jsp* .jar 别忘了外面的 red5.jar

 

新建一个Java 类 一般命名为 Application 让它继承 ApplicationAdapter Java代码如下

public class Application extends ApplicationAdapter  {

	private Logger log = Red5LoggerFactory.getLogger(Application.class,"myDemo");
	
	private IScope appScope;
	
	private IServerStream serverStream;
	
	public Application(){
		log.info("myDemo created");
		System.out.println("myDemo created");
	}

	public boolean appStart(IScope app) {
		log.info("myDemo appStart");
		System.out.println("myDemo appStart");
		this.appScope = app;
		return true;
	}

	public boolean appConnect(IConnection conn, Object[] params) {
		log.info("myDemo appConnect");
		System.out.println("connect");
		return true;
	}
	
	

	public void appDisconnect(IConnection conn) {
		log.info("myDemo appDisconnect");
		if((this.appScope == conn.getScope()) && (this.serverStream != null)){
			this.serverStream.close();
		}
		super.appDisconnect(conn);
	}
	
	
}

 

无非是连接上 打印一些日志 和控制台打印一些字符串

 

接着是Flex 端

 

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="Red5 Connect Test" creationComplete="appinit()">
<mx:Script>
  <![CDATA[
   import mx.controls.Alert;
   import flash.display.Sprite;
   import flash.events.NetStatusEvent;
   import flash.events.SecurityErrorEvent;
   import flash.media.Video;
   import flash.net.NetConnection;
   import flash.net.NetStream;
   import flash.events.Event;


  var command:String="rtmp://localhost/myDemo";//这里注意修改地址为你的red5服务器地址
  var mync:NetConnection=new NetConnection();

  var client1:Object = new Object();

  function netStatusHandler(sevt:NetStatusEvent):void{
      
  }


  function appinit(){
   mync.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);

  }

  function serverConnect():void{
   out_txt.text="Connectting ... ...";
   client1.clientMethod = this.clientMethod;
   mync.client = this.client1;
   mync.connect(command);
   trace("serverConnect:"+command);
  }

  ]]>
</mx:Script>
<mx:Style>
  WindowedApplication
  {
   background-color:"0xffffff";
   background-alpha:"0.5";
  }
</mx:Style>
<mx:Label y="100" text="连接状态:未连接" horizontalCenter="0" fontSize="12" fontWeight="normal" id="out_txt" condenseWhite="true" height="150"/>
<mx:Button y="254" label="点击我连接Red5" fontSize="11" fontWeight="normal" horizontalCenter="0" click="serverConnect()"/>
</mx:WindowedApplication>

 

再来看最关键的配置文件

 

web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>myDemo</display-name>
	
	<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>/myDemo</param-value>
	</context-param>
 
    <listener>
        <listener-class>org.red5.logging.ContextLoggingListener</listener-class>
    </listener>
    
    <filter>
        <filter-name>LoggerContextFilter</filter-name>
        <filter-class>org.red5.logging.LoggerContextFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>LoggerContextFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
   	<servlet>
		<servlet-name>rtmpt</servlet-name>
		<servlet-class>org.red5.server.net.rtmpt.RTMPTServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
    
	<servlet-mapping>
		<servlet-name>rtmpt</servlet-name>
		<url-pattern>/fcs/*</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>rtmpt</servlet-name>
		<url-pattern>/open/*</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>rtmpt</servlet-name>
		<url-pattern>/close/*</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>rtmpt</servlet-name>
		<url-pattern>/send/*</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>rtmpt</servlet-name>
		<url-pattern>/idle/*</url-pattern>
	</servlet-mapping>
    
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Forbidden</web-resource-name>
            <url-pattern>/streams/*</url-pattern>
        </web-resource-collection>
        <auth-constraint/>
    </security-constraint>
</web-app>

 

 

red5-web.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:lang="http://www.springframework.org/schema/lang"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                           http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd">

	<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	    <property name="location" value="/WEB-INF/red5-web.properties" />
	</bean>

	<bean id="web.context" class="org.red5.server.Context"
		autowire="byType" />

	<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" />
		<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" />
	<bean class="org.springframework.scripting.support.ScriptFactoryPostProcessor"/>

</beans>

 

red5-web.properties

 

webapp.contextPath=/myDemo
webapp.virtualHosts=*, localhost, localhost:8088, 127.0.0.1:8088

 

将工程发布到Red5的 webapps 文件夹下  命名为你定义的名字 这里我的是 myDemo 

 

到这里 已经完成最简单的Demo 了

1
1
分享到:
评论

相关推荐

    red5 与 tomcat项目集成

    red5 与 tomcat项目集成

    RED5安装与配置

    RED5安装与配置

    red5-0.9.1

    Red5_0.9.1 + MyEclipse10.7 中单步调试Demo Publisher : 编译通过Red_091 后,调试参数设置如下 。 右键项目 - Debug As -- Debug Configurations --Environment : 设置 RED5_HOME 环境变量 "Main class...

    red5与flash聊天代码

    red5与flash聊天代码red5与flash聊天代码red5与flash聊天代码red5与flash聊天代码

    基于 Red5 的流媒体服务器的搭建和应用

    Red5 是一个采用 Java 开发的开源免费 Flash 流媒体服务器。Red5 基于 Java 和一些功能强大的开源框架,为企业级应用奠定了标准。它使用 RTMP,RTMPT,RTMPS 和 RTMPE 流媒体协议, 支持:将音频(MP3)和视频(FLV,...

    Red5 0.9与现有tomcat项目整合修正版

    对以前上传的Red5 0.9与现有tomcat项目整合进行了修正

    Red5-0.9.1

    Red5的0.9.1版本

    RED5安装与配置详解

    Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。RED5安装与配置详解。

    Red5 1.0 Final Web版

    red5 1.0 final 与 tomcat 整合 ,导入myeclipse可以直接使用。

    red5chatv2.1 red5建的一个FLASH视频聊天会议例子

    red5chatv2.1 red5建的一个FLASH视频聊天会议例子,有JAVA和FLASH源码

    red5 0.8 reference

    red5 0.8 reference Red5 - Reference Documentation Red5 Open Source Flash Server

    Red5流媒体入门文档5篇

    《使用Red5入门》 《red5入门》 《red5入门教程》 《RED5安装与配置》 《red5流媒体服务器入门基础》

    red5 免安装版 red5 1.00

    red5 免安装版 red5 1.00 自己试过了!可以正常运行和启动

    Red5_用户参考手册

    第一一部分 Red5 核心技术之安全 .................................. 第一二部分 Red5 核心技术之 脚本实现 ........................ 第一三部分 Red5 核心技术之集群 .................................. 第一四...

    Red5研究学习(1)

    Red5学习的一个很有用的资料,解析了Red5的关键api和程序处理流程

    red5学习资料

    关于red5的一些学习文档,资料很齐全。 d5_demo 服务器端调用客户端as的方法 as3.0+red5 --- hello world FMS&Red5 RED5 – Project Roadmap Open Source Flash 等等文档

    Red5 0.9与现有tomcat项目整合

    Red5 0.9与现有tomcat项目整合,并实现flex播放视频 修正:将logback.xml的标签去掉,根据情况修改level 将:red5-web.xml名修改为myApp-web.xml,内容修改为 &lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" ...

    red5配置.doc

    最近要做一个流媒体服务器,在网上逗留了好久决定选择red5。但是网上中文资料很少视频资料更是不敢奢望,只有啃一些英文文档了,http://hi.baidu.com/qjchina/blog/item/acf860594516542e2934f076.html是我的学习...

Global site tag (gtag.js) - Google Analytics