How to 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 How to use a server listener to load and lock an app instance (LoadAndLockAppInstances).
  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 it is possible to 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 How to configure Wowza media server to stream audio-only Apple HLS using transport stream.

To play the stream over various streaming formats, click Test Players in the upper-right corner of the information page. The Test Players window that opens includes test players that are preconfigured to stream a live stream named myStream over various streaming formats. Each tab in the Test Players window either hosts a test player that you can use to play the live stream or provides instructions for playing the live stream. For example, to use the Adobe HDS protocol to play myStream, click the Adobe HDS tab, and then click Start.



The test players are also online on our Wowza Test Players webpage.

Example players

You can also use example players that are included with Wowza media server software or downloaded from the Wowza website to play the stream. For more information, see the following articles:
 

If you're having problems or want to discuss this article, post in our forum.