Schon länger habe ich eine Raspberry Pi Kamera, diese habe ich unter anderem zur Bewegungserkennung für mein Google Kalender Projekt eingesetzt. In diesem Tutorial zeige ich euch wie man die Raspberry Pi Kamera einrichtet, Fotos und Videos macht und einen Video-Stream über das Netzwerk von einem anderen System abrufen kann.
Die Raspberry Pi Kamera leistet ungefähr das was gängige Smartphones können, der Fokus ist fest und das Modul liefert 5 Megapixel. Videos können in 1080p, 720p oder 640×480 mit maximal 30 Bildern pro Sekunde aufgenommen werden und Fotos haben eine maximale Auflösung von 2592 × 1944 Pixel.
Hardware
Die Kamera wurde speziell für den Raspberry Pi entwickelt und während der Entwicklungsphase öfter überarbeitet. Ich habe die Revision 1.3 mit 24 mm × 25 mm und knapp 9 mm höhe. Das Modul wiegt nur etwa drei Gramm. Falls ihr die Kamera etwas entfernt vom Pi betreiben wollt empfehle ich ein längeres Kabel und das Gehäuse da die Cam nicht von alleine stehen bleibt.
- Raspberry Pi Kamera Modul oder das Modul mit Infrarot Support
- Längeres Kabel für das Kamera Modul (Das mitgelieferte ist sehr kurz, max 15cm)
- Gehäuse für die RasPi Kamera (Qualität nicht optimal, aber besser als keines)
Raspberry Pi Kamera einrichten
Der Anschluss für die Camera sitzt bei allen Modellen hinter dem Ethernet Anschluss und nennt sich CSI. Hebt dort die Verschluss-klemme etwas an steckt das Kabel ein (achtet darauf das die blanken Pins weg von der Klemme zeigen), zum Befestigen die Klemme einfach wieder etwas andrücken. Der Pi sollte natürlich vom Strom getrennt sein.
Startet euren Raspberry Pi und ruft via SSH oder via Tastatur und Monitor nach dem Anmelden mit pi und raspberry das folgende Kommandos zum Aktualisieren eures Systems auf.
[glossary_exclude]
sudo apt-get -y update & sudo apt-get -y upgrade sudo rpi-update
[/glossary_exclude]
Danach starten wir das Konfigurations-Tool raspi-config um die Kamera zu aktivieren
sudo raspi-config
Zum aktivieren wählt ihr den Punkt 5 “Enable Camera” und aktiviert das Modul.
Das war auch schon die Einrichtung, nun solltet ihr euren kleinen Mini-Computer einmal neu starten.
Fotos mit der RasPi Cam aufnehmen
Als zentrales Tool zur Aufnahme von Fotos mit dem Raspberry Pi verwenden wir das in Raspbian bereits vorinstallierte Tool raspistill. Es bietet eine Viehlzahl von Optionen, falls ihr auf dem Desktop angemeldet seit wird euch sogar ein kurzes Preview Fenster angezeigt.
Zum Testen ob die Kamera überhaupt funktioniert machen wir ein Testbild mit den Optionen -o (Festlegen des Dateinamens) und -v (Verbose Ausgabe).
raspistill -v -o test.jpg
Jetzt solltet ihr in eurem aktuellen Verzeichnis ein test.jpg haben, falls etwas nicht geklappt hat wird euch raspistill zwecks der -v Option einen detaillierten Fehler präsentieren (z.B. das die Kamera nicht via raspi-config aktiviert wurde o.ä.).
Fotos im Jpeg-Format aufnehmen
raspistill -o test.jpg
Fotos im PNG-Format aufnehmen
Mit dem Parameter -e können verschiedene Formate wie jpg, bmp, gif und png erzeugt werden.
raspistill -o test.png –e png
Aufnahme von Fotos ohne Preview Fenster (-n)
raspistill -o test.jpg -n
Aufnahme auf Knopdruck (Enter)
Ersetzt man test.jpg durch test%02d.jpg wird bei jedem Knopdruck ein neues Foto mit dem Dateinamen image01.jpg, image02.jpg usw. erstellt. Abbrechen könnt ihr die Serie mit STRG+C
raspistill -t 0 -k -o test%02d.jpg
Zeitverzögertes Foto (3 Sekunden), die Angabe erfolgt in Millisekunden
raspistill -o test.jpg -t 3000
Aufnahme von Fotos mit anderer Auflösung (640×480), die Parameter w und h geben die Weite und die Höhe in Pixeln an
raspistill -o test.jpg -w 640 -h 480
Fotos mit reduzierter Qualität aufnehmen (-q)
Dadurch kann Speicherplatz eingespart werden, es sind Werte von 0 bis 100 möglich.
raspistill -o image.jpg -q 20
Raspberry Pi Kamera LED abschalten
Wenn euch die rote Aufnahme-LED stört, können ihr diese deaktivieren, dazu ist ein neuer Eintrag in der Datei /boot/config.txt mit anschließendem Neustart notwendig. Tragt hierzu einfach die folgende Zeile in eure config.txt mit einem beliebigen Editor ein.
disable_camera_led=1
Raspberry Pi Kamera über das Netzwerk Streamen
Das Streaming des Kamera Signals ins Netzwerk erledigt der bekannte VLC Player für uns. Diesen installieren wir als erstes via apt
sudo apt-get install vlc
Der Trick ist jetzt das Video Signal von raspivid an den VLC-Player zu übergeben (das macht die Pipe | und der Parapeter -o – für uns) und von diesem einem Stream bereitzustellen. cvlc startet die Kommandozeilen-Version von VLC.
raspivid -o - -t 0 -n | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264
Natürlich könnt ihr raspivid auch noch weitere Parameter übergeben, zum Beispiel wenn ihr die Auflösung oder die maximalen Bilder pro Sekunde begrenzen wollt.
raspivid
- “-o -” Schreibt die Video Ausgabe von raspivid in den std out
- “-t 0″ Deaktiviert das Timeout
- “-n” Deaktiviert den Preview Modus am RasPi
cvlc
- “-vvv” gibt an wohler VLC den Stream holen soll
- “-sout” gibt an wohin der Stream ausgegeben werden soll
Zum Anzeigen des Video Stream könnt ihr auf einem beliebigen Rechner (im selben Netzwerk) nun VLC ausführen und zum Beispiel via Windows über “Medien” > “Netzwerkstream öffnen” die Wiedergabe starten. Als Adresse gibt ihr die IP-Adresse eures Raspberry Pi im folgenden Format an.
rtsp://192.168.178.27:8554/
Natürlich müsst ihr 192.168.178.27 mit der IP eures RasPi ersetzen.
Als Alternative hierzu könnt ihr natürlich auch ein Webinterface verwenden. Ein Tutorial hierzu gibt es auf eLinux.
Videos aufnehmen
Auch für die Aufnahme von Videos über die Raspberry Pi Kamera haben wir unter Raspbian ein zentrales Tool, raspivid übernimmt hier alle wichtigen Aufgaben für uns.
Ein Video in 1080p aufnehmen (1920 x 1080)
Mit dem Parameter -t gibt man die Aufnahmezeit in Millisekunden an, für eine dauerhafte Aufzeichnung wird der Wert auf 0 gesetzt.
raspivid -o testvideo.h264 -t 50000
Ein Video in 720p aufnehmen (1280 x 720)
raspivid -o testvideo.h264 -t 50000 -w 1280 -h 720
Video mit anderer Framerate aufzeichnen (zb. 15 Frames/Sekunde)
raspivid -o testvideo.h264 -t 50000 -f 15