USB WEBCAM 05a3:9331 --- VIDEO OK, MIC DETECTED, NO SOUND

I have a new USB webcamera: the VIDEO is OK but there is NO SOUND although the MICROPHONE IS DETECTED. I tested it in Windows on the same machine and everything works just fine. In OpenSUSE, I can see the corresponding source in pavucontrol as *Microphone (Camera Mono) *but the soundbar never shows any activity. I have been recording videos in guvcview to test it, but no sound is ever recorded.
**

  1. dmesg:**

 +22,869946] usb 1-2: new high-speed USB device number 15 using xhci_hcd
  +0,149248] usb 1-2: New USB device found, idVendor=05a3, idProduct=9331, bcdDevice= 1.05
  +0,000009] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  +0,000005] usb 1-2: Product: HD Web Camera
  +0,000005] usb 1-2: Manufacturer: HD Web Camera
  +0,000004] usb 1-2: SerialNumber: Ucamera001
  +0,019046] uvcvideo: Found UVC 1.00 device HD Web Camera (05a3:9331)
  +0,062557] uvcvideo: Failed to query (GET_INFO) UVC control 12 on unit 2: -32 (exp. 1).
  +0,026299] uvcvideo: Failed to query (GET_INFO) UVC control 11 on unit 2: -32 (exp. 1).
  +0,027556] input: HD Web Camera: HD Web Camera as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/input/input33
  +0,032553] hid-generic 0003:05A3:9331.000C: hiddev96,hidraw0: USB HID v1.01 Device [HD Web Camera HD Web Camera] on u
sb-0000:00:14.0-2/input4
  +0,845977] xhci_hcd 0000:00:14.0**: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.**
  +0,046659] xhci_hcd 0000:00:14.0**: WARN Event TRB for slot 15 ep 2 with no TDs queued?
**

2. lsusb


Bus 001 Device 015: ID 05a3:9331 ARC International Camera

3. pacmd list-sources


* index: 5
        name: <alsa_input.usb-HD_Web_Camera_HD_Web_Camera_Ucamera001-02.mono-fallback>
        driver: <module-alsa-card.c>
        flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: SUSPENDED
        suspend cause: IDLE
        priority: 9040
        volume: mono: 64562 /  99% / -0,39 dB
                balance 0,00
        base volume: 64562 /  99% / -0,39 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: 3 <alsa_card.usb-HD_Web_Camera_HD_Web_Camera_Ucamera001-02>
        module: 25
        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 = "1"
                alsa.card_name = "HD Web Camera"
                alsa.long_card_name = "HD Web Camera HD Web Camera at usb-0000:00:14.0-2, high speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:14.0-usb-0:2:1.2"
                sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/sound/card1"
                udev.id = "usb-HD_Web_Camera_HD_Web_Camera_Ucamera001-02"
                device.bus = "usb"
                device.vendor.id = "05a3"
                device.vendor.name = "ARC International"
                device.product.id = "9331"
                device.product.name = "Camera"
                device.serial = "HD_Web_Camera_HD_Web_Camera_Ucamera001"
                device.form_factor = "webcam"
                device.string = "hw:1"
                device.buffering.buffer_size = "64000"
                device.buffering.fragment_size = "32000"
                device.access_mode = "mmap+timer"
                device.profile.name = "mono-fallback"
                device.profile.description = "Mono"
                device.description = "Camera Mono"
                module-udev-detect.discovered = "1"
                device.icon_name = "camera-web-usb"
        ports:
                analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown)
                        properties:
                                device.icon_name = "audio-input-microphone"
        active port: <analog-input-mic>

I believe that is because there is an issue with guvcview in recording audio on LEAP-15.3 and also on Tumbleweed. There is a bug report on this on Tumbleweed - I don’t know if it is also on LEAP-15.3 but it should be.

I suspect if you test recording from your USB mic using an app such as ‘arecord’ the recording of audio will work.

I don’t know the full extent of this issue, but my experience is that as of LEAP-15.3, a number of apps (but not all apps) that use a webcam mic do not work properly.

Thanks for the reply! I now test by running the following commands:


arecord -t wav /tmp/test.wav
aplay /tmp/test.wav

However, I still can’t hear anything from the webcam (if the default source is the internal microphone, then the test is ok).

By default, how can you tell that ‘arecord’ was trying to record from the webcam and not from the internal microphone? Maybe I am wrong, but I believe you need to direct the arecord to the USB device.

What does this command give if run in a bash shell/konsole (as a regular user) with webcam plugged in:

arecord -l 

(thats a ‘lower case’ “L” ).

For example I get on my PC:


oldcpu@corei7:~> arecord -l 
**** List of CAPTURE Hardware Devices **** 
card 1: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
card 1: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
card 1: PCH [HDA Intel PCH], device 2: ALC892 Alt Analog [ALC892 Alt Analog] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
**card 2**: U0x46d0x821 [USB Device 0x46d:0x821], **device 0:** USB Audio [USB Audio] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
oldcpu@corei7:~> 


where I see that my USB device is hw:2,0.

So in my case, I need to specify that I want to record in hw:2,0. By default opensuse goes to hw:0,x … which would be the wrong record device. So IMHO a better test (using my example) would be for me:


arecord -vv -f S16_LE -c 2 -D hw:0,0 new.wav

and then playback “new.wav”.

The "arecord -l " command will hopefully tell us which device your webcam mic may be.

Of course the entry in your dmsg of the following is troublesome, but we can’t be certain its the issue:


  +0,062557] uvcvideo: Failed to query (GET_INFO) UVC control 12 on unit 2: -32 (exp. 1).
  +0,026299] uvcvideo: Failed to query (GET_INFO) UVC control 11 on unit 2: -32 (exp. 1).

Maybe install audio-recorder and test the webcam mic. to record audio. eg: speaking in front of
the webcam microphone. You will see if it is active in pavucontrol.