Getting lots of noise at the output of this Gstreamer pipeline

Jim Ruxton jim.ruxton at gmail.com
Mon Feb 10 19:19:58 UTC 2020


I also tried this pipeline with another USB audio card and get the same 
results using an audio input from my phone. It is as if there is some 
automatic gain control in the system. If I turn down the level into the 
input card the level on the output stays the same. If I turn off the 
input all together I just get noise. out. I tried setting levels in 
alsamixer and changing the capture level  has no effect . There is also 
an AGC input on the mixer and I muted that to be sure that isn't 
affecting something.  I also tried putting  ! volume volume =.1 ! after 
the autoaudiosrc (or alsasrc)  but no help. Any thoughts? I'm really 
puzzled by whats going on here but it may just be my lack of 
understanding of how gstreamer works.  In case it is relevant I am on 
Ubuntu 19.1 if that is useful.

Thanks,

Jim

On 2020-02-10 4:00 a.m., Jim Ruxton wrote:
> I wonder if someone could point me to what I may be doing wrong. The 
> pipeline itself works except I am getting a lot of noise. The pipeline 
> takes my mic input and after converting it to unsigned 16 bit audio 
> resamples it to 8K. I am getting the correct number of samples sent. I 
> can hear my voice over a pile of noise. If I turn the input level of 
> my mic all the way down I still get the same noise. I can send other 
> udp streams to the udpsink address with other programs and it works 
> without the noise. Could it be because my audio card doesn't natively 
> support 8K sampling? I thought the pipeline would show the native 
> sampling rate of 44.1K for the audiosrc and then later in the pipeline 
> the audio would show up at 8K but this line implies that it starts out 
> with 8K. Sorry I am new to Gstreamer.
>
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0.GstGhostPad:src.GstProxyPad:proxypad0: 
> caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, 
> rate=(int)8000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
>
> Below is the the pipeline and full  output. Thanks for any help. to 
> sort this out.
>
> Jim
>
> gst-launch-1.0 -v autoaudiosrc ! audioconvert ! audioresample ! 
> audio/x-raw, rate=8000 ,format=U16LE ! rndbuffersize max=1024 min=1024 
> ! udpsink host=192.168.1.255 port=3333
>
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstPulseSrcClock
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0/GstPulseSrc:autoaudiosrc0-actual-src-puls: 
> source-output-index = 31
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0/GstPulseSrc:autoaudiosrc0-actual-src-puls: 
> actual-buffer-time = 200000
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0/GstPulseSrc:autoaudiosrc0-actual-src-puls: 
> actual-latency-time = 10000
> Redistribute latency...
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0/GstPulseSrc:autoaudiosrc0-actual-src-puls.GstPad:src: 
> caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, 
> rate=(int)8000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0.GstGhostPad:src: 
> caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, 
> rate=(int)8000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps 
> = audio/x-raw, rate=(int)8000, format=(string)U16LE, channels=(int)2, 
> layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstAudioResample:audioresample0.GstPad:src: 
> caps = audio/x-raw, rate=(int)8000, format=(string)U16LE, 
> channels=(int)2, layout=(string)interleaved, 
> channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = 
> audio/x-raw, rate=(int)8000, format=(string)U16LE, channels=(int)2, 
> layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstRndBufferSize:rndbuffersize0.GstPad:src: 
> caps = audio/x-raw, rate=(int)8000, format=(string)U16LE, 
> channels=(int)2, layout=(string)interleaved, 
> channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = 
> audio/x-raw, rate=(int)8000, format=(string)U16LE, channels=(int)2, 
> layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstRndBufferSize:rndbuffersize0.GstPad:sink: 
> caps = audio/x-raw, rate=(int)8000, format=(string)U16LE, 
> channels=(int)2, layout=(string)interleaved, 
> channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = 
> audio/x-raw, rate=(int)8000, format=(string)U16LE, channels=(int)2, 
> layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstAudioResample:audioresample0.GstPad:sink: 
> caps = audio/x-raw, rate=(int)8000, format=(string)U16LE, 
> channels=(int)2, layout=(string)interleaved, 
> channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps 
> = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, 
> rate=(int)8000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0.GstGhostPad:src.GstProxyPad:proxypad0: 
> caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, 
> rate=(int)8000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0/GstPulseSrc:autoaudiosrc0-actual-src-puls: 
> volume = 1
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0/GstPulseSrc:autoaudiosrc0-actual-src-puls: 
> mute = false
> /GstPipeline:pipeline0/GstAutoAudioSrc:autoaudiosrc0/GstPulseSrc:autoaudiosrc0-actual-src-puls: 
> current-device = alsa_input.pci-0000_00_1f.3.analog-stereo
>
>


More information about the gstreamer-devel mailing list