`

基于rtmp协议的服务器red5的配置文件详解

阅读更多

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 安装入门配置详解

    Red5 是一款开源的流媒体服务器,主要用于处理基于Flash的实时音视频流。它支持RTMP、RTMPT、RTMPS、RTMPE等多种协议,适用于直播、点播、录制等多种应用场景。以下是对Red5安装和入门配置的详细解释: 1. **Red5 ...

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

    ### 基于Red5的流媒体服务器搭建与应用详解 #### 一、Red5概述 **Red5**是一款基于Java开发的开源免费Flash流媒体服务器。它利用Java语言及一系列强大开源框架构建而成,为企业的各类应用提供了坚实的基础。Red5...

    red5-server-1.0.1.zip 流媒体服务器

    - **配置服务器**: 修改Red5的配置文件(如`conf/red5.properties`),设置服务器监听的IP地址和端口号,以及数据库连接参数等。 - **启动与停止**: 使用提供的控制脚本或服务管理工具启动和停止Red5服务器。 - **...

    red5入门--环境搭建

    Red5是一款开源的、基于Java技术的媒体服务器,支持多种实时传输协议(如RTMP、RTSP等),能够提供音视频流传输服务,广泛应用于直播、点播、互动教学等领域。 #### 二、Red5安装与配置 ##### 2.1 安装准备 根据...

    red5-server-1.0.6.zip 流媒体服务器

    在部署和使用Red5时,开发者需要了解如何配置服务器环境,例如Java运行环境(JRE或JDK)、安装并配置Tomcat(因为Red5基于Tomcat容器运行),以及根据需求调整配置文件。对于直播应用,还需要熟悉如何使用编码器将...

    red5 与 tomcat项目集成

    1. **Red5 服务器**:Red5 是一个开源的流媒体服务器,支持 RTMP(Real Time Messaging Protocol)、RTMPT、RTMPE、RTMPTE、RTMPS 协议,用于实时音频、视频传输,以及数据共享。它允许开发者创建互动的媒体应用程序...

    red5服务器搭建

    ### Red5服务器搭建详解 #### 一、Red5服务器简介 Red5是一款开源的媒体服务器,主要用于实时音视频传输的应用场景。它支持多种协议,包括RTMP、HTTP-FLV等,并且能够与Adobe Flash Player以及其他支持RTMP的...

    RED5安装与配置

    #### 三、RED5配置文件详解 ##### 3.1 主要配置文件:`web.xml` `web.xml`是RED5中最核心的配置文件之一,用于定义应用程序的上下文参数以及其他配置项。下面详细介绍几个重要的参数: 1. **globalScope**:全局...

    red5+flex小程序

    1. **Red5 服务器**:Red5 是一个开源的流媒体服务器,支持 RTMP (Real-Time Messaging Protocol)、RTMPT、RTMPS、RTMPE等多种协议,可以用于视频直播、点播、录制等功能。在本文档中,Red5 作为Flex应用程序的后端...

    Red5的使用方法和具体功能介绍

    Red5是一款开源的、基于Java的媒体服务器,它可以支持RTMP协议(Real Time Messaging Protocol),从而实现流媒体传输的功能。Red5不仅可以作为独立的应用服务器运行,还可以集成到其他应用中,为用户提供实时的音...

    基于red5的javaDemo JDK1.7

    Red5是一款开源的流媒体服务器,它支持实时传输协议(RTMP)、RTMPT、RTMPE、RTMPF以及HLS等,广泛应用于视频直播、点播和交互式应用。而JDK1.7(Java Development Kit Version 7),是Oracle公司发布的Java编程环境...

    RED5安装与配置 RED5

    #### 三、RED5配置文件详解 RED5的核心配置文件是`web.xml`,它位于每个应用的`WEB-INF`目录下。此文件中定义了一些重要的参数,具体如下: 1. **globalScope**:指定全局作用域,默认值为`default`。全局作用域...

    搭建red5流媒体服务器1

    ### 搭建Red5流媒体服务器步骤详解 #### 一、环境准备 为了搭建一个稳定且高效的Red5流媒体服务器,首先需要确保系统环境中已安装并正确配置Java开发工具包(JDK)。本教程将指导您如何进行这些基本设置。 1. **...

    red5-server-1.0.9

    而"red5-server"可能是Red5服务器的主程序或相关配置文件,是部署和运行Red5服务的关键部分。 总的来说,Red5服务器是一款强大的Java开发的流媒体解决方案,它利用RTMP协议提供高效的音频和视频流服务。对于开发者...

    red5 oflaDemo

    2. **服务器配置优化**:根据实际负载调整Red5服务器的配置,提升服务性能。 3. **协议扩展**:除了RTMP,还可以学习并实现对HLS、WebRTC等协议的支持。 总的来说,`oflaDemo`是Red5服务器的一个重要组成部分,它为...

    Red5 War.pdf 官方英文参考文档

    - 虽然可以将`ROOT.war`重命名为`red5.war`,但这种做法未经充分测试,并且可能需要对某些配置文件进行修改。 - 重命名后,需要确保新的文件名及其在J2EE容器中的解析正确无误。 #### 三、Red5配置详解 ##### 1. ...

    red5-1.0.0-with-oflaDemo

    5. **配置服务器**:根据需求修改`conf`目录下的配置文件,如`red5.properties`,配置端口、日志等设置。 6. **部署应用**:将OflaDemo或其他应用部署到`webapps`目录下,Red5会自动识别并加载。 **四、开发与扩展*...

    Red-Server 1.0.10

    2. **conf**:服务器配置文件,如`red5.properties`。 3. **lib**:包含运行所需的库文件。 4. **webapps**:存放Web应用程序,如默认的Red5应用程序。 5. **logs**:服务器日志输出位置。 6. **work**:服务器工作...

    Red5 oflaDemo程序

    1. **多协议支持**:Red5支持RTMP(Real Time Messaging Protocol)、RTMFP(Real Time Media Flow Protocol)、HLS(HTTP Live Streaming)等多种流媒体协议,使得内容可以通过不同的网络环境和设备进行分发。...

Global site tag (gtag.js) - Google Analytics