flowplayerwowza

How to stream MP4 files from subdirectories with Flowplayer?


I am using Wowza Media Server to enable streaming of MP4 files and as video player I use Flowplayer.

To get some structure for my content I use sub directories within the configured StorageDir for my Wowza application.

The problem I have is that no matter what URL-format I use, Wowza keep looking for the file in the root storage directory.

I've tried using the URL format specified by Wowza here, but with no luck:

rtmp://[wowza-ip-address]/myapp/_definst_/mp4:mysubdirectory/sample.mp4

I also tried everything suggested in posts on the Wowza forum:

But Wowza keeps looking in the root storage directory, throwing exceptions like these:

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)

Somehow Wowza thinks it should look for an FLV file in the root storage directory, even though the URL specify that it is an MP4 file in a subdirectory. Why is that?


Solution

  • After spending hours looking into this, I finally found this post on the Wowza forum.

    The problem:

    Apparently there is an issue with some flash-based video players (like Flowplayer that I use), that accept a single string for the RTMP connection and stream name. Some of these players do not separate the RTMP connection and stream name properly when using sub directories.

    When breaking this URL apart:

    rtmp://[wowza-address]:1935/vod/_definst_/mp4:subfolder/sample.mp4
    

    The player will use this as the RTMP connection:

    rtmp://[wowza-address]:1935/vod/_definst_/mp4:subfolder
    

    The player will then try to play sample.mp4 instead of subfolder/sample.mp4 which will fail.

    The solution:

    To remedy this problem, there is a plugin for Wowza that fixes the URL, available for download here:

    Unzip the package and copy the JAR file into your Wowza /libs directory, then add this to your /conf/[app-name]/Application.xml configuration file:

    <Module>
        <Name>ModuleFixStreamPath</Name>
        <Description>ModuleFixStreamPath</Description>
        <Class>com.wowza.wms.plugin.collection.module.ModuleFixStreamPath</Class>
    </Module>
    

    Doing so got it all working for me!