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.

Contents


Create a SHOUTcast or Icecast broadcast
Configure Wowza Streaming Engine to ingest the SHOUTcast/Icecast broadcast Play the stream

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.

In Wowza Streaming Engine Manager, click Test Players in the upper-right corner of the live application page.

Each tab in the Test Players window either hosts a test player that can play the live stream, or provides instructions for playing the live stream. The test players are preconfigured to stream the default live stream myStream.

For example, to test playback of the default stream myStream over Adobe HDS, make sure the encoder is sending a stream to the live application in Wowza Streaming Engine and that Adobe Flash is enabled in the browser you're using. Then, click the Adobe HDS tab and click Start.

You can also test your live stream by using the test players online on our Wowza Test Players webpage, or by using the example players that install with Wowza Streaming Engine at [install-dir]/examples/. For more information, see any of these articles: