Webcam mit Raspberry Pi Zero W, Teil 2 Software

Die Entscheidung für die Vorgehensweise beruht auf diesem Artikel bzgl. Raspberry Pi Zero Framerates von Chris Carey. Ich habe vorher eine andere Variante probiert die mich 3 Stunden gekostet hat und nicht funktioniert.

 

1. Boot-Image auf Micro-SD Card
Dafür lädt man das „RASPIAN STRETCH LITE“ Image (ohne „X/Desktop“) von der „raspberrypi.orgDownload Seite. Die ZIP Datei enthält ein „.img“ kein „.iso„.
Ich habe dafür ein Tool Namens „Win32 Disk Imager“ verwendet um die SD-Card zu beschreiben.

 

2. WLAN auf dem Image vorkonfigurieren
Wenn das Image auf die SD-Card gespielt ist, gibt es eine (Teil)Partition auf die man auch von Windows aus zugreifen kann. In dieser Partition müssen 2 Dateien erstellt werden.

  • Eine leere Datei Namens „ssh“ ohne Endung/Erweiterung, einfach nur „ssh“ mit 0 Byte.
  • Eine Datei Namens „wpa_supplicant.conf“ mit folgendem Inhalt:
    
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
        update_config=1
        country=DE
        network={
            ssid="DEINEWLANSSID"
            psk="DEINWLANKEY"
            key_mgmt=WPA-PSK
        }

 

3. Start und Konfiguration
Karte einsetzen und „Raspberry Pi Zero W“ starten, sollte nicht mehr als 40 Sekunden dauern. Nun am besten über die Router-Oberfläche schauen welche IP-Adresse dem „raspberrypi“ zugeordnet wurde. Dann über „putty“ oder anderes SSH-Tool einloggen. Username „pi„, Passwort „raspberry„.

Jetzt mit dem Befehl: „sudo raspi-config“ den Konfigurations-Dialog starten und dort die Kamera aktivieren, unter „Interface…“. (Das fehlt in den vielen Anleitungen).   Dann wieder neu starten. Ab jetzt könnte die Kamera bereits über den HDMI-Ausgang funktionieren.

 

4. Aktualisieren und Programme downloaden
(Laut Doku sollte „raspivid“ bereits integriert sein. Bei mir war es so.)
Zunächst sollte man immer alle Updates und Upgrades machen.
Befehl „sudo apt-get update„, dauert max. 2-3 Minuten.
Befehl „sudo apt-get upgrade„, kann über 10 Minuten dauern.

Dann wird VLC installiert, und zwar die „no X Version“. Das fehlt auch oft in den verschiedenen Anleitungen.
Befehl „sudo apt-get install vlc-nox„, dauert ca. 3-5 Minuten.

 

5. Konfigurieren des VLC Servers als „rtsp“-Stream
In „/home/pi“ eine neue Datei „stream-rtsp.sh“ erstellen, z.B. mit nano (super-simpler Console-Editor):
Mit dem Befehl „sudo nano stream-rtsp.sh„, dann im Editor folgendes einfügen.

#!/bin/bash
raspivid -o - -t 0 -w 1280 -h 720 -fps 25 -b 512000 | cvlc -vvv stream:///dev/stdin --sout '#rtp{access=udp,sdp=rtsp://:8554/stream}' :demux=h264

Speichern mit „STRG+O“ + „Enter“, dann beenden mit „STRG+X„. (Nano Optionen am unteren Bildschirmrand)

Nun muss diese Datei, in welcher ja der Service gestartet wird, selber ausführbar gemacht werden.
Befehl: „chmod +x stream-rtsp.sh

Um den Service manuell zu starten, startet man die „sh„.
Befehl: „./stream-rtsp.sh

 

6. Automatisches Starten des „rtsp“-Servers beim Booten
Folgendes File erstellen „/etc/systemd/system/stream-rtsp.service“, am besten wieder mit Nano.
Befehl: „sudo nano /etc/systemd/system/stream-rtsp.service„, dann im Editor folgendes einfügen.

[Unit]
Description=auto start stream
After=multi-user.target

[Service]
Type=simple
ExecStart=/home/pi/stream-rtsp.sh
User=pi
WorkingDirectory=/home/pi
Restart=on-failure

[Install]
WantedBy=multi-user.target

Speichern mit „STRG+O“ + „Enter“, dann beenden mit „STRG+X„.

Dieses Service-Script nun auf Autostart setzen.
Befehl: „sudo systemctl enable stream-rtsp.service

Jetzt sollte man den Service schon manuell starten, stoppen und den Status abfragen können.
Befehle:

sudo systemctl start stream-rtsp.service
sudo systemctl stop stream-rtsp.service
sudo systemctl status stream-rtsp.service

Nach einem Neustart startet dieser Service jetzt auch immer.


Den Stream sollte man nun über RTSP-fähige Clients öffnen können. Zum Beispiel im VLC-Player unter „Netzwerkstream öffnen“ mit der URL:

rtsp://x.x.x.x:8554/stream

Für Android und iPhone gibt es z.B. die App „

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*