Streamovacie protokoly
HomeBe·at podporuje viacero streamovacích protokolov pre kamerové streamy. Aplikácia automaticky zistí, ktoré protokoly sú pre každú kameru dostupné, a vyberie ten najlepší.
Porovnanie protokolov
| Protokol | Latencia | Kvalita | Nastavenie |
|---|---|---|---|
| WebRTC | < 1s | Vysoká | Vstavaný od HA 2024.11 |
| RTSP | < 1s | Vysoká | Priame pripojenie ku kamere |
| HLS | 5–15s | Stredná | Zabudované v kamerách HA |
| MJPEG | 1–2s | Nízka | Zabudovaný fallback |
Automatická fallback reťaz
HomeBe·at používa automatickú fallback reťaz, keď streamovací protokol zlyhá:
WebRTC > MJPEG > VLC (RTSP) > HLS > Snapshot
Ak sa WebRTC nepodarí pripojiť (napr. go2rtc nie je dostupný alebo UDP je blokované), aplikácia okamžite prepne na MJPEG a súčasne sa pokúsi nadviazať VLC alebo HLS stream. Odznak v zobrazení kamery ukazuje, ktorý protokol je práve aktívny.
Pre kamery s vlastnou RTSP URL (manuálne nakonfigurovanou alebo automaticky objavenou z go2rtc) VLC streamuje RTSP feed priamo so sub-sekundovou latenciou.
WebRTC
Preferovaný protokol. Poskytuje sub-sekundovú latenciu s vysokou kvalitou videa. Vyžaduje go2rtc v Home Assistant (vstavaný od HA 2024.11). Používa UDP na prenos médií, takže tvoja sieť musí umožňovať UDP prevádzku medzi serverom HA a tvojím zariadením.
Podpora kodekov
HomeBe·at podporuje video kodeky H.264, H.265 (HEVC), VP8, VP9 a AV1. Kodek sa automaticky dohodne medzi go2rtc a aplikáciou. Podpora H.265 je obzvlášť výhodná pre kamery, ktoré natívne streamujú v HEVC (napr. novšie modely Reolink a UniFi), poskytujúc lepšiu kvalitu pri nižších bitrate.
Úrovne kvality
Ovládanie kvality závisí od typu kamery:
Kamery Reolink — Kamery Reolink s kanálmi rozlíšenia (fluent / clear) používajú natívne prepínanie streamov — aplikácia sa pripojí k entite fluent s nízkym rozlíšením pre Strednú kvalitu a k entite clear s vysokým rozlíšením pre Vysokú kvalitu. Nie je potrebné obmedzovanie bitrate, keďže každý stream je v natívnej kvalite. Kvalita sa prepína len medzi MQ a HQ.
Ostatné kamery — Ostatné kamery (vrátane UniFi Protect, ktorých alternatívne entity kanálov nepodporujú WebRTC) používajú SDP bitrate obmedzenia na primárnej entite:
| Kvalita | Bitrate |
|---|---|
| Nízka (LQ) | 2.5 Mbps |
| Stredná (MQ) | 5 Mbps |
| Vysoká (HQ) | 8 Mbps |
Prepínaním odznaku kvality v zobrazení kamery sa zastaví a reštartuje WebRTC pripojenie. Pre kamery Reolink sa prepína medzi entitami streamov; pre ostatné sa aplikujú nové SDP obmedzenia.
Multi-objektívové kamery
Kamery s viacerými objektívmi (napr. Reolink Duo 3 PoE) sa v HomeBe·at zobrazujú ako samostatné kamery, jedna na objektív. Každý objektív má vlastné kanály rozlíšenia a prepínanie kvality. Aplikácia automaticky zoskupuje objektívy podľa zariadenia a mapuje správnu fluent/clear entitu ku každému objektívu.
MJPEG
Motion JPEG streamuje sériu JPEG snímkov cez HTTP. Funguje na akejkoľvek sieti (nevyžaduje UDP), ale poskytuje nižšiu kvalitu a spotrebuje viac šírky pásma ako WebRTC. Je to primárny fallback, keď WebRTC nie je dostupný.
HLS
HTTP Live Streaming rozdeľuje video na malé segmenty doručované cez HTTP. Je spoľahlivý a funguje všade, ale prináša 5–15 sekúnd latencie kvôli bufferovaniu segmentov. Vstavaný v Home Assistant pre všetky kamerové entity.
RTSP (cez VLC)
Real-Time Streaming Protocol poskytuje nízkolatenčné, vysokej kvality streamy. Streamovaný cez vstavaný VLC prehrávač. Používa sa pre vlastné kamery a pre kamery Home Assistant, ktoré majú nakonfigurovanú RTSP URL (manuálne alebo cez automatické objavenie go2rtc).
RTSP podporuje kodeky H.264 aj H.265. WebRTC aj RTSP teraz podporujú H.265, takže oba protokoly fungujú dobre pre kamery používajúce HEVC kódovanie.
Výber protokolu
Pre väčšinu používateľov funguje najlepšie predvolený automatický výber. Aplikácia vyberie protokol s najnižšou latenciou:
- Ak máš nastavený go2rtc — WebRTC (najlepší zážitok)
- Ak WebRTC zlyhá alebo nie je dostupný — okamžite MJPEG, potom prechod na HLS
- Ak uprednostňuješ spoľahlivosť pred latenciou — HLS (vždy funguje, vyššie oneskorenie)
Streamovací protokol môžeš zmeniť pre každú kameru v nastaveniach aplikácie.