You are not logged in.

#1 2020-06-03 12:11:20

altermetax
Member
Registered: 2016-03-19
Posts: 94

External Webcam Squished On Some Programs

Hello. I've got an external "DBPOWER" USB webcam, which works on Windows (although sometimes it can't find it without disconnecting and reconnecting it).
The same happens on Linux, but that's not a huge drawback.

The main problem on Linux is, when I connect the webcam, two devices get created (/dev/video2 and /dev/video4; I have /dev/video* from 0 to 5, where 0 is the laptop internal webcam, while 1, 3 and 5 can't be read via guvcview).
/dev/video2 is really bad - it appears horizontally squished from 16:9 to 4:3 and with a low resolution and framerate. /dev/video4 works well, but the problem is that many programs, like Zoom, Discord or Microsoft Teams, only see /dev/video2.

Is there a way to solve this?

EDIT: I just found that, by manually removing the /dev/video2 file, Zoom and Microsoft Teams now see the webcam correctly, while Discord now sees nothing. However this feels like a VERY hacky way to do this, lol.

Last edited by altermetax (2020-06-03 12:40:10)

Offline

#2 2020-06-04 15:01:32

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 15,091

Re: External Webcam Squished On Some Programs

It may be possible to use custom udev rules. I'm bad at that, but can help you gather info to find out what's possible.

Please post a dmesg and/or journalctl -b after unplugging / plugging in the webcam .

Also the output of

$ v4l2-ctl --list-devices  # comes with v4l-utils
$ v4l2-ctl -d /dev/video2 --list-ctrls
$ v4l2-ctl -d /dev/video4 --list-ctrls

Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#3 2020-06-04 22:03:23

altermetax
Member
Registered: 2016-03-19
Posts: 94

Re: External Webcam Squished On Some Programs

dmesg after connecting:

[21000.090570] usb 1-1.4: new high-speed USB device number 11 using xhci_hcd
[21000.186297] usb 1-1.4: New USB device found, idVendor=2aad, idProduct=6353, bcdDevice= 1.00
[21000.186303] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[21000.186307] usb 1-1.4: Product: iCatchtek SPCA6350
[21000.186310] usb 1-1.4: Manufacturer: iCatchtek Co Ltd 
[21000.186313] usb 1-1.4: SerialNumber: 01.00.00
[21000.190188] uvcvideo: Found UVC 1.00 device iCatchtek SPCA6350 (2aad:6353)
[21000.192278] uvcvideo 1-1.4:1.0: Entity type for entity Extension 3 was not initialized!
[21000.192284] uvcvideo 1-1.4:1.0: Entity type for entity Processing 2 was not initialized!
[21000.192287] uvcvideo 1-1.4:1.0: Entity type for entity Camera 1 was not initialized!
[21000.192474] input: iCatchtek SPCA6350 as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input35

dmesg after disconnecting:

[38131.399439] usb 1-1.4: USB disconnect, device number 15

journalctl -b after connecting:

giu 05 00:01:25 alterarch kernel: usb 1-1.4: new high-speed USB device number 17 using xhci_hcd
giu 05 00:01:25 alterarch kernel: usb 1-1.4: New USB device found, idVendor=2aad, idProduct=6353, bcdDevice= 1.00
giu 05 00:01:25 alterarch kernel: usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
giu 05 00:01:25 alterarch kernel: usb 1-1.4: Product: iCatchtek SPCA6350
giu 05 00:01:25 alterarch kernel: usb 1-1.4: Manufacturer: iCatchtek Co Ltd 
giu 05 00:01:25 alterarch kernel: usb 1-1.4: SerialNumber: 01.00.00
giu 05 00:01:25 alterarch kernel: uvcvideo: Found UVC 1.00 device iCatchtek SPCA6350 (2aad:6353)
giu 05 00:01:25 alterarch kernel: uvcvideo 1-1.4:1.0: Entity type for entity Extension 3 was not initialized!
giu 05 00:01:25 alterarch kernel: uvcvideo 1-1.4:1.0: Entity type for entity Processing 2 was not initialized!
giu 05 00:01:25 alterarch kernel: uvcvideo 1-1.4:1.0: Entity type for entity Camera 1 was not initialized!
giu 05 00:01:25 alterarch kernel: input: iCatchtek SPCA6350 as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input46
giu 05 00:01:25 alterarch mtp-probe[61442]: checking bus 1, device 17: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4"
giu 05 00:01:25 alterarch mtp-probe[61442]: bus: 1, device: 17 was not an MTP device
giu 05 00:01:25 alterarch systemd-udevd[51794]: controlC3: Process '/usr/bin/alsactl restore 3' failed with exit code 99.
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) config/udev: Adding input device iCatchtek SPCA6350 (/dev/input/event31)
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (**) iCatchtek SPCA6350: Applying InputClass "evdev keyboard catchall"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (**) iCatchtek SPCA6350: Applying InputClass "libinput keyboard catchall"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (**) iCatchtek SPCA6350: Applying InputClass "system-keyboard"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) Using input driver 'libinput' for 'iCatchtek SPCA6350'
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[579]: (II) config/udev: Adding input device iCatchtek SPCA6350 (/dev/input/event31)
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[579]: (**) iCatchtek SPCA6350: Applying InputClass "evdev keyboard catchall"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[579]: (**) iCatchtek SPCA6350: Applying InputClass "libinput keyboard catchall"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[579]: (**) iCatchtek SPCA6350: Applying InputClass "system-keyboard"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[579]: (II) Using input driver 'libinput' for 'iCatchtek SPCA6350'
giu 05 00:01:25 alterarch mtp-probe[61464]: checking bus 1, device 17: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4"
giu 05 00:01:25 alterarch mtp-probe[61464]: bus: 1, device: 17 was not an MTP device
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) systemd-logind: got fd for /dev/input/event31 13:95 fd 91 paused 0
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (**) iCatchtek SPCA6350: always reports core events
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (**) Option "Device" "/dev/input/event31"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (**) Option "_source" "server/udev"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[579]: (II) systemd-logind: got fd for /dev/input/event31 13:95 fd 26 paused 1
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[579]: (II) systemd-logind: releasing fd for 13:95
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) event31 - iCatchtek SPCA6350: is tagged by udev as: Keyboard
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) event31 - iCatchtek SPCA6350: device is a keyboard
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) event31 - iCatchtek SPCA6350: device removed
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input46/event31"
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) XINPUT: Adding extended input device "iCatchtek SPCA6350" (type: KEYBOARD, id 23)
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (**) Option "xkb_layout" "it"
giu 05 00:01:25 alterarch rtkit-daemon[782]: Supervising 12 threads of 3 processes of 2 users.
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) event31 - iCatchtek SPCA6350: is tagged by udev as: Keyboard
giu 05 00:01:25 alterarch /usr/lib/gdm-x-session[41412]: (II) event31 - iCatchtek SPCA6350: device is a keyboard
giu 05 00:01:25 alterarch rtkit-daemon[782]: Successfully made thread 61465 of process 41445 owned by '1000' RT at priority 5.
giu 05 00:01:25 alterarch rtkit-daemon[782]: Supervising 13 threads of 3 processes of 2 users.
giu 05 00:01:26 alterarch gnome-shell[41461]: shell-volume-mixer@derhofbauer.at | Card added 6 alsa_card.usb-iCatchtek_Co_Ltd_iCatchtek_SPCA6350_01.00.00-03
giu 05 00:01:26 alterarch discord-canary.desktop[41989]: [30930:329] [42038] (audio_send_stream.cc:285): Failed to set up send codec state.
giu 05 00:01:27 alterarch dbus-daemon[520]: [system] Activating via systemd: service name='org.freedesktop.Avahi' unit='dbus-org.freedesktop.Avahi.service' requested by ':1.1952' (uid=976 pid=61443 comm="/usr/lib/colord-sane ")
giu 05 00:01:27 alterarch dbus-daemon[520]: [system] Activation via systemd failed for unit 'dbus-org.freedesktop.Avahi.service': Unit dbus-org.freedesktop.Avahi.service not found.
giu 05 00:01:28 alterarch dbus-daemon[520]: [system] Activating via systemd: service name='org.freedesktop.Avahi' unit='dbus-org.freedesktop.Avahi.service' requested by ':1.1953' (uid=976 pid=61443 comm="/usr/lib/colord-sane ")
giu 05 00:01:28 alterarch dbus-daemon[520]: [system] Activation via systemd failed for unit 'dbus-org.freedesktop.Avahi.service': Unit dbus-org.freedesktop.Avahi.service not found.

journalctl -b after disconnecting:

giu 05 00:02:09 alterarch kernel: usb 1-1.4: USB disconnect, device number 18
giu 05 00:02:09 alterarch /usr/lib/gdm-x-session[41412]: (II) config/udev: removing device iCatchtek SPCA6350
giu 05 00:02:09 alterarch /usr/lib/gdm-x-session[41412]: (**) Option "fd" "91"
giu 05 00:02:09 alterarch /usr/lib/gdm-x-session[41412]: (II) event31 - iCatchtek SPCA6350: device removed
giu 05 00:02:09 alterarch /usr/lib/gdm-x-session[41412]: (II) UnloadModule: "libinput"
giu 05 00:02:09 alterarch /usr/lib/gdm-x-session[41412]: (II) systemd-logind: releasing fd for 13:95
giu 05 00:02:09 alterarch gnome-shell[41461]: shell-volume-mixer@derhofbauer.at | Card removed 7 alsa_card.usb-iCatchtek_Co_Ltd_iCatchtek_SPCA6350_01.00.00-03
giu 05 00:02:09 alterarch discord-canary.desktop[41989]: [30973:329] [42038] (audio_send_stream.cc:285): Failed to set up send codec state.
giu 05 00:02:10 alterarch dbus-daemon[520]: [system] Activating via systemd: service name='org.freedesktop.Avahi' unit='dbus-org.freedesktop.Avahi.service' requested by ':1.1959' (uid=976 pid=61517 comm="/usr/lib/colord-sane ")
giu 05 00:02:10 alterarch dbus-daemon[520]: [system] Activation via systemd failed for unit 'dbus-org.freedesktop.Avahi.service': Unit dbus-org.freedesktop.Avahi.service not found.
giu 05 00:02:12 alterarch dbus-daemon[520]: [system] Activating via systemd: service name='org.freedesktop.Avahi' unit='dbus-org.freedesktop.Avahi.service' requested by ':1.1960' (uid=976 pid=61517 comm="/usr/lib/colord-sane ")
giu 05 00:02:12 alterarch dbus-daemon[520]: [system] Activation via systemd failed for unit 'dbus-org.freedesktop.Avahi.service': Unit dbus-org.freedesktop.Avahi.service not found.
➜  ~ v4l2-ctl --list-devices
iCatchtek SPCA6350 (usb-0000:00:14.0-1.4):
	/dev/video2
	/dev/video3
	/dev/video4
	/dev/video5

HP Wide Vision HD: HP Wide Visi (usb-0000:00:14.0-4):
	/dev/video0
	/dev/video1

The two --list-ctrls commands output nothing.
Note the outputs were not always from the same connection/disconnection cycle, but they are always constant anyway.
HP Wide Vision is the laptop's internal webcam.

Last edited by altermetax (2020-06-04 22:16:20)

Offline

#4 2020-09-03 17:39:19

HackBug
Member
From: Seattle, WA
Registered: 2009-02-06
Posts: 35

Re: External Webcam Squished On Some Programs

Hi all, I'm having a similar issue as the poster here. I think I even have the same camera. Did OP ever find a solution to this?

In particular, Zoom and any other VC app seem to have the "squished" look, but when I view the camera through mpv with the command

$ mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video2

It seems to work fine. Any ideas?

EDIT: Forgot to mention that I'm on a desktop, so like OP I get 2 different video inputs that seem to have an output, but they are /dev/video0 and /dev/video2 instead of 2 and 4

2nd EDIT: Removing /dev/video0 didn't help as OP mentioned, but a quick hack of symlinking video2 to video0 tricked zoom into using the right input. That will work for now but I'd really like to have a persistent configuration if possible

Last edited by HackBug (2020-09-03 17:51:26)

Offline

Board footer

Powered by FluxBB