Benutzerdefinierte Home Assistant-Komponente für die Echtzeitanzeige nahezu aller Kamerastreams mithilfe von WebRTC und anderen Technologien.
Ab Version 3 wurde der Streaming-Server von RTSPtoWebRTC auf go2rtc umgestellt.
go2rtc
Installation
Konfiguration
Benutzerdefinierte Karte
Vorlagen
Zwei-Wege-Audio
Snapshots zu Telegram
Stream streamen oder teilen
Zur Kamera streamen
FAQ
Debuggen
Bekannte Arbeitskameras
Diese Komponente nutzt die go2rtc-Anwendung als Streaming-Server:
geringstmögliche Streaming-Latenz für viele unterstützte Protokolle
Streaming von RTSP, RTMP, HTTP (FLV/MJPEG/JPEG), HomeKit-Kameras, USB-Kameras und anderen Quellen
Streaming zu RTSP, WebRTC, MSE/MP4 oder MJPEG
Unterstützt die gängigen Codecs H264/H265, AAC, PCMU/PCMA, OPUS
On-the-fly-Transkodierung für nicht unterstützte Codecs über FFmpeg
Automatische Auswahl der Streaming-Technologie basierend auf Stream-Codecs, Browserfunktionen und Netzwerkkonfiguration
Lesen Sie mehr in den go2rtc-Dokumenten!
Sie können go2rtc auf verschiedene Arten installieren:
Einfache Benutzer – diese Komponente lädt automatisch die neueste Version von go2rtc herunter und führt sie aus, Sie müssen nichts selbst tun.
Fortgeschrittene Benutzer – installieren Sie das Add-on go2rtc oder Frigate 12+.
Hakers – installieren Sie go2rtc als Binärdatei oder Docker auf einem beliebigen Server im LAN.
Sie können die go2rtc-Einstellungen ändern, indem Sie die Datei go2rtc.yaml
zu Ihrem Hass-Konfigurationsordner hinzufügen.
Wichtig. go2rtc betreibt sein eigenes Webinterface auf Port 1984
ohne Passwort. Dort sehen Sie eine Liste der aktiven Kamerastreams. Jeder in Ihrem LAN kann ohne Passwort darauf zugreifen . Sie können dies in der go2rtc-Konfiguration deaktivieren.
PS. Es gibt auch eine weitere schöne Karte mit go2rtc-Unterstützung – Frigate Lovelace Card.
Methode 1. HACS > Integrationen > Plus > WebRTC > Installieren
Methode 2. Kopieren Sie den Ordner webrtc
manuell aus der neuesten Version in den Ordner /config/custom_components
.
Die custom_card
wird automatisch bei der Home Assistant-Benutzeroberfläche registriert, es sei denn, Sie verwalten die Benutzeroberfläche im YAML-Modus. Wenn Sie die Benutzeroberfläche im YAML-Modus verwalten, fügen Sie Folgendes zu Ihren UI-Ressourcen hinzu, damit die Karte custom:webrtc-camera
funktioniert:
URL: /webrtc/webrtc-camera.jstype: Modul
Aktualisieren Sie Ihren Browser
Einstellungen > Geräte und Dienste > Integration hinzufügen > WebRTC
Wenn die Integration nicht in der Liste enthalten ist, müssen Sie den Browser-Cache leeren.
Die Komponente erstellt keine Geräte und Entitäten . Es werden nur zwei Dienste und eine benutzerdefinierte Lovelace-Karte erstellt.
Als url
können Sie Folgendes verwenden:
jedes von go2rtc unterstützte Protokoll ( rtsp
, rtmp
, http
, onvif
, dvrip
, homekit
, roborock
usw.)
Stream- name
aus der go2rtc-Konfiguration
Jinja2
-Vorlage (sollte unterstütztes Protokoll oder Stream- name
darstellen)
Als entity
können Sie nahezu jede Kamera von Hass verwenden.
Als poster
können Sie verwenden:
http
-Link (sollte ein öffentlich verfügbarer Link sein)
entity
von Hass
Stream- name
aus der go2rtc-Konfiguration
Jinja2
-Vorlage (sollte entity
oder name
rendern)
Minimal
Typ: 'custom:webrtc-camera'url: 'rtsp://rtsp:[email protected]:554/av_stream/ch0'
oder
Typ: 'custom:webrtc-camera'url: 'camera1' # Streamname aus go2rtc.yaml
oder
Typ: 'custom:webrtc-camera'entity: camera.generic_stream # Ändern Sie die Entity_ID Ihrer Kamera
oder
Typ: 'custom:webrtc-camera'streams: - URL: go2rtc_stream_hdname: HD # Name ist optional. Modus: webrtc # Modus ist optional. Medien: Video. # Medien sind optional - URL: go2rtc_stream_sdname: SDmode: msemedia: audio
PS. Sie können den aktiven Stream ändern, indem Sie auf die mode
klicken. Oder indem Sie mit aktiviertem ui: true
auf den Stream name
klicken.
Voll
Alle Einstellungen sind optional! Nur erforderliche Einstellung – url
oder entity
oder streams
.
Typ: 'custom:webrtc-camera'url: 'rtsp://rtsp:[email protected]:554/av_stream/ch0'entity: camera.generic_streammode: webrtc,webrtc/tcp,mse,hls,mjpeg # Stream-Technologie , standardmäßig alle Medien: Video, Audio # Nur Video- oder Audiospur auswählen, standardmäßig beide Server: http://192.168.1.123:1984/ # benutzerdefinierte go2rtc-Serveradresse, Standard emptyui: true # benutzerdefinierte Videosteuerung, Standard falsedigital_ptz: # digitaler Zoom und Schwenk per Maus/Berührung, Standardwerte: mouse_drag_pan: wahr mouse_wheel_zoom: wahr mouse_double_click_zoom: true touch_drag_pan: wahr touch_pinch_zoom: wahr touch_tap_drag_zoom: wahr persist: true # Zoomfaktor und Position des Ansichtsfensters überleben das erneute Laden der Seite# digital_ptz: false # zum Deaktivieren aller Maus-/Touch-Digitalzooms und Pantitle: Meine Superkamera # optionales Kartentitelposter: https://home-assistant.io/images/cast/ Splash.png # Standbild beim Laden des Streamsmuted: true # anfänglicher Stummschaltzustand, Standard ist false (nicht stummgeschaltet)intersection: 0,75 # Stream automatisch stoppen, wenn weniger als 75 % des Videoelements im sind screen, standardmäßig 50 %background: true # Stream ausführen, wenn er nicht angezeigt wird (z. B. zum schnellen Laden von Videos), standardmäßig falseshortcuts: # benutzerdefinierte Verknüpfungen, standardmäßig keine- Name: Record Symbol: mdi:record-circle-outline Dienst: switch.toggle service_data:entity_id: switch.camera_record
Schwenk-, Neige- und Zoomsteuerung: PTZ-Konfigurationsbeispiele.
Standardmäßig pausiert
Typ: custom:webrtc-cameraposter: dahua1-snap # Streamname aus go2rtc.yaml (http-snapshot)streams: - URL: '' # leere URL, daher wird nur das Poster angezeigt - URL: dahua1 # Streamname von go2rtc.yaml (rtsp-stream)
Problem mit dem Video-Seitenverhältnis
Stil: „Video {aspect-ratio: 16/9; object-fit: fill;}“
Videorotation
Auf dem Client (freie CPU):
Stil: 'video {transform: rotation(90deg); Seitenverhältnis: 1}'
Auf dem Server – FFmpeg-Transkodierung (hohe CPU-Kosten)
Modusbezeichnung ausblenden
Stil: '.mode {display: none}'
Vollbild-Schaltfläche ausblenden
Stil: '.fullscreen {display: none}'
Schaltfläche „Screenshot ausblenden“.
Stil: '.screenshot {display: none}'
PIP-Schaltfläche ausblenden
Stil: '.pictureinpicture {display: none}'
Shortcuts-Position
Stil: „.shortcuts {links: unset; oben: 25px; rechts: 5px; Anzeige: Flex; Flex-Richtung: Spalte}“
PTZ-Position
Stil: „.ptz {rechts: unset; links: 10px}“
Position der Modusbeschriftung
Stil: '.header {bottom: 6px} .mode {position: absolute; unten: 0px}'
Position der Kopfzeile
Stil: '.header {top: unset; unten: 6px}'
Neu in v3.6.0.
Die Kartenoptionen shortcuts
, style
und ptz
unterstützen JavaScript-Vorlagen
In shortcuts
und style
können Sie states
Vorlagen verwenden
In ptz
können Sie streamName
/ streamID
bezogene Vorlagen verwenden (nützlich für Karten mit mehreren Vorlagen).
Verknüpfungen: - Name: Barn Lighticon: ${ states['light.yeelight_lamp'].state === 'on' ? 'mdi:outdoor-lamp':'mdi:lamp' }service: light.toggleservice_data: entity_id: light.yeelight_lamp
ptz: Dienst: notify.persistent_notification data_left:message: Links für ${ this.streamName } angeklickt data_right:message: Recht für ${ this.streamID } angeklickt
Neu in v3.4.0.
Nur für unterstützte Quellen in go2rtc
Nur für Hass mit HTTPS-Zugriff ist diese Einschränkung von den Browsern her
Nur für WebRTC-Modus
HTTPS ist auch für die Hass Mobile App wichtig!
Sie sollten den media
microphone
hinzufügen. Sie können zwei Streams verwenden: einen mit Mikrofon, einen zweiten ohne:
Typ: 'custom:webrtc-camera'streams: - URL: go2rtc_stream - URL: go2rtc_streammode: webrtcmedia: Video, Audio, Mikrofon
PS. Stellen Sie für die Hass Mobile App sicher, dass Sie das Mikrofon mit dem integrierten Assist verwenden können.
mehr lesen
Komponenten unterstützen das Streaming auf Google Cast Chromecast-Geräte (einschließlich Android TV und Google Smart Screen). Lesen Sie mehr im Wiki.
Außerdem unterstützt die Komponente die Erstellung eines temporären oder permanenten Links zu einem Stream, ohne den Zugriff auf Ihren Home Assistant freizugeben. Lesen Sie mehr im Wiki.
Neu in v3.1.0.
go2rtc unterstützt die Wiedergabe von Audiodateien (z. B. Musik oder TTS) und Live-Streams (z. B. Radio) auf Kameras mit Zwei-Wege-Audio-Unterstützung. Sie müssen:
Überprüfen Sie, ob Ihre Kamera eine bidirektionale Audioquelle unterstützt
Richten Sie den Kamerastream in der go2rtc.yaml-Konfiguration ein
Überprüfen Sie den Audio-Codec, den Ihre Kamera unterstützt
Erstellen Sie virtuelle Mediaplayer für Ihre Kameras in configuration.yaml
:
media_player: - Plattform: webrtcname: Dahua Kamerastream: dahuaaudio: pcmu/48000 - Plattform: webrtcname: Tapo Kamerastream: tapoaudio: pcma
F: Der externe Zugriff mit WebRTC funktioniert nicht
A. Lesen Sie mehr und erstellen Sie keine neuen Probleme.
F: Audio funktioniert nicht
A. Überprüfen Sie, welchen Audio-Codec Ihre Kamera ausgibt. Und mit welcher Technologie schauen Sie sich Videos an? Verschiedene Technologien unterstützen unterschiedliche Codecs.
Fügen Sie Ihrer configuration.yaml
Folgendes hinzu:
Logger: Standard: Warnung logs:custom_components.webrtc: debug
Marke | Modelle | Kommentar |
---|---|---|
ActiveCam | AC-D2121IR3 | |
ActiveCam | AC-D7121IR1W | unterstützt Ton |
Android | IP-Webcam Pro | Unterstützt Sound, rtsp://192.168.1.123:8080/h264_ulaw.sdp |
C-tronics | CTIPC-690C | Unterstützt Sound, main: rtsp://username:[email protected]:554/11 oder onvif://username:[email protected]:8080?subtype=MainStreamProfileToken |
Dahua | DH-IPC-HDPW1431FP-AS-0280B, VTO2211G-P | unterstützt Ton |
Dahua | VTO2202F-P-S2 | mehr lesen |
EZVIZ | C3S | rtsp://admin:[email protected]:554/h264/ch01/main/av_stream und /h264/ch01/sub/av_stream |
EZVIZ | C3W, C3WN, C6CN, C6T | rtsp://admin:[email protected]:554/h264_stream |
EZVIZ | C8C | rtsp://admin:[email protected]:554/channel80 |
Foscam | C1 | rtsp://user:[email protected]:554/videoMain |
Foscam | C2M, R2M | rtsp://user:[email protected]:88/videoMain |
GW-Sicherheit | GW5088IP | rtsp://192.168.1.123:554/mpeg4cif?username=admin&password=123456 |
GW-Sicherheit | GW5078IP | rtsp://192.168.1.123:554/stream0?username=admin&password=123456 |
GW-Sicherheit | GW5071IP | Funktioniert noch nicht, etwas Ähnliches wie rtsp://admin:[email protected]:554/live/main oder rtsp://192.168.0.207:554/live/main?username=admin&password=123456 |
Hikvision | DS-2CD2T47G1-L, DS-2CD1321-I, DS-2CD2143G0-IS | rtsp://user:[email protected]:554/ISAPI/Streaming/Channels/102 |
Hikvision | IPC-HDW3849H-AS-PV, IPC-EW5531-AS | Mit einer benutzerdefinierten Komponente an den NVR DHI-NVR2108HS-8P-I angeschlossen |
Imou | IPC-F42-B2E3 (Kugel 2C 4MP) | rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 |
QNAP | QUSBCam2 | rtsp://username:[email protected]:554/channel1 docs |
Raspberry Pi | PiCam | mehr lesen |
Reolink | RLC-410, RLC-410W, RLC-510WA, E1 Pro, E1 Zoom, 4505 MP | RLC-510WA unterstützt Ton, E1 Zoom unterstützt Ton, PTZ und Zoom |
Reolink | E1 | rtsp://admin:[email protected]:554/h264Preview_01_main |
Sonoff | GK-200MP2-B | Unterstützt Sound und PTZ, rtsp://rtsp:[email protected]:554/av_stream/ch0 und /av_stream/ch1 |
SriHome | SH035 | rtsp://192.168.xxx.xxx:8554/profile0 und /profile1 und /profile2 |
Topvico | rtsp://192.168.1.123:8554/stream0 oder rtsp://192.168.1.123:554/ch0_0.264 | |
TP-Link | Tapo C100/C200/C210/C220/C310 | rtsp://user:[email protected]:554/stream1 und /stream2 |
TVT/Secutech | NVR-0808B2-8P | rtsp://user:[email protected]:554/chID=1&streamType=main und chID=2&streamType=main |
TVT/Secutech | IPC5-DF28SN | rtsp://user:[email protected]:554/profile1 und /profile2 |
Unifi | G4 Dome, G4 Türklingel, G3 Bullet, G3 Flex | Kopieren Sie den rtsps-Link aus den Kameraeinstellungen in Unifi Protect, ändern Sie den Link jedoch in rstp:// (standardmäßig ist rstps://), ändern Sie den Port in 7447 und entfernen Sie alle Abfrageparameter |
Wyze | Cam v2/v3, Cam Pan v1/v2 | unterstützt Ton |
Xiaomi | Dafang | mit Hack, rtsp://192.168.1.123:8554/unicast Video: H264, Größe: 1920x1080, Bitrate: 1000, Format: VBR, Bildrate: 10 Audio: PCMU, Eingangsrate: 8000, Ausgangsrate: 44100 |
Yale | SV-4CFDVR-2 | rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0 |
Yi | Hi3518e-Chipsatz | mit Hack |
Yi | MStar Infinity-Chipsatz | mit Hack |