• How to do advanced configuration for Wowza nDVR

    This article describes advanced Wowza nDVR configuration. Basic configuration, including enabling recording, is described in How to set up and run Wowza nDVR for live streaming. We recommend that you start with the basic configuration and test playback of your recorded streams before using the additional parameters that are described in this article. For more information about Wowza nDVR, see the User's Guide and the online Support articles.

    Contents


    How to do advanced configuration
    Property reference
    Property for nDVR in live stream repeater (origin/edge) configuration

    How to do advanced configuration


    Properties for advanced Wowza nDVR configuration can be added to the nDVR properties of your live application in Wowza Streaming Engine™ Manager or by editing the live application configuration file (Application.xml) in a text editor.

    Note: If you're running Wowza Media Server™ software, you can only add the properties by editing the Application.xml file.

    Advanced configuration in Wowza Streaming Engine Manager

    1. In Wowza Streaming Engine Manager, click the Applications tab, and then nDVR under the name of your live application in the contents panel.

    2. On the nDVR page Properties tab, click Edit in the DVR section.

      Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
    3. Select the Enabled check box next to the desired property, and then set the value. See the Property reference below for advanced property details.

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

    Advanced configuration in XML

    1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your live application and add the desired property to the <DVR>/<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. See the Property reference below for advanced property details.

    2. Restart the Wowza media server software to apply the changes.

    Property reference


    streamTimeout

    The amount of time, in milliseconds (ms), that Wowza nDVR will wait for packets until it stops recording. The default value is 300,000 ms (5 minutes). This timeout is meant to account for when encoders disconnect and then restart. The value should be a non-zero value or else your recording will stop whenever there is no data.
    <Properties>
         <Property>
              <Name>streamTimeout</Name>
              <Value>300000</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrMinimumAvailableChunks

    Minimum number of chunks required to be available before streaming can start. The unit is the number of chunks. The default and minimum value is 3 chunks, which is typically required for HTTP streaming.
    <Properties>
         <Property>
              <Name>dvrMinimumAvailableChunks</Name>
              <Value>3</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrChunkGroupingSeconds

    Specifies, in seconds, how much content is recorded into one directory. The default value is 600 seconds (10 minutes). The directory naming convention is HHHH_MM_SS where H = hours, M = minutes, S = seconds. Using the default values, the first directory would be named 0000_00_00, the second directory would be named 0000_10_00, and so on.

    Note: There are very few reasons to change this layout, as it's hidden from users and is an internal construct used to guarantee a folder doesn't reach its maximum number of files.
    <Properties>
         <Property>
              <Name>dvrChunkGroupingSeconds</Name>
              <Value>600</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrAppendDiscontinuityDelta

    Applies to <ArchiveStrategy> append mode. The default value is 0 ms. When using append mode, a short time delta, in milliseconds, is placed between the old recording and the newly appended recording.
    <Properties>
         <Property>
              <Name>dvrAppendDiscontinuityDelta</Name>
              <Value>0</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrMaxChunkLogCount

    Maximum number of chunks to log recording information about in the wowzastreaming_access.log file. The default value is 10 chunks. As recording is continued past this value, there is no feedback for normal operation in the log. View directories and files created in [install-dir]/dvr for on-going feedback that recording is occurring.
    <Properties>
         <Property>
              <Name>dvrMaxChunkLogCount</Name>
              <Value>10</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrMaxRecountDurationLogCount

    Maximum number of log statements recorded about chunk duration being recalculated. A value less than 0 means that all statements are logged with no limit. The default value is 30.
    <Properties>
         <Property>
              <Name>dvrMaxRecountDurationLogCount</Name>
              <Value>30</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrAudioOnlyChunkTargetDuration

    Applies to recording an audio-only stream and is the target chunk duration. The unit is in milliseconds (ms). The default value is 2000 ms. This setting is ignored if the stream contains video and audio, in which case the keyframe determines the chunk size.
    <Properties>
         <Property>
              <Name>dvrAudioOnlyChunkTargetDuration</Name>
              <Value>2000</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrChunkDurationMinimum

    Controls minimum nDVR chunk size, in milliseconds (ms). The default value is 1500 ms. Chunks will still be broken on keyframes.
    Note:There's a trade-off between chunk size and latency. Because HTTP streaming has an inherent latency of 3 chunks, a larger chunk size would result in longer latency before playback would start. However, a very small chunk size will result in many long playlists and frequent chunk requests to the server.
    <Properties>
         <Property>
              <Name>dvrChunkDurationMinimum</Name>
              <Value>10000</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrWaitForCodecTime

    Amount of time, in milliseconds (ms), that Wowza nDVR waits to receive audio and video codec information after streaming has started. The default value is 8000 ms.
    <Properties>
         <Property>
              <Name>dvrWaitForCodecTime</Name>
              <Value>8000</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    recordVideo

    Set property to true to record video of incoming stream. Default is true.
    Set property to false to ignore video packets during recording.
    Either recordVideo or recordAudio property must be set to true.
    <Properties>
         <Property>
              <Name>recordVideo</Name>
              <Value>true</Value>
              <Type>Boolean</Type>
         </Property>
    </Properties>

    recordAudio

    Set property to true to record audio of incoming stream. Default is true.
    Set property to false to ignore audio packets during recording.
    Either recordVideo or recordAudio property must be set to true.
    <Properties>
         <Property>
              <Name>recordAudio</Name>
              <Value>true</Value>
              <Type>Boolean</Type>
         </Property>
    </Properties>

    dvrAllowableAVPacketDelta

    Wowza nDVR expects the incoming audio and video to be aligned. Through this parameter, Wowza nDVR will try to compensate for out-of-alignment issues, but it can't resolve them. This setting safeguards against audio and data video packets that aren't closely aligned. The units are in milliseconds (ms). The default value is 2000 ms.

    If audio and video are out of alignment by more than this value, the audio and video chunks will be ignored in an attempt to get the streams back into alignment.

    If you already have an out-of-alignment issue, increasing the default value is likely to cause more problems. Increasing this value will increase the tolerance level, but may cause the overall quality to be unacceptable.
    <Properties>
         <Property>
              <Name>dvrAllowableAVPacketDelta</Name>
              <Value>2000</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrPacketSortTime

    Adds a packet sorter before the audio and video packets get to Wowza nDVR. The unit is in milliseconds (ms). The default value (0) means that no sorting occurs. This is similar to the live streaming packet sorter. This adds additional latency equal to the value. It's recommended to fix audio and video alignment upstream from the Wowza media server, but this setting can be used if that's not possible.
    <Properties>
         <Property>
              <Name>dvrPacketSortTime</Name>
              <Value>0</Value>
              <Type>Integer</Type>
         </Property>
    </Properties>

    dvrEncryptionSharedSecret

    In live stream repeater (origin/edge) scenarios where the Wowza media server uses encryption, a shared secret must be defined for both origin and edges to encrypt the information sent between origin and edge so that encryption information isn't revealed.
    <Properties>
         <Property>
              <Name>dvrEncryptionSharedSecret</Name>
              <Value>AGoodSecret</Value>
              <Type>String</Type>
         </Property>
    </Properties>
    See the liveRepeaterEncryptionSharedSecret description below for more information on the use of dvrEncryptionSharedSecret.

    startRecordingOnStartup

    Determines if DVR should start recording immediately upon stream start. The default value (true) means that when a stream starts, DVR immediately starts recording. If the DVR recording is controlled via API, it's useful to set the value to false.
    <Properties>
         <Property>
              <Name>startRecordingOnStartup</Name>
              <Value>false</Value>
              <Type>boolean</Type>
         </Property>
    </Properties>

    dvrPlaylistRequestDelegate

    Registers a delegate to generate or limit a DVR playlist request. For more information, see How to use Wowza nDVR Playlist Request API
    <Properties>
        <Property>
            <Name>dvrPlaylistRequestDelegate</Name>
            <Value>com.wowza.wms.dvr.impl.DvrStartDurationPlaylistRequestDelegate</Value>
        </Property>    
    </Properties>

    dvrSanJosePlaylistVersion

    Specifies the San Jose F4M playlist version number (version 1.0 or version 2.0). The default value is 2.0.
    <Properties>
        <Property>
            <Name>dvrSanJosePlaylistVersion</Name>
            <Value>1.0</Value>
        </Property>
    </Properties>

    Property for nDVR in live stream repeater (origin/edge) configuration


    liveRepeaterEncryptionSharedSecret

    This shared secret is used when encrypting sensitive data that's sent across live repeater connections (from origin-to-edge or edge-to-edge) in an origin/edge configuration. In the case of nDVR, the chunk data is also encrypted. Using this property provides a unique encryption key for each stream served by the origin, unlike the dvrEncryptionSharedSecret property, which generates an identical encryption key for all streams. For this reason, liveRepeaterEncryptionSharedSecret is the preferred custom property to use on all Wowza Streaming Engine instances in origin/edge mode.

    ​Notes:
    • If both the dvrEncryptionSharedSecret and liveRepeaterEncryptionSharedSecret properties are defined, then the dvrEncryptionSharedSecret property is used by default. If neither property is defined, then a default liveRepeaterEncryptionSharedSecret value is used on Streaming Engine instances.

    • Important: Due to improvements that were made to the DVR live repeater feature in Wowza Streaming Engine, you can't mix Wowza Media Server and Wowza Streaming Engine instances within the same configuration.

    Wowza Streaming Engine Manager configuration


    1. In Wowza Streaming Engine Manager, click the Applications tab and then click the name of your live application (such as live) in the contents pane.

    2. On the live 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.

      • Name - Enter liveRepeaterEncryptionSharedSecret.

      • Type - Select String.

      • Value - Enter the shared secret value.

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

    XML configuration


    1. Use a text editor to open the [install-dir]/conf/[application]/Application.xml file for your live application and add the following property to the <Application>/<Properties> container at the bottom of the file. Be sure to add the property to the correct <Properties> container in Application.xml as there are several such containers in the file.
      <Properties>
           <Property>
                <Name>liveRepeaterEncryptionSharedSecret</Name>
                <Value>[shared-secret]</Value>
                <Type>String</Type>
           </Property>
      </Properties>
    2. Restart the Wowza media server software to apply the changes.


    Originally Published: 10-08-2011.
    Updated: For Wowza Streaming Engine on 05-08-2015.

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