Problem setting up Webcam microphone

Hello everyone,

I bought a SAITOR 1080P Webcam from Amazon recently, and this is my first time using a Webcam on Linux.

I think the fact that I’m using Manjaro-i3 doesn’t help either, but the Webcam is supposed to also have a built-in microphone, but it doesn’t seem to work for me.

I tried researching a lot, but I couldn’t solve the issue.

From one of the links I found, I tried installing guvcview, and when I capture video in there, a bar appears on the top left, implying that there’s sound, but when I save the video and play with VLC and MPV, I don’t hear any sound.

I try to list a few outputs I saw people asked for in the other posts, please let me know if there’s any other information I can provide:

Output of arecord --list-devices

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC1150 Analog [ALC1150 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC1150 Alt Analog [ALC1150 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: gadget [USB Webcam gadget], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Output of pacmd list-source-outputs

0 source output(s) available.

I also saw a question about how to hear yourself with a mic, and when I do pactl load-module module-loopback latency_msec=1, I can hear myself, so I think that confirms that the Webcam has a microphone, and it’s somehow working, but when I try to use it in Zoom, the other party doesn’t hear me

Any help is appreciated, thank you


UPDATE: a couple of more outputs:
output of pacmd list-sources

6 source(s) available.
  * index: 0
	name: <alsa_input.usb-Linux_Foundation_USB_Webcam_gadget-02.multichannel-input>
	driver: <module-alsa-card.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: SUSPENDED
	suspend cause: IDLE
	priority: 9040
	volume: mono: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 0 KiB
	sample spec: s16le 1ch 16000Hz
	channel map: mono
	             Mono
	used by: 0
	linked by: 0
	configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
	card: 0 <alsa_card.usb-Linux_Foundation_USB_Webcam_gadget-02>
	module: 6
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "USB Audio"
		alsa.id = "USB Audio"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "2"
		alsa.card_name = "USB Webcam gadget"
		alsa.long_card_name = "Linux Foundation USB Webcam gadget at usb-0000:0d:00.0-2, high speed"
		alsa.driver_name = "snd_usb_audio"
		device.bus_path = "pci-0000:0d:00.0-usb-0:2:1.2"
		sysfs.path = "/devices/pci0000:00/0000:00:1c.4/0000:0d:00.0/usb5/5-2/5-2:1.2/sound/card2"
		udev.id = "usb-Linux_Foundation_USB_Webcam_gadget-02"
		device.bus = "usb"
		device.vendor.id = "1d6b"
		device.vendor.name = "Linux Foundation"
		device.product.id = "0102"
		device.product.name = "EEM Gadget"
		device.serial = "Linux_Foundation_USB_Webcam_gadget"
		device.form_factor = "webcam"
		device.string = "hw:2"
		device.buffering.buffer_size = "64000"
		device.buffering.fragment_size = "32000"
		device.access_mode = "mmap+timer"
		device.profile.name = "multichannel-input"
		device.profile.description = "Multichannel"
		device.description = "EEM Gadget Multichannel"
		module-udev-detect.discovered = "1"
		device.icon_name = "camera-web-usb"
	ports:
		multichannel-input: Multichannel Input (priority 0, latency offset 0 usec, available: unknown)
			properties:
				
	active port: <multichannel-input>
    index: 1
	name: <alsa_output.pci-0000_00_1f.3.iec958-stereo.monitor>
	driver: <module-alsa-card.c>
	flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: SUSPENDED
	suspend cause: IDLE
	priority: 1030
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 0 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
	monitor_of: 0
	card: 1 <alsa_card.pci-0000_00_1f.3>
	module: 7
	properties:
		device.description = "Monitor of Built-in Audio Digital Stereo (IEC958)"
		device.class = "monitor"
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xdfb40000 irq 168"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1f.3"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "a170"
		device.product.name = "100 Series/C230 Series Chipset Family HD Audio Controller"
		device.form_factor = "internal"
		device.string = "0"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
    index: 2
	name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1.monitor>
	driver: <module-alsa-card.c>
	flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: SUSPENDED
	suspend cause: IDLE
	priority: 1030
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 0 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	configured latency: 0.00 ms; range is 0.50 .. 1999.82 ms
	monitor_of: 1
	card: 2 <alsa_card.pci-0000_01_00.1>
	module: 24
	properties:
		device.description = "Monitor of GM200 High Definition Audio Digital Stereo (HDMI 2)"
		device.class = "monitor"
		alsa.card = "1"
		alsa.card_name = "HDA NVidia"
		alsa.long_card_name = "HDA NVidia at 0xdf080000 irq 17"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:01:00.1"
		sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1"
		device.bus = "pci"
		device.vendor.id = "10de"
		device.vendor.name = "NVIDIA Corporation"
		device.product.id = "0fb0"
		device.product.name = "GM200 High Definition Audio"
		device.string = "1"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
    index: 3
	name: <PulseEffects_apps.monitor>
	driver: <module-null-sink.c>
	flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: SUSPENDED
	suspend cause: IDLE
	priority: 1000
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 0 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 1
	configured latency: 0.00 ms; range is 0.50 .. 50.00 ms
	monitor_of: 2
	module: 25
	properties:
		device.description = "Monitor of PulseEffects(apps)"
		device.class = "monitor"
		device.icon_name = "audio-input-microphone"
    index: 4
	name: <PulseEffects_mic.monitor>
	driver: <module-null-sink.c>
	flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: SUSPENDED
	suspend cause: IDLE
	priority: 1000
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 0 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	configured latency: 0.00 ms; range is 0.50 .. 50.00 ms
	monitor_of: 3
	module: 26
	properties:
		device.description = "Monitor of PulseEffects(mic)"
		device.class = "monitor"
		device.icon_name = "audio-input-microphone"
    index: 5
	name: <bluez_sink.E8_07_BF_65_29_05.a2dp_sink.monitor>
	driver: <module-bluez5-device.c>
	flags: DECIBEL_VOLUME LATENCY 
	state: SUSPENDED
	suspend cause: IDLE
	priority: 1050
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max rewind: 0 KiB
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	fixed latency: 45.32 ms
	monitor_of: 4
	card: 3 <bluez_card.E8_07_BF_65_29_05>
	module: 27
	properties:
		device.description = "Monitor of SoundBuds Curve"
		device.class = "monitor"
		device.string = "E8:07:BF:65:29:05"
		device.api = "bluez"
		device.bus = "bluetooth"
		device.form_factor = "headset"
		bluez.path = "/org/bluez/hci0/dev_E8_07_BF_65_29_05"
		bluez.class = "0x240404"
		bluez.alias = "SoundBuds Curve"
		device.icon_name = "audio-headset-bluetooth"
		device.intended_roles = "phone"

And output of pacmd dump | grep -v module:

### Configuration dump generated at Fri Oct 30 09:12:32 2020


set-sink-volume alsa_output.pci-0000_00_1f.3.iec958-stereo 0x10000
set-sink-mute alsa_output.pci-0000_00_1f.3.iec958-stereo no
suspend-sink alsa_output.pci-0000_00_1f.3.iec958-stereo yes
set-sink-volume alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 0x10000
set-sink-mute alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 no
suspend-sink alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 yes
set-sink-volume PulseEffects_apps 0x10000
set-sink-mute PulseEffects_apps no
suspend-sink PulseEffects_apps yes
set-sink-volume PulseEffects_mic 0x10000
set-sink-mute PulseEffects_mic no
suspend-sink PulseEffects_mic yes
set-sink-volume bluez_sink.E8_07_BF_65_29_05.a2dp_sink 0xe651
set-sink-mute bluez_sink.E8_07_BF_65_29_05.a2dp_sink no
suspend-sink bluez_sink.E8_07_BF_65_29_05.a2dp_sink yes

set-source-volume alsa_input.usb-Linux_Foundation_USB_Webcam_gadget-02.multichannel-input 0x10000
set-source-mute alsa_input.usb-Linux_Foundation_USB_Webcam_gadget-02.multichannel-input no
suspend-source alsa_input.usb-Linux_Foundation_USB_Webcam_gadget-02.multichannel-input yes
set-source-volume alsa_output.pci-0000_00_1f.3.iec958-stereo.monitor 0x10000
set-source-mute alsa_output.pci-0000_00_1f.3.iec958-stereo.monitor no
suspend-source alsa_output.pci-0000_00_1f.3.iec958-stereo.monitor yes
set-source-volume alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1.monitor 0x10000
set-source-mute alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1.monitor no
suspend-source alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1.monitor yes
set-source-volume PulseEffects_apps.monitor 0x10000
set-source-mute PulseEffects_apps.monitor no
suspend-source PulseEffects_apps.monitor yes
set-source-volume PulseEffects_mic.monitor 0x10000
set-source-mute PulseEffects_mic.monitor no
suspend-source PulseEffects_mic.monitor yes
set-source-volume bluez_sink.E8_07_BF_65_29_05.a2dp_sink.monitor 0x10000
set-source-mute bluez_sink.E8_07_BF_65_29_05.a2dp_sink.monitor no
suspend-source bluez_sink.E8_07_BF_65_29_05.a2dp_sink.monitor yes

set-card-profile alsa_card.usb-Linux_Foundation_USB_Webcam_gadget-02 input:multichannel-input
set-card-profile alsa_card.pci-0000_00_1f.3 output:iec958-stereo
set-card-profile alsa_card.pci-0000_01_00.1 output:hdmi-stereo-extra1
set-card-profile bluez_card.E8_07_BF_65_29_05 a2dp_sink

set-default-sink bluez_sink.E8_07_BF_65_29_05.a2dp_sink
set-default-source alsa_input.usb-Linux_Foundation_USB_Webcam_gadget-02.multichannel-input

### EOF

Saitor doesn’t have a web presence, only sells through Amazon and eBay, so there are not even Windows drivers, let alone Linux ones.

That could be your internal microphone picking up sound.
try the following:

arecord test.wav

say something and hit Ctrl+C web done.

xdg-open test.wav

Can your hear yourself?

If not: return the camera for a full refund and buy one from a reputable company that has a web presence and provides Linux 5.x kernel support.

If yes, provide more info.

  1. An inxi --admin --verbosity=7 --filter --no-host --width would be the minimum required information… (Personally Identifiable Information like serial numbers and MAC addresses will be filtered out by the above command)
  2. pacmd list would be helpful as well.

P.S. No web presence, no drivers: Cheap! :tm: Crap! :tm: Inc! :tm: :poop:: don’t touch with a 10m pole!

:sob:

arecord is showing the webcam detected as a capture hardware device

card 2: gadget [USB Webcam gadget], device 0: USB Audio [USB Audio]`

pacmd list-source-outputs would only show audio streams for active software packages, not for the hardware sources
and Zoom may not recognise the virtual source for module-loopback to create a source-output stream

please post response to

pacmd list-sources

and

pacmd dump | grep -v module
1 Like

Thank you @nikgnomic, I updated my question with those outputs

you have 6 sources available
the 4 monitors for audio playback sinks are not relevant to this
the only other source for audio capture is the virtual pulseeffects source
the webcam is the only hardware capture sink
and is set as the default capture source

set-default-source alsa_input.usb-Linux_Foundation_USB_Webcam_gadget-02.multichannel-input

The one clear difference between the webcam source and the other sources is the samplerate and channel map

	sample spec: s16le 1ch 16000Hz
	channel map: mono
	             Mono

all the other sources are using the usual defaults for samplerate and channel map

	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo

‘gucview’ and/or PulseAudio could be failing to capture mono audio
or remixing it incorrectly - if one channel is inverted relative to the other channel they can cancel each other out
To confirm what is happening, you need to either extract the audio from the video recording, or make an audio test recording, and the audio waveform can be viewed in an audio editor (Audacity or similar)

You might also be able to get the microphone working by using the audio capture source “Monitor of PulseEffects(mic)”
I do not know much about how pulseeffects works with audio sources, but it may be able to remap and resample audio

But even if it can be made to work, if the microphone capture is only capable of 16000Hz it is not likely to sound very good

1 Like