hi.
i'm trying to use gstreamer to transcode an ogg-stream to an mp3-stream, both running on the same icecast host. seems simple : uridecodebin ! lame ! shout2send and done (with or without some ! queue elements in there somewhere). i can't seem to get it to work though. whether using neonhttpsrc, gnomevfssrc or uridecodebin, whenever a meta-data update is received, the element involved sees an eos-message and dies : > gst-launch -vvv neonhttpsrc location="http://localhost:8000/test.ogg" ! queue ! oggdemux ! vorbisdec ! audioconvert ! lame ! queue ! shout2send ip=127.0.0.10.1 port=8000 password=hackme mount=mp3 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0.GstPad:src: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0.GstPad:sink: caps = audio/x-vorbis /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /GstPipeline:pipeline0/GstLame:lame0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, channels=(int)2, rate=(int)44100 /GstPipeline:pipeline0/GstLame:lame0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, channels=(int)2, rate=(int)44100 /GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, channels=(int)2, rate=(int)44100 /GstPipeline:pipeline0/GstShout2send:shout2send0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, channels=(int)2, rate=(int)44100 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Got EOS from element "pipeline0". Execution ended after 34083719000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/GstShout2send:shout2send0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstLame:lame0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstLame:lame0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstOggDemux:oggdemux0.GstOggPad:serial_64880eeb: caps = NULL Setting pipeline to NULL ... FREEING pipeline ... or, with uridecodebin : gst-launch -vvv uridecodebin uri=http://localhost:8000/test.ogg ! audioconvert ! lame ! shout2send ip=127.0.0.1 port=8000 password=hackme mount=mp3 Setting pipeline to PAUSED ... /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0: source = (GstGnomeVFSSrc) source /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstGnomeVFSSrc:source: iradio-genre = "Various" /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstGnomeVFSSrc:source: iradio-name = "My Station name" /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstGnomeVFSSrc:source: iradio-url = "http://www.audiorealm.com" Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind: force-caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20: sink-caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstQueue2:queue20.GstPad:sink: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstQueue2:queue20.GstPad:src: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:sink: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink.GstProxyPad:proxypad0: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstOggDemux:oggdemux0.GstPad:sink: caps = application/ogg /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:sink0: caps = audio/x-vorbis /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-buffers = 5 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-time = 2000000000 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-bytes = 2097152 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:src0: caps = audio/x-vorbis /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstVorbisDec:vorbisdec1.GstPad:sink: caps = audio/x-vorbis /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0.GstGhostPad:src0: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0.GstGhostPad:src0.GstProxyPad:proxypad2: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:src0: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:src0.GstProxyPad:proxypad1: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /GstPipeline:pipeline0/GstLame:lame0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, channels=(int)2, rate=(int)44100 /GstPipeline:pipeline0/GstLame:lame0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstShout2send:shout2send0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, channels=(int)2, rate=(int)44100 Prerolled, waiting for buffering to finish... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue1.GstPad:sink0: caps = audio/x-vorbis /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstVorbisDec:vorbisdec3.GstPad:src: caps = audio/x-raw-float, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)32 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue1: max-size-buffers = 5 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue1: max-size-time = 2000000000 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue1: max-size-bytes = 2097152 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue1: max-size-buffers = 5 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue1: max-size-time = 2000000000 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue1: max-size-bytes = 2097152 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue1.GstPad:src0: caps = audio/x-vorbis /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstVorbisDec:vorbisdec3.GstPad:sink: caps = audio/x-vorbis Buffering, setting pipeline to PAUSED ... at which point it just sits there and waits. it all works flawlessly until the next track-change on the icecast side... some more info : openbsd 4.4 gstreamer-0.10.21 gst-plugins-base-0.10.21 gst-plugins-good-0.10.11 gst-plugins-bad-0.10.9 gst-plugins-ugly-0.10.10 icecast-2.3.1 any thoughts ? -- CUL8R, Peter. ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |