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 |
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 |
Free forum by Nabble | Edit this page |