How to play/stream satelite radio in AAC?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

How to play/stream satelite radio in AAC?

Robert Szelepcsenyi
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

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to play/stream satelite radio in AAC?

Marco Ballesio
Hi,

2011/6/2 Robert Szelepcsenyi <[hidden email]>:
..snip..

> The faad plugin complained about the stream not being packetized.

adding an aacparse element before the faad might help you.

> Then I tried to output an mp4 file using mp4mux, but the command fialed with
> very queer error:

..snip..

> ERROR: from element /GstPipeline:pipeline0/GstDvbSrc:dvbsrc0: Internal data
> flow error.

same as above

> I have also tried ffdec_aac. The behavior was exactly the same.

as expected ;)

Regards
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to play/stream satelite radio in AAC?

René Stadler
In reply to this post by Robert Szelepcsenyi
2011/6/2 Robert Szelepcsenyi <[hidden email]>
[...]
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.
[...]
 
Hi,

this looks like it could be a bug in the mpegtsdemux element. The element is part of gst-plugins-bad and it actually had problems like this before (with other formats). What happened is that its output buffers had some extra garbage bytes prepended, which can confuse downstream elements of course. Maybe VLC skips over that.

I suggest that you open a bug report and attach a short sample file that can be analyzed. Just replace mpegtsdemux ... ! ... with filesink location=dump.ts, run gst-launch with -e option and Ctrl-C after some seconds.

--
René

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel