Realtime Audio Conversion And Serving
Hobadee writes "First of all, Happy Christmas and Merry New Year! This year for Christmas, my dad and I decided to give my mom a Linksys WMLS11B. (Radio which can play MP3 streams) Since my mom listens to a lot of international news radio on the Internet, we figured this would be great so that she wouldn't have to sit at the computer all the time. The problem is that most of the stations she listens to are either RealMedia or Windows Audio streams, while the player only supports MP3 streams. (It claims to support WMA, but we haven't had any luck in our fiddling yet.) So here is the question: Would it be possible to get other types of files to play on the device? My idea is to have an intermediate server download, convert to MP3, and re-stream the files, but I'm not sure of the implementation. Would this be easily do-able with something like Icecast and Lame?"
I did something like this for my office, streaming Christmas music using Icecast, Lame, and Shout. Here's one possible installation:
1) Setup Icecast as usual. Take note of the encoding password.
2) Install the Shout Perl libraries.
3) Use the example2.pl that comes with Shout.
For the example2.pl, I think it comes with the basic Perl library installation). By default it takes it the MP3 files specified on the command line, uses LAME to convert them to a bitrate you specify, and sends them to a mountpoint on the LAME server. I modified mine so that it loops indefinitely, and of course I hardcoded my Icecast IP address, mount point, and encoder password. You'll probably need to tweak it a bit to convert OGG / WMA / RM streams as well, but it should be fairly straightforward.
Gan Family Homepage
SlimServer / Squeezebox does precisely what you're asking for.
You might be able to get it to work with the WMLS11B if that device is capable of playing an arbitrary mp3 stream by URL, as SlimServer can convert and rebroadcast streams in
various formats.
But if you have the Squeezebox it will work so much better, because it's designed to do all of this, and you can choose the stations (or your own music collection) from the display.
SlimServer is also open source, so it supports just about every file format and radio format in existence. There is a free emulator included, SoftSqueeze, that you can use to try it
out.
PS I work for Slim. Mod up if you want me to answer questions in this thread; mod down if you don't care for self-promotion.
It is definitely doable, but would require a time offset. Transcoding the streams would cause a loss of quality and could not be done entirely realtime.
Check out http://darkice.sourceforge.net/ You should be able to get it to do what you want.
Ogg is not worthwhile to implement. It's only "free" if Linksys engineers' time is worthless.
Sincerely,
Joe Sixpack
VP, Engineering
Linksys
Publishers of commercial streams want to exclude people from downloading their streams. Unlike Windows Media Player and RealPlayer, MPEG-1 and Ogg (the most common containers for MP3 and Vorbis respectively) do not define a digital restrictions management layer. Thus, commercial publishers tend to shy away from MP3 and Ogg Vorbis. In addition, it is claimed that the MP3 royalty is greater than the Windows Media Player or RealPlayer royalty, and Ogg Vorbis doesn't have enough of an install base to be worth technicians' time.
One of the default options in Winamp's Shoutcast plugin is to broadcast from the sound card mixer. Wether it's microphone, line in, or WAV, it encodes and broadcasts it. Install the server, install the plugin, start streaming, then play whatever station you want to hear through whatever player you need to use. Shoutcast/Winamp handles the rest.
IIRC (I don't have the computer I use for this handy), the magic piece of the puzzle is xine or mplayer and the 12 MBish windows codec pack. One or the other of these can read realaudio streams and transcode them to mp3 files. From there it's a matter of pushing the mp3 files out over shoutcast, or whatever the relevant stream format is, which will hopefully be fairly easy if the Linksys box plays shoutcast streams.
FFmpeg may do what you want. It will take a file and convert it in realtime to various other formats (and stream them).
Another options would be any media streamer like icecast.
If none of these let you specify a media stream as a source input, you can convert it by a line-out -> line-in hack.
If you have a random Windows box sitting around doing nothing, you can setup Winamp along with Shoutcast to achieve exactly what you want. Use WA to listen to your streams/play songs and just have Shoutcast rebroadcasting all the time as a high-quality MP3 stream. So simple any idiot can do it, even me.
Hard work pays off tomorrow, but procrastination pays off NOW!
http://sparks.blogmatrix.com/
All you need is a copy of Winamp and the Shoutcast server/DSP. Have Winamp tune into whatever source you want (In the case of proprietary stuff like Real Audio you'd have to have the realaudio player to play, and set Winamp to record off "wave"), then use that same copy of Winamp to just stream via shoutcast.
It is called ask slashdot for a reason moron. Maybe this dude did not even know what to search for to start with! I have not heard of DarIce or Slim Devices and I would not have known what either was based on the name. Take a chill. Have a merry fuckin Christmas.
I would have gone for a low tech solution by pluging the computer's audio line-out into a FM wireless mic/transmitter. It's not as fancy, without remote control and bells and whistles, but costs less and could be listened to by any FM radio in the house. (And neighbouring houses depending on your power and antenna.)
One line blog. I hear that they're called Twitters now.
VLC Stream output:
http://www.videolan.org/streaming/features.html
But one has to ask: Why didnt the original article poster (Hobadee) investigate what product would have suited his mother's needs better?
As they say a problem avoided is a problem solved, that is the geek way.
From a blog entry I wrote a few weeks ago:
_ sunshine/video/Summer_Sunshine_video_458.wmvi s will give you a file called "cores" in your home-directory)
... it allows you to record the output audio stream of ... and line out jacks on the sound card.
/usr/lib/RealPlayer8/Common/rmacore.so.6.0: Cannot open shared object file: No such file or directory
/usr/lib when it was in /usr/local/ so I copied the directories over to where it wanted to find them and everything worked ok.
.m3u file so I had to download the m3u file with wget and look at it and then use streamripper http://url.ogg for it to work. Cool - now I can listen to the BBC and CBC and ABC (Australian Broadcasting) and Netherlands Broadcasting when I want to and where I want to.
/dev/dsp -t raw -c 2 -
I wanted to record a couple of radio shows so that I can listen to them later on my linux machine. Basically I would like to listen to a mix of realplayer, Windows Media, Ogg and MP3 streams and save them as mp3 or ogg files so I can listen to them later on my computer or iriver ogg/mp3 player.
First I tried mplayer's dumpstream command
1) mplayer -dumpfile cores -dumpstream http://wm.warnermusic.com/France/the_corrs/summer
(th
2) mplayer -vo null -vc null -ao pcm -aofile audio.wav cores
(this will convert the videofile to a wav audiofile)
3) lame audio.wav cores.mp3
(this will convert the file from wav to mp3)
However this process core dumped on realplayer recorder over 10 minutes. Also it doesn't know about ram files so you have to download them first (wget filename) and then open them to file the real link to the rm file. So I went on to look for some other tools.
Most of the tools seem to be wrappers around vsound and/or sox and lame/oggenc. Another tool I looked at is streamripper, which works for mp3 or ogg streams.
First I grabbed realcap which is a shell script front end to those tools. Downloaded, compiled and installed vsound.
Trick one - you have to ensure that realplayer is using OSS drivers
http://www.osl.iu.edu/~tveldhui/radio/
After that seemed to work I tried directly with vsound. vsound acts as a kind of virtual audio loopback cable
vsound --timing -f myfile.wav realplay http://www.radio.org/ra/show.ram
oggenc myfile.wav
I also checked out the trplayer - which is a command line wrapper to realplayer. http://www.linux-speakup.org/trplayer.html
Got the error:
Failed to load rmacore.so.6.0:
Well I figured out that they must be looking for the real player in
Also I tried out streamripper
http://streamripper.sourceforge.net/, which seemed to work fine ripping various streams. It didn't seem to be able to read the
Finally I had a look at mp3record - a bash shell wrapper for lame and sox
Basically it does this:
(sox -r $strFreqRate -t ossdsp -w -s
| lame -s 44.1 -x -b $strBitRate -m s - $strFileName) &
Things to get working...
1) streaming directly to ogg with no intermediary wav step.
2) see if I can get this running from a cron job...
Linksys isn't giving their product away. That point won't work here. I didn't say free anywhere.
funny munging
Maybe, shoulda, woulda waited until the Jan 2005 Macworld where I hear there may be an announcement that Apple is making the iPod compatible with Sirius. Much better than listening to the crap pumped out by Clearchannel.
For that matter, mplayer with FIFOs and a little CGI may make an adequate ad-hoc solution, though I suspect real-time MP3 encoding is a lot trickier, and a package designed for that might be a good idea.
Sig:Why copyright isn't a fundamental human right
I've been working on BlogMatrix Sparks! for the last few months and it's definitely what this person is looking for:
Credit where credit is due: this is an integration project on top of MPlayer and Lame. Ongoing project news is in our blog.
- David Janes