• How to set up video on demand streaming

    This tutorial shows how to use Wowza Streaming Engine™ software to stream video on demand (VOD) content to all supported player technologies.




    Related articles



    This tutorial shows you how to set up an application for video on demand (VOD) streaming. As the name denotes, VOD lets users play video streams at their convenience. The source of a VOD stream is a file on the server. Wowza Streaming Engine software administrators can configure VOD streaming applications by using UI options in Wowza Streaming Engine Manager or by setting properties in Application.xml. Both configuration methods have the same result. Wowza Media Server™ software administrators must configure VOD streaming applications in the Application.xml file. This tutorial uses the sample video file [install-dir]/content/sample.mp4.

    Wowza Streaming Engine Manager configuration

    This section shows you how to set up a VOD streaming application in Wowza Streaming Engine Manager. The example uses an application named vod, which is included in default Wowza Streaming Engine software installations. You can use this same procedure if you want to create a new vod streaming application.

    You can use the Streaming Engine Manager with the latest versions of most web browsers that support HTML5 and Cascading Style Sheets level 3 (CSS 3). We recommend the Google Chrome browser.

    1. Make sure Wowza Streaming Engine Manager is running. See How to start and stop Wowza Streaming Engine software.

    2. In the Streaming Engine Manager Welcome page, click the Applications tab at the top of the page.

    3. Configure the vod application:

      1. In the Applications contents panel, click vod, and then click Edit. (If you want to create a new on-demand streaming application, click Applications, Add Application, then Video on Demand (VOD). Follow the instructions in the UI.)

      2. Select all of the Playback Types, and then click Save.

      3. The following alert appears after every configuration change. You can wait until all changes are completed before you restart.

    4. Configure playback authentication:

      1. In the Applications contents panel, click Playback Security, and then click Edit.

      2. On the Playback Security page under Client restrictions select No client restrictions, and then click Save.

    5. Restart the application.

    The application runs whenever Streaming Engine software is running.

    XML configuration

    This section shows you how to configure the vod application by editing the Application.xml configuration file in a text editor.

    Note: If you created your application by following the previous section, you can skip this section. If you make changes to Application.xml and you're using Wowza Streaming Engine™ software, any supported settings will be displayed in the manager the next time it's started. Wowza Media Server™ software doesn't support Wowza Streaming Engine Manager, so you must edit Application.xml in a text editor if you're running Wowza Media Server.
    1. Create the application folder [install-dir]/applications/vod.

    2. Create the configuration folder [install-dir]/conf/vod and copy [install-dir]/conf/Application.xml to this new folder.

    3. Edit the newly copied Application.xml file and make the following changes (some of these settings may already be present):

      1. Set the Streams/StreamType property to:
      2. Set the HTTPStreamers property to:
      3. Set the RTP/Authentication/PlayMethod to:
    4. Start the Wowza media server.


    • In the following examples, [wowza-ip-address] is the IP address or domain name of the Wowza media server.

    • To play your own content, copy it to the [install-dir]/content folder and substitute its filename in place of sample.mp4 in the sample URLs in this section.

    Wowza Streaming Engine Manager

    In Streaming Engine Manager, click Test Players in the upper-right corner of the vod application page. The Test Players window that opens includes test players that are preconfigured to stream the sample.mp4 video file over various streaming formats.

    Each tab in the Test Players window either hosts a test player that you can use to play the video file or provides instructions for playing the video file. For example, to use the Adobe HDS protocol to playback the sample.mp4 video file, click the Adobe HDS tab, and then click Start.

    The test players are also online on our Wowza Test Players webpage.

    Example players

    You can also use example players installed in [install-dir]/examples/ to test your streaming applications. For more information see the following articles:

    Adaptive bitrate streaming

    Adaptive bitrate (ABR) live streaming to Adobe Flash Player, Apple iOS devices, Microsoft Silverlight, and MPEG-DASH players requires multiple files that are pre-encoded to the desired bitrates for streaming. For stream-switching to occur properly, the keyframes of each of the files must be aligned with each other. You also must create a Synchronized Multimedia Integration Language (SMIL) file that links the files together for playback.

    For more information, see How to do adaptive bitrate streaming.



    RTSP/RTP streaming is used to stream to Android and BlackBerry mobile devices. Android mobile devices formerly supported Adobe Flash player, but Android no longer supports Flash. Newer Android devices now support Apple HLS. HLS works best on Android 4.0 devices and above.

    To stream to RTSP/RTP, be sure that UDP ports 0-65535 are open and mapped to the Wowza media server.

    Note: To configure a Wowza media server for RTSP/RTP streaming, follow the instructions provided in How to troubleshoot RTSP/RTP playback.

    Property to force output to MPEG-TS (set-top box)

    When using RTSP/RTP to stream out content, you can force the output to MPEG-TS, which is required by many set-top boxes. For more information, see How to generate and control MPEG-TS output for set-top boxes.

    Property to change the AAC packetization method

    A Wowza media server can use the mpeg4-generic and mp4a-latm (3gpp) packetization methods to output AAC audio. The default packetization method is mpeg4-generic.

    Wowza Streaming Engine Manager configuration

    To switch to mp4a-latm (3gpp), do the following:

    1. In the Streaming Engine Manager contents panel, click vod.

    2. On the vod application page Properties tab, click Custom in the Quick Links bar or scroll to the bottom of the page.

      Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
    3. In the Custom area, click Edit.

    4. Click Add Custom Property, and then do the following:

      1. Add the audioPacketizerAAC property with the following values:

        • Path: Select /Root/Application/RTP.

        • Name: Enter audioPacketizerAAC.

        • Type: Select String.

        • Value: Enter com.wowza.wms.rtp.packetizer.RTPPacketizerMPEG4LATM.

      2. Click Add.

    5. On the Properties tab, click Save.

    6. Click Restart in the upper-right corner of the vod application page to restart the application.

    XML configuration

    To switch to mp4a-latm (3gpp):

    1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your live application and add the following properties to the RTP/Properties container. Be sure to add the properties to the correct <Properties> container in Application.xml as there are several such containers in the file.
    2. Restart the Wowza media server software to apply the changes.

    Related articles

    How to play your first video on demand stream (video tutorial)
    How to troubleshoot RTSP/RTP playback
    How to set up an application for RTSP/RTP streaming
    How to configure Apple QuickTime player for RTSP/RTP playback on Windows
    How to configure VLC player for RTSP/RTP playback (RTSP/RTP interleaved and tuning)
    How to find Apple iOS device supported profile and level information
    JW Player Dynamic Streaming
    Flowplayer Dynamic Streaming

    Originally Published: 10-01-2010.
    Updated: For Wowza Streaming Engine 4.2 on 06-16-2015.

    If you're having problems or want to discuss this article, post in our forum.
    If this article has an error or needs improvement, leave a comment below.

    Comments 38 Comments
    1. lisa_w -
      Added note with required parameters for playback with Microsoft Silverlight (Smooth Streaming). -Lisa
    1. tkchen7 -
      I have followed the instruction below and be able to play the video using Safri on my iPad2. However, it does not work with my iPad application. I use the MPMoviePlayController and it does not work at all. However, my application does work with http://devimages.apple.com/iphone/sa...bipbopall.m3u8 provided by Apple. Do I miss something? I need to get this resolve so that I can be ready to purchase your product.
    1. rrlanham -
      Have you tried with HTML video tag as with IPhone?

        <title>Cupertino Streaming</title>
      <video controls src="http://[wowza-address]:1935/vod/sample.mp4/playlist.m3u8">
      I don't know of any testing of MPMoviePlayController. I have not tried it.

    1. tkchen7 -

      Thank for the quick response. It actually works with MPMoviewPlayController the objective-c class.

      I check the server console and find out it looks for a file, which does not exist. I rename the filename and now it works.

      It is great to know Wowza is what we are looking for

    1. rrlanham -

      Great, glad it's working. Now we may refer to this thread re MPMoviewPlayController.

      Thanks for the update,
    1. Seunghee Jin -
      To interact the Apple iOS devices, how we can get the audio-only stream from Video on Demand File?

    1. rrlanham -
      Take a look at this article:


      Note: This requires AAC audio track for iOS 4 devices; Only iOS 5 devices support 64kbs MP3 audio, as required by AppStore. This technique will work with 128kbs MP3 in iOS 4, but that does meet the AppStore spec.

    1. rmavro -
      Can we use the .smil for non-dynamic switching? That is, file1 is low rate, file 2 is high rate, and then expect the server to deliver the best choice without dynamic adaptive rate selection?
    1. rrlanham -
      The players that support this iOS, Silverlight, OSMF, handle the smil as adaptive. It is handled in these clients, not really configurable.

    1. apakabartv -

      Our movie consists of several segments.
      Let's say the movie is called "my_movie", and it consists of 5 segment files:
      - segment_1.mp4, which is the beginning of the movie,
      - segment_2.mp4 which starts after segment 1 is finished,
      - segment_3.mp4 which starts after segment 2 is finished,
      - and so on...

      Is there a way to configure Wowza, so that from the viewer's perspective, there is only 1 movie: my_movie.
      i.e. the viewer only needs to click the VOD link once. The player will play segment_1, 2, 3.... and so on.
      And also, if the viewer slides the progress bar, it will play the segment accordingly.
      i.e. if the progress bar is moved to the near the end of the movie, then the player will play the segment file that corresponds to the end of the movie.

    1. lisa_w -
      Take a look at this example of creating a vod server-side playlist, http://www.wowza.com/forums/content....insert-Midroll

    1. rsilva -
      Hello, I normally install the Wowza conseguin with a license for testing, I actually adhere to the software, I run ppretendo some videos of great length, I managed to run through the RTMP protocol with ease using JWplayer but what interests me is the make the videos work over HTTP protocol, ie, there is the loading of the video by pausing the player using it JWplayer. Can anyone help me on how to run the videos with the HTTP protocol JWplayer?
    1. rrlanham -
      Take a look at last example in this article:


    1. leduy87vnhn -
      I am starting to build a IPTV system. Now I have problem with the client - how to create a flash client to play the video streamed by server?, could you please share source code of simplevideostreaming.swf ? I need to create a new one which supports to choose the video by clicking on some buttons instead of input a stream address (in simplevideostreaming.swf) but my problem is I don't know how to catch the video stream. I think I can find out the solution by reading source code of simplevideostreaming.swf.
      Thank you very much. Duy
    1. randall -

      The .fla file is there in all the examples, which you can open in Flash Builder.
    1. kumarranganath -
      Can any one give real time live URL where we can check how smil feature works and how videos will switch b/w based on the bit rate and finally for the low bandwidth it play audio - PLease give sample working with a SMIL URL for iphone/ipad with sample video
    1. Lee, Myung-Ho -
      Does wowza can VOD streamming mpeg ts files in local directory of wowza server? (not live stream from outside)
      The ts file contains h.264 video and aac audio stream.
      If it possible, please let me know the start point.(any tutorial URLs or docs)
      I want to make that each of clients want to be able to see(or FF, REW) the selected files.
    1. ianbeyer -
      .ts is not currently supported for VOD - in order to use that content, you'll need to put it in an MP4 container. Once you have done that, it should work great.
    1. leduy87vnhn -
      Can wowza server manage user priority? Such as user accounts, access control, limitations, user fees...
      I would like to implement those things in wowza server side instead of implement an independent head-end server.
      Thank you very much
    1. randall -
      Hello Duy,

      This is something you would setup on your Web Server/CMS/Database, possibly in conjunction with a Wowza Addon. Some parts of what you are looking to do can be done on the Wowza side, such as access control. Take a look at the Media Security package: http://www.wowza.com/forums/content.php?115

      There is no concept of "users" in Wowza, so this is something you'll need to implement.