Getting lots of noise at the output of this Gstreamer pipeline

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

Getting lots of noise at the output of this Gstreamer pipeline

Jim Ruxton
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


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

Re: Getting lots of noise at the output of this Gstreamer pipeline

Jim Ruxton
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
>
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel