How to set advanced properties by using the Wowza Streaming Cloud REST API

Learn how to use the REST API to specify advanced transcoder and stream target properties for the Wowza Streaming Cloud™ service.

Contents


About advanced properties
Transcoder properties
Example transcoder property requests
Stream target properties
Example stream target property requests
More resources

About advanced properties


The Wowza Streaming Cloud REST API provides access to several advanced properties for transcoders and stream targets. These advanced properties can be configured to troubleshoot playback failures of transcoded streams from a camera connected to Wowza Streaming Cloud over RTSP/RTP and to improve playback over Wowza CDN - HLS stream targets.

For each advanced property, you must specify the section the transcoder or stream target configuration table that contains the property. Then, you specify the property's key-value pair.

Transcoder properties


Important: Specify advanced transcoder properties with caution. For most RTSP source connections, none of these settings needs to be enabled or changed. Edit them only if your viewers experience failed playback of streams that are produced by cameras connected to Wowza Streaming Cloud via RTSP, transcoded, and sent to Akamai for CDN delivery.
Section Key Value Description
cupertino cupertinoEnableId3ProgramDateTime Boolean If true (the default), puts the ProgramDateTime into the segment's ID3 tag for the timestamp.
cupertino cupertinoEnableProgramDateTime Boolean Controls whether an EXT-X-PROGRAM-DATE-TIME header is added to the Apple HLS stream's chunklist. The default, true, includes the header. EXT-X-PROGRAM-DATE-TIME headers use an absolute date and time tag from the first segment of the stream as the basis for seeking and displaying subsequent segments. Specify false to omit the header from the chunklist.
cupertino cupertinoProgramDateTimeOffset integer, positive or negative Specifies the number of milliseconds allowed from the timestamp that the client can use to synchronize playback. The default, 0, allows no offset.
rtsp avSyncMethod Boolean Specifies how Wowza Streaming Cloud synchronizes the audio and video in the RTSP/RTP source stream. Set to true to use timecodes in the RTP stream packets to synchronize the audio and video. Set to false (the default) to use SR packets for synchronization information.
rtsp debugRtspSession Boolean If true, logs extra debug information about the handshake between Wowza Streaming Cloud and the RTSP/RTP source stream. The default, false, generates less-detailed logs.
rtsp maxRtcpWaitTime integer For use if avSyncMethod is false, which means Wowza Streaming Cloud is using Sender Report (SR) packets for A/V synchronization information. Specifies how long, in milliseconds, Wowza Streaming Cloud will wait for SR packets in the RTSP/RTP source stream to arrive. The default is 2000.
rtsp rtpIgnoreProfileLevelId Boolean Attempts to derive the H.264 profile level ID from the sprop parameter data sets in the stream's Session Description Protocol (SDP) message. The ID allows a decoder to recognize the requirements to decode the stream, but many RTSP sources, especially IP cameras, publish an incorrect ID in the SDP message. Set to true to tell Wowza Streaming Cloud to ignore the profile level ID in the sprop parameter data sets of the stream's SDP message when decoding the stream. The default, false, uses the ID in the decoding process.
rtsp rtpIgnoreSpropParameterSets Boolean Attempts to derive the H.264 profile level ID from SPS/PPS NAL units in the stream, if they exist. If the stream's SDP message contains incorrect sprop parameter data sets, try setting this value to true to derive the H.264 profile level ID from the SPS/PPS NAL units in the stream, instead. The default, false, instructs Wowza Streaming Cloud to attempt to derive the H.264 profile ID from sprop parameter sets.
rtsp rtpTransportMode string Specifies the transport mode used to pull an RTSP/RTP stream from an IP camera. The default is interleave, which is RTP over TCP; the alternative is udp, which is TCP over UDP.
rtsp rtspFilterUnknownTracks Boolean If true, removes unidentifiable tracks from the RSTP/RTP source stream. The default, false, leaves unidentifiable tracks in the stream.
rtsp rtspValidationFrequency integer Specifies, in milliseconds, how frequently Wowza Streaming Cloud validates the RTSP/RTP connection. The default is 15000.

Example transcoder property requests


Note: In all code examples, for [key], substitute your API key or your access key as appropriate. For more information, see Locating and using API and access keys.
Create a transcoder property:
 
curl -X POST --header "Content-Type: application/json" --header "wsc-api-key: [key]" --header "wsc-access-key: [key]" -d '{
   "property": {
     "key": "rtpTransportMode",
     "section": "rtsp",
     "value": "interleave"
   } 
}' "https://api.cloud.wowza.com/api/v1/transcoders/[transcoder_id/properties"
The command creates a rtpTransportMode property for the transcoder. The details of the transcoder property are listed in the response, which should look something like this:
 
{
  "property": {
    "key": "rtpTransportMode",
    "section": "rtsp",
    "value": "interleave"
  }
}
The property_id, which is required to view, update, or delete a property, is a string that contains the property's section and key, connected by a dash. For example, rtsp-rtpTransportMode.

View all of the properties applied to a transcoder:
 
curl -X GET --header "wsc-api-key: [key]" --header "wsc-access-key: [key]" "https://api.cloud.wowza.com/api/v1/transcoders/[transcoder_id]/properties"
View the details of a specific property applied to a transcoder:
 
curl -X GET --header "wsc-api-key: [key]" --header "wsc-access-key: [key]" "https://api.cloud.wowza.com/api/v1/transcoders/[transcoder_id]/properties/[property_id]"
Delete a transcoder property:
 
curl -X DELETE --header "wsc-api-key: [key]" --header "wsc-access-key: [key]" "https://api.cloud.wowza.com/api/v1/transcoders/[transcoder_id]/properties/[property_id]"

Stream target properties


Stream target properties are available for Wowza CDN and custom HLS targets--that is, targets whose type is CustomStreamTarget or WowzaStreamTarget and whose provider is akamai_cupertino.

Stream target properties

Section Key Value Description
hls chunkSize integer Reduces the duration of the time-based audio and video chunks that Wowza Streaming Cloud delivers to the target. A lower (shorter) duration can reduce latency but may affect playback on some older devices. Valid values are 2, 4, 6, 8, and 10 (the default).
 
Caution: For most HLS stream targets, the segment duration doesn't need to be enabled or changed. Edit it only if viewers experience unacceptably long latency.
hls sendSSL Boolean Determines whether Wowza Streaming Cloud sends the stream from the transcoder to the target by using SSL (HTTPS). The default, false, sends the stream over HTTP.
playlist playSSL Boolean Determines whether Wowza Streaming Cloud sends the stream from the target to the player by using SSL (HTTPS). playSSL is disabled by default, Instead, relativePlaylists is enabled, which allows playback over both HTTP and HTTPS. If you want to require playback over HTTPS, enable playSSL and set to true to override relativePlaylists.
playlist relativePlaylists Boolean Allows the viewer to watch the stream over HTTP and HTTPS, whichever protocol their browser calls. The default, true, means that relative playlists are enabled. If false, the viewer's playback protocol (HTTP or HTTPS) must correspond to the target's specified playback protocol.

Example stream target property requests


Create a property for a stream target:
 
curl --header 'wsc-api-key: [key]' --header 'wsc-access-key: [key]' --header 'Content-Type: application/json' -X POST -d '{
  "property": {
    "key": "chunkSize",
    "section": "hls",
    "value": "2"
  }
}' "https://api.cloud.wowza.com/api/v1/stream_targets/[stream_target_ID]/properties/"
The command assigns a chunk size of 2 to the target. The details of the target's property are listed in the response, which should look something like this:
 
{
   "property": {
     "key": "chunkSize",
     "section": "hls",
     "value": "2"
   }
}
The property_id, which is required to view, update, or or delete a property, is a string that contains the property's section and key, connected by a dash. For example, hls-chunkSize.

View all of the properties applied to a stream target:
 
curl -X GET --header "wsc-api-key: [key]" --header "wsc-access-key: [key]" "https://api.cloud.wowza.com/api/v1/stream_targets/[stream_target_id]/properties"
View the details of a specific property applied to a stream target:
 
curl -X GET --header "wsc-api-key: [key]" --header "wsc-access-key: [key]" "https://api.cloud.wowza.com/api/v1/stream_targets/[stream_target_id]/properties/[property_id]"
Delete a stream target property:
 
curl -X DELETE --header "wsc-api-key: [key]" --header "wsc-access-key: [key]" "https://api.cloud.wowza.com/api/v1/stream_targets/[stream_target_id]/properties/[property_id]"

More resources



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