video conferencing

Many of us have moved to remote working, due to corona virus. I’ve been working remotely for the last 5 weeks.

The following are some of the improvements that I have adopted:

External webcam

Webcam always on

Having video on is much more engaging for participants, and helps to mitigate some of those visual communication cues that you might miss out on when working remotely.

The gitlab company handbook does a better job of describing these points. Link to the handbook: gitlab.com

Webcam positioning

.. or “no one wants to see you chin”.

I originally put the camera below my screen, above my keyboard. This gave viewers a really great view of my chin. I put the camera here because it felt it revealed less of the room that I work in.

I’ve now moved the camera to on top of my screen. It gives a much better view of my face, and my room. (.. and not my chin).

We all have rooms, and many of us have been thrown into remote working. I think it’s important to share where I work with my colleagues, and I welcome them (virtually) into my flat.

Webcam control

I use a Logitech c920 camera, it’s excellent and not enormously expensive. It also works out of the box with pop-os from system76 (debian). I wanted a way to zoom in/out and toggle some other settings on the camera.

Thankfully there’s an apt package:

1
v4l-utils

Video4Linux2 (v4l2) handles the linux kernel to userspace API for webcams and exposes some controls. v4l2-ctrl can access those controls (and is installed with the v4l-utils package).

1
2
3
4
5
6
7
8
➜  v4l2-ctl --list-devices
BisonCam,NB Pro: BisonCam,NB Pr (usb-0000:00:14.0-4):
	/dev/video0
	/dev/video1

HD Pro Webcam C920 (usb-0000:39:00.0-1.3):
	/dev/video2
	/dev/video3
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
➜  v4l2-ctl -d /dev/video2 --list-ctrls
                     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=13
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=1
      white_balance_temperature 0x0098091a (int)    : min=2000 max=6500 step=1 default=4000 value=4690 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=0 value=0
                  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=200 flags=inactive
         exposure_auto_priority 0x009a0903 (bool)   : default=0 value=1
                   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=250 step=5 default=0 value=0 flags=inactive
                     focus_auto 0x009a090c (bool)   : default=1 value=1
                  zoom_absolute 0x009a090d (int)    : min=100 max=500 step=1 default=100 value=100

Now I can change the camera zoom:

1
➜  v4l2-ctl -d /dev/video2 --set-ctrl=zoom_absolute=125

Arch wiki has a detailed description of the v4l2 controls: link to the wiki. Including how to persist configuration changes when the camera is unplugged.

Google meet

Zoom is getting slaughtered on the PR front at the moment, with numerous security researchers finding issues with Zoom’s video conferencing tech.

My team heavily uses google meet, but I miss the grid view that exists in zoom.

Grid view chrome extension

The chrome extension “Google Meet Grid View” provides the missing grid view functionality. It also includes nice features such as:

  • hide members without video
  • highlight speaker

Link to the extension: Google Meet Grid View