Good to Know Database

Raspbian: MJPG-Streamer einrichten


In diesem Artikel möchte ich Ihnen zeigen, wie Sie auf Ihrem Raspberry Pi mit Raspbian als Betriebssystem eine Webcam einrichten und das Videosignal mittels MJPG-Streamer in Ihrem Netzwerk zur Verfügung stellen können.

Verbinden Sie Ihre Webcam mit dem Raspberry Pi und überprüfen mit dem folgenden Befehl ob die Webcam erkannt wurde. Wie Sie der Ausgabe entnehmen können, wird in diesem Fall eine Webcam von Chicony verwendet.

pi@raspberrypi ~ $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 04f2:b008 Chicony Electronics Co., Ltd USB 2.0 Camera

Für die Installation von MJPG-Streamer werden noch ein paar Pakete benötigt, welche Sie wie folgt installieren können.

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get install subversion-tools libjpeg8-dev imagemagick

Laden Sie sich anschließend den Quellcode von MJPG-Streamer aus dem SVN-Repository herunter und wechseln in das Quellcode-Verzeichnis.

pi@raspberrypi ~ $ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
pi@raspberrypi ~ $ cd mjpg-streamer

Mit dem Befehl make können Sie hier den Quellcode kompilieren.

pi@raspberrypi ~/mjpg-streamer $ make

Nachdem der Quellcode kompiliert wurde, installieren Sie MJPG-Streamer.

pi@raspberrypi ~/mjpg-streamer $ sudo make install
install --mode=755 mjpg_streamer /usr/local/bin
install --mode=644 input_uvc.so output_file.so output_udp.so output_http.so input_testpicture.so input_file.so /usr/local/lib/
install --mode=755 -d /usr/local/www
install --mode=644 -D www/* /usr/local/www

Mit dem nachfolgenden Befehl können Sie überprüfen ob MJPG-Streamer mit Ihrer Webcam funktioniert. Durch den Parameter -i wird die Videoquelle - also die Webcam - und über -w die Ausgabemethode konfiguriert.

Beim Input-Plugin input_uvc.so gibt es einige Parameter mit welchen Sie die Einstellungen für die Webcam vornehmen können. In diesem Fall wird die Webcam über die Gerätedatei /dev/video0 angesteuert, was Sie über den Parameter -d einstellen können. Die Auflösung der Webcam wird über den Parameter -r und die Bildwiederholrate über -f festgelegt. Durch -y wird das YUYV-Format aktiviert und das MJPEG-Format deaktiviert.

Als Output-Plugin wird hier output_http.so verwendet. Dadurch wird das Bild der Webcam über HTTP auf einer Webseite bereitgestellt.  Mit dem Parameter -n deaktivieren Sie das ausführen von Befehlen. Über -w geben Sie das Verzeichnis an, in welchem sich die Webseite befindet in welche das Videosignal eingebunden werden soll. Durch den Parameter -p können Sie den Port festlegen über welchen die Webseite erreichbar sein soll. Sollten Sie noch keinen Webserver auf Ihrem Raspberry Pi betreiben, können Sie auch den standardmäßigen HTTP-Port 80 angeben.

pi@raspberrypi ~ $ sudo mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -y -r 640x480 -f 15" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080"
MJPG Streamer Version: svn rev: 3:172
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: 15
 i: Format............: YUV
 i: JPEG Quality......: 80
 o: www-folder-path...: /usr/local/www/
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: disabled

Sobald Sie den Befehl ausgeführt haben öffnen Sie einen Browser und rufen die Webseite von MJPG-Streamer auf. Geben Sie dazu wie im folgenden Beispiel die IP-Adresse oder den Domainnamen Ihres Raspberry Pi's mit dem gewählten Port an.

http://192.168.10.52:8080

Sie sollten jetzt eine Webseite angezeigt bekommen, auf welcher ein statisches Bild und ein Live-Stream der Webcam gezeigt wird. Damit haben Sie die Funktion von MJPG-Streamer überprüft und können mit Strg+C MJPG-Streamer beenden.

Soll MJPG-Streamer beim Systemstart automatisch gestartet werden, müssen Sie noch ein Init-Skript erstellen.

pi@raspberrypi ~ $ sudo vi /etc/init.d/mjpg_streamer

Fügen Sie in diese Datei die folgenden Zeilen ein. Wenn nötig passen Sie die Parameter beim Aufruf von mjpg_streamer an Ihre Anforderungen an.

#!/bin/sh
# /etc/init.d/mjpg_streamer

#
# Creation:    04.02.2013
# Last Update: 04.02.2013
#
# Written by Georg Kainzbauer (http://www.gtkdb.de)
#

### BEGIN INIT INFO
# Provides:          mjpg_streamer
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: MJPG-Streamer
# Description:       MJPG-Streamer takes JPGs from Linux-UVC compatible webcams and streams them as M-JPEG via HTTP.
### END INIT INFO

start()
{
  echo "Starting mjpg-streamer..."
  /usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -y -r 640x480 -f 15" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080" >/dev/null 2>&1 &
}

stop()
{
  echo "Stopping mjpg-streamer..."
  kill -9 $(pidof mjpg_streamer) >/dev/null 2>&1
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0

Nachdem Sie das Init-Skript angelegt haben, müssen Sie die Zugriffsrechte des Skripts anpassen.

pi@raspberrypi ~ $ sudo chmod 0755 /etc/init.d/mjpg_streamer

Über den nächsten Befehl wird das Init-Skript in den jeweiligen Runlevel-Verzeichnissen verlinkt.

pi@raspberrypi ~ $ sudo update-rc.d mjpg_streamer defaults
update-rc.d: using dependency based boot sequencing

Die korrekte Verlinkung des Init-Skripts können Sie wie folgt überprüfen.

pi@raspberrypi ~ $ find /etc/rc* -name *mjpg_streamer
/etc/rc0.d/K01mjpg_streamer
/etc/rc1.d/K01mjpg_streamer
/etc/rc2.d/S04mjpg_streamer
/etc/rc3.d/S04mjpg_streamer
/etc/rc4.d/S04mjpg_streamer
/etc/rc5.d/S04mjpg_streamer
/etc/rc6.d/K01mjpg_streamer

Abschließend sollten Sie die korrekte Funktion mit einem Neustart überprüfen. Nach dem Neustart sollte der Videostream der Webcam wieder über die Webseite von MJPG-Streamer verfügbar sein.

pi@raspberrypi ~ $ sudo shutdown -r now


Dieser Eintrag wurde am 11.02.2013 erstellt und zuletzt am 15.09.2013 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2098.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2016 by Georg Kainzbauer