我想在运行时为本地存储的视频文件创建别名。例如,我有一个“test / video.flv”文件,我创建了一个“abc123”别名(如果扩展很重要,则为“abc123.flv”)。
我想将这些别名用于唯一和一次性视频路径。所以我需要在使用1次后删除它们。
答案 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并找到你正在寻找的事件监听器。