Set advanced properties with the Wowza Video REST API
Modify default configurations used by the Wowza Video™ service and access additional functionality with advanced transcoder and stream target properties.
You set a property through the REST API by specifying the property's key/value pair and the section of the transcoder or stream target configuration table the property is stored in.
"property": {
"key": "rtpTransportMode",
"section": "rtsp",
"value": "udp"
Some functionality available through the advanced properties include:
- Transcoder — configuring VOD, recording, and file streaming settings; enabling AES 128 encryption; and more.
- Stream target — Further configuration of an HLS stream and modifying the playlist.
Refer to the transcoder properties and stream target properties sections of this document for detailed information about the properties in each category.
Transcoder properties
When you set a transcoder property, you set a key/value pair and specify the section of the transcoder configuration table where the key and value are stored, as shown in the following example.
"property": {
"key": "rtpTransportMode",
"section": "rtsp",
"value": "udp"
Transcoder properties exist in the following configuration table sections, which also categorize what the properties affect:
- asset_management — Saves a stream to Asset Management.
- cupertino — Configures HLS streams.
- ezdrm — Enables stream protection with a 3rd-party DRM provide, EZDRM.
- file — Perform actions on files used as video source.
- output — Modifies output renditions of a transcoder.
- recording — Enables recording of source streams.
- rtmp — Configures RTMP streams.
- rtsp — Configures RTSP streams. Particularly helpful for troubleshooting playback issues for transcoded streams from a camera connected to Wowza Video over RTSP/RTP.
- vod_stream — Performs actions on VOD streams.
The following tables list the specific properties available in each transcoder configuration section.
asset_management
Use the asset_management
property to save a stream to Asset
Management.
Section | Key | Value | Description |
---|---|---|---|
asset_management |
enabled |
boolean | Specifies whether a stream is saved to Asset Management. |
cupertino
Use the cupertino
properties to configure HLS streams.
Section | Key | Value | Description |
---|---|---|---|
cupertino |
aes128Host |
string | The URL that devices will use to fetch the key to decrypt the stream. |
cupertino |
aes128Secret |
string | A 16-byte key that will be used to decrypt the stream. The key must be 32 characters in length and can only contain hex characters (a-z, A-Z, 0-9). The key must match the key returned by the aes128Host. |
Learn more
ezdrm
Use the ezdrm
properties to integrate with EZDRM, a third-party
digital rights management (DRM) service you can use to protect content
from unauthorized viewing.
Section | Key | Value | Description |
---|---|---|---|
ezdrm |
username |
string | Your EZDRM user name. |
ezdrm |
password |
string | Your EZDRM password. |
ezdrm |
fairPlayAssetId |
string | The FairPlay asset ID you generated from EZDRM. |
ezdrm |
wideVineContentId |
string | The content ID you generated from EZDRM. |
Learn more
- Use EZDRM FairPlay Streaming DRM with Wowza Streaming Engine
- Protect streams for Google Widevine and Microsoft PlayReady devices with EZDRM and the Wowza Video REST API
file
Use the file
properties to configure the stream when a file is the
video source.
Section | Key | Value | Description |
---|---|---|---|
file |
repeat |
boolean | If true , plays the file on a continuous loop. The default is false . |
file |
start_streaming_at |
string | The month, day, year, and time of day that the file should start streaming. Express the value by using the ISO 8601 standard of YYYY-MM-DDTHH:MM:SSZ where HH is a 24-hour clock in UTC. |
Learn more
output
Use the output
properties to perform actions on output renditions.
Section | Key | Value | Description |
---|---|---|---|
output |
fitMode |
string | Specifies how to deal with aspect ratio differences between a source stream and transcoder output renditions. The setting affects all output renditions of a transcoder. Valid values are letterbox , fit-width , fit-height , crop , stretch , and match-source . The default is fit-height . |
output |
record |
string | Specifies which output rendition of a transcoder to record. Valid values are an output ID of a transcoder. You can only record one output of a transcoder. If this property isn't set, Wowza Video records the incoming source stream from an encoder instead of a transcoded output rendition. |
recording
Use the recording
properties to configure recordings on the
transcoder.
Section | Key | Value | Description |
---|---|---|---|
recording |
mp4 |
boolean | If true , creates a recording of the incoming source stream. The recording starts when the transcoder starts and stops automatically when the transcoder stops. The default is false . |
rtmp
Use the rtmp
properties to configure RTMP streams.
Section | Key | Value | Description |
---|---|---|---|
rtmp |
allowDirectPlayback |
boolean | If false , it prevents direct playback through the RTMP URL. The default is true . |
Learn more
- Use EZDRM FairPlay Streaming DRM with Wowza Streaming Engine
- Protect streams for Google Widevine and Microsoft PlayReady devices with EZDRM and the Wowza Video REST API
rtsp
Use the rtsp
properties to configure RTSP streams.
Info
Change advanced transcoder properties with caution. For most RTSP source connections, none of these settings need to be changed from the default.
Section | Key | Value | Description |
---|---|---|---|
rtsp |
avSyncMethod |
boolean | Specifies how Wowza Video 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 Video 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 Video is using Sender Report (SR) packets for A/V synchronization information. Specifies how long, in milliseconds, Wowza Video will wait for SR packets in the RTSP/RTP source stream to arrive. The default is 2000 . |
rtsp |
rtpDePacketizerPacketSorterBufferTime |
integer | Sets the size, in milliseconds, of the jitter buffer from the default value of 500 . This time adds to the overall latency of the live stream. For use if rtpDepacketizerWrapper is set to RTPDePacketizerWrapperPacketSorter . |
rtsp |
rtpDePacketizerPacketSorterFlushTime |
integer | Sets the time, in milliseconds, from the default value of 10 . This is the time when the buffer will be flushed. For use when rtpDepacketizerWrapper is set to RTPDePacketizerWrapperPacketSorter . |
rtsp |
rtpDePacketizerWrapper |
string | Enables the ability to set properties for the depacketizer. If set to RTPDePacketizerWrapperPacketSorter , this property enables the use of a jitter buffer. A jitter buffer is an area where packets can be collected and stored before being sent to the depacketizer at regularly spaced intervals to enable more even playback. This property should be enabled when setting values for rtpDepacketizerSorterBufferTime and rtpDepacketizerSorterFlushTime . |
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 Video 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 Video 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 Video validates the RTSP/RTP connection. The default is 15000 . |
vod_stream
Use the vod_stream
properties to configure video-on-demand streams.
Section | Key | Value | Description |
---|---|---|---|
vod_stream |
hls |
string | If true , generates a VOD stream and a VOD playback URL after the broadcast is over. Use the URL to configure playback in an HLS compatible player or device. |
vod_stream |
live2vod |
string | If true , replaces the live playlist with the VOD playlist. Viewers can access the VOD stream using the same playback URL they used to view the original stream. Note: vod_stream :hls also must be true . |
Example transcoder property requests
Info
- To learn how to authenticate API requests, see About the Wowza Video REST API.
- The cURL examples below use environment variables. See Using cURL for more information on how to set these up.
Configure properties when creating a transcoder
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${WV_JWT}" \
-d '{
"transcoder": {
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_west_california",
"buffer_size": 4000,
"delivery_method": "push",
"low_latency": true,
"name": "MyABRtranscoder",
"protocol": "rtsp",
"transcoder_type": "transcoded",
"properties": [
{
"key": "avSyncMethod",
"section": "rtsp",
"value": false
},
{
"key": "debugRtspSession",
"section": "rtsp",
"value": true
}
]
}
}' "${WV_HOST}/api/${WV_VERSION}/transcoders"
This request creates a transcoder and updates the avSyncMethod
and
debugRtspSession
properties. The details of the trancoder's
configuration are listed in the response, which does not include
transcoder properties. To view the transcoder's properties, send a
GET\transcoders\\ID\]\properties
request. See Related
requests for more information.
Configure a property for an existing transcoder
You can configure a single transcoder property or an array of properties. See the API reference linked below for examples of each. This example configures a single property.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${WV_JWT}" \
-d '{
"property": {
"key": "rtpTransportMode",
"section": "rtsp",
"value": "udp"
}
}' "${WV_HOST}/api/${WV_VERSION}/transcoders/[transcoder_id]/properties"
The command updates the 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": "udp"
}
}
Info
If you have started a transcoder at any point before updating its transcoder property, you must reset the transcoder for the property to take effect. This step isn’t necessary if you haven’t started the transcoder at all. See PUT /transcoders/ID/reset for more information.
Related requests
- View all properties on a transcoder — GET/transcoders/ID/properties
- View the details of a specific property on a transcoder — GET/transcoders/ID/properties/ID
- Delete a specific property on a transcoder — DELETE/transcoders/ID/properties/ID
Stream target properties
When you set a stream target property, you set a key/value pair and specify the section of the stream target configuration table where the key and value are stored, as shown in the following example.
"property": {
"key": "chunkSize",
"section": "hls",
"value": 2
}
Stream target properties exist in the following configuration table sections, which also categorize what the properties affect:
The following tables list the specific properties available in each stream target configuration section.
hls
Use the hls
properties to configure an HLS output stream.
Section | Key | Value | Target Type | Description |
---|---|---|---|---|
hls |
acao |
string | Fastly |
Explicitly specifies the origin that can access the stream. While most streams won't need the origin expliclity set, you might use this property for older players that don't send the Referer header in their stream request. Format: http://<origin> |
hls |
chunkSize |
integer | Fastly |
Specifies the duration of the time-based audio and video media segments that Wowza Video 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 changed. Edit it only if viewers experience unacceptably long latency. |
hls |
convertAMFData |
Boolean | Fastly |
Determines whether Wowza Video converts AMF data into ID3 tags. ID3 tags allow you to include metadata in your HLS stream. If set to true , Wowza Video listens for AMF data events coming from the source encoder or camera, parses the data events, maps the events to ID3 tags, and sends the ID3 tags in the HLS stream. The default is false . Note: For ultra low latency stream targets that have HLS fallback enabled, the convertAMFData property is enabled by default on backup HLS streams. |
Learn more
- Create custom media playlists with the Wowza Video REST API
- Ingest and convert timed metadata with the Wowza Video REST API
playlist
Use the playlist
properties to configure a stream's media playlist.
Section | Key | Value | Target Type | Description |
---|---|---|---|---|
playlist |
playlistSeconds |
integer | Fastly |
The number of seconds in the media playlist (chunklist). The default, 100 , results in a media playlist of 10 , based on the default chunkSize of 10 . Valid values are any integer between 6 and 28800 (8 hours). |
playlist |
relativePlaylists |
Boolean | Fastly |
When true (the default), allows the viewer to watch the stream over HTTP and HTTPS, whichever protocol their browser calls. If false , the viewer's playback protocol (HTTP or HTTPS) must correspond to the target's specified playback protocol. |
Learn more
- Create custom media playlists with the Wowza Video REST API
- Configure nDVR using the Wowza Video REST API
Example stream target property requests
Info
- To learn how to authenticate API requests, see Authenticate.
- The cURL examples below use environment variables. See Using cURL for more information on how to set these up.
Configure a property for a stream target
You can configure a single property or, if the stream target is a Wowza CDN on Fastly, an array of properties. See the API reference linked below for examples of each. This example configures a single property.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${WV_JWT}" \
-d '{
"property": {
"key": "chunkSize",
"section": "hls",
"value": 2
}
}' "${WV_HOST}/api/${WV_VERSION}/stream_targets/[stream_target_id]/properties"
The command assigns a media segment 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
}
}
Info
If you have started a live stream or transcoder at any point before updating a property associated with its stream target, you must reset the live stream or transcoder for the property to take effect. This step isn’t necessary if you haven’t started the live stream or transcoder at all. See PUT/live_streams/ID/reset and PUT/transcoders/ID/reset for more information.
Related requests
- View all properties on a stream target — GET/stream_targets/ID/properties
- View the details of a specific property on a stream target — GET/stream_targets/ID/properties/ID
- Delete a specific property on a stream target — DELETE/stream_target/ID/properties/ID