Raspberry PI : streaming caméra

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