Installer MJPG-Streamer sur Raspberry Pi : Différence entre versions
(→Installation) |
m (→Auteurs) |
||
(21 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | |||
− | |||
==Présentation== | ==Présentation== | ||
+ | MJPG-Streamer est un logiciel capable de lire et de diffuser un flux video. Son utilisation principale consiste à diffuser le flux en provenance d'une webcam, sur une page web. Cet article décrit la procédure à suivre pour arriver à un tel résultat. | ||
==Niveau de difficulté== | ==Niveau de difficulté== | ||
Ligne 10 : | Ligne 9 : | ||
Tout d'abord, installer les dépendances, avec la commande suivante : | Tout d'abord, installer les dépendances, avec la commande suivante : | ||
− | + | sudo apt-get install subversion libjpeg8-dev imagemagick libv4l-dev | |
Récupérer les sources de MJPG-Streamer : | Récupérer les sources de MJPG-Streamer : | ||
− | + | svn checkout http://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ | |
− | |||
La compilation de MJPG-Streamer nécessite le fichier /usr/include/linux/videodev.h, mais il existe désormais sous le nom videodev2.h. On utilise un lien symbolique pour y remédier : | La compilation de MJPG-Streamer nécessite le fichier /usr/include/linux/videodev.h, mais il existe désormais sous le nom videodev2.h. On utilise un lien symbolique pour y remédier : | ||
− | + | sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h | |
On se place dans le bon dossier : | On se place dans le bon dossier : | ||
− | + | cd mjpg-streamer | |
− | Puis on lance la compilation | + | Puis on lance la compilation : |
− | + | make USE_LIBV4L2=true clean all | |
Dernière étape, on copie les fichiers générés à leur emplacement de destination : | Dernière étape, on copie les fichiers générés à leur emplacement de destination : | ||
− | + | sudo make DESTDIR=/usr/local install | |
==Utilisation== | ==Utilisation== | ||
Ligne 38 : | Ligne 36 : | ||
mjpg_streamer -b -i "/usr/local/lib/input_uvc.so -d /dev/video0 -r 640x480 -f 20" -o "/usr/local/lib/output_http.so -p 8080 -w /usr/local/www" | mjpg_streamer -b -i "/usr/local/lib/input_uvc.so -d /dev/video0 -r 640x480 -f 20" -o "/usr/local/lib/output_http.so -p 8080 -w /usr/local/www" | ||
+ | |||
+ | Dès lors, l'interface web de MJPG-Streamer est accessible à l'url suivante : http://IP_DU_RASPBERRY:8080 | ||
+ | Le flux vidéo est disponible sur l'URL : http://IP_DU_RASPBERRY:8080/?action=stream | ||
==Lancement automatique au démarrage== | ==Lancement automatique au démarrage== | ||
Créer le fichier /etc/init.d/mjpg_streamer avec le contenu suivant, et le rendre exécutable. | Créer le fichier /etc/init.d/mjpg_streamer avec le contenu suivant, et le rendre exécutable. | ||
− | + | #!/bin/sh | |
− | + | # /etc/init.d/mjpg_streamer | |
− | + | # v0.21 phillips321.co.uk and pila | |
− | + | ### BEGIN INIT INFO | |
− | + | # Provides: mjpg_streamer.sh | |
− | + | # Required-Start: $network $local_fs | |
− | + | # Required-Stop: $network | |
− | + | # Default-Start: 2 3 4 5 | |
− | + | # Default-Stop: 0 1 6 | |
− | + | # Short-Description: mjpg_streamer for webcam | |
− | + | # Description: Streams /dev/video0 to http://IP/?action=stream | |
− | + | ### END INIT INFO | |
− | + | ||
− | + | PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin | |
− | + | ||
− | + | INPUT="/usr/local/lib/input_uvc.so -d /dev/video0 -r 640x480 -f 20" | |
− | + | OUTPUT="/usr/local/lib/output_http.so -p 8080 -w /usr/local/www" | |
− | + | f_message(){ | |
− | + | echo "[+] $1" | |
− | + | } | |
− | + | ||
− | + | # Carry out specific functions when asked to by the system | |
− | + | case "$1" in | |
− | + | start) | |
− | + | f_message "Starting mjpg_streamer" | |
− | + | mjpg_streamer -b -i "$INPUT" -o "$OUTPUT" | |
− | + | sleep 2 | |
− | + | f_message "mjpg_streamer started" | |
− | + | ;; | |
− | + | stop) | |
− | + | f_message "Stopping mjpg_streamer..." | |
− | + | killall mjpg_streamer | |
− | + | f_message "mjpg_streamer stopped" | |
− | + | ;; | |
− | + | restart) | |
− | + | f_message "Restarting daemon: mjpg_streamer" | |
− | + | killall mjpg_streamer | |
− | + | mjpg_streamer -b -i "$INPUT" -o "$OUTPUT" | |
− | + | sleep 2 | |
− | + | f_message "Restarted daemon: mjpg_streamer" | |
− | + | ;; | |
− | + | *) | |
− | + | f_message "Usage: $0 {start|stop|restart}" | |
− | + | exit 1 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
;; | ;; | ||
− | + | esac | |
− | + | exit 0 | |
+ | |||
Il reste alors à l'ajouter aux scripts de démarrage : | Il reste alors à l'ajouter aux scripts de démarrage : | ||
Ligne 111 : | Ligne 107 : | ||
Pila | Pila | ||
− | [[Catégorie:HackLab]] [[Catégorie:Fiches Pratiques]] | + | [[Catégorie:Électronique/HackLab]] [[Catégorie:Fiches Pratiques]] |
[[Catégorie:Les projets du HackLab]] | [[Catégorie:Les projets du HackLab]] | ||
− | [[Catégorie:Montages Raspberry Pi]] | + | [[Catégorie:Montages Raspberry Pi]] [[Catégorie:Montages Webcam]] |
Version actuelle datée du 18 septembre 2015 à 11:26
Sommaire
Présentation
MJPG-Streamer est un logiciel capable de lire et de diffuser un flux video. Son utilisation principale consiste à diffuser le flux en provenance d'une webcam, sur une page web. Cet article décrit la procédure à suivre pour arriver à un tel résultat.
Niveau de difficulté
Installation
Tout d'abord, installer les dépendances, avec la commande suivante :
sudo apt-get install subversion libjpeg8-dev imagemagick libv4l-dev
Récupérer les sources de MJPG-Streamer :
svn checkout http://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/
La compilation de MJPG-Streamer nécessite le fichier /usr/include/linux/videodev.h, mais il existe désormais sous le nom videodev2.h. On utilise un lien symbolique pour y remédier :
sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
On se place dans le bon dossier :
cd mjpg-streamer
Puis on lance la compilation :
make USE_LIBV4L2=true clean all
Dernière étape, on copie les fichiers générés à leur emplacement de destination :
sudo make DESTDIR=/usr/local install
Utilisation
le script bash suivant permet le lancement de MJPG-Streamer en background, configuré pour transmettre un flux vidéo provenant de la première camera disponible sur le système, de résolution 640*480, en 20 images par secondes. Le flux est accessible en http sur le port 8080. Tous les logs de MJPG-Streamer sont enregistrés dans le fichier mjpgstreamer.log :
mjpg_streamer -b -i "/usr/local/lib/input_uvc.so -d /dev/video0 -r 640x480 -f 20" -o "/usr/local/lib/output_http.so -p 8080 -w /usr/local/www"
Dès lors, l'interface web de MJPG-Streamer est accessible à l'url suivante : http://IP_DU_RASPBERRY:8080 Le flux vidéo est disponible sur l'URL : http://IP_DU_RASPBERRY:8080/?action=stream
Lancement automatique au démarrage
Créer le fichier /etc/init.d/mjpg_streamer avec le contenu suivant, et le rendre exécutable.
#!/bin/sh # /etc/init.d/mjpg_streamer # v0.21 phillips321.co.uk and pila ### BEGIN INIT INFO # Provides: mjpg_streamer.sh # Required-Start: $network $local_fs # Required-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: mjpg_streamer for webcam # Description: Streams /dev/video0 to http://IP/?action=stream ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin INPUT="/usr/local/lib/input_uvc.so -d /dev/video0 -r 640x480 -f 20" OUTPUT="/usr/local/lib/output_http.so -p 8080 -w /usr/local/www" f_message(){ echo "[+] $1" } # Carry out specific functions when asked to by the system case "$1" in start) f_message "Starting mjpg_streamer" mjpg_streamer -b -i "$INPUT" -o "$OUTPUT" sleep 2 f_message "mjpg_streamer started" ;; stop) f_message "Stopping mjpg_streamer..." killall mjpg_streamer f_message "mjpg_streamer stopped" ;; restart) f_message "Restarting daemon: mjpg_streamer" killall mjpg_streamer mjpg_streamer -b -i "$INPUT" -o "$OUTPUT" sleep 2 f_message "Restarted daemon: mjpg_streamer" ;; *) f_message "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0
Il reste alors à l'ajouter aux scripts de démarrage :
sudo chmod +x /etc/init.d/mjpg_streamer sudo update-rc.d mjpg_streamer defaults
Liens
http://blog.miguelgrinberg.com/post/how-to-build-and-run-mjpg-streamer-on-the-raspberry-pi
http://www.raspberrypi.org/phpBB3/viewtopic.php?t=48597
http://www.phillips321.co.uk/2012/11/05/raspberrypi-webcam-mjpg-stream-cctv/
Auteurs
Pila