Red5在运行时创建流名称别名

时间:2012-10-01 07:14:24

标签: java stream alias red5

我想在运行时为本地存储的视频文件创建别名。例如,我有一个“test / video.flv”文件,我创建了一个“abc123”别名(如果扩展很重要,则为“abc123.flv”)。

我想将这些别名用于唯一和一次性视频路径。所以我需要在使用1次后删除它们。

  • 如何在运行时创建别名?
  • 如何在运行时删除它?

2 个答案:

答案 0 :(得分:3)

我找到了更好的解决方案!在red5-web.xml文件中,我添加了一个bean <bean id="streamFilenameGenerator" class="myapp.FilenameGenerator"></bean>并为其创建了类public class FilenameGenerator implements IStreamFilenameGenerator。现在我只需要覆盖负责文件名解析的public String generateFilename(IScope scope, String name, GenerationType type)函数。 name参数是请求的流名称,返回值是已解析的名称。从现在开始,这很简单,例如使用key = alias name和value = real existing file path创建一个HashMap。

答案 1 :(得分:1)

您有多种选择可以实现:

一种方法是创建符号链接,因此您将使用底层操作系统来欺骗red5存在文件。 然后,您必须在ApplicationAdapter中添加监听器以收听所需的事件。 例如: http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html =&GT; streamStart / stop等等。您必须查找Red5版本的ApplicationAdapter,以查看您可以在正在使用的Red5版本中收听的所有可能事件!

第二种解决方案是编写自定义流处理程序。然而,这需要进一步调查。我不认为有一种标准机制来修改文​​件请求以应用某种通配符。 它的工作方式类似于第一个解决方案,但您需要将ApplicationAdapter的一些机制重写/覆盖到该进程文件请求。

所以基本上最好的方法是研究你的ApplicationAdapter并找到你正在寻找的事件监听器。