Depuis que j'ai reçu mon premier Raspberry Pi, j'ai testé de nombreuses manières d'utiliser une webcam, chose que je n'avais pas spécialement envie de faire avec un ordinateur de bureau. Puis est arrivée la RasPiCam, ce petit module que l'on raccorde à son RPi. Malheureusement, ce module vidéo n'était pas compatible avec le driver Video For Linux (v4l) et pénalisait les projets que l'on voudrait mettre en place comme avec une webcam classique. Il y a quelques temps, j'ai lu que des développeurs travaillaient sur la compatibilité du module vidéo avec v4l et, récement, je suis tombé sur un article posté sur le forum de la communauté Element 14 relayant une conversation sur le forum officiel de la Fondation Raspberry Pi.
Bonne nouvelle, un driver officiel à compiler (en version bêta test) vient d'être publié et parrainé par la Fondation Raspberry Pi ainsi que par les employés de Broadcom. Le module vidéo devient utilisable pour la plupart des logiciels conçus pour l'API v4l2. Çà c'est une bonne nouvelle! L'autre bonne nouvelle, c'est que je viens de la tester et je vais vous montrer comment mettre en place ce nouveau driver.
Je suis parti d'une Raspbian fraichement installée, OS et firmware mis à jour. Les différentes étapes de l'installation ont pris environ 45 minutes, soyez donc patient.
Installation du driver via git
S'ils ne sont pas déjà installés (pour une mise à jour du firmware, installer les paquets suivants :
sudo apt-get install ca-certificates git-core
Il va nous falloir d'autres paquets nécessaires (entre autre) à la compilation des sources :
sudo apt-get install autoconf gettext libtool libjpeg62-dev
Puis on va cloner la source git dans le répertoire /usr/bin/ :
cd /usr/bin/ sudo git clone git://git.linuxtv.org/v4l-utils.git cd v4l-utils sudo git add *
Passons maintenant à la compilation :
sudo autoreconf -vfi sudo ./configure sudo make sudo make install
Il ne reste plus qu'à charger le module :
sudo modprobe bcm2835-v4l2
Pour charger le module bcm2835-v4l2 directement au démarrage, il suffit d'éditer /etc/modules et d'ajouter "bcm2835-v4l2" à la suite :
sudo nano /etc/modules
Quelques commandes pour bien commencer
# charger le module (rappel)
sudo modprobe bcm2835-v4l2
# viewfinder
v4l2-ctl --overlay=1 # activer viewfinder
v4l2-ctl --overlay=0 # disactiver viewfinder
# enregistrement vidéo (la seconde commande fonctionne bien)
v4l2-ctl --set-fmt-video=width=1920,height=1088,pixelformat=4
v4l2-ctl --stream-mmap=3 --stream-count=100 --stream-to=somefile.264
# capture jpeg (la seconde commande fonctionne bien)
v4l2-ctl --set-fmt-video=width=2592,height=1944,pixelformat=3
v4l2-ctl --stream-mmap=3 --stream-count=1 --stream-to=somefile.jpg
# définir le bitrate
v4l2-ctl --set-ctrl video_bitrate=10000000
# liste des formats supportés
v4l2-ctl --list-formats
Pour faire un test plus global et éventuellement affiner les réglages, on peut utiliser guvcview (en mode graphique). En bidouillant un peu, j'ai réussi à régler quelques paramètres et obtenir une très belle image.
Les tests effectués avec fswebcam et mjpg-streamer ont été couronnés de succès et fonctionne parfaitement bien (se référer à ce lointain article). La version définitive ne devrait pas tarder, cette bêta est plutôt stable pour ce que j'ai fait, reste à voir à l'usage. Bref, que du bon 🙂
À vos consoles!
Sources : Communauté Element 14, Forum Raspberry Pi.
Bonjour,
Merci pour ce tuto.
Un précision :Avec la dernière version du driver il faut lancer ./bootstrap.sh avant autoreconf
Gilles