A Wowza Streaming Engine™ (WSE) stream target allows an app to send a live stream to distributed destinations such as content delivery networks and multi-protocol services. The destination distributes your live stream, allowing you to scale your WSE implementation, manage computing resources, and adjust delivery options. With WSE stream targets you can easily send a live stream to:
- Wowza Video
- A third-party CDN, such as Akamai
- A video-sharing website, such as YouTube Live
- A live app on another WSE instance
Stream targets can be configured using WSE Manager, the WSE REST API, or by editing the PushPublishMap.txt file directly.
Note: CDNs don't support adaptive bitrate (ABR) streaming based on SMIL files. To send an ABR stream to a CDN, you must use the transcoder to produce renditions with the same stream name prefix.
Send a stream to a destination
The easiest way to configure a stream target is with WSE Manager, as you don't have to install any modules or manually edit an XML file. In WSE Manager, stream targets are displayed alphabetically by destination type, protocol, adaptive group name, and stream target name. Each stream target has a status that is automatically updated. Setting up a stream target varies based on your workflow. For detailed instructions on a specific implementation, see the relevant article below.
- Stream to another WSE instance
- Stream from WSE for transcoding in Wowza Video
- Stream from WSE for transcoding in Wowza Video using Wowza APIs
- Stream to Akamai HD
- Stream to Facebook Live
- Stream to SHOUTcast and Icecast
- Stream to YouTube
- Distribute a live stream using MPEG-TS
- Distribute a live stream using RTMP
- Distribute a live stream using RTP
- Distribute a live stream using SRT
- Distribute a live stream using CMAF
Editing the push publishing map file
The PushPublishMap.txt map file stores the configuration that maps live source streams to destinations. In Wowza Streaming Engine 4.2 and later, you can manage the map file configuration using the stream targets feature in WSE Manager. In earlier versions of WSE, you edit the map file in a text editor to manage the configuration.
Managing the map file
When you enable the stream targets feature for an app, a stream target map file called PushPublishMap.txt is automatically created in the [install-dir]/conf/[app-name] directory. You can adjust the location of an app's stream target map file by changing the value of the pushPublishMapPath property either directly in the app's Application.xml file or using WSE Manager, as described in the steps below.
Change the stream target map location using WSE Manager
- Open WSE Manager.
- Click the Applications tab.
- In the contents panel, click the name of your live app.
- In the Quick Links list of the app's Properties tab, click Custom.
- Click Edit.
- Change the value of
pushPublishMapPathto the updated location. - Click Save.
- Restart the app to apply the changes.
About map entries
Each stream target entry represents a single destination for a source stream or group of streams. To stream to multiple destinations, each destination must have its own stream target entry. If a stream target is added or modified while WSE is running, the change will not affect active streams. Only streams received after the map file is updated will be affected.
A stream target map entry has the following format:
## stream target format[src-stream-name]={profile:[profile], [additional-configuration-items]}
For example, to send a stream called myStream via RTMP to another WSE server, add the entry below.
## send RTMP stream to WSE servermyStream={profile:"rtmp", streamName:"myStreamRTMP", host:"localhost", application:"live", userName:"myuser", password:"mypassword"}
To send a stream to multiple destinations, create a stream target for each destination. For example, to send a stream named myStream to a remote WSE server and deliver it as multicast using MPEG-TS, add the following entries to the map file:
## send myStream to two destinationsmyStream={"profile":"rtmp","streamName":"myStream", "host":"wowza.myserver.com","userName":"myUser", "password":"myPassword" myStream={"profile":"mpegts","streamName":"myStreamMPEGTS", "host":"239.1.1.1", "port":"10000"}
(See more example stream targets.)
Stream target profiles
Each stream target must include a profile. The profile determines how the stream is sent to its destination and which additional configurable parameters are available. The available profiles are listed below.
rtmp: Send an RTMP stream to WSE or Adobe Media Server. See rtmp profile parameters.rtmp-akamai: Send an RTMP stream to Akamai HD. See rtmp-akamai profile parameters.rtmp-limelight: Send an RTMP stream to Edgio. See rtmp-limelight profile parameters.cupertino-cloudstorage: Send an HLS stream to AWS S3. See cupertino-cloudstorage profile parameters.
cupertino-akamai: Send an HLS stream to Akamai HD. See cupertino-akamai profile parameters.mpegdash-akamai: Send an MPEG-DASH stream to Akamai HD. See mpegdash-akamai profile parameters.
rtp: Publish a native RTP stream. See rtp profile parameters.mpegts: Publish an MPEG-TS stream. See mpegts profile parameters.wowza-cdn: Send a live stream to Wowza Video. It covers use cases where you push a single stream without transcoding or push an adaptive bitrate stream that's transcoded by Wowza Streaming Engine. See wowza-cdn profile parameters.wowza-video-transcoder: Send a live stream to Wowza Video. It covers use cases where you push a single stream for adaptive bitrate (ABR) transcoding in Wowza Video. See wowza-video-transcoder profile parameters.shoutcast1: Publish a SHOUTcast 1 stream. See shoutcast1 profile parameters.shoutcast2: Publish a SHOUTcast 2 stream. See shoutcast2 profile parameters.srt: Send a live stream to an SRT destination. See srt profile parameters.icecast2: Publish an Icecast 2 stream. See icecast2 profile parameters.group-manager: Publish adaptive bitrate renditions of HLS or MPEG-DASH streams as a group to Akamai HD or to publish CMAF HLS streams to Wowza Video, Oracle, and AWS. See group-manager profile parameters.
rtmp, rtmp-akamai, and rtmp-limelight profile parameters
| Name | Description |
| streamName | Destination stream name (default is the source stream name). A destination stream name is required for rtmp-akamai profiles. See Akamai RTMP for more information. |
| application | Destination application name (default is _defapp_). |
| appInstance | Destination application instance name (default is _definst_). |
| host | Destination hostname or IP address (default depends on the profile). |
| port | Destination port number (default is 1935). |
| userName | Destination server username (needed if the destination requires authentication). |
| password | Destination server password (needed if the destination requires authentication). |
| secureTokenSharedSecret | SecureToken value to use to connect to remote server (needed if the destination is configured to use SecureToken). |
| adaptiveStreaming | Set to true if doing adaptive bitrate streaming (default is false). Automatically sets sendOriginalTimecodes to true and originalTimecodeThreshold to 0x100000. |
| sendFCPublish | Set to true to call the FCPublish command before publishing begins (default is true). |
| sendReleaseStream | Set to true to call the releaseStream command before publishing begins (default is true). |
| sendStreamCloseCommands | Set to true to send stream close commands when publishing stops (default is true). |
| removeDefaultAppInstance | Set to true to remove the _definst_ instance name from the connect command (default is true). |
| sendOriginalTimecodes | Set to true to send source streams absolute timecodes (needed for adaptive bitrate streaming; default is false). Overrides the setting change done by adaptiveStreaming = true. |
| originalTimecodeThreshold | Used when sending original timecodes to a lower timecode magnitude (needed when Adobe Media Server is the destination server; default is 0). Overrides the setting change done by adaptiveStreaming = true. |
| connectionFlashVersion | Flash version to report as part of connection information (default depends on profile). The connectionFlashVersion value accepts the following variables:
${com.wowza.wms.pushpublish.CurrentFMLEVersion} - Adobe Flash Media Live Encoder version number: FMLE/3.0 (compatible with FMSc/1.0)
${com.wowza.wms.pushpublish.PushPublishVersion} - Wowza Streaming Engine push publishing version
|
| queryString | Query string data added to URL as part of connection information (default is [no-value]). |
| debugLog | Set to true to turn on debug connection logging (default is false). |
| debugPackets | Set to true to turn on verbose packet logging (default is false). |
| localBindAddress | Local network interface to bind the output stream connection to, in the form of an IP address (default is the system default interface). |
| sendSSL | Set to true to enable Wowza Streaming Engine to send secure streams to the stream target destination (default is false). When enabled, this configuration appears on the Advanced tab for RTMP-based stream targets in Wowza Streaming Engine Manager. |
| removeMetadataObjects
(available in Wowza Streaming Engine 4.2 and later) |
Set to true to enable the removal of all array and object data types sent to the destination in RTMP onMetaData messages. |
| filteredMetadataItems
(available in Wowza Streaming Engine 4.2 and later) |
Specifies a pipe-delimited list ("|") of named metadata items to remove from all RTMP onMetaData messages sent to the destination. |
| akamai.hdNetwork | Set to false to allow plain (non-[name]_[angle]_[bitrate]) stream names for Akamai AMS network (rtmp-akamai only; default is true). |
| akamai.streamId | Destination StreamId (rtmp-akamai only). |
| akamai.sendToBackupServer | If set to true, the destination is set to the backup entry point (rtmp-akamai only; default is false). |
cupertino-cloudstorage profile parameters
Note: For more information about using this profile, see Send Apple HLS content to Amazon S3 using Wowza Streaming Engine.
| Name | Description |
| entryName
(required) |
A descriptive, unique name for the map entry and your stream target. |
| streamName
(required) |
An asset is created for each streamName in the S3 bucket. See URL formats. All entries in an adaptive bitrate set (adaptiveGroup) must have unique streamName values. We recommend including the bitrate or vertical resolution of the stream, such as myStream_720p. It's sufficient to set the streamName to the same value as the source stream name. |
| adaptiveGroup
(optional) |
The name of the adaptive group to which this stream target belongs. Groups all assets together into one stream during playback. |
| cloudstorage.provider
(required) |
Defines the intended cloud storage provider for the stream destination. Set to S3 for this profile. |
| cloudstorage.bucketName
(required) |
The name of the AWS bucket where the HLS content will be stored. |
| cloudstorage.region
(required) |
The AWS bucket region. |
| cloudstorage.accessID
(required) |
The AWS access ID. |
| cloudstorage.secretAccessKey
(required) |
The AWS secret access key. |
| cupertino.renditions
(optional) |
Renditions to include. Valid values are audiovideo, audioonly, and videoonly. If not specified, defaults to audiovideo. This setting is used primarily for single-stream playback, but multiple renditions can be specified in a pipe-delimited list ("|"). For example, if you turn on the LiveStreamPacketizer property cupertinoCreateAudioOnlyRendition, you can specify audiovideo | audioonly. This will then push both an audio/video stream and an audio-only stream, providing Apple App Store compliance. |
| cupertino.audiotagtype
(optional) |
Only used if the cupertino.renditions parameter is set to audioonly. Defines how the specific audio tracks are added to the master playlist so that audio-only streams or Apple-compliant streams play back correctly. Possible values are stream_inf and media. Both of these values can be set simultaneously using a pipe-delimited list ("|").
If cupertino.audiotagtype is not set, its behavior depends on other settings. When the rendition is not part of an adaptive group and either cupertino.renditions is not set or includes videoonly, the audio rendition is added to the master playlist using an EXT-X-STREAM-INF tag. Otherwise, it's added using an EXT-X-MEDIA tag. |
| debugLog
(optional) |
Set to true to turn on debug connection logging. The default is false. |
| http.playlistCount
(optional) |
The number of chunks to maintain in the playlist when it's pushed. The default value is 0, meaning the live stream packetizer PlaylistChunkCount property value in the application configuration specifies the playlistCount. For the cupertinoPlaylistChunkCount property, the default value is 3. |
|
http.relativePlaylists
(optional) |
Set to true to use only relative URL references in the playlists and manifests sent to the destination. The default is false. |
| http.playlistAcrossSessions
(optional) |
Set to true to maintain playlists across push publishing sessions. The default is false. |
| http.playlistTimeout
(optional) |
Time in milliseconds that a cross-session playlist is maintained. The default is 120000 (2 minutes). |
| cupertino.language
(required) |
Added in Wowza Streaming Engine 4.9.3. It accepts an ISO 639 two or three-letter language code and displays that correctly in the master playlist. In the player's audio track selector, this setting generates the proper name for the alternative audio track using a label with the native language. |
| cupertino.audioName
(optional) |
An optional parameter that was added in Wowza Streaming Engine 4.9.3. It overrides the automatic name setting for cupertino.language when applicable and can be used to manually set the NAME tag in the master playlist. |
| cupertino.audioGroupName
(optional) |
An optional parameter that was added in Wowza Streaming Engine 4.9.3. It can be used to override the default audioGroup name in the master playlist when applicable. |
cupertino-akamai and mpegdash-akamai profile parameters
Note: Most of the properties in the following table can be used with all related profiles that have the cupertino or mpegdash prefixes.
| Name | Description |
| streamName
(required) |
Destination stream name. See URL formats. All entries in an adaptive bitrate set (adaptiveGroup) must have unique streamName values. We recommend including the bitrate or vertical resolution of the stream, such as myStream_720p. It's sufficient to set the streamName to the same value as the source stream name. |
| host | For Akamai MSL 3 networks: The hostname or IP address of the Akamai server that the source stream will be sent to. For targets that use the Akamai MSL 3 network, you must provide either host or akamai.hostId.
Required with Akamai MSL 3 if akamai.hostId is not provided. |
| cupertino.renditions | Renditions to include. Valid values are audiovideo, audioonly, and videoonly. If not specified, defaults to audiovideo.
This setting is used primarily for single-stream playback, but multiple renditions can be specified in a pipe-delimited list ("|"). For example, if you turn on the LiveStreamPacketizer property cupertinoCreateAudioOnlyRendition, you can specify audiovideo|audioonly. This will then push both an audio/video stream and an audio-only stream, providing Apple App Store compliance. |
| cupertino.playlistCount | Deprecated. See http.playlistCount. |
| cupertino.playlistAcrossSessions | Deprecated. See http.playlistAcrossSessions. |
| cupertino.playlistTimeout | Deprecated. See http.playlistTimeout. |
| http.playlistCount | The number of chunks to maintain in the playlist. The default, 0, means that the live stream packetizer PlaylistChunkCount property value in the application configuration specifies the playlistCount:
|
| http.playlistAcrossSessions | Set to true to maintain playlists across push publishing sessions. The default is false. |
| http.playlistTimeout | Time in milliseconds that a cross-session playlist is maintained. The default is 120000 (2 minutes). |
| http.relativePlaylists | Set to true to use only relative URL references in the playlists and manifests sent to the destination. The default is false. |
| http.fakePosts | A true/false debug-only parameter that instructs the server to post fake logs for cupertino files to Akamai. Use to isolate internal server errors from Akamai server communication errors. No actual files are pushed, so playback doesn't occur. |
| debugLog | Set to true to turn on debug connection logging. The default is false. |
| http.writerDebug | A true/false debug-only parameter that enables debug logging associated with HTTP connections, including information about failed connections, retries, and socket read/write timing. |
| akamai.streamId
(required) |
Destination Akamai StreamId. |
| playbackHost | For Akamai MSL 4 networks: The hostname or IP address of the server from which the stream will be played.
Required with Akamai MSL 4 if http.relativePlaylists is not enabled (absolute URL references in the playlists and manifests sent to the destination). We recommend providing playbackHost to include this value, rather than a placeholder, in the playback URLs in Wowza Streaming Engine logs. Note: For information MSL 4 playback hostnames, see the Akamai article What is the publishing URL format for Media Services Live 4 (MSL4) Streams? and the Akamai Media Services Live HLS and DASH Ingest User Guide. |
| akamai.hostId | For Akamai MSL 3 networks: The host ID for the provisioned stream as it appears in the Host Name column for the stream configuration in the Luna Control Center. Specifically, the host ID portion of the Akamai hostname is to the left of the first period in the name. For targets that use the Akamai MSL 3 network, you must provide either akamai.hostId or host.
Required with Akamai MSL 3 under the following conditions:
|
| akamai.eventName
(optional) |
Destination event name. |
| adaptiveGroup
(optional) |
The name of the adaptive group to which this stream target belongs.
|
| akamai.sendToBackupServer | Deprecated. See akamai.destinationServer. |
| akamai.destinationServer
(optional) |
Destination Akamai server(s) to send a redundant stream to for failover in case of a problem with the primary stream. Wowza Streaming Engine sends the redundant stream to the backup entry point at Akamai. Valid values are primary, backup, or redundant. A single map entry is pushed to both primary and backup servers when redundant is specified. Specifying redundant also generates a separate redundancy manifest/playlist that provides playback URLs for both the primary and backup streams. |
| mpegdash.videoRepresentationId | Defines a unique ID string for the stream's video component, which modifies the ID attribute of the Representation element in the MPEG-DASH MPD manifest file. Can be any string of alphanumeric characters. If not provided, the identifier is constructed using the bitrate value (in kilobits per second) of the video bitstream. For example, "video_752kbps". |
| mpegdash.audioRepresentationId | Defines a unique ID string for the stream's audio component, which modifies the ID attribute of the Representation element in the MPEG-DASH MPD manifest file. Can be any string of alphanumeric characters. If not provided, the identifier is constructed using the bitrate value (in kilobits per second) of the video bitstream. For example, "audio_752kbps". |
| mpegdash.suggestedPresentationDelay | Defines the length of time, in milliseconds, that playback should be delayed, which modifies the suggestedPresentationDelay attribute in the MPEG-DASH MPD manifest file. Can be any valid integer. The default value is 6000. |
| mpegdash.minimumUpdatePeriod | Defines the minimum frequency, in milliseconds, at which MPD updates are requested, which modifies the minimumUpdatePeriod attribute in the MPEG-DASH MPD manifest file. Can be any valid integer. The default is the mpegdashSegmentDurationTarget (formerly mpegdashChunkDurationTarget) value, which must be 6000 (6 seconds) when sending an MPEG-DASH stream to Akamai. |
| mpegdash.minBufferTime | Defines the buffer size, in milliseconds, the client should have under ideal circumstances, which modifies the minBufferTime attribute in the MPEG-DASH MPD manifest file. Can be any valid integer. The default value is 6000. |
Akamai HTTP protocol playback URL formats (Wowza Streaming Engine 4.7.6 and later)
Primary stream with akamai.eventName specified:
MPEG-DASH: http://[akamai.hostId].akamaihd.net/dash/live/[akamai.streamId]/[akamai.eventName]/[streamName]/manifest.mpd
Primary stream with akamai.eventName not specified:
MPEG-DASH: http://[akamai.hostId].akamaihd.net/dash/live/[akamai.streamId]/defEvent/[streamName]/manifest.mpd
Backup stream with akamai.eventName specified:
MPEG-DASH: http://[akamai.hostId].akamaihd.net/dash/live/[akamai.streamId]-b/[akamai.eventName]/[streamName]/manifest.mpd
Redundant stream with akamai.eventName not specified:
HLS backup: http://[akamai.hostId].akamaihd.net/hls/live/[akamai.streamId]-b/defEvent/[streamName]_red/playlist.m3u8
MPEG-DASH primary: http://[akamai.hostId].akamaihd.net/dash/live/[akamai.streamId]/defEvent/[streamName]_red/manifest.mpd
MPEG-DASH backup: http://[akamai.hostId].akamaihd.net/dash/live/[akamai.streamId]-b/defEvent/[streamName]_red/manifest.mpd
Primary stream in adaptive group with adaptiveGroup specified:
MPEG-DASH: http://[akamai.hostId].akamaihd.net/dash/live/[akamai.streamId]/[adaptiveGroup]/manifest.mpd
Backup stream in adaptive group with adaptiveGroup specified:
MPEG-DASH: http://[akamai.hostId].akamaihd.net/dash/live/[akamai.streamId]-b/[adaptiveGroup]/manifest.mpd
- When both akamai.destinationServer:"redundant" and adaptiveGroup:"[groupName]" are specified, a redundant manifest/playlist won't be generated for the stream; the adaptive group manifest/playlist should instead be used for playback since both the primary and backup streams will be listed there as well.
- Akamai documentation indicates that their ingest servers only support 6-second chunk durations for MPEG-DASH. The Wowza Streaming Engine default chunk duration is 10 seconds for MPEG-DASH. Therefore, we recommend changing the mpegdashSegmentDurationTarget (formerly mpegdashChunkDurationTarget) in Wowza Streaming Engine Manager to 6000 (6 seconds) for applications configured to send MPEG-DASH streams to Akamai. Also, to ensure that accurate chunk durations are produced, we recommend that the source stream is encoded with 1, 2, or 3-second keyframe intervals.
| Name | Description |
| streamName | Base file name of the SDP file. |
| host | Destination hostname or IP address. |
| videoPort | Destination video port (2 ports are used). |
| audioPort | Destination audio port (2 ports are used). |
| timeToLive | When streaming over multicast, this is the time to live (TTL) value for the UDP packets (default is 63). |
| streamWaitTimeout | At stream startup, the time in milliseconds to wait for the stream to be recognized and accepted (default is 5000). |
| Name | Description |
| streamName | Base file name of the SDP file. |
| host | Destination hostname or IP address. |
| port | Destination port. |
| timeToLive | When streaming over multicast, this is the time to live (TTL) value for the UDP packets (default is 63). |
| rtpWrap | Set to true to wrap the MPEG-TS stream in RTP (default is false). |
| Name | Description |
| profile
(required) |
Must be set to wowza-cdn. |
| childProfile
(optional) |
The default value, cupertino-wowza-video, pushes a stream target to Wowza Video using HLS. If using the CMAF HLS protocol to send the stream target to Wowza Video, set this value to cmaf-wowza-video. For more information, see Push a CMAF HLS stream to Wowza Video using a map file. |
| sourceStreamName
(required) |
Must match the source stream being published. See the optional group.streamMatcher parameter for more information. |
| WowzaVideo.region
(required) |
Must be set to one of these options: us, eu, asia, sa, or india. |
| group.streamMatcher
(optional) |
If not set, defaults to namePrefix. When pushing a single bitrate stream with no transcoding, then must be set to nameSingle. For more, see group.streamMatcher options. |
| group.name
(optional) |
If not set, defaults to the entry name. |
| cupertino.renditions
(optional) |
If not set, defaults to audiovideo. |
| http.playlistCount
(optional) |
If not set, defaults to the HLS packetizer setting. |
| http.playlistAcrossSessions
(optional) |
If not set, defaults to false. |
| http.playlistTimeout
(optional) |
If not set, defaults to 120000ms (2 minutes). |
| http.relativePlaylists
(optional) |
Not required, but recommend setting this optional parameter to true. |
| debugLog
(optional) |
If not set, defaults to false. |
| debugLogChildren
(optional) |
If not set, defaults to false. |
The following parameters are added by Wowza Video when the stream target is fully provisioned.
- wowzaVideo.playbackUrl
- wowzaVideo.streamTargetId
wowza-video-transcoder profile parameters
| Name | Description |
| profile
(required) |
Must be set to wowza-video-transcoder. |
| sourceStreamName
(required) |
Must match the name of the incoming source stream that will be published to Wowza Video. |
| WowzaVideoTranscoder.region
(required) |
During the call to create the live stream in Wowza Video, corresponds to the broadcast_location in the Wowza Video REST API. See the reference documentation for a full definition. |
| WowzaVideoTranscoder.height
(required) |
During the call to create the live stream in Wowza Video, corresponds to the aspect_ratio_height in the Wowza Video REST API. See the reference documentation for a full definition. |
| WowzaVideoTranscoder.width
(required) |
During the call to create the live stream in Wowza Video, corresponds to the aspect_ratio_width in the Wowza Video REST API. See the reference documentation for a full definition. |
| entryName
(required) |
A descriptive name for the map entry. |
| destinationName
(required) |
Set to wowzavideocdn for distribution with Wowza CDN. |
| enabled
(required) |
This is set to false by default when the stream target is created in Wowza Streaming Engine Manager. Corresponds to the Disabled state.
If set to true, the live stream is initialized in Wowza Video, and its respective transcoder is started. This means when a stream target is enabled in Wowza Streaming Engine, transcoder usage billing applies. To avoid unnecessary billing, stream target entries are automatically disabled by Wowza Streaming Engine based on different timeouts or errors. However, we recommend manually disabling targets when they're not being used. |
The following parameters are added by Wowza Video when the stream target is initialized and fully provisioned:
- wowzaVideo.liveStreamId: ID generated by the Wowza Video REST API. In Wowza Streaming Engine, displays the live stream identifier from the URL visible on the live stream details page in Wowza Video. For example, https://app.wowza.com/livestreams/[live-stream-id].
- wowzaVideo.playbackUrl: Corresponds to hls_playback_url in the Wowza Video REST API. In Wowza Streaming Engine Manager, displays the HLS playback URL from the live stream details page in Wowza Video.
- wowzaVideo.liveStreamPlayerUrl: Corresponds to hosted_page.url in the Wowza Video REST API. In Wowza Streaming Engine Manager, displays the Hosted page link from the Publish live stream modal in Wowza Video. For more, see Share live stream.
- wowzaVideo.liveStreamEmbedCode: Corresponds to embed_code in the Wowza Video REST API. In Wowza Streaming Engine Manager, displays the JavaScript embed code from the Publish live stream modal in Wowza Video. For more, see Share live stream.
For more information, see the Wowza Video REST API reference documentation.
shoutcast1 profile parameters
| Name | Description |
| host (required) | Destination hostname or IP address. |
| port (required) | Destination port. |
| password (required) | The broadcasting password. |
| shoutcast.public | Set to true to announce the stream in the SHOUTcast directory (default is false). |
| shoutcast.name | The name of the SHOUTcast 1 server, which should be short and reflect a brand or describe the stream's content. |
| shoutcast.genre | The type of audio style being sent to the server. For example, Rock or Classical. |
| shoutcast.url | The absolute URL (i.e., beginning with http:// or https://) sent to the SHOUTcast 1 server. For example, https://www.wowza.com. |
| shoutcast.aim | The AOL Instant Messanger (AIM) number sent to the server when the connection is established. |
| shoutcast.icq | The I See You (ICQ) number sent to the server when the connection is established. |
| shoutcast.irc | The Internet Relay Chat (IRC) number sent to the server when the connection is established. |
| Name | Description |
| host (required) | Destination hostname or IP address. |
| port (required) | Destination port. |
| userName (required) | The user name/authentication hash required to connect to the destination server. This information is obtained from the SHOUTcast 2 configuration utility. |
| password (required) | The broadcasting password. |
| streamName (required) | The stream mount point/ID assigned when configuring the SHOUTcast 2 server. This is commonly a number, and is unique per stream on the destination SHOUTcast server. |
| shoutcast.public | Set to true to announce the stream in the SHOUTcast directory (default is false). |
| shoutcast.name | The name of the SHOUTcast 2 server, which should be short and reflect a brand or describe the content. |
| shoutcast.genre | The type of audio style being sent to the server. For example, Rock or Classical. |
| shoutcast.url | The absolute URL (i.e., beginning with http:// or https://) sent to the SHOUTcast 2 server. For example, https://www.wowza.com. |
| shoutcast.aim | The AOL Instant Messanger (AIM) number sent to the server when the connection is established. |
| shoutcast.icq | The I See You (ICQ) number sent to the server when the connection is established. |
| shoutcast.irc | The Internet Relay Chat (IRC) number sent to the server when the connection is established. |
Note:
- Streaming to an SRT destination requires WSE 4.7.3 or later.
- See the SRT Deployment Guide from the SRT alliance for additional information about SRT properties. Download the SRT Deployment Guide.
| Name | Description |
| sourceStreamName (required) | Specifies the name of the incoming stream that you specified in Wowza Streaming Engine when you set up the video source. |
| host (required) | Sets the destination hostname or IP address. |
| port (required) | Sets the destination port. |
| srtConnectTimeout | (Wowza Streaming Engine 4.8.5 and later) Specifies the length of time that Wowza Streaming Engine waits for a target to respond to a connection request, in milliseconds. Default is 3000. |
| srtFlightFlagSize | (Wowza Streaming Engine 4.8.5 and later) Specifies the maximum number of bytes that can be sent without being acknowledged. Default is 25600. |
| srtInputBandwidth | (Wowza Streaming Engine 4.8.5 and later) If srtMaximumBandwidth is set to 0, specifies the maximum bandwidth along with the srtOverheadBandwidth value using this formula: max bandwidth = input bandwidth * (100 + overhead bandwidth)/100. If set to 0, then input bandwidth is estimated from the rate of input during transmission. Default is 0. |
| srtKeyAnnounce | (Wowza Streaming Engine 4.8.5 and later) Sets the interval between when a new encryption key is sent and when a switchover occurs. This value also applies to the subsequent interval between when the switchover occurs and when the old encryption key is decommissioned. Default is 0x1000. |
| srtKeyLength | Specifies the type of AES encryption. For AES-128 encryption, use 16; for AES-192 encryption, use 24; and for AES-256, use 32. Default is 16. |
| srtKeyRefreshRate | (Wowza Streaming Engine 4.8.5 and later) Sets the number of packets to be transmitted with an encryption key before switching to a new key. Default is 0x1000000. |
| srtLatency | (Wowza Streaming Engine 4.8.5 and later) Specifies the latency in milliseconds. This is the time it takes for a UDP packet to be sent and delivered, including the time required to account for sending and retransmitting lost packets. The srtLatency value should be 2.5 * the round trip time (RTT). When peers set different latency values, the higher of the two values applies to both peers. If not specified, the default value, 400, is used. |
| srtMaximumBandwidth | (Wowza Streaming Engine 4.8.5 and later) Sets the maximum bandwidth, in bytes per second, that the connection can use. Valid values are -1 (infinite), 0 (calculated from srtInputBandwidth and srtOverheadBandwidth), and integers greater than 0 for an absolute limit in bytes per second. Default is -1. |
| srtMaximumSegmentSize | (Wowza Streaming Engine 4.8.5 and later) Specifies, in bytes, the maximum size for a unit of transfer data (MTU). Only increase this value greater than the default if using a controlled network that supports jumbo frames. For MPEG-TS streams, use the default, 1500, which is the size of the UDP packet used for SRT. |
| srtOverheadBandwidth | (Wowza Streaming Engine 4.8.5 and later) If srtMaximumBandwidth is set to 0, specifies the maximum bandwidth along with the srtInputBandwidth value using this formula: max bandwidth = input bandwidth * (100 + overhead bandwidth)/100. Default is 25. |
| srtPassPhrase | Specifies the passphrase used to secure the SRT stream. The passphrase must be between 10 and 79 characters in length. |
| srtSendBufferSize | (Wowza Streaming Engine 4.8.5 and later) Specifies the send buffer size in bytes. The default value, 12058624, is calculated from the formula
8192 * (srtMaximumSegmentSize - 28), where srtMaximumSegmentSize is 1500 by default and 28 bytes is the IP and UDP header size. |
| srtSendBufferSizeUDP | (Wowza Streaming Engine 4.8.5 and later) Specifies the send buffer size for UDP connections in bytes. Default is 65536. |
| srtStreamId | (Wowza Streaming Engine 4.8.5 and later) Sets a string sent on the socket prior to connecting. Length is a maximum of 512 characters. If using a stream ID, a peer connection must have a minimum SRT version of 1.3. |
| srtTimeStampBasedDeliveryMode | (Wowza Streaming Engine 4.8.5 and later) Specifies whether the SRT time-stamp-based packet delivery mode is enabled. Default is true. |
| srtTimesToPrintStats | (Wowza Streaming Engine 4.8.5 and later) Specifies how often stream statistics are written into the log after the stream starts. Statistics are logged each second. Set to -1 to log statistics indefinitely. Default is 0. |
| srtTooLatePacketDrop | (Wowza Streaming Engine 4.8.5 and later) Specifies whether all packets that are received late, including retransmitted packets, are dropped. Default is true. |
| Name | Description |
| host (required) | Destination hostname or IP address. |
| port (required) | Destination port. |
| userName (required) | The user name/authentication hash required to connect to the destination server. This information is obtained from the Icecast 2 configuration utility. |
| password (required) | The password required to connect to the destination server. |
| streamName (required) | The stream mount point/ID assigned when configuring the Icecast 2 server. This is commonly a number, and is unique per stream on the destination Icecast server. It should be noted that a suffix outlining the content type (i.e. .mp3 or .aac) should be used. |
| icecast2.public | Set to true to announce the stream in the Icecast 2 directory (default is false). |
| icecast2.name | The name of the Icecast 2 server. Should be short and reflect a brand or describe the stream's content. |
| icecast2.genre | The type of audio style being sent to the server. For example, Rock or Classical. |
| icecast2.url | The absolute URL (i.e., beginning with http:// or https://) sent to the Icecast 2 server. For example, https://www.wowza.com. |
| icecast2.aim | The AOL Instant Messanger (AIM) number sent to the server when the connection is established. |
| icecast2.icq | The I See You (ICQ) number sent to the server when the connection is established. |
| icecast2.irc | The Internet Relay Chat (IRC) number sent to the server when the connection is established. |
group-manager profile parameters
| Name | Description |
| childProfile
(required) |
Defines how streams in the group are sent to a destination and determines which additional configurable parameters are available. Primary support for profiles:
Note: Additional stream target profiles may work for childProfile. |
| group.streamMatcher
(required) |
Determines the method of identifying streams to group for delivery to the destination and identifies the source streams as [source-stream-name] in the map file entry. Use one of the following group.streamMatcher options:
|
| group.name
(required) |
A descriptive name for the stream group for this stream target, which is used to identify the group in playback URLs. |
| entryName
(required) |
A descriptive name for the map entry, for example, Akamai-DASH-myStreamNGRP. |
| akamai.streamId
(required) |
Destination Akamai StreamId. |
Note: The group-manager profile also supports the optional parameters for the cupertino-akamai and mpegdash-akamai profiles because these profiles are used for the childProfile parameter. The adaptiveGroup parameter is not necessary when using the group-manager profile. See cupertino-akamai and mpegdash-akamai profile parameters for the additional parameter options.
Akamai playback URL formats with the group-manager profile
MPEG-DASH:
http://[akamai-playback-host].akamaihd.net/dash/live/[akamai.streamId]/[group.name]/manifest.mpd
Debugging connections
To debug stream-level issues such as connection problems with a destination, you can configure debugging on a per-destination, per-map file entry basis with the debugLog and debugPackets map file parameters. When enabled, debugLog logs high-level connection information as well as connection health. For RTMP-specific debugging at the packet level, debugPackets logs verbose per-packet information.
The following example map file entries show how these parameters are used:
myStream={"profile":"cupertino-akamai", "streamName":"myStream", "cupertino.renditions":"audiovideo", "akamai.streamId":"215930", "akamai.hostId":"wowzadevapple-i", "debugLog":"true"}
For advanced debugging needs, see Debug Stream Targets (push publishing).
Push publishing in Wowza Streaming Engine includes a low-level API for building custom publishing applications. The documentation for the API is included in the documentation/serverapi folder in the Wowza Streaming Engine installation (see com.wowza.wms.pushpublish.* packages in the documentation).
You can download an example module demonstrating how to use the push publishing APIs to push an RTMP stream to a remote server. This module listens for new streams to be published and will push them back to the application with the name push-[streamName]. When the stream is stopped (unpublished), it disconnects the push publishing stream.
To install the module, see the README.html file in the compressed (zipped) folder for instructions.




