Customizability of (Logitech Brio 4K Ultra HD) Webcam on Ubuntu

Solution 1:

You can customize a lot of settings using guvcview.

enter image description here

Install with:

sudo apt install guvcview

To select which webcam to use, click in the Video tab, then select your device (Brio). In the confirm dialog, select to Restart.

Unfortunately it miss angle setting.

Solution 2:

According to https://help.ubuntu.com/community/Webcam, one should consult the supported devices list in http://www.ideasonboard.org/uvc/, the main vehicle for webcam customization in Ubuntu. The model I have mentioned in this question isn't (currently) there, but many other Logitech models are.

Here's one account of the compatibility of the Logitech Brio too (see the Q&A in the comments trail there). Looks like most of the above is adjustable from Ubuntu to judge by that, although I have not tried myself.

I believe however that fps and resolution are selected by the application using the camera (maybe on the video acquisition API / protocol used by each application) and likely not set as a global configuration for the device. If that's not the case please do post a correction comment!

In general, fiddling camera settings is enabled via the v4l2 CLI, which you can use to inquire and change the camera's settings even while it is in use. See for example here. Here's my output from v4l2-ctl -l for this camera:

brightness 0x00980900 (int)    : min=0 max=255 step=1 default=128 value=128
                               contrast 0x00980901 (int)    : min=0 max=255 step=1 default=128 value=128
                             saturation 0x00980902 (int)    : min=0 max=255 step=1 default=128 value=128
         white_balance_temperature_auto 0x0098090c (bool)   : default=1 value=1
                                   gain 0x00980913 (int)    : min=0 max=255 step=1 default=0 value=0
                   power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=1
              white_balance_temperature 0x0098091a (int)    : min=2000 max=7500 step=10 default=4000 value=5210 flags=inactive
                              sharpness 0x0098091b (int)    : min=0 max=255 step=1 default=128 value=128
                 backlight_compensation 0x0098091c (int)    : min=0 max=1 step=1 default=1 value=1
                          exposure_auto 0x009a0901 (menu)   : min=0 max=3 default=3 value=3
                      exposure_absolute 0x009a0902 (int)    : min=3 max=2047 step=1 default=250 value=312 flags=inactive
                 exposure_auto_priority 0x009a0903 (bool)   : default=0 value=0
                           pan_absolute 0x009a0908 (int)    : min=-36000 max=36000 step=3600 default=0 value=0
                          tilt_absolute 0x009a0909 (int)    : min=-36000 max=36000 step=3600 default=0 value=0
                         focus_absolute 0x009a090a (int)    : min=0 max=255 step=5 default=0 value=20 flags=inactive
                             focus_auto 0x009a090c (bool)   : default=1 value=1

                      zoom_absolute 0x009a090d (int)    : min=100 max=500 step=1 default=100 value=100

I can confirm that zoom, auto-focus (on/off) and focus can be set via this utility, but other properties may require using a lower-level utility from the v4l2 suite, or are not supported by this model.

Solution 3:

I have the exact same model and run ubuntu 20.04

  • guvcview kinda works, but lags and crashes
  • v4l-utils does everything you need, but you need to use it from the terminal. gtk-v4l on github provides a GUI if you need it.

Install

sudo apt install v4l-utils

Find you webcam

you might have multiple. Also, for some reason, it may list two devices per camera, pick first.

v4l2-ctl --list-devices

The output should be something like

HD User Facing: HD User Facing (usb-0000:05:00.3-1):
    /dev/video1
    /dev/video2

BRIO 4K Stream Edition (usb-0000:05:00.3-4):
    /dev/video3
    /dev/video4

Tweak

Get Controls

Let's see what we can control

v4l2-ctl -d /dev/videoX --list-ctrls  # X -- for your device number

The output should be something like

                     brightness 0x00980900 (int)    : min=0 max=255 step=1 default=128 value=128
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=128 value=128
...
                     focus_auto 0x009a090c (bool)   : default=1 value=1
                  zoom_absolute 0x009a090d (int)    : min=100 max=500 step=1 default=100 value=100

Example: change angle to look down

v4l2-ctl --device /dev/video3 --set-ctrl=tilt_absolute=36000

This works when tweaking zoom/skype, but in the ubuntu testing utility "cheese" some settings take no effect.