ak491980

ak491980

0个粉丝

34

问答

0

专栏

8

资料

ak491980  发布于  2014-12-08 08:56:28
采纳率 0%
34个问答
3924

red5 应用

   

http://www.OpenRed5.com

此文档描述应用程序如何才能从定制的目录取得需要的视频流(VOD),以及录制视频流到定制的目录中,而不是默认的在webapps/streams目录。

文件名生成器服务

Red5使用一个称为scope services的概念,为一个确定的作用域提供此服务。其中一个scope服务是IStreamFilenameGenerator,它为要播放或录制的VOD流生成文件名。

定制生成器

要生成文件到不同的文件夹,一个新的文件名生成器必须实现:

import org.red5.server.api.IScope;
import org.red5.server.api.stream.IStreamFilenameGenerator;

public class CustomFilenameGenerator implements IStreamFilenameGenerator {

    /** 将存储已录制视频的路径 */
    public String recordPath = "recordedStreams/";
    /** 容纳VOD流的路径 */
    public String playbackPath = "videoStreams/";

    public String generateFilename(IScope scope, String name,
            GenerationType type) {
        // 生成没有扩展名的文件名
        return generateFilename(scope, name, null, type);
    }

    public String generateFilename(IScope scope, String name,
            String extension, GenerationType type) {
        String filename;
        if (type == GenerationType.RECORD)
            filename = recordPath + name;
        else
            filename = playbackPath + name;

        if (extension != null)
            // 添加扩展名
            filename += extension;

        return filename;
    }
}

上面的类会为已录制流生成文件名,如recordedStreams/red5RecordDemo1234.flv,为所有的VOD流使用videoStreams为源路径文件夹。

激活定制生成器

下一步,定制生成器必须在目标程序的控制文件中被激活。(译注:就是需要编辑配置文件,将此定制生成器加入到程序中)

加入下面的定义到yourApp/WEB-INF/red5-web.xml

<bean id="streamFilenameGenerator" 
      class="path.to.your.CustomFilenameGenerator" />

这样就会使用上面定义的类来生成流文件名。

通过配置更改路径

当这里描述的类正常的工作,它就不便于在代码中修改路径,它的每次改变都需要重新编译类。

所有你可以通过配置文件中的参数来设定路径。

加入两个方法到你的类中,它将在配置文件被解析时执行。

public void setRecordPath(String path) {
    recordPath = path;
}

public void setPlaybackPath(String path) {
    playbackPath = path;
}

现在你可以在类定义中设置路径了。

<bean id="streamFilenameGenerator" 
      class="path.to.your.CustomFilenameGenerator">
    <property name="recordPath" value="recordedStreams/" />
    <property name="playbackPath" value="videoStreams/" />
</bean>

你也可以将路径的设定移到yourApp/WEB-INF/red5-web.properties文件中,然后使用参数来访问它们。

<bean id="streamFilenameGenerator" 
      class="path.to.your.CustomFilenameGenerator">
    <property name="recordPath" value="${recordPath}" />
    <property name="playbackPath" value="${playbackPath}" />
</bean>

这样,你需要在属性文件中加入下面的内容:

recordPath=recordedStreams/
playbackPath=videoStreams/

API参考:org.red5.server.api.stream.IStreamFilenameGenerator

我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区