Raspberry PI : streaming caméra
Si vous voulez utiliser la caméra officielle de la fondation Raspberry pour faire du streaming vidéo depuis vos petites framboises, voici la méthode la plus simple et rapide que j'ai pu tester.
Je suis souvent tombé sur des explications utilisant mjpg-streamer (celui présent sur sourceforge).
Or il existe un fork sur github avec directement le plugin d'entrée "raspicam" : bien plus simple et rapide à mettre en place !
Voici en résumé les différentes étapes nécessaires :
- installation des dépendances
- clone du projet
- compilation des sources (rapide, même sur une Raspberry PI Zero)
Installation des dépendances
sudo apt install -y git cmake libjpeg8-dev
Clone du projet
git clone https://github.com/jacksonliam/mjpg-streamer.git
Compilation & installation
# Compilation & installation
cd mjpg-streamer/mjpg-streamer-experimental/
make
sudo make install
Test de l'installation
Nous pouvons à présent lancer la commande permettant de tester notre nouvelle installation.
Remarque : vous aurez prit soin de connecter une caméra officielle Raspberry à votre framboise et sans oublier d'activer la prise en charge de cette dernière via l'utilitaire raspi-config
/usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_raspicam.so" -o "/usr/local/lib/mjpg-streamer/output_http.so -w /usr/local/share/mjpg-streamer/www"
Rendez-vous à présent sur l'URL suivante :
http://<ip de votre raspberry>:8080/index.html
Ou pour avoir accès au streaming directement :
http://<ip de votre raspberry>:8080/?action=stream
Démarrage automatique du streaming via Systemd
Si jamais vous souhaitez que votre système de streaming vidéo démarre à chaque boot de votre framboise, il suffit d'éditer le fichier /etc/systemd/system/mjpg-streamer.service
sudo vim /etc/systemd/system/mjpg-streamer.service
Copier/coller le contenu ci-dessous.
La commande "start" ne fait qu'exécuter mjpg-streamer avec les même options que celles utilisées précédemment : nous ajoutons simplement l'option -b
pour démarrer en mode daemon (le programme s'exécute ainsi en tâche de fond)
[Unit]
Description=MJPG Streamer service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/mjpg_streamer -b -i "/usr/local/lib/mjpg-streamer/input_raspicam.so" -o "/usr/local/lib/mjpg-streamer/output_http.so -w /usr/local/share/mjpg-streamer/www"
ExecStop=/bin/kill -9 `pidof mjpg_streamer`
[Install]
WantedBy=multi-user.target
Il faut ensuite activer le service :
sudo systemctl enable mjpg-streamer.service
On peut ensuite le lancer pour test et contrôler sa bonne marche avec les commandes suivantes :
sudo systemctl start mjpg-streamer.service
sudo systemctl status mjpg-streamer.service
sources :
https://github.com/jacksonliam/mjpg-streamer
https://doc.ubuntu-fr.org/creer_un_service_avec_systemd