• How to configure Adobe HDS packetization (sanjosestreaming)

    This article describes properties in Wowza Streaming Engine™ media server software that you can use to control how the San Jose segmenter splits streams into segments suitable for playback on Flash clients.

    Note: Wowza Streaming Engine 4.0.0 or later is required.

    Contents


    Wowza Streaming Engine Manager configuration
    XML configuration

    Wowza Streaming Engine Manager configuration


    You can configure the properties that control how the San Jose segmenter splits streams in Wowza Streaming Engine™ Manager. Use Streaming Engine Manager to manage the Wowza Streaming Engine media server software.

    Configure properties for live streams

    1. In the manager Welcome page, click the Applications tab at the top of the page.

    2. In the Applications contents panel, click the name of your live application (such as live).

    3. On the live application page Properties tab, click San Jose Streaming Packetizer in the Quick Links bar.

      Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.


    4. Click Edit in the San Jose Streaming Packetizer properties area. To enable a property, select the Enabled check box for the property. You can also change the value for an enabled property from its default setting. All time values are in milliseconds and the values are set on a per-application basis. Refer to the San Jose segmenter property reference below for more information about the individual properties you can use to manage the San Jose segmenter for live streams.



    5. Click Save, and then restart the application when prompted to apply the changes.

    Note: For more information about how to configure properties, see Configure properties. This article shows how to access and adjust default properties and how to add custom properties in Streaming Engine Manager.

    San Jose segmenter property reference

    • sanjoseChunkDurationTarget - Sets the duration of each chunk in milliseconds.

    • sanjoseMaxChunkCount - Sets the maximum number of chunks stored in the available chunk list.

    • sanjosePlaylistChunkCount - Sets the number of items returned in the playlist.

    • sanjoseRepeaterChunkCount - Sets the number of chunks that are immediately sent from the origin to the edge after initial connection. This property is only required for Live Edge application types. A live edge application will have a StreamType of liverepeater-edge in the Application.xml file.

    Property details


    The audio and video packets from the live encoder enter the Wowza media server and are segmented into chunks based on time. The duration of each chunk is control by the sanjoseChunkDurationTarget setting (in millseconds). As the chunks are completed they are added to the available chunk list. The maximum number of chunks stored in the available chunk list is control by the sanjoseMaxChunkCount setting. When a stream is requested by Flash, a manifest.f4m is returned that contains the [n] most recently added chunks. The number of items returned in the manifest [n] is control by the sanjosePlaylistChunkCount setting.

    The live stream repeater system is used to deliver a single live stream in an origin/edge configuration to multiple edge servers. The first time a stream is requested from an edge server, it pulls the already segmented chunks from the origin to the edge for delivery to Flash clients. The sanjoseRepeaterChunkCount setting controls the number of chunks that are immediately sent from the origin to the edge upon initial connection. It's best if this setting is equal to or greater than sanjosePlaylistChunkCount but less then sanjoseMaxChunkCount.

    Notes:
    • Chunks must start on a keyframe. So it's best to use a keyframe interval that is factor of the sanjoseChunkDurationTarget setting. For instance if sanjoseChunkDurationTarget is set to 10 seconds then use a keyframe interval of either 2, 2.5, 5, or 10 seconds.

    • To get a rough idea of the amount of memory used to store the chunks for a single live stream use the following formula:

      [total-memory-mb] = ([stream-bitrate-kbps]/([1024-kb-per-mb]*[8-bits-per-byte])) * [sanjoseChunkDurationTarget-seconds] * [sanjoseMaxChunkCount]

      For example a 500Kbps stream will consume the following amount of memory given the default settings above:

      (500/(1024*8)) * 10 * 10 = 6 MB of memory

    • You can add the sanjoseCalculateChunkIDBasedOnTimecode property to turn on chunk ID numbering based on incoming packet time. To do this, do the following:

      1. On the live application page Properties tab, click Custom in the Quick Links bar.

      2. In the Custom section, click Edit.

      3. Click Add Custom Property, specify the following settings in the Add Custom Property dialog box, and then click Add:

        • Path - Select /Root/LiveStreamPacketizers.

        • Name - Enter sanjoseCalculateChunkIDBasedOnTimecode.

        • Type - Select Boolean.

        • Value - To start Adobe HDS chunk IDs at 0, enter false. To calculate Adobe HDS chunk IDs based on the incoming live stream timecodes, enter true. (Use this mode to synchronize chunk IDs between two servers that packetize the same live stream.)

      4. Click Save, and then restart the application when prompted to apply the changes.

    Configure property for VOD streams

    You can control the video-on-demand (VOD) chunk size by adding the sanjoseChunkDurationTarget property to your VOD application configuration.

    1. In the manager Welcome page, click the Applications tab at the top of the page.

    2. In the Applications contents panel, click the name of your live application (such as vod).

    3. On the VOD application page Properties tab, click Custom in the Quick Links bar.

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

    5. Click Add Custom Property, specify the following custom property settings in the Add Custom Property dialog box, and then click Add.

      1. In Path, select /Root/Application/HTTPStreamer.

      2. In Name, enter sanjoseChunkDurationTarget.

      3. In Type, select Integer.

      4. In Value, enter a value (in milliseconds) to specify the default VOD chunk size.

    6. Click Save, and then restart the application when prompted to apply the custom property.

    XML configuration


    If you configured the properties in Wowza Streaming Engine Manager, you can skip this section. If you make changes to [install-dir]/conf/[application]/Application.xml and you're using the Wowza Streaming Engine media server software, any supported settings are 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 Media Server software. All time values are in milliseconds.

    Configure properties for live streams

    1. Use a text editor to open the Application.xml file for your live application. Then add the properties described in the San Jose segmenter property reference above to the <LiveStreamPacketizer>/<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>sanjoseChunkDurationTarget</Name>
      	<Value>10000</Value>
      	<Type>Integer</Type>
      </Property>
      <Property>
      	<Name>sanjoseMaxChunkCount</Name>
      	<Value>10</Value>
      	<Type>Integer</Type>
      </Property>
      <Property>
      	<Name>sanjosePlaylistChunkCount</Name>
      	<Value>4</Value>
      	<Type>Integer</Type>
      </Property>
      <Property>
      	<Name>sanjoseRepeaterChunkCount</Name>
      	<Value>4</Value>
      	<Type>Integer</Type>
      </Property>
      <Property>
      	<Name>sanjoseCalculateChunkIDBasedOnTimecode</Name>
      	<Value>false</Value>
      	<Type>Boolean</Type>
      </Property>
    2. Restart the Wowza media server software to apply the changes.

    Configure property for VOD streams

    1. Open the Application.xml file for your VOD application using a text editor and then add the sanjoseChunkDurationTarget property 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>sanjoseChunkDurationTarget</Name>
      	<Value>10000</Value>
      	<Type>Integer</Type>
      </Property>
    2. Restart the Wowza media server software to apply the changes.


    Originally Published: 11-30-2010.
    Updated: For Wowza Streaming Engine 4.0.0 on 11-26-2014.

    If you're having problems or want to discuss this article, post in our forum.