Live Stream mit Raspberry Pi

Heute habe ich eine kleine Anleitung zum live streamen mit der Raspberry Pi Camera. Die dabei verwendeten Anwendungen sind „MJPG-Streamer“ und „raspistill“.
Diese Variante des Streamings funktioniert wunderbar um z.B. über einen beliebigen Browser oder den VLC Player das Kamerabild zu betrachten. Man bekommt damit allerdings keine hohen Bildwiederholraten.

Installation des MJPG-Streamers

Die im folgenden installierten libraries werden von MJPG-Streamer verwendet und müssen daher installiert werden.

sudo apt-get install libjpeg8-dev imagemagick libv4l-dev

Da die videodev.h von MJPG-Streamer gebraucht wird aber durch die videodev2.h ersetzt wurde muss noch ein Link angelegt werden, damit die Datei gefunden wird.

sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

Damit wären die Vorarbeiten erledigt und der MJPG-Streamer kann heruntergeladen werden:

wget http://tredoryswebsite.de/wp-content/uploads/2013/11/mjpg-streamer-code-182.zip

Download: mjpg-streamer-code-182
Diese Datei wird nun im Home Verzeichnis oder irgend ein anderes Verzeichnis eurer Wahl entpackt (Es wird im anschluss wieder gelöscht).

unzip mjpg-streamer-code-182.zip

Nun werden noch die benötigten Programmteile mithilfe von make erstellt:

cd mjpg-streamer-code-182/mjpg-streamer
make mjpg_streamer input_file.so output_http.so

Als letzter Schritt werden nun die Fertigen Programmteile „Installiert“. Sie werden in die Typischen Programm-Pfade im Linux System Kopiert.

sudo cp mjpg_streamer /usr/local/bin
sudo cp output_http.so input_file.so /usr/local/lib/
sudo cp -R www /usr/local/www

nun kann der Entpackte Temporäre Ordner wieder Entfernt werden

cd ~
rm -rf mjpg-streamer-code-182

Fertig !

Streamen

Da nun alles Installiert ist kann mit dem Streamen begonnen werden. Dazu legen wir zuerst ein Verzeichnis an in dem die Bilder zwischengespeichert werden

mkdir -p /tmp/stream

Nun weisen wir raspistill mit seiner Timelapse Funktion an ständig neue Bilder zu machen. Dabei kann raspistill natürlich wie gewohnt eingestellt werden.
Beispielsweise so:

raspistill -w 1280 -h 720 -q 50 -ex backlight -mm backlit -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th 0:0:0 &

Damit werden ca. 10 Bilder pro Sekunde gemacht. Für weitere Infos zu den Einstellungen einfach raspistill ohne Parameter aufrufen, dadurch wird eine Hilfeseite angezeigt.
Da nun die Datei /tmp/stream/pic.jpg ständig aktualisiert wird können wir diese nun mir MJPG-Streamer Streamen

LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i "input_file.so -f /tmp/stream -n pic.jpg" -o "output_http.so -w /usr/local/www"

Stream Betrachten

Da der Stream nun läuft kann dieser von (fast) jedem Gerät im lokalen Netzwerk angezeigt werden.

  • Entweder mit einem Browser, dazu einfach http://IP_DES_RASPBERRY:8080 oder http://raspberrypi:8080 im Browser aufrufen.
  • Oder aber mit dem VLC-Player, dazu VLC Starten und dann Medien -> Netzwerkstream Öffnen und dort dann als Netzwerkadresse http://raspberrypi:8080/?action=stream oder http://IP_DES_RASPBERRY:8080/?action=stream eingeben und die Wiedergabe starten.

Ideen

Da die timelapse Funktionalität von raspistill immer auf eine bestimmte maximale Laufzeit begrenzt ist wäre es für Endlosstreams noch eine überlegung wert das Bilder machen in ein Python Skript auszulagern, dazu könnte mit kleinen änderungen z.B. mein Timelapse Programm verwendet werden.

Links

2 Gedanken zu „Live Stream mit Raspberry Pi

  1. Hmm, bis auf dass ich das mit dem WGET von Deiner Seite nicht hin bekommen habe.. aber dafür habe ich dann den File normal in Windows runter laden können und auf den eigenen Server gepackt.. lief dann.

    Aber bei „make“ kommt folgender Fehler „make: *** no rule to make target ´mjpg-streamer´. Stop

    Fehlt da was.. oder ist das nicht für den Raspian Wheezy?

    1. Hallo,
      Ich verwende auch das Raspian Wheezy, bei mir funktioniert es. Das mit dem wget muss ich nochmal selbst testen, das sollte aber egal sein da du die Datei ja so heruntergeladen hast. ….
      Zum make:
      Hast du die Zip Datei entpackt und warst du beim ausführen von make im richtigen Verzeichnis ?
      Du musst in dem mjpg-streamer Verzeichnis sein in dem das Makefile, die mjpg-streamer.c usw liegen. Dann sollte make funktionieren.

      Mfg
      Tredory

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.


*