Wowza Community

Command line tool for creating mp4 manifest

Hi,

I have a requirement to host multi-bitrate mp4 vod content on CDN storage. I have a transcode workflow which creates the various bitrate files for me, but it doesn’t create the required client side manifest file. Is there a tool I can use to do this? I found mp4split, but I can’t get it to create an f4m manifest based on mp4 files and the documentation is limited.

I know this is not directly related to wowza, but we are a paying customer and I can’t think of a better place to ask.

Thanks in advance.

Mike

Hi Mike, by manifest file, I think you mean .smil file. This is what you need to make ABR work

This article shows how to create a .smil file:

How to do Adaptive Bitrate streaming

Salvadore

Mike,

ABR does not work using progressive download, you need a media server like Wowza which handles the switch requests made by the players.

You can use a MediaCache (“vod edge” application in the manager) to stream vod assets that are stored on a web server, cloud storage or network share. In this case you put the .smil file alongside the content.

The HLS, HDS, and smooth stream types are delivered to players over HTTP, the playback URLs for these playback types are shown above.

HLS: Use this in iOS devices, VLC and other devices that support HLS:
http://vod.mydomain.com:1935/u/smil:80005555V_MP4.smil/playlist.m3u8
HDS: Use this in Flash players that support HDS (there is a Wowza example in the examples folder)
http://vod.mydomain.com:1935/u/smil:80005555V_MP4.smil/manifest.f4m
Smooth: Use this in Silverlight players (Wowza example in examples folder)
http://vod.mydomain.com:1935/u/smil:80005555V_MP4.smil/Manifest

Richard

Yes, I’ve actually created a smil manually for now, but JW player doesn’t play the media. It appears to parse it ok, as I get all the bitrates listed, but no playback.

Even if I get JW working, I think I will still need a manifest.f4m to make this work on android. Note that the intent is to serve directly from Cloud storage, no wowza or other server in front. Currently the smil file gets downloaded as text on android or desktop.

My url looks like this:

http://vod.mydomain.com/u/80005555V_MP4.smil

Here is what my smil looks like:

With this type of smil file, JW player is expecting an RTMP address in the meta tag. It should be the RTMP address of your Wowza server application.

<meta base="rtmp://[wowza-ip]:1935/[wowza-app]"/>

If you remove the meta tag completely from the smil file above and upload it to the application Content directory on your Wowza server then you will be able to use the url’s that Salvadore has provided (note Wowza server urls)

Additionally, you will be able to use the following url in JW Player to automatically generate the correct format smil file for JW Player to use for RTMP playback.

http://vod.mydomain.com:1935/u/80005555V_MP4.smil/jwplayer.smil

This will return the smil file with the correct meta tag (RTMP address)

Roger.

Mike, take a look at this article to use JW Player for ABR streaming:

How to use LongTail JW Player with adaptive bitrate streaming from Wowza Media Server

For the Android requirements. While some Android devices support Flash, and others support HLS streaming, older devices only support RTSP streaming, and RTSP does not support ABR streaming.

Here are sample URLs for the different player technologies:

1: HLS(cupertino)

http://vod.mydomain.com:1935/u/smil:80005555V_MP4.smil/playlist.m3u8

2: HDS(San Jose/Flash HTTP)

http://vod.mydomain.com:1935/u/smil:80005555V_MP4.smil/manifest.f4m

3:SilverLight

http://vod.mydomain.com:1935/u/smil:80005555V_MP4.smil/Manifest

4: RTSP does not support ABR

Salvadore

Yes, I’ve actually created a smil manually for now, but JW player doesn’t play the media. It appears to parse it ok, as I get all the bitrates listed, but no playback.

Even if I get JW working, I think I will still need a manifest.f4m to make this work on android. Note that the intent is to serve directly from Cloud storage, no wowza or other server in front. Currently the smil file gets downloaded as text on android or desktop.

My url looks like this:

http://vod.mydomain.com/u/80005555V_MP4.smil

Here is what my smil looks like:

Thanks guys, I understand, but I would like to host these mp4 files on cloud storage and serve them from there over http directly, without a wowza server. Individual files play fine, but I would like to enable bitrate siwtching. Is http even supported in a smil or does it only work with rtmp?

Thanks for the clarification. Looks like some form of bitrate switching for static mp4’s is available in JW:

http://www.longtailvideo.com/support/jw-player/29248/sd-and-hd-qualities

Mike