Il existe un certain nombre de blogues qui expliquent comment diffuser la sortie vidéo d'une caméra web connectée à un Raspberry Pi. Plusieurs sont malheureusement périmés. C'est le sort de toutes les instructions, les choses changent. Je ne peux donc pas dire combien de temps sera utile ce billet montrant comment j'ai ajouté MJPG-Streamer à mon serveur domotique.
Table of Contents
- Matériel
- Logiciel
- Sécurité
- Autres Clients : VLC, Kodi et Domoticz
- Un nouveau script
- Contrôle à distance
- Caméra lente
- Téléchargements
Matériel
Un Raspberry Pi Modèle B + v1.2 héberge mon système domotique basé sur Domoticz. C'est la quatrième itération de l'ordinateur monocarte de la Fondation Raspberry Pi qui date de juillet 2014. Il utilise un système Broadcom BCM2835 sur puce (SoC) ainsi que 512 Mo de RAM partagée entre le CPU (ARM1176jZF-S: 32 bits, à coeur unique, 700 MHZ, ARM v6) et le GPU (Broadcom BCM2837). Puisque le Raspberry Pi fonctionne comme un serveur sans tête, le minimum de 16 Mo de RAM est alloué au GPU. C'était le premier Raspberry Pi à avoir quatre ports USB 2.0 et à utiliser une carte microSD pour le stockage. Bien qu'il y ait un port Ethernet 100 Mbit/s sur la carte, la connexion au réseau local est réalisé avec c'est avec un dongle WiFi.
Le système d'exploitation est Raspbian
(Jessie) une version de Debian 8 modifiée pour
le Raspberry Pi. Il existe une version plus récente, mais il y avait des problèmes
associés aux bibliothèques J'ai donc dû utiliser la dernière version de
Jessie Lite qui est toujours disponible auprès de la Fondation
Raspberry Pi.
libssl1 et
libssl-dev à l'installation de Domoticz avec Stretch (Debian 9) que je ne pouvais
pas surmonter (voir SSL
protocol issue #2062).
Cependant, j'ai rencontré des problèmes avec la connexion sécurisée du flux vidéo, comme décrit ci-dessous. Pour une raison quelconque, je peux obtenir des instantanés sécurisés via le serveur proxy lighttpd sécurisé, mais pas le flux vidéo. Si jamais je résolvais ce mystère, je mettrais à jour ce billet.
La caméra
est une Webcam HD C270 de Logitech achetée il y a quelques années pour
utilisation avec un ordinateur portable. Elle est capable de diffuser des
vidéos à une résolution de 720p (1280x720 pixels, soit un format 16:
9). Le fabricant ne fournit pas de pilotes Linux pour la caméra, mais
elle fonctionne avec un Raspberry Pi à cause de V4L2 (Video4Linux
version 2).
Après avoir branché l'appareil sur un port USB, et en attendant un court moment, il apparaît comme un périphérique USB.
Puisque Video4Linux est fourni avec Raspbian, on peut s'en servir pour connaître les formats vidéos supportés par la caméra.
C'est très bien que le C270 supporte le format MJPG. Cela signifie que la caméra elle-même compresse chaque image JPG avant de la transmettre à l'ordinateur via la liaison USB. Toutes les webcams ne prennent pas en charge ce format. Dans ce cas, le Raspberry Pi aurait à effectuer une compression des images avant de les diffuser sur HTTP. Cette tâche consommerait trop de ressources d'un modeste Raspberry Pi Model B+. Plus à ce sujet plus loin.
Logiciel
La source évidente des instructions pour MJPG-Streamer est son créateur, mais ce dernier en a arrêté le développement sur SourceForge. Il semble que le successeur désigné est Liam Jackson (j'espère que je ne fais pas une erreur avec le nom) dont la nouvelle version est sur un site github.
M. Jackson a considérablement simplifié l'installation: il y a deux prérequis puis on continue avec le logiciel lui-même. Il n'est plus nécessaire de faire les modifications qu'on retrouve dans plusieurs articles sur le Web.
Cela termine l'installation de base. L'exécutable est placé dans le
répertoire /usr/local/bin/ qui est inclus dans la variable
d'environnement PATH, le sentier de recherche. Les plug-ins
d'entrée et de sortie se trouvent dans le répertoire
/usr/local/lib/mjpg-streamer, les pages du serveur Web
intégré se trouvent dans le répertoire
/usr/local/share/mjpg-streamer/www.
Je n'ai pas pris la peine de configurer la variable d'environnement
LD_LIBRARY_PATH comme prescrit dans la page README. Démarrer
MJPG-Streamer fonctionne avec un ou plusieurs plug-ins d'entrée et
un plug-in de sortie. Ceci est expliqué dans le paragraphe Usage. J'ai utilisé les pluings input_uvc
and the output_http.
Le programme est lancé avec la commande suivante. Le diffusion sera effectué à la résolution maximale de la caméra, mais à un rythme relativement lent de 10 images par seconde. Si l'option -n n'est pas spécifiée, il y aura plusieurs messages d'erreur, mais la diffusion en continue fonctionnera. Le port TCP 8085 a été spécifié pour la sortie afin de s'assurer qu'il n'y avait aucune interférence avec quoi que ce soit d'autre.
En utilisant top dans une autre session
ssh, j'ai pu voir que mjpg_streamer utilisait
moins de 1% du temps CPU et moins de 2% de la RAM disponible quand il
était inactif.
J'ai ensuite regardé le flux vidéo de mon ordinateur de bureau avec un
navigateur Web à l'adresse suivante:
http://domo.local:8085/stream_simple.html. Avec mes tablettes,
je dois utiliser l'adresse IP explicite du Raspberry Pi, car Android ne semble pas prendre en compte le protocole
Zeroconf. Comme on peut le voir ci-dessous,
mjgp_streamer utilisait un peu plus de 8% du temps de CPU et pas
plus de mémoire quand il était actif.
Ce sont de très bons résultats, ce qui signifie qu'il devrait certainement être possible d'exécuter la diffusion du flux vidéo en continu avec le Raspberry Pi B+ pourtant relativement peu performant.
Je devrais souligner que la première fois que j'ai regardé la vidéo avec
le navigateur, la vue était grandement déformée, mais l'appareil photo était
clairement connecté. Le logiciel mjgp_streamer peut être arrêté
avec la combinaison CtrlC.
J'ai relancer le logiciel (il a fallu quelques essais) et ensuite l'image
affichée sur le bureau était enfin correcte.
- Le logiciel de domotique Domoticz dispose d'un serveur intégré qui écoute aux ports TCP 8080 et 443 par défaut.
- Un serveur HTTP autonome lighttpd qui utilise le port TCP 80. Bien que cela ne soit pas fait par défaut, si HTTPS est activé, j'utiliserais probablement le port TCP par défaut 443.
- Le logiciel qu'on installe MJPG-Streamer a un serveur intégré qui écoute sur le port TCP 8080 par défaut.
Sécurité
La raison principale pour diffuser en direct la vidéo depuis la webcam connecté au serveur de domotique est de surveiller l'intérieur de la maison quand je suis à l'extérieur. Or il est important de penser à la sécurité lorsqu'on expose un réseau local au monde extérieur dangereux. Je me rappelle avoir lu quelque part que les caméras IP parmi les sources les plus fréquentes de violations de la sécurité sur l'Internet et c'est exactement ce qui se fait ici, en transformant une webcam en une caméra IP./p>
Au minimum, la protection par mot de passe du logiciel doit être
activée. Regardez les options -c ou
--credentials du plug-in de sortie HTTP.
Dorénavant, une fenêtre de vérification du nom d'utilisateur et du mot de passe apparaîtra à chaque connexion au serveur HTTP de MJPG_Streamer.

Autrement, le nom d'utilisateur et le mot de passe peuvent être
ajoutés au URL:
username:password@<ip_of_raspberry_pi>:<mjgp_streamer_http_port>.
Dans cet exemple particulier, il faudrait mettre
stream:michel@192.168.1.22:8085 (ou
stream:michel@domo.local)
Ceci n'est qu'un début et pas très sécuritaire de toute façon. Le
nom d'utilisateur et le mot de passe seront envoyés en texte clair. Il
serait préférable d'utiliser le cryptage TLS. Malheureusement, ce n'est
pas aussi simple qu'on le souhaiterait, car le serveur intégré de
MJGP-Streamer ne gère pas le protocole HTTPS. J'ai trouvé
deux solutions de contournement potentielles, mais j'en ai testé qu'un
seul.
La solution non testée est stunnel qui peut être utilisé pour ajouter des fonctionnalités TLS à des serveurs comme NNTP, SMTP et HTTP sans modifier leur code source. Voici quelques références sur le sujet.
- Secure webcam streaming with mjpg-streamer and stunnel de Cristiano Urban (Cris' hacks).
- Securing mjpg streamer de Siva Dirisala.
L'autre solution, celle que j'utilise, repose sur les plus grandes capacités du serveur HTTP lighttpd fonctionnant déjà sur le Raspberry Pi. Pour les quelques malheureux qui n'ont pas lu tous mes billets précédents, il sert à la mise à jour sans fil du micrologiciel des commutateurs basés sur l'ESP8266 utilisés dans ma maison. L'idée est simple, accédez à lighttpd avec une connexion HTTPS sécurisée sur un port spécifié et laissez ce serveur transmettre la demande non sécurisée au serveur de MJPG-Streamer. J'avais souvent vu le termes « proxy » et « proxy inverse » mais je n'étais jamais entré dans le vif du sujet. J'ai réaliser cette façon de faire et c'est étonnamment facile. Cependant, qu'on ne me pose aucune question, ceci est le résultat de nombreuses recherches sur le web dans les petites heures du matin et beaucoup d'essais et d'erreurs. Je me sens comme l'un de ces proverbiaux singes qui parviennent à produire un sonnet de Shakespeare sur un clavier.
Il suffit de deux petites additions au fichier de configuration de lighttpd. En premier il faut ajouter, au début du fichier, le module proxy parmi les modules chargés par le serveur. Deuxièmement, il faut une définition du serveur proxy à la fin de fichier.
Étant du genre paresseux, j'ai utilisé le certificat autosigné qui
était installé avec le serveur Domoticz, mais
tout certificat SSL pourrait être utilisé. Si lighttpd était situé sur un autre ordinateur du
réseau local, l'adresse de l'hôte devrait être l'adresse IP du
Raspberry Pi sur lequel MJPG-Streamer est en
cours d'exécution. Puisque les deux serveurs sont sur la même machine,
j'ai utilisé le IP du localhost. Comme ça, il ne sera pas
nécessaire de modifier ce fichier de configuration si l'IP du Rapsberry
Pi devait changer.
Il faut repartir le serveur pour que ces modifications soient prises en charge. Du coup, ausis bien vérifier que lighttpd redémarre correctement.
Il est temps de vérifier que la configuration du proxy fonctionne. Sur
l'ordinateur de bureau connecté au même réseau que le Raspberry Pi,
j'ai pointé le navigateur Web à l'adresse suivante: https://192.168.1.22:4433/index.html
(ou https://domo.local:4433/). Comme un certificat SSL
autosigné est utilisé, le navigateur va rouspéter et il sera nécessaire
de créer une exception. Cela doit être fait qu'une seule fois par
navigateur. À partir de là, les pages Web de MJPG-Streamer seront immédiatement accessibles.
Cependant, comme les autres navigateurs, Chromium affiche un avertissement inquiétant à propos
du lien non sécurisé.

Qu'importe, les communications entre le navigateur Web et MJPG-Streamer sont cryptées; c'est que le navigateur n'aime pas le certificat autosigné.
Cette vérification a été faite localement. Pour accéder au flux vidéo depuis l'extérieur du réseau local, une adresse DNS dynamique et le port TCP utilisé par lighttpd (et non le port non crypté utilisé par MJPG-Streamer) doivent être transmis par le routeur du réseau local. J'ai déjà discuté tout cela dans un billet précédent : 3. Création d'un nom de domaine dynamique, 4. Mise à jour de l'adresse IP de destination, et 5. Réacheminement de ports.
Ensuite, allez au routeur et réacheminez un port TCP, disons 4433
pour la simplicité ou ce que vous voulez tant qu'il n'y a pas de
conflit, à l'adresse IP et au port HTPPS sur lequel le proxy
lighttpd écoute. Dans mon cas, il s'agit de
192.168.1.22 et 4433.
Mon adresse DNS dynamique pour atteindre le Raspberry Pi est
modom.twiligthparadox.com. Donc, pour voir la vidéo diffusée
par MJPG-Streamer, j'entre l'une des adresses suivantes dans un navigateur Web.
https://stream:michel@modomo.twilightparadox.com:4433/stream.html
https://modomo.twilightparadox.com:4433/stream.html.
Comme prévu, j'ai dû ajouter une exception dans Firefox à cause du
certificat autosigné et le navigateur a affiché un avertissement sur l'icône
sécurisée HTTPS.

Au risque de se répéter, la communication entre le navigateur et MJPG-Streamer est cryptée.
Autres Clients : VLC, Kodi et Domoticz
Voici des explications rapides sur la façon d'accéder au flux vidéo à partir de trois clients qui ne sont pas des navigateurs Web.
VLC
Comme expliqué dans la documentation du logiciel de diffusion en
continu, la vidéo peut être visionnée avec VLC de
VideoLAN. Dans l'interface graphique, cliquez sur le menu Média
en haut de la fenêtre, puis sélectionnez Ouvrir un flux réseau... (Ctrl-N).
Entrez l'URL suivante:
http://192.168.1.22:8085/?action=stream
Une fenêtre de dialogue apparaîtra vous demandant le nom d'utilisateur et le mot de passe. On peut aussi spécifier le nom d'utilisateur et le mot de passe dans l'URL.
http://stream:michel@192.168.1.22:8085/?action=stream
L'application peut également être lancée à partir d'un terminal:
Sur mon ordinateur de bureau, je peux utiliser le nom d'hôte local,
domo.local, au lieu de l'adresse IP. Sur mes tablettes Android, ce n'est pas possible et je dois utiliser
l'adresse IP numérique explicite.
Bien sûr, si je voulais utiliser le flux crypté, j'utiliserais le protocole HTTPS avec le port 4433. Et si je le faisais depuis un ordinateur non connecté à mon réseau local, j'utiliserais le nom de domaine dynamique.
https://[stream:michel@]modomo.twilightparadox.com:4433/?action=stream
Comme je suis paranoïaque, je n'inclurai probablement pas le mot de passe et le nom d'utilisateur dans l'URL, ce qui permettrait de ne jamais les transmettre en clair.
Kodi
Pour montrer le flux dans Kodi, j'ai simplement
suivi les instructions sur le Wiki. Cela ne pourrait pas être plus
simple en principe. Depuis Kodi est sur un appareil
Android sur le réseau local, j'ai créé un fichier
texte simple, nommé webcam.strm, avec le contenu suivant.
Le nom de fichier peut être quelque chose de raisonnable, je suppose, mais
l'extension doit être .strm en tout temps, je pense.
Le plus dur était de copier ce fichier sur le stockage de l'appareil.
J'ai utilisé deux méthodes différentes. Le plus simple est de copier le
fichier de mon bureau sur une clé USB, puis de connecter ce dernier à
l'appareil Android et de copier le fichier dans un
sous-répertoire du répertoire SDCard qui est ensuite accessible
à partir de Kodi.
L'autre méthode consistait à installer et à démarrer un serveur SSH/SFTP,
puis à utiliser Filezilla pour copier le fichier.
J'ai utilisé le serveur SSH/SFTP - Terminal par Banana Studio. Je me suis
connecté sur le port 2222 en tant qu'utilisateur ssh sans mot de
passe en utilisant le protocole de transfert de fichiers SFTP - SSH et cela a
fonctionné sans problème. De plus, il n'y avait pas besoin de monter et
descendre les escaliers.
Quelle que soit la façon dont le fichier strm est créé sur
l'appareil, il est préférable de l'ajouter à vos Favoris pour un accès rapide
et facile. Utilisez le système de menu Kodi pour
trouver le fichier, mettez-le en surbrillance et appuyez sur C pour l'ajouter aux favoris.
Je ne sais vraiment pas grand-chose, en fait, rien du tout pour être honnête, sur les appareils Android TV et encore moins au sujet de Kodi, alors j'arrête cette discussion ici.
Domoticz
Autant que je sache, Domoticz ne transmet pas la vidéo en continu. Je dis seulement cela parce que, de temps en temps, je vois quelqu'un demander comment s'y prendre pour faire la lecture en continu d'un flux vidéo à partir de ce logiciel. Lorsque l'icône de flux vidéo est activée, je crois que Domoticz transmet simplement une séquence d'instantanés ce qui implique la création d'un fichier local pour chaque image transmise. J'utilise depuis le début la capacité du système domotique qui prend un instantané avec une caméra connectée lorsqu'un événement spécifique se produit et envoie cette image par courrier électronique. Je l'ai installé de sorte que cette image soit prise environ 2 secondes après la mise en marche ou l'extinction d'une lumière (c'est mieux lorsque la lampe est allumée). C'est un moyen peu coûteux de vérifier que tout fonctionne quand je suis absent.
J'avais l'habitude de faire ça avec uvccapture comme
expliqué dans la page Wiki de Domoticz intitulée Camera Setup. Je ne veux pas installer uvccapture
puisque MJPG-Streamer contrôlera probablement la webcam en tout temps. Ce
n'est pas un problème car le logiciel prend aussi des instantanés. Tout
comme avec uvccapture et pour la diffusion en continu,
cela se fait avec une URL, mais différente bien entendu :
http://stream:michel@192.168.1.22:8085/?action=snapshot
L'image montre comment configurer les paramètres de la caméra dans Domoticz.

Un nouveau scriptt
Il existe de nombreux exemples de scripts bash pour démarrer et arrêter
MJPG-Streamer datant de quelques années. J'en ai juste
adapté un, mais je ne
me souviens plus exactement lequel. J'ai enregistré le fichier sous le nom de
webcam-streamer dans un répertoire caché appelé .local/bin dans mon
répertoire personnel.
Le script essaie jusqu'à cinq fois avant d'abandonner lors du démarrage ou du redémarrage du logiciel de diffusion de la webcam. Pour une raison inconnue, démarrer le service échoue souvent lors des premiers essais.
Le script doit être rendu exécutable et le répertoire dans lequel il se
trouve sera ajouté au chemin de recherche d'environnement en éditant le
fichier caché .profile dans mon répertoire personnel.
La modification ne prendra effet qu'au prochain redémarrage. La dernière
étape consiste à ajouter une entrée de redémarrage dans crontab.
Notez comment la tâche de redémarrage cron lance le
logiciel, puis le redémarre environ cinq secondes plus tard. La raison de
ceci peut être tirée de l'image suivante qui est ce qu'on obtient avec
seulement un lancement du logiciel après un redémarrage.

La webcam fonctionne, mais quelque chose ne va pas. Stopper, puis
repartir le service (ce que « restart » fait) arrête
le flux fantomatique. Bien sûr, votre kilométrage peut varier
avec différents équipements.
Le besoin de lancer plus d'une fois MJPG-Streamer
au démarrage et le flux fantomatique sont des problèmes persistants. J'ai
réinstallé le logiciel sur une copie propre d'une version entièrement mise à
jour de Rasbian Jessie sans aucune amélioration.
Des tests avec une autre caméra suggèrent qu'il s'agit d'un problème provenant du le modèle C270 de Logitech et qu'il n'a rien à voir avec MJPG-Streamer. Par conséquent
la tâche cron avec d'autres caméras pourrait être une seule commande.
Références
- Raspberry Pi Webcam Over the Internet Using MJPG-Streamer de Jacob Salmela, 2014-05-31.
- Setup Guide: Raspberry Pi | MJPEG Streamer Install & Setup & FFMpeg Recording de Austin St. Aubin, 2018-03-11.
- Raspberry Pi camera board video streaming de Miguel Mota, 2013-07-25, mise à jour 2014-01-19.
Contrôle à distance
Que faire si, pour une raison quelconque, MJPG-Streamer ne fonctionne pas correctement et je suis loin de la maison? À mon avis, la solution la plus simple était de créer un commutateur virtuel dans mon système domotique pour activer le script de démarrage. Ceci est rapidement fait dans Domoticz, voici un rappel de la marche à suivre.
- Cliquer sur l'onglet Réglages.
- Cliquer sur le choix Matériel dans le menu.
- Si le matériel virtuel
Dummy (Does nothing, ...)existe déjà, passez à l'étape suivante.- Compléter les champs
Nom: =Virtuel, and
Type: =Dummy (Does nothing...qu'on sélectionne dans la liste déroulante. - Cliquer sur le bouton au bas de la page. Le matériel virtuel sera rajouté au tableau au haut de la page.
- Compléter les champs
- Cliquer sur dans le matériel virtuel.
- Nommer le capteur (
Web Cam On/Offdans cet exemple, mais choisir un nom plus adapté en réalité) et fixer le Type de capteur: àInterrupteur. - Cliquer sur le bouton . Un message confirmant la création du dispositif apparaîtra brièvement à l'écran.
- Cliquer sur l'onglet Réglages à nouveau.
- Cliquer sur le choix Dispositifs dans le menu.
- Repérer le numéro d'index (colonne idx) de l'interrupteur nouvellement
créé.
Il faut maintenant définir les actions du dispositif virtuel.
- Cliquer sur l'onglet Interrupteurs.
- Cliquer sur le bouton de l'interrupteur virtuel créé auparavant.
- Dans le champ Action On:, entrer
script:///home/pi/.local/bin/webcam-streamer start. - Dans le champ Action Off:, entrer
script:///home/pi/.local/bin/webcam-streamer stop.
- Cliquer sur le bouton .
- Cliquer sur le bouton pour revenir à l'onglet des interrupteurs.
On peut voir sur l'image ci-dessus que j'ai aussi changée l'icône car
celle d'une ampoule ne me semblait pas appropriée pour ce commutateur.
L'icône d'une webcam est en fait tirée d'une icône déjà dans le
dossier www/images de Domoticz.
Voir Domoticz: give a facelift by customizing the icons
pour plus de détails.

Donc, je peux toujours lancer ou terminer la diffusion en continu de la
webcam en utilisant ce contrôle. Mais il y a un problème. L'état du
périphérique virtuel ne correspond pas nécessairement au statut du service.
Il est cependant facile de modifier le fichier de script vu ci-dessus pour
tenir compte de cet état. J'en ai aussi profité pour modifier l'installation
de MJPG-Streamer. Avec un peu d'expérience je me
suis rendu compte que je ne voulais pas d'un service toujours en marche. Je
n'aimais pas que le voyant vert de la webcam soit toujours allumé. En principe
la DEL devrait être contrôlable avec l'option -l (ou
--led) du plug-in input_uvc.so mais cela ne
fonctionne pas. De toute façon, j'avais un sentiment gênant que je pourrais
être voyeur dans ma propre maison en train d'espionner famille et amis.
Conséquemment, je préfère que la caméra ne fonctionne que lorsque la maison
est vide. Bizarrement, je n'ai aucun scrupule à ce que la caméra IP
extérieure soit allumée en permanence.
Voici les changements apportés au script. On ajoute eu début du fichier des constantes qui devront être ajustées pour contenir la véritable adresse IP du Rasberry Pi hébergeant le programme de domotique et le véritable numéro d'index du dispositif virtuel créé dans Domoticiz.
La fin du fichier est modifiée aussi. Après l'énoncé
case...esac, il y a quelque lignes
de code qui mettent à jour le statut de l'interrupteur virtuel créé dans
Domoticz pour que
ce dernier reflète l'état du service MJPG-Streamer.
Il y a une option supplémentaire,
« update », qu'on retrouve comme possibilité
dans l'énoncé case et qui ne fait rien sauf continuer
vers la mise à jour du statut de l'interrupteur.
Qu'importe l'option start, stop, restart
ou update le script enverra une requête HTML au serveur Web de
Domoticz. Si l'option status est
choisie, il n'y aura pas de requête envoyée et il en sera de même si aucune
option n'est spécifiée ou s'il y a erreur.
Maintenant, la seule chose que le service cron fait est
de mettre à jour le statut de l'interrupteur virtuel dans
Domoticz. Il le fait au démarrage, implicitement lorsque
MJPG-Streamer est arrêter et ensuite qu'une fois
par heure, puisque je ne pense pas qu'il s'agit de quelque chose d'urgent
Pour m'assurer que la diffusion vidéo en direct se fasse pendant que la
maison est vide, j'ai modifié le script enable_timers.sh qui
contrôle le planning conditionnel dans Domoticz. C'est assez simple d'ajouter à la
fin du fichier ceci.
Caméra lente
Lorsque ma webcam est utilisée au format pixel YUYV, MJPG-Streamer se charge de compresser le flux vidéo avant de l'envoyer. Cela occupera plus de la moitié du temps CPU. Cela pourrait être acceptable dans un système multicœur, comme le Raspberry Pi 3 ou l'Orange Pi Zero, mais cela me semble inacceptable avec le Raspberry Pi B+ ou un modèle plus vieux avec un seul coeur.
Cependant, la dernière section offre une solution partielle. Ne faire
fonctionner MJPG-Streamer qu'au moment précis où
l'on veut voir le flux vidéo. En d'autres termes, je n'inclurais pas le
démarrage automatique dans le fichier crontab ni dans le script
de planning conditionnel. Le logiciel serait contrôlé de façon ponctuelle
avec l'interrupteur virtuel dans Domoticz.
Regarder une vidéo de son
propre salon n'est pas l'activité la plus divertissante, alors je suppose que
cela ne se fera pas longtemps ce qui ne devrait pas trop nuire au fonctionnement
du système domotique. Il faut cependant tester que le Raspberrry Pi aura assez
de punch pour traiter la requête HTTP pour éteindre le MJPG-Streamer quand il est en cours d'exécution.
Si quelqu'un fait cela, je serais heureux d'entendre comment cela fonctionne dans la pratique.
Téléchargements
Voici les versions complètes des fichiers dont il est question ci-dessus.
- Le fichier de configuration de lighttpd lighttpd.conf
- Script bash pour démarrer/stopper MJPG-Streamer : webcam-streamer-vanilla
- Script bash avec intégration Domoticz : webcam-streamer
- Icônes pour l'interrupteur webcam dans Domoticz : webcam48_On.png, webcam48_Off.png
