Works in VLC (http://videolan.org), so there is free software code out there to play this format. Your question is really about Gstreamer, though: Rhythmbox uses Gstreamer as an audio engine. The fact that you can't play this file in Rhythmbox is due to two problems with Gstreamer (at least, the version of Gstreamer shipped with Ubuntu 9.10):
1) The .wax playlist file format is not supported. This is a plaintext or XML-ish file format that lists the playlist entries prominently. Since it's human readable, I copied out the URL and tried it with gst-launch-0.10, a very handy swiss army knife that lets you examine your gstreamer configuration in detail: $ gst-launch-0.10 playbin2 uri=http://82.135.234.199/Pukas (gst-launch-0.10:1986): GLib-WARNING **: g_set_prgname() called multiple times Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0: Could not determine type of stream. Additional debug info: gsttypefindelement.c(524): gst_type_find_element_handle_event (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0 ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... This hints at the second problem, which only appears explicitly upon further inspection: $ gst-launch-0.10 -vvv mmssrc location=mms://82.135.234.195/Pukas ! asfdemux ! filesink location=output.what (gst-launch-0.10:2359): GLib-WARNING **: g_set_prgname() called multiple times Setting pipeline to PAUSED ... /GstPipeline:pipeline0/GstMMS:mms0.GstPad:src: caps = video/x-ms-asf Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstASFDemux:asfdemux0.GstPad:sink: caps = video/x-ms-asf /GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = audio/x-wma, wmaversion=(int)3, bitrate=(int)128016, depth=(int)16, rate=(int)48000, channels=(int)2, block_align=(int)5462, codec_data=(buffer)1000030000000000000000000000e0000000 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ^CCaught interrupt -- handling interrupt. Interrupt: Stopping pipeline ... Execution ended after 19792690991 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstASFDemux:asfdemux0.GstPad:audio_00: caps = NULL /GstPipeline:pipeline0/GstASFDemux:asfdemux0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstMMS:mms0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ... As it seems, gstreamer can correctly demux the ASF container format using asfdemux. But within the container is a file format that the type finding mechanism can't handle (this is a snippet from the above): audio/x-wma, wmaversion=(int)3 WMA v3 is a new-ish proprietary Microsoft audio format (Windows Media Audio). On Ubuntu 9.10, with all Gstreamer plugins installed, neither gstreamer nor gst-ffmpeg was able to decode WMA v3. Therefore our conundrum. However, I remembered that I have access to the Fluendo codec pack, because I purchased it a while back. Fluendo's employees contribute very heavily to open source Gstreamer development, but due to legal reasons (software patents), they also sell closed-source, inexpensive Gstreamer codecs for proprietary, patent-encumbered media formats. WMA v3 is one of the formats they do support. I tried installing this codec pack and then playing the stream again: $ gst-launch-0.10 -vvv mmssrc location=mms://82.135.234.195/Pukas ! decodebin2 ! audioconvert ! wavenc ! filesink location=output.wav (gst-launch-0.10:2476): GLib-WARNING **: g_set_prgname() called multiple times Setting pipeline to PAUSED ... /GstPipeline:pipeline0/GstMMS:mms0.GstPad:src: caps = video/x-ms-asf Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = video/x-ms-asf /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:sink: caps = video/x-ms-asf /GstPipeline:pipeline0/GstDecodeBin2:decodebin20.GstGhostPad:sink: caps = video/x-ms-asf /GstPipeline:pipeline0/GstDecodeBin2:decodebin20.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-ms-asf /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstFluAsfDemux:fluasfdemux0.GstPad:sink: caps = video/x-ms-asf /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-buffers = 5 /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-bytes = 2097152 /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:sink0: caps = audio/x-wma, wmaversion=(int)3, rate=(int)48000, channels=(int)2, bitrate=(int)128016, depth=(int)16, width=(int)16, block_align=(int)5462, codec_data=(buffer)1000030000000000000000000000e0000000 /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:src0: caps = audio/x-wma, wmaversion=(int)3, rate=(int)48000, channels=(int)2, bitrate=(int)128016, depth=(int)16, width=(int)16, block_align=(int)5462, codec_data=(buffer)1000030000000000000000000000e0000000 /GstPipeline:pipeline0/GstDecodeBin2:decodebin20.GstDecodePad:src0: caps = audio/x-raw-int, channels=(int)2, width=(int)16, depth=(int)16, rate=(int)48000, signed=(boolean)true, endianness=(int)1234 /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstFluWMADec:fluwmadec0.GstPad:src: caps = audio/x-raw-int, channels=(int)2, width=(int)16, depth=(int)16, rate=(int)48000, signed=(boolean)true, endianness=(int)1234 /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstFluWMADec:fluwmadec0.GstPad:sink: caps = audio/x-wma, wmaversion=(int)3, rate=(int)48000, channels=(int)2, bitrate=(int)128016, depth=(int)16, width=(int)16, block_align=(int)5462, codec_data=(buffer)1000030000000000000000000000e0000000 /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = audio/x-raw-int, channels=(int)2, width=(int)16, depth=(int)16, rate=(int)48000, signed=(boolean)true, endianness=(int)1234 /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = audio/x-raw-int, channels=(int)2, width=(int)16, depth=(int)16, rate=(int)48000, signed=(boolean)true, endianness=(int)1234 /GstPipeline:pipeline0/GstDecodeBin2:decodebin20.GstDecodePad:src0.GstProxyPad:proxypad3: caps = audio/x-raw-int, channels=(int)2, width=(int)16, depth=(int)16, rate=(int)48000, signed=(boolean)true, endianness=(int)1234 /GstPipeline:pipeline0/GstWavEnc:wavenc0.GstPad:sink: caps = audio/x-raw-int, channels=(int)2, width=(int)16, depth=(int)16, rate=(int)48000, signed=(boolean)true, endianness=(int)1234 /GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = audio/x-wav Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ^CCaught interrupt -- handling interrupt. Interrupt: Stopping pipeline ... Execution ended after 29124176401 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstWavEnc:wavenc0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstWavEnc:wavenc0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20.GstDecodePad:src0: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstFluWMADec:fluwmadec0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstFluWMADec:fluwmadec0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:sink0: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:src0: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstFluAsfDemux:fluasfdemux0.GstFluAsfStream:stream_0_1: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstFluAsfDemux:fluasfdemux0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDecodeBin2:decodebin20.GstGhostPad:sink: caps = NULL /GstPipeline:pipeline0/GstMMS:mms0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ... When I played the output file from the above, output.wav, I got what appeared to be an Italian woman saying the lead-in for this radio station. Now, with Fluendo's codecs installed, the mms URI (but not the original .wax file) works fine in Rhythmbox. So, in short, you have two options available to get this working, in general, on the free desktop: 1. Use Rhythmbox as your player; buy/install the Fluendo codec pack (or at least the WMA plugin); and use the link mms://82.135.234.195/Pukas instead of the .wax file. OR 2. Use the free VideoLAN Client (VLC), which is also shipped by default on Ubuntu. This supports both WMA v3 and the .wax file format. In some sense, the deficiency of Gstreamer in playing this file is a bug, particularly in gst-plugins-ugly, because -ugly supports patent-encumbered formats. Gstreamer may someday be improved to support this without requiring Fluendo's codec pack, but if you live in a country where you are vulnerable to software patents, you may want to contact a legal counsel before using gst-plugins-ugly, on the remote chance that you might get into hot water over this. And of course, it probably wouldn't hurt to add .wax file support to Gstreamer, but these are so rare that I don't know if anyone having the ability to do so would be interested. -Sean On Fri, Feb 26, 2010 at 10:19 PM, Jeffrey Sanders <[email protected]> wrote: > I love Rythmbox and want to convert to use this as my radio player and > convert my windows machine to unbuntu/mint. However there is a radio > station that my family loves and can not switch unless i have a soltuion to > play .wax raido stations. Here is the adress: > > http://82.135.234.195/pukas.wax > > I am fairly new to rythmbox. > > Thanks for everything! > > _______________________________________________ > rhythmbox-devel mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/rhythmbox-devel > > _______________________________________________ rhythmbox-devel mailing list [email protected] http://mail.gnome.org/mailman/listinfo/rhythmbox-devel
