Installer MJPG-Streamer sur Raspberry Pi : Différence entre versions
(→Installation) |
(Ajout lancement au démarrage et modifs diverses) |
||
Ligne 10 : | Ligne 10 : | ||
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 libjpeg8-dev imagemagick libv4l-dev | + | 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-code | |
− | |||
− | |||
− | |||
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 : | ||
Ligne 26 : | Ligne 23 : | ||
On se place dans le bon dossier : | On se place dans le bon dossier : | ||
− | cd mjpg-streamer-code | + | cd mjpg-streamer-code/mjpg-streamer |
Puis on lance la compilation, avec seulement les plugins qui nous intéressent : | Puis on lance la compilation, avec seulement les plugins qui nous intéressent : | ||
− | make mjpg_streamer input_uvc.so output_http.so | + | make mjpg_streamer USE_LIBV4L2=true clean input_uvc.so output_http.so |
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== | ||
− | le script bash suivant permet le lancement de MJPG-Streamer, 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. | + | 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" | ||
− | #!/bin/ | + | ==Lancement automatique au démarrage== |
− | + | Créer le fichier /etc/init.d/mjpg_streamer.sh avec le contenu suivant, et le rendre exécutable. | |
− | + | ||
− | + | #!/bin/sh | |
+ | # /etc/init.d/mjpg_streamer.sh | ||
+ | # v0.21 phillips321.co.uk and pila | ||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: mjpg_streamer.sh | ||
+ | # Required-Start: $network | ||
+ | # 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 | ||
+ | OPTS="-i \"/usr/lib/input_uvc.so -d /dev/video0\" -o \"/usr/lib/output_http.so -p 80 -w /var/www/mjpg_streamer -n\"" | ||
+ | |||
+ | 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 $OPTS | ||
+ | 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 -$OPTS | ||
+ | sleep 2 | ||
+ | f_message "Restarted daemon: mjpg_streamer" | ||
+ | ;; | ||
+ | status) | ||
+ | pid=`ps -A | grep mjpg_streamer | grep -v "grep" | grep -v mjpg_streamer. | awk '{print $1}' | head -n 1` | ||
+ | if [ -n "$pid" ]; | ||
+ | then | ||
+ | f_message "mjpg_streamer is running with pid ${pid}" | ||
+ | f_message "mjpg_streamer was started with the following command line" | ||
+ | cat /proc/${pid}/cmdline ; echo "" | ||
+ | else | ||
+ | f_message "Could not find mjpg_streamer running" | ||
+ | fi | ||
+ | ;; | ||
+ | *) | ||
+ | f_message "Usage: $0 {start|stop|status|restart}" | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac | ||
+ | exit 0 | ||
+ | |||
+ | Il reste alors à l'ajouter aux scripts de démarrage : | ||
+ | sudo chmod +x /etc/init.d/mjpg_streamer.sh | ||
+ | sudo update-rc.d mjpg_streamer.sh defaults | ||
==Liens== | ==Liens== | ||
Ligne 52 : | Ligne 107 : | ||
http://www.raspberrypi.org/phpBB3/viewtopic.php?t=48597 | http://www.raspberrypi.org/phpBB3/viewtopic.php?t=48597 | ||
+ | |||
+ | http://www.phillips321.co.uk/2012/11/05/raspberrypi-webcam-mjpg-stream-cctv/ | ||
==Auteurs== | ==Auteurs== |
Version du 13 avril 2014 à 08:27
Article en cours de rédaction |
---|
Sommaire
Présentation
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-code
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-code/mjpg-streamer
Puis on lance la compilation, avec seulement les plugins qui nous intéressent :
make mjpg_streamer USE_LIBV4L2=true clean input_uvc.so output_http.so
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"
Lancement automatique au démarrage
Créer le fichier /etc/init.d/mjpg_streamer.sh avec le contenu suivant, et le rendre exécutable.
#!/bin/sh # /etc/init.d/mjpg_streamer.sh # v0.21 phillips321.co.uk and pila ### BEGIN INIT INFO # Provides: mjpg_streamer.sh # Required-Start: $network # 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 OPTS="-i \"/usr/lib/input_uvc.so -d /dev/video0\" -o \"/usr/lib/output_http.so -p 80 -w /var/www/mjpg_streamer -n\"" 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 $OPTS 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 -$OPTS sleep 2 f_message "Restarted daemon: mjpg_streamer" ;; status) pid=`ps -A | grep mjpg_streamer | grep -v "grep" | grep -v mjpg_streamer. | awk '{print $1}' | head -n 1` if [ -n "$pid" ]; then f_message "mjpg_streamer is running with pid ${pid}" f_message "mjpg_streamer was started with the following command line" cat /proc/${pid}/cmdline ; echo "" else f_message "Could not find mjpg_streamer running" fi ;; *) f_message "Usage: $0 {start|stop|status|restart}" exit 1 ;; esac exit 0
Il reste alors à l'ajouter aux scripts de démarrage :
sudo chmod +x /etc/init.d/mjpg_streamer.sh sudo update-rc.d mjpg_streamer.sh 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