Sample map file entries for Stream Target destinations (push publishing)

The stream targets feature in Wowza Streaming Engine™ media server software (version 4.2.0 and later) allows you to send live streams from Wowza Streaming Engine to widely distributed destinations over various protocols.

The easiest way to send live streams to distributed destinations is to use the stream targets user interface in Wowza Streaming Engine Manager. You can, however, also edit the PushPublishMap.txt map file to manually instruct Wowza Streaming Engine to send a source stream to a target destination.

This article provides sample map file entries and playback testing instructions for the target destinations supported by Wowza Streaming Engine software. This workflow is required for Wowza Streaming Engine versions 4.2 and earlier and can optionally be used with later versions of Wowza Streaming Engine. Version-specific changes are noted where applicable.

Note: The PushPublishMap.txt file supports quotation (") marks around the keys and value strings in compliance with the JSON specification.

Wowza Streaming Engine


To send a stream to another server running Wowza Streaming Engine, use the rtmp profile. The UserName and Password items are only needed if RTMP authentication is enabled on the destination Wowza server.

Following is an example entry to send the stream myStream to a remote server that's running Wowza Streaming Engine at the domain name wowza.myserver.com, assuming RTMP authentication is enabled, and the following credentials are valid:

  • Application: myApplication
  • User Name: myUser
  • Password: myPassword

Example map entry:

myStream={"profile":"rtmp", "streamName":"myStream", "host":"wowza.myserver.com", "application":"myApplication", "userName":"myUser", "password":"myPassword"}

For adaptive bitrate delivery, the map entry is a bit more complicated to ensure that keyframes in the streams are properly aligned. For example, for the following three adaptive bitrate streams:

  • myStream_480p: 500Kbps
  • myStream_360p: 750Kbps
  • myStream_720p: 1000Kbps

The map entries to properly send these streams to Wowza Streaming Engine and maintain alignment are:

myStream_480p={"profile":"rtmp", "streamName":"myStream_480p", "host":"wowza.myserver.com", "application":"myApplication", "userName":"myUser", "password":"myPassword", "adaptiveStreaming":"true"}
myStream_360p={"profile":"rtmp", "streamName":"myStream_360p", "host":"wowza.myserver.com", "application":"myApplication", "userName":"myUser", "password":"myPassword", "adaptiveStreaming":"true"}
myStream_720p={"profile":"rtmp", "streamName":"myStream_720p", "host":"wowza.myserver.com", "application":"myApplication", "userName":"myUser", "password":"myPassword", "adaptiveStreaming":"true"}

You must create a Synchronized Multimedia Integration Language (SMIL) file in the [install-dir]/content folder on the remote server running Wowza Streaming Engine to properly playback the adaptive bitrate set of streams. For example, the SMIL file for the above set of streams might look like this:

<smil>
    <head>
    </head>
    <body>
        <switch>
            <video src="myStream_480p" video-bitrate=400000  audio-bitrate=96000  width=320 height=180>
                <param name="videoCodecId" value="avc1.66.12" valuetype="data"/>
                <param name="audioCodecId" value="mp4a.40.2" valuetype="data"/>
            </video>
            <video src="myStream_360p" video-bitrate=650000  audio-bitrate=96000  width=476 height=268>
                <param name="videoCodecId" value="avc1.66.21" valuetype="data"/>
                <param name="audioCodecId" value="mp4a.40.2" valuetype="data"/>
            </video>
            <video src="myStream_720p" video-bitrate=900000  audio-bitrate=96000  width=640 height=360>
                <param name="videoCodecId" value="avc1.66.31" valuetype="data"/>
                <param name="audioCodecId" value="mp4a.40.2" valuetype="data"/>
            </video>
        </switch>
    </body>
</smil>

Note: See Send a live stream to another Wowza Streaming Engine instance for instructions on sending a live stream from one Streaming Engine instance to another using stream targets in Wowza Streaming Engine 4.2.

Wowza Video


No transcoding or transcoding with Wowza Streaming Engine

To send a stream to Wowza Video, use the wowza-cdn profile. This profile covers scenarios where you push a single stream without any transcoding, or you push an adaptive bitrate stream that's transcoded with Wowza Streaming Engine. Here's an example map entry:

myIncomingStream={"entryName":"streamTargetName", "profile":"wowza-cdn", "wowzaVideo.region":"us", "destinationName":"wowzavideocdn", "group.streamMatcher":"namePrefix"}
The group.streamMatcher parameter can be replaced manually with several different options.

Note:

Transcoding with Wowza Video

To send a stream for transcoding in Wowza Video, use the wowza-video-transcoder profile. Here's an example map entry:

myIncomingStream={"entryName":"streamTargetName", "profile":"wowza-video-transcoder", "wowzaVideoTranscoder.width":"1280", "destinationName":"wowzavideocdn", "wowzaVideoTranscoder.region":"us_east_virginia", "wowzaVideoTranscoder.height":"720", "enabled":"false"}

For more information, see About map profiles and the wowza-video-transcoder profile parameters.

Note:

Adobe Media Server


To send a stream to Adobe Media Server, use the rtmp profile. The UserName and Password items are only needed if RTMP authentication is enabled on the destination Adobe Media Server.

Following is an example entry to send the stream myStream to a remote Adobe Media Server, assuming RTMP authentication is enabled and the following credentials are valid:

  • User Name: myUser
  • Password: myPassword

Example map entry:

myStream={"profile":"rtmp", "streamName":"myStream", "userName":"myUser", "password":"myPassword", "originalTimecodeThreshold":"0x100000"}

Akamai HTTP (HLS and MPEG-DASH)


To send a stream to Akamai using HLS or MPEG-DASH use the cupertino-akamai or mpegdash-akamai profile, respectively. These profiles are configured to send streams to the Akamai HD Network. For proper operation, the Wowza Streaming Engine application must be set up as a live application and the cupertinolivestreampacketizer or mpegdashlivestreampacketizer must be enabled in the <Stream>/LiveStreamPacketizers container. If the appropriate packetizer isn't set, a warning message is logged when the live stream is sent to Akamai.

Streams sent to Akamai must be provisioned through the Luna Control Center. Be sure to use the appropriate configuration type for each stream. For example, Apple HLS streams must be configured as HD iPhone/iPad Live. You must also provision a stream with the following information:

  • StreamId
  • HostId

The StreamId is the number after the at sign (@) in the Stream Name and the HostId is in the Host Name / Status column. Entering a value for the HostId isn't required. If not specified, the HostId value will default to example-i. For this example, we'll use an Apple HLS stream that's already provisioned for testing, supplied with the following values:

  • StreamId: 123456
  • HostId: example-i

This is the only information that's required. The remaining map entry components only control the full playback URL.

Example cupertino-akamai map entry:

myStream={"profile":"cupertino-akamai", "streamName":"myStreamHLS", "cupertino.renditions":"audiovideo", "akamai.streamId":"123456", "akamai.hostId":"example-i", "akamai.eventName":"test", "debugLog":"false"}

Example mpegdash-akamai map entry:

myStream={"profile":"mpegdash-akamai", "streamName":"myStreamMPEGDASH", "mpegdash.videorepresentationId":"video_1300kbps", "mpegdash.audiorepresentationId":"audio_126kbps", "akamai.streamId":"123456", "akamai.hostId":"example-i", "akamai.eventName":"test", "debugLog":"true"}

See About map profiles for the definitions of these fields.

About adaptive bitrate streaming to Akamai

You can create Akamai stream targets for adaptive bitrate streams using Wowza Streaming Engine Manager or by directly editing the PushPublishMap.txt file. For HLS and MPEG-DASH destinations, the most efficient way is to directly edit the PushPublishMap.txt file and create a single stream target with the group-manager profile. See About the group-manager profile for more information. Alternatively, you can create multiple stream targets from Wowza Streaming Engine Manager or add multiple map entries in the PushPublishMap.txt with adaptive groups. See About adaptive groups for more information.

Note: You can also use the Wowza Streaming Engine REST API to send adaptive bitrate streams to Akamai with a single stream target with the group-manager profile. See Send adaptive bitrate streams to Akamai using a single stream target for information.

About the group-manager profile

Using the group-manager profile in a map file entry, you can group multiple bitrate stream renditions and send the group to Akamai (HLS or MPEG-DASH) with a single map file entry, which creates a single stream target. The group contains the streams you specify and uses a unique, adaptive bitrate playback URL. Using the group-manager profile is the most efficient way to stream HLS or MPEG-DASH adaptive bitrate content to Akamai.

Note: Stream targets created using the group-manager profile do not appear in Wowza Streaming Engine Manager.

Stream renditions can be easily identified and grouped using several methods defined by the group.streamMatcher parameter in the entry, including a list of stream names (nameList), regular expressions (nameRegex), SMIL files (smil), and stream name groups created by Transcoder (ngrp). The group.name parameter you specify is used to identify the group in URLs.

See group-manager profile parameters for more information about creating a map file entry with the group-manager profile.

Example group-manager map entry for sending HLS streams to Akamai:

myStream_160p|myStream_720p={"entryName":"Akamai-HLS-myStreamList", "profile":"group-manager", "childProfile":"cupertino-akamai", "group.streamMatcher":"nameList", "group.name":“NameListGroupHLS", "akamai.destinationServer":“primary", "playbackHost":"examplei", "akamai.streamId":"123456", "http.relativePlaylists":“false", "http.playlistCount":“8", "debugLog":"true", "debugLogChildren":“false"}
 

Example group-manager map entry for sending MPEG-DASH streams to Akamai:

myStream_all={"entryName":"Akamai-DASH-myStreamNGRP", "profile":"group-manager", "childProfile":“mpegdash-akamai", "group.streamMatcher":"ngrp", "group.name":“NameGroupDASH", "akamai.destinationServer":“primary", "playbackHost":"example-i", "akamai.streamId":"123456", "http.relativePlaylists":"true", "http.playlistCount":"15", "debugLog":"true", "debugLogChildren":"true"}

About adaptive groups

Note: In Wowza Streaming Engine 4.7.5.02 and earlier, the adaptiveGroup parameter was called adaptiveGroups, and it supported a comma-separated list of group names which enabled you to create a single stream target for each rendition and specify as many adaptive groups as you wanted to include the rendition in. Due to changes in Akamai Media Services Live, however, the single rendition must now be pushed through multiple targets, one for each adaptive group the rendition is part of.

If you don't use the group-manager profile, you must create a stream target for each adaptive bitrate rendition using the adaptiveGroup parameter, which allows Wowza Streaming Engine to create an adaptive bitrate stream from a group of individual streams. The group contains the streams you specify and uses a unique, adaptive bitrate playback URL. See Akamai HTTP protocol playback URL formats to see how the URL formats are enumerated.

A stream can belong to multiple adaptive bitrate groups, but a separate target must be configured for each group the rendition is part of. All streams in an adaptive bitrate group must have the same akamai.streamId, akamai.hostId, akamai.eventName, and akamai.sendToBackupServer (if defined), but each stream must have a unique streamName. To ensure 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. The following example shows how three Apple HLS streams (myStream1, myStream2, and myStream3) are used in an adaptive bitrate group (group1 and group2):

myStream1={"profile":"cupertino-akamai", "streamName":"myStream1", "cupertino.renditions":"audiovideo", "akamai.streamId":"123456", "akamai.hostId":"example-i", "akamai.eventName":"test", "adaptiveGroup":"group1", "debugLog":"false"}
myStream1={"profile":"cupertino-akamai", "streamName":"myStream1", "cupertino.renditions":"audiovideo", "akamai.streamId":"123456", "akamai.hostId":"example-i", "akamai.eventName":"test", "adaptiveGroup":"group2", "debugLog":"false"}
myStream2={"profile":"cupertino-akamai", "streamName":"myStream2", "cupertino.renditions":"audiovideo", "akamai.streamId":"123456", "akamai.hostId":"example-i", "akamai.eventName":"test", "adaptiveGroup":"group1", "debugLog":"false"}
myStream3={"profile":"cupertino-akamai", "streamName":"myStream3", "cupertino.renditions":"audiovideo", "akamai.streamId":"123456", "akamai.hostId":"example-i", "akamai.eventName":"test", "adaptiveGroup":"group2", "debugLog":"false"}

In this example, group1 includes myStream1 and myStream2, and group2 includes myStream1 and myStream3.

You can also control how many items are maintained in a stream's playlist by using the http.playlistCount settings. By default, the value of http.playlistCount is set to 0, which maintains a sliding window live stream with three segments. Set the playlist count to a higher value to maintain a longer DVR playlist on Akamai for DVR functionality. You can also set http.playlistAcrossSessions to true to instruct Wowza Streaming Engine to try to maintain a playlist across streaming sessions. The http.playlistTimeout controls the time limit for how long non-running playlists are maintained.

Example cupertino-akamai map entry that uses many of the configuration options:

myStream={"profile":"cupertino-akamai", "streamName":"myStream", "cupertino.renditions":"audiovideo|audioonly", "akamai.streamId":"123456", "akamai.hostId":"example-i", "akamai.destinationServer":"redundant", "akamai.eventName":"test", "http.playlistCount":"10", "http.playlistAcrossSessions":"true", "adaptiveGroup":"group1", "debugLog":"true"}

Note: See Stream to the Akamai HD network from Wowza Streaming Engine for instructions on how to send a live stream to Akamai over HTTP using stream targets in Wowza Streaming Engine 4.2 and later.

Akamai RTMP


To send a stream to Akamai using RTMP, use the rtmp-akamai profile. The rtmp-akamai profile is configured to send to the Akamai HD Network. When sending streams to Akamai, the following account information is required:

  • StreamId
  • User Name
  • Password

Following is an example entry to send the stream myStream to Akamai, assuming these credentials:

  • StreamId: 12345
  • User Name: myUser
  • Password: myPassword

Example map entry:

myStream={"profile":"rtmp-akamai", "streamName":"myStream_1_500", "akamai.streamId":"12345", "userName":"myUser", "password":"myPassword"}

The stream is sent to the Akamai entry point p.ep[stream-id].i.akamaientrypoint.net/EntryPoint/ with a stream name of myStream_1_500@[stream-id]. For the example entry above, the entry point is p.ep12345.i.akamaientrypoint.net/EntryPoint/ and the stream name is myStream_1_500@12345. The optional akamai.sendToBackupServer parameter would change the entry point to b.ep12345.i.akamaientrypoint.net/EntryPoint/ if set to true.

To configure a backup/failover endpoint, add the optional akamai.sendToBackupServer:true parameter to the map entries on the backup Streaming Engine instance. This parameter is only required on the backup instance and will continue to send the stream to Akamai should the primary server running Wowza Streaming Engine fail.

Example map entry:

myStream={"profile":"rtmp-akamai", "streamName":"myStream_1_500", "akamai.streamId":"12345", "userName":"myUser", "password":"myPassword", "akamai.sendToBackupServer":"true"}

Note: When sending RTMP streams to the Akamai HD Network, destination stream names must be in the form [name]_[angle]_[bitrate].
 
  • The [name] value can be any string but must be identical for all of your event's streams, or else the Akamai HD Network will treat them as different events. The name value can't include an underscore (_) character.
  • The [angle] value can be any string but is intended to be a string that identifies the camera angle.
     
  • The [bitrate] value should be the total bitrate of the video in kilobits per second (kbps).
     
  • The underscore (_) character is the only allowed field separator.
Fields after the third field (bitrate) in the destination stream name are truncated. Streams that aren't delivered in this format can't be played.

If sending streams to the original AMS network, set the akamai.hdNetwork parameter to false to allow simple stream names without the above syntax requirements.

For adaptive bitrate delivery, the map entry is a bit more complicated to ensure that the keyframes in the streams are properly aligned. For example, for the following three adaptive bitrate streams:

  • myStream_480p: 500Kbps
  • myStream_360p: 750Kbps
  • myStream_720p: 1000Kbps

The map entries to properly send these streams to Akamai to maintain alignment are:

myStream_480p={"profile":"rtmp-akamai", "streamName":"myStream_1_500", "akamai.streamId":"12345", "userName":"myUser", "password":"myPassword", "adaptiveStreaming":"true", "sendOriginalTimecodes":"true", "originalTimecodeThreshold":"0x100000"}
myStream_360p={"profile":"rtmp-akamai", "streamName":"myStream_1_750", "akamai.streamId":"12345", "userName":"myUser", "password":"myPassword", "adaptiveStreaming":"true", "sendOriginalTimecodes":"true", "originalTimecodeThreshold":"0x100000"}
myStream_720p={"profile":"rtmp-akamai", "streamName":"myStream_1_1000", "akamai.streamId":"12345", "userName":"myUser", "password":"myPassword", "adaptiveStreaming":"true", "sendOriginalTimecodes":"true", "originalTimecodeThreshold":"0x100000"}

To play the stream through the Akamai network via Apple HLS (HD network only), you can use any HLS player, such as the stock iOS media player or Safari. Create the stream URL from the streamID and the [name] and [angle] parts of the streamName in your map file, and from the hostname found in the Akamai configuration screens, in the following form:

http://<HostName>.akamaihd.net/i/[name]_[angle]@[streamID]/master.m3u8

Note: Assumes you have HLS delivery enabled in the associated Akamai configuration.

See Stream to the Akamai HD network from Wowza Streaming Engine for instructions on how to send a live stream to Akamai.

BitGravity


To send streams to BitGravity, use the rtmp profile. First, use the BitGravity Dashboard to provision a live stream.

Following is an example entry to send the stream myStream to BitGravity, assuming the destination live stream has been provisioned through the dashboard:

  • Server: rtmp://rtpdev1.iad1.bitgravity.com/rtmp/push
  • Stream: test@test.com/71d73d4cfd1e2f2fed77238021a2cbbe/test/live/feed01

The Server URL breaks down to:

  • Host: rtpdev1.iad1.bitgravity.com
  • Application: rtmp
  • AppInstance: push

Example map entry:

myStream={"profile":"rtmp", "streamName":"test@test.com/71d73d4cfd1e2f2fed77238021a2cbbe/test/live/feed01", "host":"rtpdev1.iad1.bitgravity.com", "application":"rtmp", "appInstance":"push"}

  

EdgeCast


To send a stream to EdgeCast, use the rtmp profile. The rtmp profile is configured to send to an RTMP CDN. When sending to EdgeCast, the following account information is required:

  • Host
  • ApplicationID
  • StreamName
  • Live Authentication Key

Following is an example entry to send the stream myStream to EdgeCast, assuming these credentials:

  • Host: fso.lax.0001.edgecastcdn.net
  • ApplicationID: 200001
  • StreamName: myStream
  • Live Authentication Key: 0123456

Example map entry:

myStream={"profile":"rtmp", "host":"fso.lax.0001.edgecastcdn.net", "application":"200001", "streamName":"myStream?0123456", "originalTimecodeThreshold":"0x100000"}

Icecast 2 Server


To send to an Icecast 2 server, use the icecast2 profile. When sending to an Icecast 2 server , the following account information is required:

  • Host
  • Port
  • Username
  • Password
  • StreamName

The following information is optional:

  • Public
  • URL
  • Name
  • Genre
  • ICQ ID
  • AIM ID
  • IRC ID

Following is an example entry to send the stream myStream to a Icecast 2 server, assuming the following credentials:

  • Host: 192.168.1.10
  • Port: 8000
  • Username: source
  • Password: broadcast
  • StreamName: mountpoint.aac
  • Public: true
  • URL: http://www.wowza.com
  • Name: Wowza Server
  • Genre: Wowza Music
  • ICQ ID: icqme
  • AIM ID: aimem
  • IRC ID: ircme

Example map entry:

myStream={"entryName":"Icecast2Target", "profile":"icecast2", "port":"8000", "host":"192.168.1.10", "icecast2.irc":"ircme", "icecast2.icq":"icqme", "icecast2.description":"Wowza Audio Stream", "icecast2.genre":"Wowza Music", "destinationName":"icecast2", "password":"broadcast", "icecast2.name":"Wowza Server", "streamName":"mountpoint.aac", "icecast2.public":"true", "icecast2.aim":"aimem", "icecast2.url":"http://www.wowza.com", "userName":"source"}

Note: See Stream to SHOUTcast and Icecast from Wowza Streaming Engine for instructions on how to send a live audio stream to an Icecast2 server using stream targets in Wowza Streaming Engine 4.5.

Level 3


To send to Level 3, use the rtmp profile. When sending to Level 3, the following account information is required:

  • User Name
  • Password
  • Host
  • Application

Following is an example entry to send the stream myStream to Level 3, assuming these credentials:

  • User Name: myUser
  • Password: myPassword
  • Host: level3entry.com
  • Application: myaccount

Example map entry:

myStream={"profile":"rtmp", "streamName":"myStream", "host":"level3entry.com", "application":"myaccount", "userName":"myUser", "password":"myPassword", "originalTimecodeThreshold":"0x100000"}

Limelight


To send to Limelight, use the rtmp-limelight profile. The rtmp-limelight profile is configured to send to the Limelight CDN. When sending to Limelight, the following account information is required:

  • User Name
  • Password

Following is an example entry to send the stream myStream to Limelight, assuming these credentials:

  • User Name: myUser
  • Password: myPassword

Example map entry:

myStream={"profile":"rtmp-limelight", "streamName":"myStream", "userName":"myUser", "password":"myPassword", "originalTimecodeThreshold":"0x100000"}

  

Livestream


Note: Wowza Streaming Engine only supports the original Livestream platform (host: publish.livestream.com). New versions of LiveStream platform (host: livestream.com) aren't supported.

To send to the original Livestream platform, use the rtmp profile and the following map file entry information:

  • Host: publish.livestream.com
  • Application: mogulus
  • appInstance: myChannel/username=myUser/password=myPassword/isAutoLive=true 
Note: Other options can be added to this, such as /aspectWidth=4, aspectHeight=3, and so on.

Example map entry:

myStream={"profile":"rtmp", "host":"publish.livestream.com", "application":"mogulus", "appInstance":"myChannel/username=myUser/password=myPassword/isAutoLive=true"}

To playback the stream, log in to your Livestream account and go to the Channel page.

MPEG-2 Transport Stream (MPEG-TS)


To send an MPEG-TS stream to the multicast address 239.1.1.1:10000, use the following map entry:

myStream={"profile":"mpegts", "streamName":"myStreamMPEGTS", "host":"239.1.1.1", "port":"10000", "rtpWrap":"false"}

Note: See Use MPEG-TS to distribute live streams from Wowza Streaming Engine for instructions on how to send a live stream to an MPEG-TS destination using stream targets in Wowza Streaming Engine 4.2.

Real-time Transport Protocol (RTP), unicast or multicast


To send a native RTP stream to the multicast address 239.1.1.1, ports 10002-10005, use the following map entry:

myStream={"profile":"rtp", "streamName":"myStreamRTP", "host":"239.1.1.1", "videoPort":"10002", "audioPort":"10004"}

Notes:
  • When you use native RTP to send a stream to a destination, the video and the audio each use a UDP port. Make sure that the VideoPort and AudioPort values are even numbers. This will allow room for the second port.
     
  • When you use MPEG-TS or native RTP to send a live stream to a destination, an SDP file is automatically generated in the [install-dir]/applications/[application]/sdp folder. The name of the SDP file is the StreamName value that's specified in the map entry with a .sdp file name extension. Media players that support multicast playback can use this file to play the stream.
     
  • When you use MPEG-TS or native RTP to send a live stream to a destination, both protocols use a similar configuration to send a stream to a unicast and multicast address. The only difference is that the Host item in the map configuration must point to the proper address range. Multicast address ranges are described in the following Wikipedia article Multicast address.
     
  • When streaming multicast on a Linux computer that has multiple network interfaces, there may be issues under certain kernel versions where the multicast stream isn't available on both interfaces. For more information, see CentOS - Problems with Multicast.
     
  • See Use RTP to distribute live streams from Wowza Streaming Engine for instructions on how to send a live stream to an RTP destination using stream targets in Wowza Streaming Engine 4.2.

Shoutcast 1 Server


To send to a Shoutcast 1 server, use the shoutcast1 profile. When sending to a Shoutcast 1 server, the following account information is required:

  • Host
  • Port
  • Password

The following information is optional:

  • Public
  • URL
  • Name
  • Genre
  • ICQ ID
  • AIM ID
  • IRC ID

Following is an example entry to send the stream myStream to a SHOUTcast 1 server, assuming the following credentials:

  • Host: 192.168.1.10
  • Port: 8000
  • Password: broadcast
  • Public: true
  • URL: http://www.wowza.com
  • Name: Wowza Server
  • Genre: Wowza Music
  • ICQ ID: icqme
  • AIM ID: aimem
  • IRC ID: ircme

Example map entry:

myStream={"entryName":"Shoutcast1Target", "profile":"shoutcast1", "port":"8000", "host":"192.168.1.10", "shoutcast.public":"true", "shoutcast.url":"http://www.wowza.com", "shoutcast.name":"Wowza Server", "destinationName":"shoutcast", "password":"broadcast", "shoutcast.genre":"Wowza Music", "shoutcast.icq":"icqme", "shoutcast.aim":"aimem", "shoutcast.irc":"ircme"}

Note: See Stream to SHOUTcast and Icecast from Wowza Streaming Engine for instructions on how to send a live audio stream to a Shoutcast 1 server using stream targets in Wowza Streaming Engine 4.5.

Shoutcast 2 Server


To send to a Shoutcast 2 server, use the shoutcast2 profile. When sending to a Shoutcast 2 server , the following account information is required:

  • Host
  • Port
  • Username
  • Password
  • StreamName

The following information is optional:

  • Public
  • URL
  • Name
  • Genre
  • ICQ ID
  • AIM ID
  • IRC ID

Following is an example entry to send the stream myStream to a SHOUTcast 2 server, assuming the following credentials:

  • Host: 192.168.1.10
  • Port: 8000
  • Username: authenticationHash
  • Password: broadcast
  • StreamName: 1
  • Public: true
  • URL: http://www.wowza.com
  • Name: Wowza Server
  • Genre: Wowza Music
  • ICQ ID: icqme
  • AIM ID: aimem
  • IRC ID: ircme

Example map entry:

myStream={"entryName":"Shoutcast2Target", "profile":"shoutcast2", "port":"8000", "host":"192.168.1.10", "shoutcast.icq":"icqme", "destinationName":"shoutcast", "password":"broadcast", "shoutcast.genre":"Wowza Music", "streamName":"1", "shoutcast.public":"true", "shoutcast.url":"http://www.wowza.com", "shoutcast.irc":"ircme", "userName":"authenticationHash", "shoutcast.name":"Wowza Server", "shoutcast.aim":"aimem"}

Note: See Stream to SHOUTcast and Icecast from Wowza Streaming Engine for instructions on how to send a live audio stream to a Shoutcast1 server using stream targets in Wowza Streaming Engine 4.5.

Secure Reliable Transport (SRT)


To send to an SRT destination, the following information is required:

  • sourceStreamName
  • host
  • port

The following information is optional:

  • srtConnectTimeout
  • srtFlightFlagSize
  • srtInputBandwidth
  • srtKeyAnnounce
  • srtKeyLength
  • srtKeyRefreshRate
  • srtLatency
  • srtMaximumBandwidth
  • srtMaximumSegmentSize
  • srtOverheadBandwidth
  • srtPassPhrase
  • srtStreamId
  • srtTimesToPrintStats
  • srtTooLatePacketDrop

Example map entry:

myStream={"profile":"srt", "sourceStreamName":"myStreamSRT", "host":"192.168.1.10", "port":"10000", "srtConnectTimeout":"3000", "srtFlightFlagSize":"25600", "srtInputBandwidth":"0", "srtKeyAnnounce":"0x1000", "srtKeyLength":"16", "srtKeyRefreshRate":"0x1000000", "srtLatency":"400", "srtMaximumBandwidth":"-1", "srtMaximumSegmentSize":"1500",  "srtOverheadBandwidth":"25", "srtPassPhrase":"0123456789012345",  "srtStreamId":"abcd1234", "srtTimeToPrintStats":"0", "srtTooLatePacketDrop":"true"}

Note: See Use SRT to distribute live streams from Wowza Streaming Engine to send a live stream to an SRT destination using stream targets in Wowza Streaming Engine 4.7.3 and later.

UStream.tv


To send to UStream.tv, use the rtmp profile. On the UStream Dashboard for your channel, find the Remote tab and get the URL and Stream Key. They will look something like this:

  • URL: rtmp://1.2345.fme.ustream.tv/ustreamVideo/67890
  • StreamName: ExampleStringKeyKFMpfXrssJhbq

The streaming URL is broken into the following components in the map data:

  • Host: 1.2345.fme.ustream.tv
  • Application: ustreamVideo
  • AppInstance: 67890

Example map entry:

myStream={"profile":"rtmp", "host": "1.2345.fme.ustream.tv", "application":"ustreamVideo", "appInstance": "67890", "streamName":"ExampleStringKeyKFMpfXrssJhbq", "originalTimecodeThreshold":"0x100000"}

To playback the stream, log in to your Ustream account and go to the Channel page. After an advertisement, the live video should start to play.

YouTube Live


To send to YouTube Live, use the rtmp profile. After your account is created, you'll receive a Stream Name and two URLs. They will look something like this:

  • URL: rtmp://a.rtmp.youtube.com/live2
  • Backup URL: rtmp://b.rtmp.youtube.com/live2?backup=1
  • StreamName: myaccount.u8w0-z0pr-c4qx-7jt1

The streaming URLs are broken into the following components in the map data:

  • Host: a.rtmp.youtube.com
  • Application: live2

Example map entry:

myStream={"profile":"rtmp, "host":"a.rtmp.youtube.com", "application":"live2", "streamName":"myaccount.u8w0-z0pr-c4qx-7jt1"}

Note: See Stream to YouTube from Wowza Streaming Engine for instructions on how to send a live stream to YouTube using stream targets in Wowza Streaming Engine 4.2.