Wednesday, April 21, 2010

Using VLC to stream MP3 audio to a SHOUTcast server

My wife is a singer on SecondLife (her avatar name is iCandy Overland). In order to stream music semi-professionally, she's got a Shure wireless microphone and an MP3 player hooked into a Behringer mixer. The mixer is plugged into the line-in on her Windows PC. An audio encoder is used (in this case, VLC) to encode and stream the music as MP3 to a SHOUTcast server which is then played at venues within SecondLife.

I set all this up a long time ago and it worked great, until I decided to upgrade VLC to the latest version (1.0.5). Once I did that, I could no longer get the stream to connect to the SHOUTcast server to save my life. I eventually had to restore a backup of her PC into a virtual machine and copy over the VLC preferences located under %APPDATA%. I'm now writing this blog entry to save others (and myself) from making the same mistakes again.

First off, when it wasn't working, this is the error I was seeing in VLC:

access_output_shout warning: failed to connect using 'icy' (shoutcast) protocol
access_output_shout warning: failed to connect using 'http' (icecast 2.x) protocol
access_output_shout warning: unable to establish connection, retrying...

I later found out that my first mistake was adding "http://" to the beginning of the server URL when configuring the Icecast destination in the VLC Stream Output GUI. My second mistake was not checking the "Stream MP3" checkbox in the VLC Preferences for Shoutcast. Once I corrected both of those mistakes, the stream worked again.

So here are the basic steps. This is for VLC 1.0.5:

1) In VLC, click "Tools" and then "Preferences".
2) Under "Show settings" select "All".
3) Select "Stream output" -> "Access output" -> "Shoutcast".
4) Enter whatever stream info you want here but make sure to check "Stream MP3":

VLC Shoutcast Preferences

5) Save the settings. 
6) In VLC, select "Media" and then "Stream...".
7) Pick whatever you're going to stream (in my case Line In, located under the Capture Device tab) then click "Stream":

Capture Device


8) Source should be "dshow://" so click "Next".
9) Select "IceCast" for new destination and then click "Add".
10) Enter the server address WITHOUT preceding it with "http://" (e.g. "lema-awards.ipr365.com").
11) Enter your server port.
12) Not sure if it's necessary, but I always enter something for "Mount Point".
13) Again, not sure if the login name is necessary, but I enter both a login and password for "Login:pass". 
14) Check "Activate Transcoding" and select "Audio - MP3" for "Profile".

Stream Destination

15) Click "Stream".


If all goes well you should now be successfully streaming to the SHOUTcast server. Note that if you want something less than a 128Kbps stream you'll need to adjust your MP3 encoder settings in VLC as it appears that's the default.

7/24/2012 Update:
I decided to upgrade VLC to the latest current version (2.0.2) but ran into another issue: the stream was constantly skipping and stuttering like a badly scratched record. After much experimentation, I eventually stumbled across the "Stream output muxer caching (ms)" setting and changed it from 1500ms to 0ms (found under "Stream output" in step #3 above). This appears to have solved the skipping problem.

I also figured out how to create a desktop shortcut to start the stream immediately:
"C:\Program Files\VideoLAN\VLC\vlc.exe" dshow:// --sout="#transcode{vcodec= none,acodec=mp3,ab=128,channels=2,samplerate=44100}:std{access=shout,mux=ogg,dst=icandy:password@lema-awards.ipr365.com:1234/icandy}" --sout-keep

6 comments:

  1. GREAT! Thank you very much for the post. It helped us a lot! Greatings from Vienna!
    Georg

    ReplyDelete
  2. Just wanted to say thank you Mike for the plug. Using this method even today has got me to sensational status as a virtual world singer. Four years later, after your initial blog......was nominated Best Pop Singer and Best Female Musician in Secondlife.com. Thanks to you and your great advice. Getting a new OS in a few days......will have to see if this is still as reliable. www.icandyoverland.com~ Candy

    ReplyDelete
  3. What about streaming a playlist?

    ReplyDelete
    Replies
    1. Haven't tried it but you would select the File tab in step #7 and then choose your playlist file.

      Delete
  4. This comment has been removed by the author.

    ReplyDelete