Je souhaite créer un programme qui diffusera en streaming une vidéo de ma webcam USB sur Internet vers une page Web.
Actuellement, j'utilise un service Web qui, lorsqu'il est déclenché, appelle fswebcam
pour capturer une image, l'enregistrer dans le magasin de données, le convertir en binaire base64 et l'envoyer à la page HTML où elle est rendue dans l'attribut 'src' de 'img'. La page HTML a JavaScript qui appelle ce service une fois par seconde.
Comme vous pouvez le constater, c’est une façon horrible de le faire. Je préférerais avoir un bon flux si je peux. Mais je ne sais pas quelles technologies sont disponibles pour y parvenir.
Le service Web est écrit dans nodeJS
. Le serveur fonctionne sur un Raspberry Pi 2
. Je n'ai pas posé cette question dans le Raspberry Pi forum
car je pense que c'est un problème d'ordre général Linux/programming
.
L'article ici explique l'ensemble du processus de la manière la plus simple possible avec des images de travail. C’est le moyen utilisé par Linux, pas un script node.js
. J'énonce ici l'essentiel.
Connectez-vous avec votre Pi en utilisant l'adresse IP. 'pi' & 'framboise' est la valeur par défaut 'login as' et 'password' dans Raspbian.
Pour mettre à jour le système, tapez les commandes Sudo apt-get update
et Sudo apt-get upgrade
une à la fois.
Tapez la commande Sudo apt-get install motion
pour démarrer l'installation.
Maintenant, pour vous assurer que la caméra est correctement détectée, tapez la commande lsusb
et entrez. Vous devriez voir le nom de votre appareil photo. Si ce n'est pas le cas, il y a un problème avec votre appareil photo ou la caméra n'est pas prise en charge en mode "Mouvement".
Une fois l'installation terminée, tapez la commande Sudo nano /etc/motion/motion.conf
et appuyez sur Entrée.
Ensuite, vous devez modifier certains paramètres dans le fichier .conf
. Il peut être parfois difficile de trouver les paramètres, mais utilisez Ctrl+W pour le trouver. Alors suivez les étapes:
Encore une fois, tapez la commande Sudo nano /etc/default/motion
et appuyez sur Entrée.
Définissez start_motion_daemon
sur yes. Sauvegarder et quitter.
Tout d’abord, vous devez redémarrer le logiciel Motion. Pour ce faire, tapez la commande Sudo service motion restart
et appuyez sur entrée.
Encore une fois, tapez la commande Sudo motion
et appuyez sur Entrée. Maintenant, votre serveur est prêt.
Maintenant, ouvrez votre navigateur. Tapez l'adresse IP de votre Raspberry Pi et le numéro de port de cette manière:
192.168.0.107:8081
(Il y a d'abord l'adresse IP, puis le ':', puis le numéro de port). Appuyez sur Entrée.
Vous pouvez maintenant voir le flux en direct provenant de votre webcam directement sur votre ordinateur portable ou sur votre téléphone portable, ou les deux en même temps. Mais ceci est une connexion locale. Pour le rendre public, configurez votre adresse IP avec une adresse publique de sorte que vous puissiez y accéder de partout dans le monde.
Utilisez un cadre tel que livecam .
Solution de diffusion en direct par webcam utilisant GStreamer et Node.js
Ce module vous permet de diffuser votre webcam sur un réseau pour être utilisée par votre navigateur et/ou diffusée en fichier. Voir la documentation pour plus d’informations.
Utilisation:
// npm install livecam
const LiveCam = require('livecam');
const webcam_server = new LiveCam({
'start' : function() {
console.log('WebCam server started!');
}
});
webcam_server.broadcast();