とある事情でWebaCamの明るさとか露出とかを調整したくなった。
がしかし、
- 手持ちのテレ会議用WebCamは露出調整ができない
- 手持ちの古いやつは調整できるが解像度が低い・・・
- ググっても設定できるできないが出てこない1
- Logitech/Logicool C920 無印とかちょっと古めの記事が多い
結局新たに Logicool C980 を買ったので、設定可能なパラメータを晒しておく。
環境
- ホストPC
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04 LTS"
- Webcam
- Logitech / Logicool StreamCam C980
準備
v4l2-ctl を使うので v4l-utils パッケージを導入しておく。
$ sudo apt install -y v4l-tools
$ dpkg -l | grep v4l-utils
ii v4l-utils 1.22.1-2build1 amd64 Collection of command line video4linux utilities
設定
デバイス一覧
$ v4l2-ctl --list-devices
Logitech StreamCam (usb-0000:00:0d.0-3.3):
/dev/video4
/dev/video5
/dev/media2
Integrated_Webcam_HD: Integrate (usb-0000:00:14.0-6):
(以下略)
今回は /dev/video4 が対象の WebCam
Integrated_Webcam_HD はノートPCの内蔵カメラ(非対象)
ドライバ情報
$ v4l2-ctl -d /dev/video4 --info
Driver Info:
Driver name : uvcvideo
Card type : Logitech StreamCam
Bus info : usb-0000:00:0d.0-3.3
Driver version : 5.15.35
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : Logitech StreamCam
Serial : ********
Bus info : usb-0000:00:0d.0-3.3
Media version : 5.15.35
Hardware revision: 0x00000317 (791)
Driver version : 5.15.35
Interface Info:
ID : 0x03000002
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : Logitech StreamCam
Function : V4L2 I/O
Flags : default
Pad 0x01000007 : 0: Sink
Link 0x0200001f: from remote pad 0x100000a of entity 'Processing 3' (Video Pixel Formatter): Data, Enabled, Immutable
パラメータ一覧
$ v4l2-ctl -d /dev/video4 -L
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=255
power_line_frequency 0x00980918 (menu) : min=0 max=2 default=2 value=2 (60 Hz)
0: Disabled
1: 50 Hz
2: 60 Hz
white_balance_temperature 0x0098091a (int) : min=2000 max=7500 step=1 default=4000 value=4000 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 (Aperture Priority Mode)
1: Manual Mode
3: Aperture Priority Mode
exposure_absolute 0x009a0902 (int) : min=3 max=2047 step=1 default=250 value=250 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=1 default=0 value=0 flags=inactive
focus_auto 0x009a090c (bool) : default=1 value=1
zoom_absolute 0x009a090d (int) : min=100 max=400 step=1 default=100 value=100
- brightness: 輝度、明るさ
- contrast: コントラスト
- saturation: 彩度、鮮やかさ
- white_balance_temperature_auto: 自動ホワイトバランス設定
- 0 で OFF
- gain: ゲイン
- power_line_frequency: 交流電源フリッカ対策
- 蛍光灯のちらつき対策
- white_balance_temperature: ホワイトバランス色温度
- sharpness: シャープネス、輪郭強調
- backlight_compensation: バックライト補正
- 0 で無効
- exposure_auto: 自動露出機能
- 1 でマニュアルモード(固定値)
- exposure_absolute: 露出値
- exposure_auto_priority: 自走露出優先
- pan_absolute: パン
- tilt_absolute: チルト
- focus_absolute: フォーカス値
- focus_auto: 自動フォーカス設定
- 0 で OFF
- zoom_absolute: ズーム値
設定例
暗い部屋の中でテカテカに光るLCDパネルを撮影すると表示物が光りすぎて白飛びする。
自動露出では対応しきれないみたいなので、露出を固定して抑えてやると綺麗に撮影される。
LCD付属のタッチパネルをちょこちょこ操作するとオートフォーカスが過敏に反応するのでこれもOFF。
## 自動露出停止
$ v4l2-ctl -d /dev/video4 -c exposure_auto=1
## 露出値変更
$ v4l2-ctl -d /dev/video4 -c exposure_absolute=100
## オートフォーカス停止
$ v4l2-ctl -d /dev/video4 -c focus_auto=0
-
私の手持ちのがしょぼいだけで、普通はできるから、なのかも知れない ↩