Streamer la caméra Raspberry sur Windows
La caméra Raspberry
J’utilise une caméra Raspberry Pi officielle dans sa version 2.1.
Lentille : focus fixe
Résolution : 8 mégapixels
Résolution photo : 3280 x 2464
Résolution vidéo : 1080p30, 720p60 et 640x480p90
Taille : 25mm x 23mm x 9mm
Poids : 3g
Connecteur : Nappe
Interface : CSI
Installation et activation
Par sécurité, la caméra doit être installée alors que le Raspberry Pi est éteint et hors tension.
La nappe doit être insérée dans le connecteur situé entre la prise jack et le port HDMI. Le côté bleu se situe du côté de la prise jack.
Démarrer maintenant le Raspberry Pi. La caméra n’est pas activée par défaut. Dans le menu sudo raspi-config
, choisir l’option 5 Interfacing Options
Choisir P1 Camera
Puis placer le curseur sur Yes
La caméra est maintenant activée ! Redemarrer le Raspberry Pi quand ce sera demandé.
Source :
Test de la caméra
Pour tester si la caméra est bien installer, il est possible de prendre une photo qui sera enregistrée dans le Raspberry Pi. Pour cela, on se sert de la commande raspistill
.
raspistill -o image.jpg
On peut également enregistrer une vidéo via la commande raspivid
.
raspivid -t 5000 -md 5 -o mavideo.h264
L’option -t
indique un temps de 5 000 ms.
L’option -md
permet d’indiquer le mode 5 (1296×730 / 16:9 / 1-49fps) qui est surtout non zoomé, contrairement à la commande sans cette option. Tous les modes disponibles ici.
Source :
https://www.raspberrypi.org/documentation/raspbian/applications/camera.md
Stream de la vidéo avec Gstreamer
L’intérêt de la caméra installée sur le robot est de récupérer la vidéo en temps réel sur un ordinateur sur Windows 10 (personne n’est parfait). Il existe pour cela des dizaines de logiciels possibles, mais ce qui m’intéresse est d’avoir la latence la plus faible. Une grande partie des internautes semblent valider le choix de gstreamer
dans ce but.
Installation sur Raspbian
Il suffit d’installer les paquets suivants :
sudo apt-get update sudo apt-get install gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav
Installation sur Windows 10
Récupérer le fichier d’installation .msi correspondant à l’architecture de l’ordinateur sur le serveur de téléchargement de gstreamer. Choisissez la version la plus récente, 1.14.2 à l’écriture de cet article. Mon ordinateur ayant une architecture 64 bits, c’est le fichier https://gstreamer.freedesktop.org/data/pkg/windows/1.14.2/gstreamer-1.0-x86_64-1.14.2.msi
À l’installation, choisissez d’installer tous les composants. On est des oufs.
Dans mon cas, le programme s’est installé dans le répertoire D:/gstreamer/
. Pour exécuter les commandes il faudra se placer dans REPERTOIRE_D_INSTALLATION/1.0/x86_64/bin
à l’aide de la commande cd
Début du stream
Sur le Raspberry, commencer par lancer la commande
raspivid -t 0 -w 1280 -h 720 -fps 25 -b 2000000 -o - | gst-launch-1.0 -e -vvv fdsrc ! h264parse ! rtph264pay pt=96 config-interval=5 ! udpsink host=IP_ORDINATEUR_WINDOWS port=5000
en remplaçant IP_ORDINATEUR_WINDOWS
par l’IP de la machine Windows. Elle peut se trouver avec ipconfig
Pour éviter de taper la commande à chaque fois, on peut la placer dans un alias.
Ensuite, sur Windows, se rendre dans le dossier des binaires et exécuter cette commande
d: cd gstreamer\1.0\x86_64\bin gst-launch-1.0 udpsrc port=5000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false
Pour éviter de taper la commande à chaque fois, on peut l’écrire dans un fichier .bat
Sources :
http://robogoby.blogspot.com/2014/01/raspi-camera-gstreamer-10-w-windows-7.html
https://bentek.fr/pirobot-p7-pirobot-gstreamer/