v4l2 et camset, réglages de la webcam

Table des matières   Liens internes à cette page

1) v4l2-ctl, drivers vidéo pour Linux
2) camset, réglage des paramètres de v4l2 en mode gui.
3) Quelques liens pour des informations sur des webcam et logiciels sous Linux

1) v4l2-ctl, drivers vidéo pour Linux   Top

v4l2-ctl permet de régler des paramètres en ligne de commande d'une webcam, telle que les caméras Logitech.
Installation :
sudo apt-get install v4l-utils
Réglage de la Webcam :
Comment voir et régler les paramètres de la Webcam c920 de logithèque ?
c.f. https://www.christitus.com/logitech-c920-linux-driver/
c.f. https://www.youtube.com/watch?v=bJOwFv_-auI
c.f. https://www.youtube.com/watch?v=iuic3po8kvQ
° Installation de l'utilitaire :
sudo apt-get install v4l-utils
° List des devices installés :
v4l2-ctl --list-devices
° List des paramètres de la Webcam
v4l2-ctl -d /dev/video0 --list-ctrls
° Voici un exemple :
bg@wy:~$ v4l2-ctl -d /dev/video0 --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=0
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=2
      white_balance_temperature 0x0098091a (int)    : min=2000 max=6500 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
              exposure_absolute 0x009a0902 (int)    : min=3 max=2047 step=1 default=250 value=250 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
                      led1_mode 0x0a046d05 (menu)   : min=0 max=3 default=0 value=3
                 led1_frequency 0x0a046d06 (int)    : min=0 max=255 step=1 default=0 value=0
bg@wy:~
° Modification de paramètres :
v4l2-ctl -d /dev/video0 --set-ctrl=exposure_auto=1
v4l2-ctl -d /dev/video0 --set-ctrl=focus_auto=0
exposure_absolute = 156 est recommendé par une personne.
° Voci les nouveaux paramètres :
bg@wy:~$ v4l2-ctl -d /dev/video0 --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=0
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=2
      white_balance_temperature 0x0098091a (int)    : min=2000 max=6500 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=1
              exposure_absolute 0x009a0902 (int)    : min=3 max=2047 step=1 default=250 value=250
         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
                     focus_auto 0x009a090c (bool)   : default=1 value=0
                  zoom_absolute 0x009a090d (int)    : min=100 max=500 step=1 default=100 value=100
                      led1_mode 0x0a046d05 (menu)   : min=0 max=3 default=0 value=3
                 led1_frequency 0x0a046d06 (int)    : min=0 max=255 step=1 default=0 value=0
bg@wy:~$ 
° À refaire à chaque démarrage ou le mettre dans un script.


2) camset, réglage des paramètres de v4l2 en mode gui.   Top

Page de référence sur camset

camset est un programme écrit en langage python3, permettant de régler des paramètres de v4l2-ctl de manière graphique.
En plus, une fenêtre avec l'image vue par la caméra apparaît.

Installation, décrite sur le site de référence :
Même si une partie ou tout a déjà été installé, la commande suivante ne pose pas de problème.
sudo apt-get install python3 python3-pip v4l-utils pkg-config
pip3 install camset
La commande pip3 installera le logiciel dans son répertoire : $HOME/.local/lib/python3....
Avec la commande sudo pip3 install camset, le programme sera installé dans le répertoire : /usr/lib/python3...

Chez-moi, le programme se trouve sous : $HOME/.local/lib/python3.8/site-packages/camset

Pour pouvoir l'exécuter depuis ce répertoire, j'ai modifié le fichier : camset.py comme suit :
des lignes "from camset.cam_window import CamWindow" à "from camset.layout import Layout"
j'ai effacé la partie "camset."
J'ai sauvegardé le toute sous "camsetBG.py"
Ainsi, je peux l'exécuter depuis IDLE par exemple.

J'ai ajouté les deux lignes suivantes en début de fichier :
#!/usr/bin/python3
# -*- coding: utf-8 -*-
Je l'ai également rendu exécutable en tapant : chmod u=rwx,g=rw,o=r camsetBG.py
u = user   g = groupe   o = other   r=read   w=write   x=execute
Une commande équivalente est : chmod 764 camsetBG.py

Par défaut, sous la barre de titre se trouve un réglage de taille que je trouve inutile et qui déplace l'image vers le bas, ce qui me dérange.
Pour ne plus avoir ce décalage, j'ai modifié le programme "cam_window.py" comme suit :
J'ai changé la ligne : "fixed.put(self.videobox, 0, 90)" en "fixed.put(self.videobox, 0, 0)".


3) Quelques liens pour des informations sur des webcam et logiciels sous Linux   Top

doc.ubuntu-fr.org/webcam
Liste de webcam compatibles Linux.
guvcview, pour voir l'image de sa Webcam dans une fenêtre, avec plusieurs paramètres en mode GUI.
mplayer, un lecteur de référence sous Linux. Un exemple :
mplayer -fps 30 -cache 128 -tv driver=v4l2:width=1280:height=720:device=/dev/video0 tv://
Voir aussi : Un début de doc et de tests des possibilités de ffmpeg.
mpv, un lecteur multimedia minimaliste. Exemple :
mpv --profile=low-latency --untimed /dev/video0
VLC, l'utiliser pour capturer une webcam. Exemples :
vlc v4l2:///dev/video0
vlc v4l2:// :input-slave=alsa:// :v4l-vdev="/dev/video0"
SMplayer, est une interface graphique (GUI) basé sur Mplayer

Using a Logitech StreamCam on Linux
Indique que la caméra Logitech StreamCam fonctionne bien sous Linux et donne quelques indications de réglage.


Just bought the StreamCam and was wondering why it couldnt run with 60 FPS in OBS. Probably some others have the same issue.
A simple solution is to create a new video device with V42L (v4l2loopback) and a ffmpeg stream from the Webcam.
first create a loopback video device
sudo modprobe v4l2loopback
lookup wich one got created
v4l2-ctl --list-devices
then create the ffmpeg stream
ffmpeg -f v4l2 -input_format mjpeg -framerate 60 -video_size 1920x1080 -i /dev/yourwebcam -pix_fmt yuyv422 -f v4l2 /dev/theloopbackvideodevice
now u should be able to grab that device with 60fps in obs
have fun

Plan du Site : Home   arrow   LinuxUbuntu   arrow   linux_logiciels   arrow   v4l2.html     ( Page Web = https://www.juggling.ch/gisin/linux/v4l2.html)


Page mise à jour le 21 février 2022 par Bernard Gisin
Hébergement par : www.infomaniak.ch