Raspberry Pi als Überwachungsmonitor mit UniFi Video

Mit einem Raspberry Pi, einem Monitor, TV oder sonstigem Display lässt sich ohne grossen Aufwand ein Überwachungsmonitor der Kameras
von einem Ubiquiti UniFi Video NVR System erstellen. (Sollte aber auch mit anderen Systemen funktionieren die RTSP streamen können.)

05.08.2020 - Anleitung aktualisiert, Pi 4 Anzeige drehen
05.06.2020 - Anleitung aktualisiert

Mein Setup:

Raspbian installieren

Raspbian installieren (gibt ja schon genug Anleitungen), updaten und mit raspi-config noch zwei zusätzliche Einstellungen vornehmen.

Boot Options → Wait for Network at Boot, aktivieren

Advanced Options → Memory Split, 256

displaycameras installieren

Die aktuelle Version herunterladen und installieren.

# die aktuelle Version herunterladen
pi@raspberrypi:~ $ wget https://github.com/Anonymousdog/displaycameras/archive/master.zip

# archive entpacken 
pi@raspberrypi:~ $ unzip master.zip

# ins entpackte Verzeichnis wechseln
pi@raspberrypi:~ $ cd displaycameras-master/

# die install.sh ausführbar machen
pi@raspberrypi:~/displaycameras-master$ chmod +x install.sh

# die install.sh ausführen
pi@raspberrypi:~/displaycameras-master$ sudo ./install.sh

Die Abfrage am Ende der Installation einfach mit Enter bestätigen, haben wir ja schon auf 256MB gesetzt.

Enter a custom gpu split if desired [gpu memory in MB] or [Enter] to use recommended split                   

Für die verschiedenen Display Layouts findet man unter example_layouts einige Beispiele.

pi@raspberrypi:~/displaycameras-master $ ls -la example_layouts/
layout.conf.1024x600
layout.conf.1280x1028
layout.conf.1280x720
layout.conf.1280x768
layout.conf.1280x800
layout.conf.1440x900
layout.conf.1440x900.3x3
layout.conf.1920x1080.10on3x3
layout.conf.1920x1080.14mid-res-on-2x2
layout.conf.1920x1080.1x1
layout.conf.1920x1080.3x3
layout.conf.1920x1080.4on1x1
layout.conf.1920x1200.6on2x2
layout.conf.640x480
layout.conf.7on2x2_with_2x2lowerleft_child_matrix_on1280x800
layout.conf.large_left
layout.examples

Die Konfigurationsdateien liegen unter /etc/displaycameras/

pi@raspberrypi:~ $ ls -la /etc/displaycameras/
displaycameras.conf    # kann unverändert bleiben
layout.conf.default    # muss angepasst werden

RTSP Streams der Kameras aktiviern

Zum streamen auf den Monitor reicht mir eine Auflösung von 1024 x 576.
(Full HD benötigt mehr Bandbreite, ist für die Überwachung aber nicht notwendig.)

Den RTSP Service pro Kamera aktivieren und die entsprechende RTSP URL kopieren. (benötigen wir später)

Monitor Layout anpassen

Monitor mit 1920 x 1080, 4 Kameras, Ansicht 2 x 2

pi@raspberrypi:~ $ sudo vi /etc/displaycameras/layout.conf.default

#
# 1920 x 1080
# camera layout is 2x2, each field is 960 x 540
#

### Window names
windows=(upper_left upper_right lower_left lower_right)

### Windows positions
window_positions=(
#First Row
#upper_left
# 960x540
"0 0 959 539" \
#upper_right
# 960x540
"960 0 1919 539" \

#Second Row
#lower_left
# 960x540
"0 540 959 1079" \
#lower_right
# 960x540
"960 540 1919 1079" \
)

### Camera Names
camera_names=(cam01 cam02 cam03 cam04)

### Camera Feeds
camera_feeds=( \
#cam01
"rtsp://192.168.50.25:7447/59e67093c4b10b9cdb93f9c4_1" \
#cam02
"rtsp://192.168.50.26:7447/5e302a7ae4c0b4195b49738g_1" \
#cam03
"rtsp://192.168.50.27:7447/56f09fd7e4c02b9ceb9626fa_1" \
#cam04
"rtsp://192.168.50.28:7447/5acd733fe4c06d9cba998472_1" \
)

Nach den Änderungen den displaycameras.service neu starten.

pi@raspberrypi:~ $ sudo systemctl restart displaycameras.service

Passt alles, erscheinen jetzt nach und nach die 4 Kameras. (dauert ein bischen)

Nach einem shutdown oder reboot startet displaycameras automatisch. (Muss nicht extra aktiviert werden.)

Problemchen

Ein älterer Full HD Monitor ohne HDMI. Hier geht’s mit einem DVI auf HDMI Kabel an den Raspi. Damit kommen aber leider nur 1680 x 1050 an! :(
Bekomme ich auch mit diversen Einstellungen in der /boot/config.txt des Raspi nicht hin, liegt wohl eher am Kabel als am Monitor.

pi@raspberrypi:~ $ fbset -s
mode "1680x1050"
    geometry 1680 1050 1680 1050 32
    timings 0 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,8/24
endmode

Die layout.conf.default wird an die Auflösung anpasst.

#
# 1680 x 1050
# camera layout is 2x2, each field is 840 x 525
#
### Window names
windows=(upper_left upper_right lower_left lower_right)
### Windows positions
window_positions=(
#First Row
#upper_left
"0 0 839 524" \
#upper_right
"840 0 1679 524" \
#Second Row
#lower_left
"0 524 839 1049" \
#lower_right
"840 525 1679 1049" \
)

Bildschirm drehen (vertikal)

Beim Raspberry Pi 3 in die /boot/config.txt

display_rotate=3

Beim Raspberry Pi 4 in die /boot/config.txt

#dtoverlay=vc4-fkms-v3d     # 3D Beschleunigung deaktivieren
display_hdmi_rotate=1       # 90 Grad, nach rechts
#display_hdmi_rotate=3      # 270 Grad, nach links

1920 x 1080, 1x 3 Kameras im Hochformat

#
# 1920 x 1080
# camera layout is 1x3, each field is 1080 x 640
#
### Window names
windows=(top middle bottom)

### Windows positions
window_positions=(
#First Row
#top
"0 0 1080 640" \
#middle
"0 640 1080 1280" \
#bottom
"0 1280 1080 1920" \
)

IPv6 deaktivieren

Dadurch kann ggf. noch etwas optimiert werden. (Danke für den Tipp von heiko.)

pi@raspberrypi:~ $ sudo vi /etc/sysctl.conf
# am Ende der Datei einfügen
net.ipv6.conf.all.disable_ipv6 = 1

# Änderung ohne Neustart sofort anwenden
pi@raspberrypi:~ $ sudo sysctl -p

links

15 Gedanken zu „Raspberry Pi als Überwachungsmonitor mit UniFi Video“

  1. HI Ich habe ein Problem mit der Installation…

    pi@raspberrypi:~/displaycameras-master $ chmod +x install.sh
    pi@raspberrypi:~/displaycameras-master $ sudo install.sh
    sudo: install.sh: Befehl nicht gefunden

    Es lässt sich einfach nicht installieren… Hast du eine Idee wie ich das beheben kann?

    Vielen Dank! Und vor allem Vielen Dank für die Installationsanleitung!

    Antworten
      • Jaha! Klasse die Installation hat geklappt.

        Eine Frage noch. Ich würde gerne ein FullHD (1920×1080) Display im Portrait Modus, also Hochkant, nutzen. Dort würde ich gerne 8 Kameras im 2×4 Format sehen. Also 2 nebeneinander und 4 untereinander…

        Lässt sich das auch so einrichten? Also erst die Displayausrichtung drehen und dann die 2×4 Darstellung?

        Vielen Dank!

        Antworten
        • Das sollte funktionieren.

          Um die Displayausrichtung ins Hochformat zu bekommen, diese Zeilen am Ende in die /boot/config.txt einfügen.
          # 0 landscape (default), 3 portrait
          display_rotate=3
          # gpu_mem=128 (256 sollte schon gesetzt sein)

          Hab hier was im Ubiquiti Forum gefunden. 1920 x 1080, 2x 4 Kameras im Hochformat

          ### Window names
          windows=(left1 right1 left2 right2 left3 right3 left4 right4)

          ### Windows positions
          window_positions=(

          #First Row
          #left1
          "0 0 540 480" \
          #right1
          "540 0 1080 480" \

          #Second Row
          #left2
          "0 480 540 960" \
          #right2
          "540 480 1080 960" \

          #Third Row
          #left3
          "0 960 540 1440" \
          #right3
          "540 960 1080 1440" \

          #Fourth Row
          #left4
          "0 1440 540 1920" \
          #right4
          "540 1440 1080 1920" \

          )

          Antworten
  2. Sehr schöne Anleitung! Sowas sollte es viel viel mehr geben in dieser Art. Habe alles direkt umgesetzt und es läuft auch soweit.

    Ich fange mit DisplayCameras auch den Low-Stream ein, allerdings habe ich dennoch irgendwie das Problem, dass das ganze 2-3 Sekunden alles zeitverzögert ist, dass stört mich ungemein. Zudem bricht ab und zu der Stream mal kurzzeitig weg.

    Hat jemand auch das Probelm mit der Zeitverzögerung bzw. dem kurzzeitgen aussetzer des Stream?

    Antworten
  3. Danke für diese Anleitung! Funktioniert super. Hatte vorher einige andere Tutorials aber die haben alle nichts getaugt.

    Kleiner Tip noch: IPV6 auf dem Raspi ausschalten. Verbindung ist schneller aufgebaut und stabiler.

    Antworten
  4. Hallo,
    ich habe folgendes Problem.

    Zunächst paar Infos vorweg. Ich habe eine PI4 und einen Bildschirm im Hochformat mit der Auflösung 1680 x 1050.
    Das OS ist bereits gedreht. Das habe ich über den GUI Assistenten gemacht und nicht über die boot.conf.

    Das Problem ist nun dass die Kamera Videos übertragen werden jedoch sich diese dem Hochformat nicht anpassen.
    Sprich das OS ist im Hochformat und die Videos werden im Querformat dargestellt.

    Habe etwas mit der Boot.conf gespielt hat aber leider nichts gebracht. Auch der Parameter rotate=true bringt hier nichts.
    Gibt es weitere Ansätze die ich ausprobieren kann?
    Ich habe zwei Kameras die ich im Hochformat untereinander darstellen möchte.
    Danke sehr :)

    Antworten
    • Hallo,

      setz mal diesen Eintrag in die /boot/config.txt
      display_rotate=3

      Damit hat’s auf meinem 3er Pi problemlos funktioniert.

      Antworten
  5. Guten Tag

    Ich war lange auf der Suche nach genau diesem „Programm“. Vielen Dank für das teilen.

    Dennoch habe ich eine Frage. Ich komme bis zum Punkt „sudo vi /etc/displaycameras/layout.conf.default“
    Jetzt will ich dort meine IP Adresse mit dem RTSP Stream eingeben, aber wie in aller Welt komme ich wieder aus dem layout.conf heraus.
    Ich dachte immer mit Ctrl X, aber das funktioniert nicht.

    Ich muss sagen, dass ich nicht viel Ahnung mit dem Raspberry habe, aber ich finde auch nichts brauchbares im Internet.
    Ich wäre sehr Dankbar, wenn mir jemand sagen könnte was ich falsch mache.

    Gruss

    Antworten

Schreibe einen Kommentar