Wowza Community

Wowza mpeg dash for on demand videos don't work with well-known html5 players

I need to use Wowza with my upcoming project, so I tried to build an simple POC to use mpeg dash with html5 bitdash player, the following are the steps during my PC:

  • I created a Azure VM that already have wowza 4.1 (Wowza Streaming Engine 4.1: Windows (BYOL)) on it. I test it and it is working fine with default sample (sample.mp4).

  • I downloaded car-20120827-85.mp4 & car-20120827-89.mp4 from http://dash-mse-test.appspot.com/media.html and add them to content folder

  • I add smil file and I added to car video files to it. (note: for Bitrate I used ffprobe and copy bit_rate value)

  • Then I used the mpeg dash url within the html5 bitdash player code (http://wowza19.cloudapp.net:1935/vod/smil:car.smil/manifest.mpd)

    The result the video not work and the javascript console message is: Unsupported codec and/or file format for stream audio/mp4

    I tried again the same steps but by encode the videos by myself using ffmpeg (full details is here: http://stackoverflow.com/questions/31970663/mpeg-dash-on-wowza-server-not-working-status-error-404-not-found ), the player is work for defualt quality but if I change the quality it is stop working and the message is “http://wowza19.cloudapp.net:1935/vod/definst/smil:sintel.smil/chunk_ctvideo_cfm4s_ridp0a0r1_cs1019970_w321384319_mpd.m4s 404 (Not Found)”

    I tried more than one video,I change the wowza vm machine with v4.2, I used another ffmpeg release, I use more than one html5 player. I tried everything, but I couldn’t make wowza mpeg dash work on html5 players

    also I applied the same steps from wowza documntation: https://www.wowza.com/docs/how-to-do-adaptive-bitrate-streaming, but also same issues (m4s 404 (Not Found) for some qualities).

    the strange thing if I remove all sources from smil then players will run this video, but if I add another source for slim the players could not able to change between these two sources and the 404 error appear.

    please advice

    thank you

Hi,

The reason that the first set of files doesn’t work is because they are encoded as fragmented mp4 files which is a format that Wowza software doesn’t support. You could probably pass these files through ffmpeg to repackage them into regular mp4 files. All of the info is there so they wouldn’t need to be re-encoded so the process would be quick.

For the second set of files, it looks like from your description that there is keyframe alignment problem between the files. For switching to occur smoothly, each rendition must be key frame aligned meaning that a key frame that occurs at a specific timecode in one file must also occur at the same timecode in all of the other files. The default option with Dash is to request video segments are created and named based on the keyframe timecodes. If the player switches to a rendition that doesn’t have a specific segment that is requested (because its key frame timing is off) then it will fail with a 404 response.

Wowza server builds the HTTP manifests dynamically from the moov atom data in the media files. In the case with an Adaptive bitrate manifest, it only reads the data from the first file and expects that the data will be identical in the other files. The default file plays fine because that was the one that the data came from and individual files play fine because fresh data is extracted from the file when each file is requested.

Id based segmentation (where the segments contain multiple key frames and are numbered sequentially, such as is used with HLS or HDS) is less susceptible to alignment problems however, you may notice the stream jumping forward or backwards if it switches to a different rendition and the timecodes in the new chunk don’t align with the old chunk. Mpeg Dash can be configured to use ID based segmentation by changing the manifest url. See Delivery Formats for details.

You can get ffmpeg to do proper aligned encoding by disabling scene detection or doing two pass encoding and using the same first pass log for each second pass.

Roger.

WOWZA ANNOUNCES SUPPORT OF MPEG-DASH nDVR FOR LIVE STREAMING

**New playback options available with update of Wowza Streaming Engine version 4.7.6

The Wowza nDVR feature enables you to record a live stream with Wowza Streaming Engine while simultaneously allowing users to play or pause the live stream, rewind it to a previously recorded point, or resume viewing at the current live point. Wowza Streaming Engine 4.7.6 adds support to record MPEG-DASH live streams with the nDVR feature.

See our quick start guide here:

https://www.wowza.com/docs/wowza-ndvr-quick-start-guide