Wowza Community

How to play a video on demand file

Do it like this:



For the first issue, you might be able to fix this by re-building the server-side of the BWCheck example and change the module function checkBandwidth name to _checkbw. Or the vice versa, change _checkbw in the player to checkBandwidth

You will probably also have to reconcile onBWCheck and onBWDone with the client-side code.

On the silverlight issue, not sure. It is switching, so that’s good. But as far as it not doing what you expect, I’m not sure. But you might be making assumptions about your bandwidth that are not actual from the point of view of Wowza server’s connection to you.


I don’t think we will be able to help. Smooth streaming is built-in to Silverlight. If it is not behaving as expected, it’s either a player issue or maybe your network is not as reliable as you think it is. I would try to run tests from other locations to compare.


Great, thanks for the update.


Try reducing the video bitrate, probably significantly


Your 2nd example is correct:


or just:


Take a look at the file with GSpot:


You probably have “cupertinostreamingpacketizer” in Application.xml /Streams /LiveStreamPacketizers. For vod it should be empty, like this:



This all looks right. Are you on cellular connection? Try wifi.


To use any of the examples, copy all the files in the example’s client folder to a web site and open the html page in a browser:


Or, for testing you can copy all the files to your computer and open from a file explorer by double clicking the html file.

This error means that Wowza is already running and you are trying to start it again, or you have another program using port 1935 (FMIS or Red5 perhaps):

WARN vhost comment 2010-08-31 00:00:03 - - - - - 37473.471 - - - - - - - defaultVHost Bind failed, try again ([any]:1935): Address already in use


Your website can have a link to click to open a page that has a player configured to connect to Wowza and play that stream.

In JW player, you use the Flashvars “streamer” to set a rtmp connection to Wowza and “file” is the stream name.

Flashvars = “streamer=rtmp://[wowza-address]:1935/vod&file=flv:test.flv&provider=rtmp”

You can also have a client-side playlist in JW Player and Flowplayer. That is where there is a list of videos next to the player that the user can click. In JW player that is implemented by making the “file” flashvar point to an xml file. See their tutorials for more details on that if you are interested. Flowplayer has a similar feature.


These lines are Wowza logs not validator output, and it is good, not indicating any problem.

You are playing a smil file in the I phone, and this is the video and audio codec for the item that is playing being reported.


Did you add this property to Application.xml HTTPStreamers Properties list?


Is it modified? If so, try removing or setting to default.


One thing, the LiveStreamPacketizer cupertino Properties you have set are not relevant for vod.

If you remove a Property you can remove the Property tags.


Your results are very close at this point actually. Warn lines for some segments is to be expected when using VBR encoding. What counts is the summary at bottom, and this line in particuar:

Average segment bitrate: 444.72 kbit/s (10.06 % of target)

You want to be less than within 10% of the target, and you are just over that.

To improve this more, using the particular sample you are using (bigbuckbunnyiphone_300.mp4), try making the Application.xml /HTTPStreamer ChunkDurationTarget value “9000”. And apply Patch 5, which will improve the accuracy of the bandwidth calculation for the playlist item, against which the bitrate of each segment is compared.

Before applying patch 5, check your Wowza version in a browser:


Then see if you need to apply one or both patches on the devbuild page, starting from the bottom. You apply the oldest patch, then newer patches.

Here is Patch 5, and please see the IMPORTANT note below.

Carefully ready the IMPORTANT!!! notice in the README.txt file of the patch. Several core components have been upgraded:


Several core components have been updraded to newer versions. Before

applying this patch, delete the following files from your Wowza Media Server






Might be Flash doing port/protocol rollover. What happens when you add port 1935?:

Server: rtmp://[wowza-address]:1935/vod

Stream: mp4:sample.mp4


That’s right. Port 1935 is the default port for RTMP, and port 80 is default port for HTTP and RTMPT (tunneling) protocol. To use non-default port, it must be explicit. So these can work:



In Wowza 2 you can bind to multiple ports. These are all nice to have:

<Port>1935, 80, 443, 554</Port>

Whenever you add a port like this, restart Wowza, then check the recent startup lines in the access log to ensure that Wowza was able to bind to the port(s) you added. If not, you will see many error lines because Wowza will keep trying to bind.

It is best practice to use ports explicitly even if it is the default port for that protocol.



Use this HTML5 in Safari on Mac instead of direct link:

  <title>Cupertino Streaming</title>
<video controls src="http://[wowza-address]:1935/vod/sample.mp4/playlist.m3u8">

Reguard problem with port 1935, check your access log for errors binding to port 1935 when starting. You might have another instance of Wowza already running, or you are running FMS or another application that is already using port 1935.

Does this work in Wowza example SimpleVideoStreaming Flash player?:

Server: rtmp://[wowza-address]:1935/vod

Stream: mp4:sample.mp4


Another iOS snag is MP3 audio. It has to be Stereo 44100Hz. At least in some versions of IPhone.


AAC is better. Sorry, I should have made that point. MP3 has to be Stereo 44100Hz, but AAC is better. So, that is not the problem you are having. Stick with AAC.’

Make sure it is h.264 Baseline 3 profile. Main Profile will work in IPad but not IPhone. So that could be the problem.


BigBuckBunny sample video (sample.mp4) that ships with Wowza works on IPhone.