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

Sunday, April 4, 2010

The Apple II disk transfers have started

Man... I sure hope this effort is appreciated by someone! It's taking many hours to transfer hundreds of 5.25" floppy disks over to my Windows laptop. Doesn't help that I didn't organize some of the disks very well, especially my backups. But I've already found lots of games and utilities that don't currently exist on the Asimov FTP site. Or at least I couldn't find them there (some files aren't named very well.) I'll be uploading those as time permits. I figure if nothing else I'm preserving computer history as I may very well be the only person left who has some of these titles! I mean, who else kept a copy of Telechess? I even have original copies of Ultima III, Flight Sim II, and a few others. Not to mention lots of software I wrote myself, including a virus I coded in assembly (it was never released into the wild.)

Was also able to image over my Sider ][ HD but I can't get my BBS software to run successfully in AppleWin because it doesn't emulate a Thunderclock time card (yet). And I don't really feel like hacking the ACOS code I wrote 20 years ago.

-DC-