- 浏览: 488895 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (185)
- job (15)
- linux/windows/unix/bash/shell (31)
- JAVA/J2EE/spring/hibernate/struts (30)
- VC/C++ (48)
- mysql/postgresql (6)
- php/jsp/asp/pear (1)
- FMS/flex/openlaszlo/red5/openmeetings (34)
- apache/tomcat/ftp/svn (6)
- xen/vm/Hadoop/cloudcompute (6)
- visual studio/eclipse/zendstudi/ant (8)
- others (1)
- windows异常处理 __try __except (1)
- (1)
- matlab (4)
- android (0)
最新评论
-
hongzhounlfd:
很透彻,很详细
依赖注入和控制反转 -
jefferyqjy:
谢谢~言简意赅~很明了!
依赖注入和控制反转 -
elderbrother:
太好了,谢谢
依赖注入和控制反转 -
east_zyd_zhao:
终于搞明白了
依赖注入和控制反转 -
Dremeng:
完美,一看就懂理解透彻
依赖注入和控制反转
Red5 是建立在Jetty6(servlet engine) , Mina (networking)基础之上的,并通过使用Spring框架将起整合起来的.因此我们需要有一些配置文件.我们可能的通过载入properties 文件来简化配置,因此用户不需要深入了解XML.该文档就是要新手们去熟悉这些配置文件,其中一些需要改动,一些不必关心.Jetty Config
----------------------------------
一、/conf/jetty.xml
servlet引擎主配置文件,如果你的应用程序是放在webapps文件中的,你就不需要更改该配置文件.该文件非常象一把瑞士军刀.你可以任意排序.关于其更多的详细信息参见jetty官方相关文档.
二、/conf/web-default.xml
缺省的web xml,其在WEB-INF/web.xml之前使用,它使得将servlets添加到所有的应用程序中.可以将其理解为一个webapp的模板文件.
三、/conf/keystore 文件存储指纹.
四、/conf/realm.properties web的归属,用户,密码等设置.
Red5 Server配置文件
----------------------------------
一、/conf/red5.properties
通过修改该文件我们就可以很轻松的指定端口,配置参数等,而不必去编辑xml文件.我们试图将所有的公用配置放到该文件中.
二、/conf/red5.xml
连接上下文.不知道是什么意思么?呵呵,不用担心,你不需要编辑该文件,除非你要添加另外一个全局的上下文.你可能在管理Red5的时候才会做这样的事情.
三、/conf/red5-common.xml
用来配置上下文环境树的根部,所有的服务都可以用于子环境.如果你想让在全局上下文环境中分享你的服务的话,你就需要修改该文件.99%的用户不需要编辑该文件.
四、/conf/log4j.properties
设置日值层,和输出文件等等.该文件作用于整个服务器.除非你要在webapp中的WEB-INF文件夹中使用log4j配置替代该文件,那么你就需要修改该文件.
五、/conf/red5-net.xml
安装Mina和启动Jetty.用户不需要修改该文件,类似端口的设置需要通过red5.properties文件配置.
六、/webapps/red5-default-global.xml
这是全局的上下文,大部分的服务器只需要一个,但是在安全的管理虚拟主机的时候需要将全局上下文分离.如果你想要在应用程序中分享服务的时候,将其加到这里.该上下文可以操作类似客户端注册和全局作用域.
Webapp配置文件
----------------------------------
在默认的情况下,Red5将所有的应用程序存放在根目录的"Webapps"目录下面.因此在创建一个新的应用程序之前,首先需要在这个目录中创建一个子目录.习惯上这个子目录的名字应该和马上创建的应用程序的名字是一样的.
在你的新应用程序中,需要一个"WEB-INF"的文件夹用来存放关于使用类情况的配置文件.你可以使用Red5提供的一个模板,它可以在"doc/templates/myapp"文件夹中找到.
在Red5启动的时候,所有文件夹中的配置文件都会搜索到.
在Red5提供的模板中,WEB-INF下一共有四个配置文件,分别是web.xml,red5-web.xml,red5-web.properties和log4j.properties。下面主要详解一下前两个文件的功能。
一、Web.xml。主要的配置文件,它包含了如下参数:
1.globalScope:
"globalScope"为全局作用域,它可以使用默认的设置.
<context-param>
<param-name>globalScope</param-name>
<param-value>default</param-value>
</context-param>
2.contextConfigLocation
设置应用程序中控制文件的名称.这些控制文件列出了应用程序连接或断开客户端的类,同时也提供客户端可以调用的方法的类.
控制文件还设定了这些类的有效范围.
在这个路进中还可以使用通配符,从而可以包含进来多个文件.
以下代码就是使用了通配符的代码,把WEB-INF/目录下所有文件名前面是“red5-”字样的xml文件包含进来,模板中是把red5-web.xml文件包含了进来。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/red5-*.xml</param-value>
</context-param>
3.locatorFactorySelector
指定根应用程序上下文配置文件通常是"red5.xml"::
<context-param>
<param-name>locatorFactorySelector</param-name>
<param-value>red5.xml</param-value>
</context-param>
4.parentContextKey
父上下文的名字,通常是"default.context"::
<context-param>
<param-name>parentContextKey</param-name>
<param-value>default.context</param-value>
</context-param>
5.log4jConfigLocation
指定子log系统的路径。模板中其实是把log4j.properties指定为log系统的路径。
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
6.webAppRootKey
指定应用程序唯一的名称为/myapp
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>/myapp</param-value>
</context-param>
二、red5-web.xml。配置文件,每一个控制配置文件都至少包括如下三种Bean:
1.Context
这个Context bean有个预留的名字"web.context",它用来将路径放入域中,同时查找服务和控制器。默认的类是"org.red5.server.Context".
具体代码如下:
<bean id="web.context" class="org.red5.server.Context" autowire="byType" />
每个应用程序只能有一个Context。然而这个Context能够跨多个域共享。
2.域(Scope)
每一个应用程序至少有一个Scope,这个Scope将控制器(Handler)连接到了Context和Server.这个Scopes用来建造一 个树结构,客户端能够连接到这个树上的任何一个节点和共享对象(例如共享对象或者实时流).你可以将Scope看作是一个房间或者实例.
默认的Scope通常有个名字"web.scope",但是这个名字可以任意的选择.
这个Bean有如下的属性.
"server"----设置全局的服务器域"red5.server".
"parent"----设置父域,通常是"global.scope".
"context"----指当前域,使用上面提到的"web.context"
"handler"----当前域的控制器(Handler,下面将会提到).
"contextPath"----连接当前域的路径.
"virtualHosts"----用逗号分割开当然域(scope)运行的一组主机名或者IP地址.
例如:
<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="/myapp" />
<property name="virtualHosts" value="localhost, 127.0.0.1" />
</bean>
你可以将"contextPath"和"virtualHosts"的值转移到一个单独的properties文件,然后用参数表示.如果是这样的话,你就需要另外的一个Bean::
<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/red5-web.properties" />
</bean>
假设一个"red5-web.properties"文件包含如下数据::
webapp.contextPath=/myapp
webapp.virtualHosts=localhost,127.0.01
那么,在Scope中的参数将会变成如下样子::
<property name="contextPath" value="${webapp.contextPath}" />
<property name="virtualHosts" value="${webapp.virtualHosts}" />
这个"contextPath"将会被看作域的"根(root)".当需要动态创建扩展域的时候,你可以在这个路径后边添加新的元素.
这个额外域将使用同一个控制器(Handler),但是他们都拥有自己独立的属性,共享对象和实时流.
3.控制器(Handlers)
每一个Context都需要一个控制器(Handler),它实现一个方法,这个方法将在一个客户端连接这个域(Scope)时触发.这个控制器需要 实现的接口是:"org.red5.server.api.IScopeHandler",然而如果你想控制访问共享对象或者流,你也可以实现其它接口.
有一个"org.red5.server.adapter.ApplicationAdapter"作为一个基础类可以在类库中找到,这个类就是一个简单实现的例子.更多详细信息请查阅javadoc文档.
这个Bean作为一个域的控制器要进行如下配置::
<bean id="web.handler" class="the.path.to.my.Application" singleton="true" />
这个ID的参数就是上面提到的域(scope)设置.
4.控制器实例:用下面几行代码实现一个简单的控制器::
package the.path.to.my;
import org.red5.server.adapter.ApplicationAdapter;
public class Application extends ApplicationAdapter{
public Double add(Double a,Double b){
return a+b;
}
}
假设已经经过了上面的配置,你可以通过如下的脚本来调用这个方法.
nc = new NetConnection();
nc.connect("rtmp://localhost/myapp");
nc.onResult = function(obj){
trace("This result is " +obj);
}
nc.call("add",nc,1,2);
输出的结果如下:
The result is 3;
关于控制器的建立方法,请参考《关于RED5——如何由RED5的“WIN安装版”建立应用程序》一文中的Application.java的建立与编译、执行。
三、red5-web.properties。
存放red5-web.xml中参数"contextPath"和"virtualHosts"的文件。该文件可以被red5-web.xml轻松的 使用,也会被red5 jetty configurator读取从而设置ebapp.virtualHosts和webapp.contextPath.注意不同的servlet引擎要求 的配置文件不同,要酌情决定.
四、log4j.properties。
允许你为每个webapp分别设置日志等级等等。该文件也会被spring自动载入。一般不用去修改它,因为在red5的安装目录下的conf文件夹下也有一个相同的文件,该文件已经作用于整个服务器,他的作用是设置了日值层,和输出文件等等。
发表评论
-
Red5安装和配置
2011-02-24 10:23 4011Red5安装和配置参考网页:http://www.cahblo ... -
基于Moodle平台的网站调查报告
2011-02-24 10:18 2531基于Moodle平台的网站调查报告 网站举例: ² 西南 ... -
moodle插件模块功能汇总
2011-02-24 10:03 4944Moodle官方提供654种插件或者模块moodle.org ... -
moodle 一体包安装手册(window)
2011-02-24 09:55 1249见附件 -
moodle中上传文件大小控制
2011-02-24 09:51 1803第一步:修改在php4下POST文件大小的限制1.编修php. ... -
linux下面安装moodle
2011-02-24 09:50 20521. 安装moodle运行 ... -
OpenMeetings安装文档
2011-02-15 11:09 2564OpenMeetings 是一个多语言可定制的视频会议和协作系 ... -
Compilation and Execution (openlaszlo)
2010-11-22 11:02 10207. Compilation and Exe ... -
Combining Tags and Script in LZX Programs (openlaszlo)
2010-11-22 11:01 12746. Combining Tags and ... -
Data Access, Manipulation, and Binding (openlaszlo)
2010-11-22 10:33 11595. Data Access, Manipu ... -
Constraints(openlaszlo)
2010-11-22 10:18 1094constraint 表示可变的变量赋值形式 In LZX, ... -
Events and Methods (openlaszlo)
2010-11-22 09:35 13353. Events,Methods ,han ... -
Dimdim&Moodle安装配置文档节选
2010-11-09 17:40 2514Dimdim&Moodle安装配置文档节选 ... -
Red5如何响应rmpt的请求,中间涉及哪些关键类?
2010-11-01 15:35 1505Red5如何响应rmpt的请求,中间涉及哪些关键类? 响应请 ... -
red5的eclipse插件和用法
2010-10-30 20:56 1104参见http://www.red5.org/wiki/Red5 ... -
red5集群分析
2010-10-28 19:42 49871. 边(Edge ): 1. 边的主要作用是管理连接,并可以 ... -
red5源代码分析
2010-10-26 08:59 3826Red5如何响应rmpt的请求 ... -
创建第一个red5程序
2010-10-25 15:33 21081.下载最新版本的RED5 http://osflash.or ... -
openlaszlo中多媒体组件介绍
2010-10-14 15:50 1095在openlaszlo中我们可以处理图像,音视频等媒体文件。详 ... -
openlaszlo组件的简单介绍
2010-10-14 15:50 1256openlaszlo组件的简单介绍 收藏 在写laszlo ...
相关推荐
本文档记录了利用ffmpeg将摄像机采集的rtsp视频流转换为rtmp视频流,并推送到rtmp服务器red5的详细步骤。最终可以供VLC、web页面访问并展示rtmp视频。
基于rtmp协议android端推流Demo 直接设置IP推流到rtmp流媒体服务器
基于RTMP协议的Flash流媒体网页播放器,可以直播,很好很强大。
流媒体协议:RTMP协议(中文)详解 流媒体协议:RTMP协议(中文)详解 流媒体协议:RTMP协议(中文)详解
RTMP协议封 包 由一个包头和一个包体组成,包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,AMFSize,AMFType,StreamID信息, 8字节的包头只纪录 了时间戳,AMFSize,AMFType...
rtmp的协议规范,中文版的,学习RTMP协议的好资源。
windows基于nginx搭建rtmp流服务器,已配置好配口号1935。 在根目录下执行命令nginx.exe -c conf\nginx-win-rtmp.conf即可开启服务器
RTMP协议详解,原创分享PPT
RTMP协议官方文档 文档为英文版,从官方网站下载,希望对你有帮助
Adobe公司的实时消息传输协议,RTMP协议官方说明文档,中文翻译。主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信
RTMP协议,RTMP协议完整的中文翻译手册,便于学习RTMP协议
基于C++和QT开发的rtmp拉流服务器源码.zip基于C++和QT开发的rtmp拉流服务器源码.zip基于C++和QT开发的rtmp拉流服务器源码.zip基于C++和QT开发的rtmp拉流服务器源码.zip基于C++和QT开发的rtmp拉流服务器源码.zip基于...
消息块流是为 Rtmp协议设计的,他可以处理任何传送消息流的协议,每一个消息包含时间戳 合有效负载类型标示, 消息块流和 一起适用于多样性音视频应用程序,从一对一和一对 多向视频点播服务器直接广播到交互式会议...
rtmp协议详解和例子(带书签)! 很不错的资料哦!
基于RTMP的嵌入式流媒体系统的设计与实现,吕昊,陈磊,随着通信技术的日益发展,特别是多媒体技术的成熟,人们获取音视频信息的方式日益多元化。其中流媒体就是备受关注的一项技术,比
拖放、以及缩放,再加上基于 RTMP 的 Red5 服务器,利用共享对象来实现文档的同步播放,各个客 户端能够同步浏览。本系统关键为:文档转换、文档流传输和文档同步浏览,该系统最终实现了文档 的在线浏览,并增加了...
RTMP协议基础知识RTMP 全称...RTMP 基于路由选择信息协议(RIP)。正如 RIP 一样,RTMP 使用跳数作为路由计量标准。一个数据包从源 网络发送到目标网络,必须通过的路由器或其它中间介质节点数目的计算结果即为跳数。
基于RTMP协议的流媒体技术的原理与应用.pdf