Installer MJPG-Streamer sur Raspberry Pi

De L'abscisse - FabLab et Hackerspace de Dijon
Révision datée du 13 avril 2014 à 08:50 par Pilatomic (discussion | contributions) (Installation)
Aller à : navigation, rechercher
Dialog-warning.png Article en cours de rédaction Dialog-warning.png


Présentation

Niveau de difficulté

Vert.png

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, 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 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
 # 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/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\""
 
 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}"
               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
 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