Need help with Icecast or Icecast2 setup
I have a T-Mobile G1 cellphone. More like handheld computer. This thing is the nit of shiz. :p Anyway, there's a program on it that will receive Shoutcast feeds.
I have been searching around, and I've found a ton of people who say they use Icecast, several right here in LQ, and most say it's pretty straightforward to set up.
I'm sorry, I must be an idiot. I certainly feel like one.
I've been trying various options with my Debian Etch-provided Icecast, and I find the documentation lacking for this particular program. Maybe it makes some assumptions that the users magically know what each config option is and how each will be used.
I'm no newbie, and I'm no guru. I just need a good document to walk me through.
All that I've seen that actually says how to set up the system doesn't tell me how the stream gets from my MP3 files to my G1 through the network, and that's what I am looking for.
I realize I need a server (Icecast2) and I need a source (IceS2 in my case, or possibly XMMS with an Ices plugin). I *THINK* I've got Icecast2 serving, but it's quite clearly not configured right. I'm not sure if my xmms is feeding through to Icecast or not, and I can't get IceS2 to read the XML file (it's clearly not the same format as the Icecast one, because it refuses to read that one even with perms set a+rw on it). I've also been unsuccessful at finding a valid IceS2 config (googling "ices2 config.xml" was almost zero help).
Now, for all of you that are *successfully* hosting with IceCast and any source, would you mind kindly posting your how-I-did-its? Preferably, including config files would help -- I just need a very basic one to learn with.
What I want to do is serve my music collection to my internal LAN. I'm on 192.168.10.0/24, but I'd like to maintain the option of streaming to the world (I can config the router for port forwarding etc. just fine) as well, but as long as I can get it while I'm on my own network I'll be relatively satisfied.
FWIW, I already found http://en.flossmanuals.net/Icecast/CreatingAccounts and its related links, but it was of minimal help. It's a prime example of what I've found all over the net... It says how to set up the server, but that's it. No joy on setting up a SOURCE. I guess that's what I need most, IDK.
Oh, and a quick edit: I just nmapped my system and found the ports I'm using (let's call them 8000 and 8001 like in defaults) are indeed open for business.
ANY help at all?
Edit - 2: I just found http://www.howtoforge.com/linux_webr...icecast2_ices2 and I'm hoping it will help but I will check back here in case it doesn't... I have to give up for tonight though... got an important test tomorrow morning at work and it's my only chance for promotion until they offer it again -- the last time was 2 years ago and I wasn't eligible so I need to get some sleep so I'm on top of my game. Thanks again for any help...
Okay, I've got an Icecast, so I'll take a stab at fielding this one.
You seem to already know that the basic flow goes something like this:
music files -> source -> server -> network -> client
...this is good. Means I can skip the really basic stuff.
I'd start by opening http://localhost:8000 and making sure the server is running. It should be pretty obvious if it is or not. If not, that's a problem for another post... let me know if I need to go there.
The relationship between the source and the server is what you're at right now. I'll leave source selection up to you, but guessing that you've got mp3s, I'd go with ices0, since ices2 is for ogg files.
Basically how this works is that you define a mount point on the server for the source (there should be an example in the xml config file), point the source at the server's mount point (again, look for examples in config files), put in the correct passwords, and there you go. The final URL will look something like http://hostname:8000/mountpoint.mp3 or similar.
If it seems like I'm being useless it's probably because I am... all I can really do is guess at your setup without your config files. If you could post those it would help a lot.
I think I understand most of it. I believe what's confusing me then is mount points. How are they made? I assume the source "writes" to the "file" at the mount point and the server "reads" from this "file" to send it across the network... Is this correct?
Either way, I guess it's obvious I need to have the source and the server match WRT the mount points.
The server is working, I can browse to it, but I never get the "shortcut" or "link" to "listen" like the docs I've seen suggest, and when I look at server status, the number of connections just steadily increases constantly... no listeners connect.
I'll double check some stuff and if still at a loss I'll post my configs sometime tonight if I get the chance (probably after 7 PM EST).
Thinking a little more... if Ices2 only supports Ogg, that may well be my problem. I realize filename makes little difference...
I have something that confused me earlier but I don't have an easy way to access it right now to properly express my question, so tonight I'll try to remember what it was and post when I can see my configs and docs and everything else. It has to do with mount points versus output/input files and such.
So simple, I'm sure, and once I understand it properly I'll probably feel like an idiot but it just eludes me right now...
Sorry I'm late. I forgot earlier today that we were having company tonight.
As promised, my configs. Mind you, I've altered them from original and I am posting now before I do any more modding to them so that I can try a few more steps on my own, but here's what I have as of 2008-Nov-20 8:00 PM EST (Nov-21 0100 UTC)
I've got a few Oggs floatin' about here somewhere, so let me try using one of them instead and see if I can get anywhere...
Still welcoming any input. thanks!
Okay, I see already my mount names were different...
Got OGGs playing! Now to flap about with getting MP3 to work with ices0... if I can get ices0 for Debian Etch...
Thank you though!
For posterity, future hasslers of this, etc., I will post some of what I've learned once I'm sure it all works 100% as expected....
I've been streaming for years, using winamp, shoutcast, xmms, icecast, gnump3, etc.
Currently, I use mpd >> icecast.
As per your original post, if you wish to stream *all* your music, and not just oggs, then xmms >> icecast would work. I use mpd because it uses less resources than xmms (which could prolly be debated, providing that you have xmms running without gui, etc.), but the point is moot.
I don't have a whole lot of time at the moment to go through your icecast & ices configs, but bear with me. I'll keep my eye on this thread and see if I can chip in as you progress....
You may also want to check out gnump3 as an all-in-one streaming solution....
I'll check back with you later.
Well, lemme ask this... as far as streaming goes, the reason I'm focusing on Icecast is that my new cellphone (T-mobile G1) has a program called "Nagare" that will let me receive -- on the phone -- Shoutcast streams, and of course, Icecast is Shoutcast compatible. Now, is there anything special about Shoutcast "format" or is it simply MP3 sent across the network? Will MPD send a Shoutcast stream?
Either way, I have it working with Oggs. If absolutely nothing else, I can transcode from mp3 to ogg with marginal loss of quality (and I mean, let's face it, web streaming will NOT be the same quality as listening to the whole file anyway, so no big deal here...). Prob is, that's pretty time consuming and annoying, to say nothing of spacehogging. What I plan to do now is figure out how to get it to do MP3, whether by running xmms with an output plugin or by installing ices0, and go from there...
As far as XMMS goes, when I run it with the casting plugin, it basically just replaces Ices as a source, right?
Purpose: Streaming from MP3 to T-Mobile G1 / HTC Dream / Google Phone (among others such as regular laptops etc) in Shoutcast compatible media.
Packages required: (On server) ices0, icecast2, plus all dependencies. I personally have installed quite a few packages I now will not be using, and unfortunately do not know an easy way to make a list of what's actually required. However, ices0 and icecast2 are the main ones I'm using. Anything they require, you'll need. Also, as ices0 is only available as source for Debian etch amd64, you may want checkinstall as well. It REALLY helps with installing compiled apps as now they show up in synaptic etc. and can be removed easily if necessary. If compiling ices0 from source, you'll also need libspeex-dev and libshout3-dev along with typical dev tools.
Setup: Must run icecast2 BEFORE ices0 from what I've read. They can be set as services, but that's more than I need right now and I'll tackle it later. My configs are as follows (replace obvious things like hostname to match your system)...
/etc/local/etc/ices.conf.dist can be copied to any directory and edited to suit your needs. For me, there is an /etc/ices2 directory that I was using for OGG streaming and I just used that. From what I'm seeing, ices0 automatically searches the present working directory for ices.conf and if available uses it. (see man (1) ices)
I'm not sure where the unmodified original icecast2 xml config file is, so feel free to edit mine.
My working icecast.xml (with commented sections removed for clarity):
Remember that I've stripped [most] comments [and added a very few of my own]. These are posted as quick-start configs. Google for more info, but these worked for me. Very simple, one stream, all the files in the playlist (which, btw, has no format other than one complete filename per line... no "file1=" bits nor any other code. Just filenames, 1 per line.).
Now, start icecast2. For me (note my present working directories!):
And then start ices:
Open stream in a separate device. URL to use with MY configs is:
Of course, my setup uses a REAL servername, a different port number, and different passwords, but these technically should work as is.
Now I just have to figure out why there's a brief pause/skip/silence every few seconds...
Most of my MP3s are 192 kbps and above. In anything less, there's this high-pitched warbly garbly echo-y noise in it (very upper part of the audible spectrum). I don't hear it in 192+. But, when listening to the music across a shoutcast stream, I don't notice the noise as much (it's there if I listen for it) because I'm accustomed to hearing it on something like a cellphone or internet stream (I use my Google/HTC/T-Mobile G1 for this connected via WiFi so I have my tunes anywhere in the house)(of course I could just put my entire MP3 collection on the G1, but this is cooler on the geek points). Now, sending 192+ kilobits per second across a slow cellphone EDGE network connection (no T-Mo 3G for Jacksonville, FL in the foreseeable future) really, REALLY makes it choppy, laggy, and completely unlistenable.
To resolve this, you need to be able to re-encode the mp3s from their original bitrate to something more network friendly, like 128 kbit (at MOST for a high-speed connection) or 96 kbit. Sometimes even lower is necessary. Ices0 out of the tarball does not support MP3 reencode, but a little googling has shown me how to get it done.
In addition to ices0, you'll need the devel versions of these encoders. For Debian, you need package liblame-dev for mp3 reencode. I also installed libvorbis-dev, libfaac-dev, libflac-dev, libflac++-dev, and libfaad-dev, along with their non-dev versions, for support of MP4, Vorbis, FLAC etc., but I'm not sure what all I can do with them now (I put them there for experimentation later).
Then, go back to the source, and when you run ./configure, add --with-lame to the mix. In fact, at the end of the configure, it prints to screen what it has:
I hope this helps somebody.
|All times are GMT -5. The time now is 04:53 AM.|