如何使用Flowplayer从子目录流式传输MP4文件?

Chr*_*son 5 flowplayer wowza

我正在使用Wowza Media Server来启用MP4文件的流媒体,而我使用Flowplayer作为视频播放器.

为了获得我的内容的一些结构,我在StorageDir我的Wowza应用程序的配置中使用子目录.

我遇到的问题是,无论我使用什么URL格式,Wowza都会继续在根存储目录中查找该文件.

我已经使用Wowza指定的URL格式试图在这里,但没有运气:

rtmp://[wowza-ip-address]/myapp/_definst_/mp4:mysubdirectory/sample.mp4
Run Code Online (Sandbox Code Playgroud)

我还尝试了Wowza论坛帖子中建议的所有内容:

但是Wowza一直在寻找根存储目录,抛出这样的异常:

404 b0c9be70-a33c-41ce-9692-199e3a1caccf.mp4 
   open: java.io.FileNotFoundException: 
   C:\Program Files (x86)\Wowza Media Systems\Wowza Media Server 3.6.2\content\b0c9be70-a33c-41ce-9692-199e3a1caccf.mp4.flv 
   (The system cannot find the file specified)
Run Code Online (Sandbox Code Playgroud)

不知何故,Wowza认为它应该在根存储目录中查找FLV文件,即使URL指定它是子目录中的MP4文件.这是为什么?

Chr*_*son 9

在花了好几个小时研究之后,我终于在Wowza论坛上找到了这篇文章.

问题:

显然,某些基于闪存的视频播放器(如我使用的Flowplayer)存在问题,它接受RTMP连接和流名称的单个字符串.使用子目录时,其中一些播放器不会正确分隔RTMP连接和流名称.

将此URL分开时:

rtmp://[wowza-address]:1935/vod/_definst_/mp4:subfolder/sample.mp4
Run Code Online (Sandbox Code Playgroud)

播放器将此作为RTMP连接:

rtmp://[wowza-address]:1935/vod/_definst_/mp4:subfolder
Run Code Online (Sandbox Code Playgroud)

然后玩家将尝试玩sample.mp4而不是subfolder/sample.mp4失败.

解决方案:

为了解决这个问题,Wowza有一个修复URL的插件,可在此处下载:

解压缩包并将JAR文件复制到Wowza /libs目录中,然后将其添加到/conf/[app-name]/Application.xml配置文件中:

<Module>
    <Name>ModuleFixStreamPath</Name>
    <Description>ModuleFixStreamPath</Description>
    <Class>com.wowza.wms.plugin.collection.module.ModuleFixStreamPath</Class>
</Module>
Run Code Online (Sandbox Code Playgroud)

这样做让我一切顺利!