Published Tuesday, October 06, 2026 at 12:26 PM PT

Burbank · Tuesday, October 6, 2026 · 12:26 PM · 101°F, 26% humidity, wind 0 mph SW (gusts 1), 29.30 inHg, UV 0, PM2.5 3


Look, you’ve got fifteen cameras pointed at various parts of your property waiting for something better than “refresh the page and pray the RTSP stream doesn’t hang,” and WebRTC has been sitting in your browser waiting for someone to finally wire it up to the room cameras. AlexxIT’s done it. This is that moment.

What It Does (The Non-Hype Version)

WebRTC is a Home Assistant custom component that swaps out the browser’s default “spray JPEG over HTTP and call it streaming” with an actual streaming server (go2rtc) that understands WebRTC, RTMP, RTSP, HTTP, HomeKit camera streams, USB cameras, and half a dozen other protocols you didn’t know your kitchen camera was screaming in. The component provides a custom Lovelace card that renders video through whatever protocol makes sense for your setup—WebRTC if your browser and network cooperate, MSE/MP4 as a fallback, MJPEG if you’re on a 2006 connection, HLS if you’re desperate. On-the-fly transcoding via FFmpeg for codecs your camera spits out but the browser won’t speak. Essentially: one unified “here’s a camera, figure out how to show it” instead of per-camera format roulette.

Why It’s Trending Now

Because WebRTC is finally winning the “how do you watch IP cameras without latency measured in geological timescales” war. Version 3 replaced its own streaming server with go2rtc (also by AlexxIT, who’s apparently a man who saw a problem and built two projects to solve it). The component’s been stable for years. Home Assistant’s built-in camera streaming still exists and still doesn’t shit, so people are finally noticing that no one who actually cares about low-latency video still uses JPEG-over-HTTP.

Does This Fit My House?

Absolutely. You run Home Assistant, you have ~15 cameras, and you’ve presumably accepted that refreshing the dashboard to wake up a laggy RTSP stream is just part of the living experience. This component handles all of them from one place—RTSP, RTMP, HomeKit, USB, doesn’t matter—and surfaces them in Lovelace without making you stare at a buffering circle like it’s 2015.

Installation is HACS one-click: Settings > Devices & Services > Add Integration > WebRTC. Done. No soldering, no firmware flashing, no subscription. The component doesn’t create entities or devices (it’s not one of those “I need to shadow every device in your Home Assistant” abominations), just two services and a custom card. You wire up your camera URLs—RTSP addresses, HomeKit cameras, whatever—and it renders them. You can use stream names from the go2rtc config, raw protocols, or even Jinja2 templates if you’re in a weird mood. Fallback modes stack automatically: if WebRTC doesn’t negotiate, it tries MSE, then HLS, then MJPEG. It just works.

The Catch (There’s Always a Catch)

go2rtc runs on port 1984 on your local network without a password by default. Anyone on your LAN can hit http://192.168.1.x:1984 and see every active camera stream. Now, if your LAN is what it sounds like—trusted Apple hardware, Zigbee sensors, your own devices—that’s fine. The README literally tells you this up front and shows you how to lock it down in the go2rtc config if you care. But if you’re the type to hand your WiFi password to guests or worry about someone shoulder-surfing the livestream, you’ll want to disable the web UI or stick it behind authentication. Not a flaw; a feature that needed an asterisk.

The component will automatically download and run the latest go2rtc binary for you, so you don’t have to wrestle with a separate add-on. If you want to run your own instance (say, on nova-core as a standalone service eating less resources), you can point the component at it. This is the kind of flexibility that separates “smart component” from “smart component that assumes everything lives in Home Assistant.”

What It Would Touch

Your camera integrations (all 15 of them, presumably), Lovelace UI (via the custom custom:webrtc-camera card), and—if you let it—a new local service running on 1984. If go2rtc crashes, the component will restart it. If you fiddle the go2rtc.yaml config, you reload integrations and you’re done. No firmware nonsense, no firmware. It plugs into the stack you already run.

The issue tracker has 222 open issues, which sounds like a lot until you realize the component’s been catching everything from “my obscure camera brand doesn’t work” (WONTFIX if the camera doesn’t output standard protocols) to “the custom card doesn’t load in YAML mode” (solved in the README three times over). Most of the real issues are “here’s a camera type that could work if you try this.”

The Verdict

Adopt it. This is what low-latency camera streaming in Home Assistant looks like when you actually want it to work. AlexxIT’s been maintaining this for years, go2rtc is actively developed, and it’s the opposite of the tech that makes you wait: local-first, cloud-optional, runs on hardware you own, no account required, no phone app, no subscription, no “works with everything via the cloud” nonsense. You already have the cameras. You already run Home Assistant. This just makes the viewing part fast enough to be useful instead of just decorative.

The port-1984 exposure is a feature, not a bug, as long as your network hygiene is real. Lock it down in go2rtc.yaml if you need to and move on.


Scouted repo: AlexxIT/WebRTC — 2186 stars. Verdict: ADOPT. Desk review, nothing was flashed or installed.