G.711 decrease to 8kHz

Sérgio Agostinho sergio.r.agostinho at gmail.com
Thu Dec 18 06:57:37 PST 2014


Your sending pipeline is sending 8khz data for sure. On the receiving
pipeline your not setting the same capabilities from your sending pipeline

Sending (change your udpsink host accordingly) :
gst-launch -v alsasrc ! audioconvert ! audioresample !
audio/x-raw-int,channels=1,rate=8000 ! alawenc ! rtppcmapay ! udpsink
port=3001

Receiver:
gst-launch-1.0 -v udpsrc port=3001 caps='application/x-rtp,
media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMA,
payload=(int)8, ssrc=(uint)2590973091, clock-base=(uint)1591551409,
seqnum-base=(uint)8238' ! rtppcmadepay ! alawdec ! audioconvert !
autoaudiosink

This is working fine for me. If possible always copy the rtppcmapay:src
capabilities to the udpsrc caps property.


2014-12-18 15:36 GMT+01:00 Footniko <Footniko at gmail.com>:
>
> I'm getting the same (almost):
> *gst-launch -v alsasrc ! audioconvert ! audioresample !
> audio/x-raw-int,channels=1,rate=8000 ! alawenc ! rtppcmapay ! udpsink
> host=192.168.1.16 port=3001*
> Setting pipeline to PAUSED ...
> /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: actual-buffer-time = 200000
> /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: actual-latency-time = 10000
> /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0.GstPad:src: caps =
> audio/x-raw-int, channels=(int)1, rate=(int)8000, width=(int)16,
> depth=(int)16, endianness=(int)1234, signed=(boolean)true
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstAudioSrcClock
> /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps =
> audio/x-raw-int, channels=(int)1, rate=(int)8000, width=(int)16,
> depth=(int)16, endianness=(int)1234, signed=(boolean)true
> /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps =
> audio/x-raw-int, channels=(int)1, rate=(int)8000, width=(int)16,
> depth=(int)16, endianness=(int)1234, signed=(boolean)true
> /GstPipeline:pipeline0/GstAudioResample:audioresample0.GstPad:src: caps =
> audio/x-raw-int, channels=(int)1, rate=(int)8000, width=(int)16,
> depth=(int)16, endianness=(int)1234, signed=(boolean)true
> /GstPipeline:pipeline0/GstAudioResample:audioresample0.GstPad:sink: caps =
> audio/x-raw-int, channels=(int)1, rate=(int)8000, width=(int)16,
> depth=(int)16, endianness=(int)1234, signed=(boolean)true
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
> audio/x-raw-int, channels=(int)1, rate=(int)8000, width=(int)16,
> depth=(int)16, endianness=(int)1234, signed=(boolean)true
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
> audio/x-raw-int, channels=(int)1, rate=(int)8000, width=(int)16,
> depth=(int)16, endianness=(int)1234, signed=(boolean)true
> /GstPipeline:pipeline0/GstALawEnc:alawenc0.GstPad:sink: caps =
> audio/x-raw-int, rate=(int)8000, channels=(int)1, endianness=(int)1234,
> width=(int)16, depth=(int)16, signed=(boolean)true
> /GstPipeline:pipeline0/GstALawEnc:alawenc0.GstPad:src: caps = audio/x-alaw,
> rate=(int)8000, channels=(int)1
> /GstPipeline:pipeline0/GstALawEnc:alawenc0.GstPad:sink: caps =
> audio/x-raw-int, channels=(int)1, rate=(int)8000, width=(int)16,
> depth=(int)16, endianness=(int)1234, signed=(boolean)true
> /GstPipeline:pipeline0/GstRtpPcmaPay:rtppcmapay0.GstPad:src: caps =
> application/x-rtp, media=(string)audio, clock-rate=(int)8000,
> encoding-name=(string)PCMA, payload=(int)8, ssrc=(uint)2590973091,
> clock-base=(uint)1591551409, seqnum-base=(uint)8238
> /GstPipeline:pipeline0/GstRtpPcmaPay:rtppcmapay0.GstPad:sink: caps =
> audio/x-alaw, rate=(int)8000, channels=(int)1
> /GstPipeline:pipeline0/GstRtpPcmaPay:rtppcmapay0: timestamp = 1591551409
> /GstPipeline:pipeline0/GstRtpPcmaPay:rtppcmapay0: seqnum = 8238
> /GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps =
> application/x-rtp, media=(string)audio, clock-rate=(int)8000,
> encoding-name=(string)PCMA, payload=(int)8, ssrc=(uint)2590973091,
> clock-base=(uint)1591551409, seqnum-base=(uint)8238
> WARNING: from element /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: Can't
> record audio fast enough
> Additional debug info:
> gstbaseaudiosrc.c(840): gst_base_audio_src_create ():
> /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0:
> Dropped 2080 samples. This is most likely because downstream can't keep up
> and is consuming samples too slowly.
>
> But i'm not understanding, why to reproduce this stream, i should use
> command:
> *gst-launch-1.0 udpsrc port=3001 ! application/x-rtp, media=audio,
> clock-rate=16000, encoding-name=PCMA, encoding-params=1, channels=1,
> payload=8 ! rtppcmadepay ! alawdec ! audioconvert ! autoaudiosink*
> with clock-rate 16000 but not 8000 (with 8000 it plays too slowly). It
> important for me, because i'm trying to stream it in web browser, that
> supports PCMA only with 8000 rate.
>
>
>
> --
> View this message in context:
> http://gstreamer-devel.966125.n4.nabble.com/G-711-decrease-to-8kHz-tp4669957p4669966.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20141218/dffb851f/attachment.html>


More information about the gstreamer-devel mailing list