Thanks to Caolas for putting me on a useful track with this. I am now successfully streaming from my SlimServer to a remote Icecast server configured as a stream relay.
Here's the basic config: I'm using VLC to play the mp3 stream from SlimServer and then use VLC's streaming capability to send a stream to the remote Icecast device. This provides a stream of a known data rate (with a caveat - see below) to the remote relay and thus solves the problem of weird timing data being misinterpreted by the remote device. VLC appears as a player in the SS web interface and I'm sending a 320kbps stream to it. To make the stream as easy as possible to handle at the other end I am streaming from VLC using HTTP. This requires setting the Preferences in VLC to enable this output module. Prefs->(check Advanced Options)->Stream Output->Access Output->Access Output Module "HTTP Stream Output". Then open File->Open Network Stream. Check the Advanced Options Stream/Save box at the bottom and enter the URL of your SlimServer stream - "http://yourhostip:9000/stream.mp3". I am running VLS on the server machine (Linux FC6) but VLC can actually be on any machine that can access the stream. I found that despite VLC running on the same machine as the server I could not use "localhost" and had to enter the IP address. Now click Settings in Advanced Options (next to Stream/Save). Check Play Locally if you want to be able to listen to VLC's output directly to check it's what it should be. Also check the HTTP box and choose a port number. I'm using 8080 (be sure that you have a hole in your firewall to let this port # through). If you leave the Address box blank, you can receive the VLC stream on any destination machine. This is not a good idea as about 5 listeners will occupy all your bandwidth. So put the address of the relay server in here as soon as you have it working. However you can use the same system to stream a single program to players all over your OWN network without it going outside using this capability, so if that's what you want to do, feel free. Under Encpasulation Method, check "Raw". I'm streaming primarily into Second Life: other encapsulation methods work with other players (VLC on another machine will take almost anything you give it) but for me the Icecast relay only worked with Raw checked. Under transcoding options, check Audio Codec and set the format to mp3. Again no doubt other streams will work but I wanted to start simple. My relay gives me up to 128kbps so I have the Bitrate set to 128 and 2 channels. OK the Stream Output dialog and OK the Open... box under it. Now, assuming that you are actually playing something from SlimServer to the VLC address, you should see the timer in the bottom left of the VLC window incrementing and the track name in the right-hand section. If you checked Play Locally earlier you can listen to the sound card of this machine and check that you can hear what VLC is streaming. You should have a stream coming from http://yourexternalip:8080 at this point, where "yourexternalip" is the IP address that your VLC machine appears to be on to the outside world - for example you may be using port forwarding to make port 8080 (for example) visible to the world at large: in this case "yourexternalip" will be the external address of your router and you can check that in a number of ways. On another machine you should be able to run up a player and put that URL into it and hear the outgoing stream from VLC. At the relay server end your provider or whomever needs to plug this stream data into the Icecast server settings, configured as a stream relay. Given the Icecast stream output address, you should be able to plug this into a player and listen to it on your machine. More importantly, in my case, you should be able to set the media access URL of your land in Second Life to this address and all visitors to your club or whatever will be able to hear the stream. At this point you can go back and start tying up some loose ends, like password-protecting various parts of the path and specifying the stream destination address in VLC. I am currently using this system for DJing in SL (first session at the London Trance Club in Mephit last night) and I was driving SS by building a playlist on the fly, prefading tracks to add to the playlist by running an additional software player. There are drawbacks with this approach, notably lack of crossfade capability. Caveats. You have to watch a couple of things. The big one is that you do not want the outgoing stream to change its bitrate. It unfortunately WILL change its bitrate if you play something that has a lower bitrate than the bitrate limit set for that player in SS. This is not usually a problem for me as almost all my server files are in FLAC. However I have a few files that were downloaded mp3s at lower rates. If you play one of these and they are lower than the limit, VLC will output them all right, but the Icecast server will be completely confused and the track will come out of remote players at some rather faster than normal speed. You can resync the stream but then everyone would have to press stop/play and this will of course not happen so they'll get dead air. What I really need, to be able to solve that, is to be able to generate a stream from SS that isn't LIMITED to a max bitrate but is SET to a bitrate irrespective of the source file being played. Anyone with an idea how to do this please let me know. One would have thought that LAME was entirely capable of doing such a "gearbox" operation, if only we can tell it to do so. Another point is that I notice that the Icecast output is about 3dB down on the stream leaving VLC. Anyone any observations about this? In addition I want to be able to insert some realtime audio DSP in the path (eg compression and level change). Ideas? -- relen ------------------------------------------------------------------------ relen's Profile: http://forums.slimdevices.com/member.php?userid=30 View this thread: http://forums.slimdevices.com/showthread.php?t=35758 _______________________________________________ discuss mailing list discuss@lists.slimdevices.com http://lists.slimdevices.com/lists/listinfo/discuss