[gst-devel] udpsink to udpsrc choppy - stacato sine wave

Marco Ballesio gibrovacco at gmail.com
Sat Nov 20 10:22:13 CET 2010


Hi,

a few notes:

On Fri, Nov 19, 2010 at 5:08 PM, Wes Miller <wmiller at sdr.com> wrote:
>
> I have written simple pipes to encode an audiotestsrc sine wave into aac then
> mp4a payloadit and send it over the network to a matching udpsik, depay,
> decode and pulsesink.
>
> The sound comes out choppy, uniformly spaced, but chopped into beeps.
> Sounds a lot like Morse code but it's all E's.
>
> Here are the pipes: (they are on the same PC but I've also tried it between
> 2 computers)
>
> Source
>
>      gst-launch   audiotestsrc \
>           ! audio/x-raw-int, rate=44100, channels=2, endianness=1234,
> width=16, depth=16 \
>           ! ffenc_aac \
>           ! rtpmp4apay \
>           ! udpsink host=10.253.5.151 port=5002
>
> and Sink
>
>      gst-launch-0.10  -v -e udpsrc port=5002

I usually use gstrtpbin for this kind of pipelines. Btw I reas it did
not help in your case. Did you build the pipeline as reported in the
gstrtpbin examples?

>             caps=application/x-rtp,media=audio,clock-rate=90000,
> encoding-name=MP4A-LATM,cpresent=0, \
>
> config=NULL,payload=96,ssrc=3574762534,clock-base=2565233379,seqnum-base=29343

you don't need to explicitly set ssrc, clock-base and seqnum-base.
Very likely the same receiving pipeline does not work across two
separate sessions.

> \
>           ! gstrtpjitterbuffer \

dd you try to increase the latency value of the jitter buffer? You can
find a proper one by tcpdump-ing the traffic, measuring the maximim
jitter with e.g. wireshark and multiplying it by, let's say, a value
between 2 and 3.

>           ! rtpmp4adepay \
>           !
> audio/mpeg,channels=2,rate=44100,mpegversion=4,stream-format=raw,codec_data=\(buffer\)1210
>           ! ffdec_aac
>           ! pulsesink

As a trest, what if you set sync=false in pulsesink?

>
> NOTE:  Actually sounds better without the jitter buffer.

This is pretty strange, even though "better" is somewhat a subjective issue.

>
> I tried modifying the source pipe to do ... ffenc-aac ! ffdec_aac !
> pulsesink.    Sound great.  I'm pretty sure that means the network or
> network elements are my problem.

Probably yes, but it's unlikely in case you've a very good quality
network (e.g. ethernet over wire and very few clients active on it).
In any cases, you definitely need a jitter buffer.

Regards,
Marco

>
> So, anyone have suggestions for getting better sound quality across the net?
> I know it's possible; other programs do it every day.
>
> ps.  I have also coded the receiver in C, with and without gstrtpbin.  Does
> not help.
>
> Warmly,
>
> Wers
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/udpsink-to-udpsrc-choppy-stacato-sine-wave-tp3050472p3050472.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Beautiful is writing same markup. Internet Explorer 9 supports
> standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
> Spend less time writing and  rewriting code and more time creating great
> experiences on the web. Be a part of the beta today
> http://p.sf.net/sfu/msIE9-sfdev2dev
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel




More information about the gstreamer-devel mailing list