Use SHOUTcast/Icecast as a live stream encoder with Wowza Streaming Engine

Wowza Streaming Engine™ media server software enables you to use SHOUTcast and Icecast servers as live stream encoders. This article describes how to configure Wowza Streaming Engine to automatically ingest SHOUTcast1, SHOUTcast2 (Ultravox 2.1), and Icecast 2 streams. When a SHOUTcast or Icecast stream is connected to Wowza Streaming Engine, it is treated like any other incoming stream.

Note: Wowza Streaming Engine 4.7.0 or later is required.

Before you start


You should complete the following tasks:

Create a SHOUTcast or Icecast broadcast 


Before a SHOUTcast or Icecast broadcast can be connected to Wowza Streaming Engine as a live audio source, you must create the broadcast. Go to SHOUTcast.com or Icecast.org, sign in or register, and follow the instructions to create a broadcast. 

Configure Wowza Streaming Engine to ingest the SHOUTcast/Icecast broadcast 


You must configure a server listener as well as the Wowza Streaming Engine application you're using to ingest the SHOUTcast or Icecast broadcast.

Note: These instructions require an administrator user with advanced permissions. For more information, see Enable access to advanced administrative settings.

  1. Configure the ServerListenerLoadAndLockAppInstances server listener. Make sure to specify the name of the live application you'll use to ingest the SHOUTcast or Icecast broadcasts so that Wowza Streaming Engine will automatically start the applications and keep it loaded. See Load and lock an appinstance with a Wowza Streaming Engine server listener.
  2. Add the ShoutcastIngest module to your live application.
    1. In Wowza Streaming Engine Manager, click the application in the contents panel and then click on the Modules tab.
    2. Click Edit and then click Add Module.
    3. In the Add New Module dialog box, complete the required fields and then click Add.
      • Name - Enter ShoutcastIngest.
      • Description - Enter Shoutcast or Icecast ingest.
      • Fully Qualified Class Name - Enter com.wowza.wms.protocol.icy.Ingest.
    4. Click Save and then restart the application to apply your changes.
  3. Create a file named ICYSourceMap.txt in the [install-dir]/conf/ folder.
  4. Add the required SHOUtcast or Icecast username and password content to the [install-dir]/conf/ICYSourceMap.txt file for each broadcast you'll ingest:
    • SHOUTcast 1 
      SHOUTcast 1 clients only send a password. The ICYSourceMap.txt entry should use the following format, where:
      • [password] is your SHOUTcast 1 broadcast password.
      myStream = {password:”[password]”}
    • SHOUTcast 2 
      SHOUTcast 2 clients send a username, password, and stream ID (SID). The ICYSourceMap.txt entry should use the following format, where:
      • [password] is your SHOUTcast 2 broadcast password.
      • [username] is your SHOUTcast 2 broadcast username.
      • [SID] is your stream ID.
      myStream = {password:”[password]”,userName:”[username]”, sid:”[SID]”}
    • Icecast 2 
      Icecast 2 clients send a username, password, and mountpoint. The ICYSourceMap.txt entry should use the following format, where:
      • [mountpoint] is the mountpoint (this must be same as the stream name).
      • [password] is your Icecast 2 broadcast password.
      • [username] is your Icecast 2 broadcast username.
      [mountpoint] = {password:”[password]”,userName:”[username]” }
  5. Save your chances to the ICYSourceMap.txt file, and restart Wowza Streaming Engine. 

Additional properties

Use the following properties, as needed, for additional configuration of Wowza Streaming Engine. To add these properties, see Add a custom property.

Path Name Type Description
Root/Application icyListenPort Integer

Specifies the port on which SHOUTcast and Icecast clients should connect to Wowza Streaming Engine. The default port is 8000.

Note that the specified port is used to determine the SHOUTcast 1 port, which is the icyListenPort plus one. So, with the default value, the SHOUTcast 1 port is 8001.

Root/Application icyShoutcastVersionOneEnabled Boolean Enables the use of the SHOUTcast 1 port. The default value, true, allows SHOUTcast 1 connections. To disable SHOUTcast 1 connections, set to false.
Root/Application icySourceMapPath String

The full path, including the file name, to an alternate location for the ICYSourceMap.txt file. The default location is [install-dir]/conf/ICYSourceMap.txt. The specified path can contain the following variables:

  • ${com.wowza.wms.context.VHostConfigHome}
  • ${com.wowza.wms.context.VHost}
  • ${com.wowza.wms.context.Application}
  • ${com.wowza.wms.context.ApplicationInstance}

For example:
${com.wowza.wms.context.VHostConfigHome}/conf/ICYSourceMap.txt

Play the stream 


Note: Although you can use SHOUTcast and Icecast for audio/video streams, they are usually audio-only streams. If you wish to deliver the audio-only stream to an HLS player, you must packetize the chunks using TS. See Configure Wowza Streaming Engine to packetize HLS audio using TS chunks.

Playback URLs

To test playback, you need the playback URLs for your stream and the playback types, or streaming protocols, you want to test. You can get playback URLs from the Test Playback window in Wowza Streaming Engine Manager or by entering information about the stream on the Video Test Players webpage. For more information about playback URLs, see About playing Wowza Streaming Engine streams.

The Test Playback window generates playback URLs for each protocol based on the page you're on when you click Test Playback. You can also edit the Server (IP address or domain name), Stream or Media File Name, and Application fields to update the playback URLs for all protocols as needed.

Test players

To play your stream, enter the playback URL into your player or a mobile browser, depending on the playback type. To learn more about stream playback, see the Players and Playback articles.

You can also test playback using the Video Test Players webpage. Select the tab for the protocol you want to test and enter the playback URL above the player. Entering the server (IP address or domain name), stream name, application name, and application type (VOD or live) will also generate the playback URLs for each protocol. Click Start to play your stream, and then click Stop when you're ready to end your test.