Configure Wowza Streaming Engine as an HTTP caching origin

Wowza Streaming Engine™ media server software can be used as an origin to an HTTP caching infrastructure for delivery of live and video-on-demand streams that use the HLS and MPEG-DASH streaming protocols. This article describes how to configure a streaming application to accomplish this.

Note: Trial licenses do not support using Wowza Streaming Engine as a caching origin.

About HTTP caching origins


When using Wowza Streaming Engine as an HTTP caching origin: 

  • The edge is an HTTP caching infrastructure, not another Wowza Streaming Engine server. The edge HTTP caching infrastructure pulls HTTP chunks from your Wowza Streaming Engine server HTTP caching origin and caches them. All clients receive the same cached data.
     
  • Communication with the Wowza Streaming Engine server HTTP caching origin is sessionless (session-based communication doesn't work). A single session is created internally for the requested protocol. This session is based on the stream name and it's used for every request for that name. This has the following ramifications:
    • URL query parameters in player requests aren't supported. This includes the wowzaplaystart and wowzaplayduration parameters for VOD playback, the wowzadvrplayliststart and wowzadvrplaylistduration for nDVR playback, and any custom parameters. (This does NOT include the DVR query parameter that's required for DVR playback.) If query parameters are set, only the parameters that are set when the stream name is initially requested are used. Subsequent changes to these parameters, either from the same player or a different one, are ignored.
       
    • Session-specific information (for example, connection counts) isn't relevant and, therefore, isn't available.
Note: You can configure Wowza Streaming Engine as a session-based HTTP caching origin with the ability to track session-specific information, but this configuration only caches video segments (not the media playlist or master playlist) for HLS streams (not other HTTP protocols). To learn more, see Configure Wowza Streaming Engine to track client sessions as an HTTP caching origin for HLS.

For HTTP caching to work properly, the following aspects of HTTP streaming behave differently: 

  • The Wowza Streaming Engine session identifier (_wXXXXXXXXX) must be removed from all playlist and manifest data. This is done automatically when you enable Wowza Streaming Engine to be an HTTP caching origin.
     
  • HTTP caching headers must be set to enable content caching.
     
  • Random identifiers must be added to live media chunk and fragment URLs so that each encoder session is unique from a caching perspective.

Create an HTTP origin application


This section shows you how to create an application in Wowza Streaming Engine Manager to use as an HTTP caching origin. If you're running Wowza Streaming Engine, you can create this application in Wowza Streaming Engine Manager. 

  1. In Wowza Streaming Engine Manager, click the Applications tab, and then click Add Application in the contents panel.
     
  2. On the Add Application page, click either Live HTTP Origin (for live streaming) or VOD HTTP Origin (for video on-demand streaming).

     
  3. In the New Application dialog box, name your application and click Add.

     
  4. Click Save to save the application with default values.

The application is ready to use as an origin to an HTTP caching infrastructure. 

Note: HTTP origin applications support all HTTP streaming playback types by default. They don't support the RTMP and RTSP playback types.

HTTP cache origin properties are automatically enabled and set to default values for each of the selected Playback Types for the application. To change the default application property values, click the Properties tab and then click HTTP Cache Origin in the Quick Links bar. Use the Property reference below to configure the default property values and to add custom properties. Note that access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.

Property reference


This section describes the properties that you can configure for your HTTP origin application. You can configure the values for the default properties and add the custom properties described in this section using Wowza Streaming Engine Manager or in the application's [install-dir]/conf/[application]/Application.xml file using a text editor.

HTTP Streamer properties

httpOriginMode

This property is required to configure your HTTP origin application and enables or disables HTTP Origin Mode. The default value is on (enabled).

Wowza Streaming Engine Manager configuration
  1. Click the Applications tab, and then click the name of your HTTP origin application in the contents panel.
     
  2. On the HTTP origin application page Properties tab, click HTTP Cache Origin in the Quick Links bar.
     
    Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
  3. In the HTTP Cache Origin area, make sure that httpOriginMode value is set to on. To turn off HTTP Origin Mode, click Edit, and then set the value to off.
     
  4. Click Save, and then restart the application to apply any changes.
XML configuration
  1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your HTTP origin application and add the following property to the <HTTPStreamer>/<Properties> container. Be sure to add the property to the correct <Properties> container in Application.xml as there are several such containers in the file.
    <Property>
        <Name>httpOriginMode</Name>
        <Value>on</Value>
        <Type>String</Type>
    </Property>
  2. Restart the Wowza Streaming Engine to apply the changes.

Apple HLS cache-control properties

These properties are required for delivery using the Apple HLS protocol.

Wowza Streaming Engine Manager configuration
  1. Click the Applications tab, and then click the name of your HTTP origin application in the contents panel.
     
  2. On the HTTP origin application page Properties tab, click HTTP Cache Origin in the Quick Links bar.
     
    Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
  3. Click Edit in the HTTP Cache Origin properties area and make the following changes:
     
    1. Select the Enabled check box next to cupertinoCacheControlPlaylist and set the value to max-age=1 second.
       
    2. Select the Enabled check box next to cupertinoCacheControlMediaChunk and set the value to max-age=3600 seconds.
  4. Click Save, and then restart the application to apply the changes.
XML configuration
  1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your HTTP origin application and add the following properties to the <HTTPStreamer>/<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.
    <Property>
        <Name>cupertinoCacheControlPlaylist</Name>
        <Value>max-age=1</Value>
        <Type>String</Type>
    </Property>
    <Property>
        <Name>cupertinoCacheControlMediaChunk</Name>
        <Value>max-age=3600</Value>
        <Type>String</Type>
    </Property>
  2. Restart Wowza Streaming Engine to apply the changes.
Notes:
  • cupertinoCacheControlPlaylist sets the value of the HTTP caching header for playlists in seconds.
     
  • cupertinoCacheControlMediaChunk sets the value of the HTTP caching header for media chunks in seconds.

MPEG-DASH cache-control properties

These properties are required for delivery of streams using the MPEG-DASH streaming protocol. 

Note: The MPEG-DASH cache-control properties are only supported in Wowza Streaming Engine software.
Wowza Streaming Engine Manager configuration
  1. Click the Applications tab, and then click the name of your HTTP origin application in the contents panel.
     
  2. On the HTTP origin application page Properties tab, click HTTP Cache Origin in the Quick Links bar.
     
    Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
  3. Click Edit in the HTTP Cache Origin properties area and make the following changes:
     
    1. Select the Enabled check box next to mpegdashCacheControlPlaylist and set the value to max-age=1 second.
       
    2. Select the Enabled check box next to mpegdashCacheControlMediaChunk and set the value to max-age=3600 seconds.
  4. Click Save, and then restart the application to apply the changes.
XML configuration
  1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your HTTP origin application and add the following properties to the <HTTPStreamer>/<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.
    <Property>
        <Name>mpegdashCacheControlPlaylist</Name>
        <Value>max-age=1</Value>
        <Type>String</Type>
    </Property>
    <Property>
        <Name>mpegdashCacheControlMediaChunk</Name>
        <Value>max-age=3600</Value>
        <Type>String</Type>
    </Property>
    
    
  2. Restart Wowza Streaming Engine to apply the changes.
Additional Properties
  • mpegdashCacheControlPlaylist sets the value of the HTTP caching header for manifests and playlists in seconds.
     
  • mpegdashCacheControlMediaChunk sets the value of the HTTP caching header for media segments in seconds.

Custom properties

cupertinoOnChunkStartResetCounter

Set this property to true to reset the continuity counter in each media chunk that's generated. This helps to ensure that each generated chunk is identical. When disabled (false), the continuity counter is incremented in each media chunk to help track packet loss in TCP transmissions.

Wowza Streaming Engine Manager configuration
  1. Click the Applications tab, and then click the name of your HTTP origin application in the contents panel.
     
  2. On the HTTP origin application page Properties tab, click Custom in the Quick Links bar.
     
    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, specify the following settings in the Add Custom Property dialog box, and then click Add:
     
    • Path - Select /Root/Application/HTTPStreamer.
       
    • Name - Enter cupertinoOnChunkStartResetCounter.
       
    • Type - Select Boolean.
       
    • Value - Enter true.
  5. Click Save, and then restart the application to apply the changes.
XML configuration
  1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your HTTP origin application and add the following property to the <HTTPStreamer>/<Properties> container. Be sure to add the property to the correct <Properties> container in Application.xml as there are several such containers in the file.
    <Property>
        <Name>cupertinoOnChunkStartResetCounter</Name>
        <Value>true</Value>
        <Type>Boolean</Type>
    </Property>
  2. Restart Wowza Streaming Engine to apply the changes.

httpRandomizeMediaName

Set this property to true to help to ensure that the chunks in live streams are unique if the encoder is restarted.

Wowza Streaming Engine Manager configuration
  1. Click the Applications tab, and then click the name of your HTTP origin application in the contents panel.
     
  2. On the HTTP origin application page Properties tab, click Custom in the Quick Links bar.
     
    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, specify the following settings in the Add Custom Property dialog box, and then click Add:
     
    • Path - Select /Root/Application/LiveStreamPacketizer.
       
    • Name - Enter httpRandomizeMediaName.
       
    • Type - Select Boolean.
       
    • Value - Enter true.
  5. Click Save, and then restart the application to apply the changes.
XML configuration
  1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your HTTP origin application and add the following property to the <LiveStreamPacketizer>/<Properties> container. Be sure to add the property to the correct <Properties> container in Application.xml as there are several such containers in the file.
    <Property>
        <Name>httpRandomizeMediaName</Name>
        <Value>true</Value>
        <Type>Boolean</Type>
    </Property>
  2. Restart Wowza Streaming Engine to apply the changes.
Note: If you want to use Wowza nDVR as an HTTP caching origin, you must also add this property to the Root/Application/DVR path (<DVR>/Properties container) to your live application that has Wowza nDVR enabled.

mpegdashPlaylistHostDomain

This property sets the host domain for the CDN when direct access to your server is blocked.

Wowza Streaming Engine Manager configuration
  1. Click the Applications tab, and then click the name of your HTTP origin application in the contents panel.
     
  2. On the HTTP origin application page Properties tab, click Custom in the Quick Links bar.
     
    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, specify the following settings in the Add Custom Property dialog box, and then click Add
    • Path - Select Root/Application/HTTPStreamer.
    • Name - Enter mpegdashPlaylistHostDomain.
       
    • Type - Select String.
       
    • Value - Enter the path for the CDN domain host.
  5. Click Save, and then restart the application to apply the changes.

XML configuration

  1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your HTTP origin application and add the following property to the <HTTPStreamer>/<Properties>  container. Be sure to add the property to the correct <Properties> container in Application.xml as there are several such containers in the file.
    <Property>
        <Name>mpegdashPlaylistHostDomain</Name>
        <Value>[path to the CDN host]</Value>
        <Type>String</Type>
    
    </Property>
  2. Restart Wowza Streaming Engine to apply the changes.

mpegdashPlaylistHostProtocol

This might be needed if the CDN accepts https requests, but uses http to the server or if you are doing SSL offload using a proxy server.

Wowza Streaming Engine Manager configuration
  1. Click the Applications tab, and then click the name of your HTTP origin application in the contents panel.
  2. On the HTTP origin application page Properties tab, click Custom in the Quick Links bar.
     
    Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
    • In the Custom area, click Edit.
       
    • Click Add Custom Property, specify the following settings in the Add Custom Property dialog box, and then click Add
      • Path - Select Root/Application/HTTPStreamer.
      • Name - Enter mpegdashPlaylistHostProtocol.
         
      • Type - Select String.
         
      • Value - https://
    • Click Save, and then restart the application to apply the changes.

XML configuration

  1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your HTTP origin application and add the following property to the <HTTPStreamer>/<Properties>  container. Be sure to add the property to the correct <Properties> container in Application.xml as there are several such containers in the file.
    <Property>
        <Name>mpegdashPlaylistHostProtocol</Name>
        <Value>https://</Value>
        <Type>String</Type>
    
    </Property>
  2. Restart Wowza Streaming Engine to apply the changes.

More resources


For more information about HTTP caching technologies, see: