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