How to play/stream satelite radio in AAC?
Robert Szelepcsenyi
robert at tankred.sk
Thu Jun 2 09:09:33 PDT 2011
Hi,
I am building an internet radio portal. I need to stream audio streams from
various sources. One of the main sources is DVB. I have got several DVB-S
tuners in my computer. I am already streaming around 20 radio stations in
MPEG 1 Layer 2 (aka mp2) format.
However, some of the stations use a different format HE-AAC. I am unable to
decode the broadcast using gstreamer.
For a standard mp2 satellite radio station I use something like this:
gst-launch -v dvbsrc polarity="h" adapter=2 frequency=12565000
symbol-rate=27500 ! mpegtsdemux
es-pids=880:881:882:1920:883:887:888:889:886:2563:2564:2565:1928:2560:1927:1
925 name=demux demux.audio_0370 ! queue2 ! mad ! audioconvert ! lame !
shout2send ip=localhost port=8000 password=hackme mount=rs
However, when I tune into a HE-AAC coded radio and replace "mad" with
"faad", the stream does not work.
I tried to capture the stream into a file and play the file with VLC. It
worked.
I also tried to feed the file into faad with gstreamer. I did not suceed.
The faad plugin complained about the stream not being packetized.
Then I tried to output an mp4 file using mp4mux, but the command fialed with
very queer error:
gst-launch -v dvbsrc polarity="v" adapter=0 frequency=11919000
symbol-rate=28000 ! mpegtsdemux es-pids=464:640:652:680:768:776 name=demux
demux.audio_028c ! queue2 ! mp4mux ! filesink location=funradio.mp4
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstDvbSrc:dvbsrc0.GstPad:src: caps = video/mpegts,
mpegversion=(int)2, systemstream=(boolean)true
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: MpegTSClock
/GstPipeline:pipeline0/GstMpegTSDemux:demux.GstPad:sink: caps =
video/mpegts, mpegversion=(int)2, systemstream=(boolean)true
/GstPipeline:pipeline0/GstMpegTSDemux:demux: pat-info = ((GValueArray*)
0x7f84c0)
/GstPipeline:pipeline0/GstMpegTSDemux:demux: pmt-info = ((MpegTsPmtInfo*)
0x7f7270)
/GstPipeline:pipeline0/GstQueue2:queue20.GstPad:sink: caps = audio/mpeg,
mpegversion=(int)1
/GstPipeline:pipeline0/GstQueue2:queue20.GstPad:src: caps = audio/mpeg,
mpegversion=(int)1
ERROR: from element /GstPipeline:pipeline0/GstDvbSrc:dvbsrc0: Internal data
flow error.
I have also tried ffdec_aac. The behavior was exactly the same.
Robert Szelepcsényi
More information about the gstreamer-devel
mailing list