Go2RTC:
Kamera-Livebild ohne Verzögerung in die ioBroker Vis einbinden

Go2RTC:
Die optimale Lösung für Live-Streams in
ioBroker Vis oder Home Assistant

Viele Nutzer verwenden MotionEye oder Shinobi, um Live-Bilder von Überwachungskameras in ioBroker Vis oder Home Assistant einzubinden. Doch diese beiden Lösungen sind primär als NVR-Software (Network Video Recorder) konzipiert und nicht speziell für die einfache Integration von Live-Streams in Smart-Home-Systeme.

Go2RTC hingegen ist genau dafür gemacht: Es nimmt den Video-Stream einer Kamera und macht ihn in einem webbrowser-lesbaren Format verfügbar – ohne hohe CPU-Auslastung oder starke Verzögerungen. Go2RTC fungiert dabei als WebRTC-Stream-Proxy (Web Real-Time Communication), der den Stream effizient weiterleitet, anstatt ihn umzuwandeln.



Alternativen zu Go2RTC: MotionEye und Shinobi

Während Go2RTC speziell dafür entwickelt wurde, Live-Streams effizient und ohne Verzögerung in Smart-Home-Systeme wie ioBroker oder Home Assistant einzubinden, gibt es auch andere Lösungen wie MotionEye und Shinobi. Diese Programme sind jedoch primär als NVR-Software (Network Video Recorder) konzipiert und bieten zusätzliche Funktionen, die über die reine Stream-Weiterleitung hinausgehen.

MotionEye:

  • Schwerpunkt: Einfache Videoüberwachung mit Bewegungserkennung und Aufnahmefunktionen.
  • Features:
    • Benutzerfreundliche Oberfläche.
    • Unterstützung für mehrere Kameras.
    • Bewegungserkennung mit Aufzeichnung.
    • Integration in Smart-Home-Systeme wie ioBroker möglich, jedoch nicht so effizient wie Go2RTC.
  • Einsatz: Ideal für kleinere Projekte oder den Einstieg in die Videoüberwachung.

Blogbeitrag zu MotionEye: Link

Shinobi:

  • Schwerpunkt: Professionelle Videoüberwachung mit erweiterten Funktionen.
  • Features:
    • Unterstützung für KI-gestützte Bewegungserkennung.
    • Erweiterbare Plattform mit Plugins und Skripten.
    • Benutzerdefinierte Benachrichtigungen und Automatisierungen.
    • Integration in Smart-Home-Systeme, jedoch mit höherem Aufwand.
  • Einsatz: Perfekt für anspruchsvolle Projekte, die mehr Kontrolle und Funktionen erfordern.

Blogbeitrag zu Shinobi: Link


Warum Go2RTC?

Go2RTC ist die optimale Wahl, wenn es darum geht, Live-Streams ohne Verzögerung in ioBroker Vis oder Home Assistant einzubinden. Es ist ressourcenschonend, einfach zu konfigurieren und speziell für diesen Zweck entwickelt. MotionEye und Shinobi hingegen bieten umfangreichere Funktionen für Videoüberwachung und Aufzeichnung, sind aber nicht so effizient für die reine Stream-Integration.

Je nach Anwendungsfall könnt ihr also zwischen diesen Lösungen wählen:

  • Go2RTC: Für schnelle, verzögerungsfreie Live-Streams.
  • MotionEye/Shinobi: Für umfassende Videoüberwachung mit Aufzeichnung und erweiterten Features. 😊



Voraussetzungen für Go2RTC

Damit du Go2RTC nutzen kannst, muss deine Kamera einige Anforderungen erfüllen:

  1. Unterstützte Stream-Formate:
    • Die Kamera sollte einen RTSP-Stream oder ONVIF unterstützen. Dies sind die gängigsten Protokolle, die von Go2RTC genutzt werden.
    • Weitere Formate werden zwar unterstützt, RTSP und ONVIF sind jedoch die zuverlässigsten Optionen.
  2. Zugangsdaten:
    • Du benötigst den RTSP-Stream-Link, den Benutzernamen und das Passwort der Kamera.
    • Bei einigen Kameras muss der RTSP-Stream oder ONVIF erst in den Kameraeinstellungen aktiviert werden.
  3. Kompatible Kameras:
    • Viele gängige Hersteller wie InstarReolinkHikvisionAnkeTapoTP-LinkDahuaEZVIZ und sogar Saugroboter wie die von Roborock bieten RTSP- oder ONVIF-Unterstützung.
    • Vor dem Kauf solltest du dich informieren, ob deine Kamera diese Funktionen unterstützt, oder im Nachhinein bei Google nachschauen.

Testen des RTSP-Streams

Bevor du mit der Installation von Go2RTC beginnst, solltest du sicherstellen, dass deine Kamera einen funktionierenden RTSP-Stream bereitstellt. Dies kannst du einfach mit dem VLC-Player auf einem PC testen:

  1. Öffne den VLC-Player.
  2. Gehe zu Media > Open Network Stream.
  3. Gib den RTSP-Stream-Link deiner Kamera ein (z. B. rtsp://benutzername:passwort@kamera-ip:port/stream).
  4. Klicke auf Play, um den Stream zu testen.

Eine detaillierte Anleitung findest du beispielsweise auf der Reolink-Website.



Wenn deine Kamera die Voraussetzungen erfüllt und der RTSP-Stream funktioniert, kannst du mit der Installation von Go2RTC beginnen.

Benötigte Hardware:

  • Raspberry Pi (oder ähnliche Geräte)
  • Proxmox (oder eine andere Virtualisierungsplattform)

Vorteile von Go2RTC:

  • Einfache Integration: Perfekt für ioBroker Vis oder Home Assistant.
  • Geringe Latenz: Dank WebRTC-Proxy kaum Verzögerungen.
  • Niedrige CPU-Auslastung: Der Stream wird nicht umgewandelt, sondern nur weitergeleitet.

Fazit

Go2RTC ist die ideale Lösung, um Live-Streams deiner Überwachungskameras effizient und ohne großen Aufwand in ioBroker Vis oder Home Assistant einzubinden. Es ist speziell für diesen Zweck entwickelt und überzeugt durch seine einfache Handhabung und geringe Ressourcenbelastung.

Falls du Fragen hast oder Hilfe bei der Einrichtung benötigst, schau dir mein YouTube-Video an oder melde dich bei mir – ich unterstütze dich gerne! 🎥🔧🏠

Viel Erfolg bei der Umsetzung! 😊


Installation Go2RTC

1. System vorbereiten / System aktualisieren

  • Aktualisiert die Paketliste und installiert alle verfügbaren Updates.
sudo apt update && sudo apt upgrade -y
  • Installiert ffmpeg, das für die Verarbeitung von Video-Streams benötigt wird.
sudo apt install ffmpeg
image 31

2. Go2RTC herunterladen und installieren

  • Erstellt ein Verzeichnis für Go2RTC und wechselt in dieses.
sudo mkdir -p /usr/local/bin/go2rtc
cd /usr/local/bin/go2rtc

Go2RTC herunterladen

  • Download-Link:
    • Den aktuellen Link für dein System findest du auf der GitHub-Releases-Seite.
    • Beispiel für Raspberry Pi 64Bit (Stand 12.12.2024):

Beispiel für Raspi 64bit:

sudo wget https://github.com/AlexxIT/go2rtc/releases/download/v1.9.7/go2rtc_linux_arm64

Beispiel für Proxmox (als root, das „sudo“ weglassen):

sudo wget https://github.com/AlexxIT/go2rtc/releases/download/v1.9.7/go2rtc_linux_amd64
image 35

Dateirechte anpassen

  • Macht die heruntergeladene Datei ausführbar.

Beispiel für Raspi 64bit:

sudo chmod +x go2rtc_linux_arm64

Beispiel für Proxmox (als root, das „sudo“ weglassen):

sudo chmod +x go2rtc_linux_amd64

Testen der Installation
Beispiel für Raspi 64bit:

./go2rtc_linux_arm64

Beispiel für Proxmox:

./go2rtc_linux_amd64
  • Erwartete Ausgabe:
    • Eine Meldung, dass Go2RTC gestartet wurde.
image 36



um die „Ausgabe“ zu verlassen drückt ist „STRG+C“



3. Konfigurationsdatei erstellen

Jetzt erstellt ihr eine YAML-Datei, in der die verschiedenen RTSP-Streams eurer Kameras hinterlegt werden. Diese Datei enthält die Konfiguration für Go2RTC und kann später auch über die Weboberfläche von Go2RTC bearbeitet werden.

Um die YAML-Datei zu erstellen, öffnet ihr einen Texteditor wie nano und legt eine neue Datei an. Führt dazu den folgenden Befehl aus:

sudo nano go2rtc.yaml

Inhalt der Datei:
In dieser Datei könnt ihr die RTSP-Streams eurer Kameras definieren. Ein Beispiel für den Inhalt der Datei sieht wie folgt aus:

streams:
 Kamera1:
 - rtsp://Username123:passwort1234@192.x.x.x:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1
 Kamera2:
 - rtsp://User123:passwort1234@192.x.x.x:554/
 Kamera3:
 - rtsp://Username123:passwort1234@192.x.x.x:554/

Nachdem ihr die Datei bearbeitet habt, speichert und schließt ihr sie:

  • Drückt STRG + X, um den Editor zu verlassen.
  • Bestätigt mit Y, um die Änderungen zu speichern.
  • Drückt Enter, um den Dateinamen zu bestätigen.

Diese YAML-Datei ist die Grundlage für die Konfiguration von Go2RTC und kann später bei Bedarf über die Weboberfläche angepasst werden. 😊

Dateirechte anpassen
Als Nächstes müssen die Rechte der eben erstellten YAML-Datei angepasst werden, damit Go2RTC darauf zugreifen kann. Das machen wir mit dem Befehl chmod. Führt dazu den folgenden Befehl aus:

sudo chmod -v 777 go2rtc.yaml

ändert die Dateirechte der Datei go2rtc.yaml wie folgt:

  • 777: Setzt die Berechtigungen so, dass jeder (Besitzer, Gruppe und alle anderen Benutzer) Lese-, Schreib- und Ausführungsrechte auf die Datei hat.
  • -v: Das Flag steht für „verbose“ und gibt eine Bestätigung aus, dass die Rechte geändert wurden.

777: Was bedeutet das?

  • Vorteil: Die Datei ist für alle Benutzer und Prozesse vollständig zugänglich.
  • Nachteil: Diese Einstellung ist sehr unsicher, da sie keinerlei Einschränkungen vorsieht. Jeder Benutzer oder Prozess auf dem System kann die Datei ändern oder löschen.

Empfehlung (nicht getestet!)
Falls möglich, solltest du stattdessen sicherere Berechtigungen verwenden, z. B.:

sudo chmod -v 644 go2rtc.yaml
  • 644: Der Besitzer hat Lese- und Schreibrechte, während alle anderen nur Leserechte haben.

Falls die Datei ausführbar sein muss (z. B. für Skripte), wäre 755 eine bessere Option:

sudo chmod -v 755 go2rtc.yaml
  • 755: Der Besitzer hat Lese-, Schreib- und Ausführungsrechte, während alle anderen nur Lese- und Ausführungsrechte haben.

4. Autostart einrichten

Systemd-Service erstellen
Den Inhalt des Skriptes entnehmt ihr der Code-Box. Achtet dabei darauf, dass ihr den User und den Dateinamen go2rtc_linux_XXX anpassen müsst. Das bedeutet, ihr müsst euren eigenen Benutzernamen sowie die Dateiversion von Go2RTC hinterlegen. Je nachdem, ob ihr einen Raspberry Pi 64Bit oder Proxmox verwendet, müsst ihr die Dateiendung entsprechend anpassen.

sudo nano /etc/systemd/system/go2rtc.service

In meinem Test konnte ich den User auf root belassen, und es hat problemlos funktioniert. Laut Dokumentation sollte jedoch der Benutzername eingetragen werden, mit dem ihr das System verwaltet. In meinem Fall war das eddy.

Nachdem ihr die Datei erstellt und bearbeitet habt, speichert und schließt ihr sie.
Ein Beispiel für einen Raspberry Pi 64Bit sieht wie folgt aus:

[Unit]
Description=starting go2rtc server

[Service]
User=eddy
WorkingDirectory=/usr/local/bin/go2rtc/
ExecStart=/usr/local/bin/go2rtc/go2rtc_linux_arm64
Restart=always

[Install]
WantedBy=multi-user.target
  • Speichern und schließen:
    • STRG + X, dann Y und Enter.

Jetzt ist es notwendig, den Dienst einmal neu zu starten, damit die Änderungen wirksam werden. Anschließend muss der Service gestartet und das Skript dem Autostart hinzugefügt bzw. aktiviert werden.
Zu guter Letzt prüfen wir, ob alles wie geplant funktioniert hat. Dazu sind folgende Befehle notwendig:

sudo systemctl daemon-reload
sudo systemctl start go2rtc.service
sudo systemctl enable go2rtc.service
sudo systemctl status go2rtc.service

Ein Tipp noch: Falls ihr wie ich im Video eine ähnliche Fehlermeldung erhalten solltet, empfehle ich euch, die Befehle per Hand einzutippen. Gelegentlich kommt es vor, dass durch eine falsche Textformatierung unsichtbare Zeichen mitkopiert werden, die zu Problemen führen können. Diese unsichtbaren Zeichen können den Befehl beeinträchtigen und unerwartete Fehler verursachen.

Indem ihr die Befehle manuell eingebt, stellt ihr sicher, dass keine versteckten Zeichen enthalten sind und alles korrekt ausgeführt wird. 😊

image 37

Um zu testen, ob alle Änderungen und Anpassungen wie geplant funktionieren, empfehle ich euch, das System einmal neu zu starten. Dadurch könnt ihr sicherstellen, dass der Dienst automatisch gestartet wird und alles reibungslos läuft.

Nach dem erfolgreichen Neustart prüft ihr, ob der Dienst automatisch gestartet wurde. Dazu könnt ihr den folgenden Befehl verwenden:

sudo reboot
sudo systemctl status go2rtc.service

Dieser Befehl zeigt den aktuellen Status des Go2RTC-Dienstes an. Wenn alles korrekt eingerichtet wurde, solltet ihr sehen, dass der Dienst aktiv und fehlerfrei läuft.

Falls der Dienst nicht automatisch gestartet wurde, überprüft noch einmal die Schritte zur Einrichtung des Autostarts und stellt sicher, dass der Dienst mit sudo systemctl enable go2rtc aktiviert wurde.

Mit diesem Test könnt ihr sichergehen, dass eure Konfiguration funktioniert und Go2RTC zuverlässig arbeitet. 😊



5. Weboberfläche von Go2RTC

Um die Weboberfläche zu erreichen, gebt einfach in einem Webbrowser die IP-Adresse eures Raspberry Pi oder LXC-Containers ein, gefolgt vom Port 1984.

Dort solltet ihr eine Übersicht sehen, in der alle Kameras aufgelistet sind, die ihr in der YAML-Datei hinterlegt habt. Je nachdem, wie viele Kameras ihr konfiguriert habt, werden diese hier angezeigt.

In meinem Fall habe ich eine Kamera hinzugefügt, daher sieht die Weboberfläche bei mir wie folgt aus:

Go2RTC Web-UI

Kurze Erläuterung zu dem, was man sieht

Wir befinden uns aktuell auf der Menü- bzw. Startseite „Streams“. Neben dieser Seite gibt es noch die Reiter „Add“„Config“ und „Log“.


Add:

Unter „Add“ könnt ihr neue Kameras hinzufügen. Dort wählt ihr im Normalfall „Temporary stream“ aus und tragt unter „name“ einen beliebigen Namen ein. Unter „url“ gebt ihr den RTSP-Stream inklusive Benutzername, Passwort usw. ein. Im Grunde genauso, wie ihr es auch in der YAML-Datei machen würdet.


Config:

Hinter dem Reiter „Config“ verbirgt sich eure YAML-Datei. Hier könnt ihr Kameras manuell hinzufügen oder Änderungen an der YAML-Datei vornehmen.


Log:

Unter „Log“ findet ihr die Logs, die bei der Nutzung von Go2RTC erstellt werden.


6. Auf der Startseite

In der Tabelle mit den hinterlegten Kameras findet ihr unter „Commands“ drei Links:

  • „stream“: Wenn ihr darauf klickt, wird das Kamerabild angezeigt.
  • „links“: Hier werden euch diverse Links angezeigt, die ihr je nach Einsatzzweck verwenden könnt. Klickt einfach auf einen Link oder kopiert ihn mit der rechten Maustaste. Was sich hinter den Links verbirgt, ist gut beschrieben. Im Normalfall müsst ihr nur in den seltensten Fällen darauf zurückgreifen, z. B. für Spezialanwendungen. „MJPEG source“ ist vermutlich das häufigste der „Ausnahmefälle“, der Rest ist sehr speziell.
  • „delete“: Wie der Name schon sagt, könnt ihr hiermit die Kamera löschen.

Weitere Informationen

  • Unter „Online“ seht ihr, wie viele Nutzer derzeit über Go2RTC auf den Stream zugreifen.
  • Unter „info“ ist noch einmal die URL bzw. der RTSP-Stream hinterlegt, mit dem ihr auf die Kamera zugreift.

In meiner finalen Konfiguration sieht das Ganze wie folgt aus:

image 39

7. ioBroker Vis Einbindung

Die Einbindung von Go2RTC in die ioBroker Vis ist relativ einfach. Ihr benötigt dafür lediglich das „basic – iFrame“ Widget und den Link, der sich unter „Commands / stream“ befindet.

Schritte zur Einbindung:

  1. Link kopieren:
    • Klickt mit der rechten Maustaste auf „stream“ und wählt „Adresse des Links kopieren“.
    • Alternativ könnt ihr auch über „links“ gehen und euch einen anderen Link aussuchen, z. B. den MJPEG-Link.
  2. Widget einrichten:
    • Fügt in der ioBroker Vis das „basic – iFrame“ Widget hinzu.
    • Fügt den kopierten Link in das Feld „Quelle“ ein.
  3. Anpassungen vornehmen:
    • Passt die Größe und Darstellung des Widgets nach euren Wünschen an.

Mit diesen einfachen Schritten habt ihr den Live-Stream eurer Kamera erfolgreich in die ioBroker Vis integriert. 😊

image 41

Den kopierten Link fügt ihr dann in das Feld „Quelle“ des „basic – iFrame“ Widgets ein. Anschließend könnt ihr noch ein paar Schönheitsanpassungen vornehmen, wie z. B. die Größe des Widgets anpassen oder die Darstellung optimieren.

Und das war’s schon! 😊 Mit diesen einfachen Schritten habt ihr den Live-Stream eurer Kamera erfolgreich in die ioBroker Vis integriert.

image 42


⚠️ Hinweis zu Affiliate-Links:
Alle Links zu Produkten auf dieser Website sind Affiliate-Links. Durch das Anklicken dieser Links unterstützt du meine Arbeit und hilfst mir, diese Website zu finanzieren.
Für dich entstehen dabei keine zusätzlichen Kosten – der Preis bleibt gleich.
Ich erhalte lediglich eine kleine Provision vom Händler oder Amazon. Vielen Dank für deine Unterstützung! 🙏