Frigate does not care who made the camera. It opens an RTSP URL, decodes what comes out, and runs detection on it, so the only thing you are buying is a box that will hand over that URL without asking a cloud service for permission. If you already own cameras, skip to the test; if you are choosing, read what we run and the Wi-Fi section after it, then go to the camera-setup page to wire them in.
The one test
Search the model name and the word RTSP. You are looking for two things on the maker's own site: a URL pattern (something like rtsp://<address>:554/stream1) and a way to create a local username and password for it. Tapo publishes both; their page is FAQ 2680, and the account is made in the app under the camera's settings as a "camera account". If you find that page for your camera, it will work with Frigate. If the only answer is "use our app" or a subscription tier, it will not, and no amount of forum cleverness changes that.
| Camera family | Verdict for Frigate |
|---|---|
| TP-Link Tapo (C120, C210 and siblings) | Yes. Camera account in the app, then /stream1 (main) and /stream2 (sub) on port 554. This is what we run; details below. |
| Reolink, Amcrest, Dahua, Hikvision, and most "IP camera" brands | Yes, each with its own path and its own quirks. Frigate's docs keep the per-brand notes in one place: camera-specific configuration. Read yours there rather than here. |
| Anything that says ONVIF Profile S on the box | Almost certainly yes; ONVIF implies an RTSP stream you can discover and open. |
| Arlo, Nest, Ring, and other cloud-first cameras | No. The video goes to the maker's servers and comes back through their app. Some have workarounds; none are supported, and recommending them on a Frigate page would be dishonest. |
| Wyze, Eufy and similar | Depends on the model and the firmware year; some expose RTSP with an optional firmware, some removed it. Find the maker's page before you pay. |
What we run, and what the streams are
The seven cameras that watch Helen are from the TP-Link Tapo C120 / C210 family. We bought eight C120s (2560×1440, 4 MP, f/1.65 lens) at the end of July 2026 to join four C210s (2304×1296, 3 MP, f/2.0) that were already on the network, and C120s went into the bowl positions in August; which physical unit is on which job today is not something this page will claim. They are Wi-Fi only, there is no PoE variant of either, they are plastic and they are not 4K, and none of that has mattered.
What matters is what they send, and this is read from the ffmpeg that consumes them rather than from a spec sheet:
| Stream | What arrives |
|---|---|
/stream1 (main, used for recording and the 24/7 Face stream) | H.264 High profile, yuv420p, 2560×1440 at 20 fps, plus PCMA (G.711 A-law) audio at 8 kHz mono |
/stream2 (sub, used for detection and the mosaic tiles) | H.264 High profile, yuv420p, 640×360 at 20 fps, same audio |
| Transport | RTSP on port 554; we pull it over TCP. Both streams are served by the camera on the LAN; the app is needed to set the camera up, not to keep it running. |
| Codec choice | H.264 is why every downstream tool is happy: Frigate decodes it on a CPU without complaint, the tile processes stream-copy it with no re-encode, and a browser can play a clip of it directly. |
The sub-stream is the reason this works on an ordinary PC. Frigate looks for a cat on the 640×360 stream at 2 fps and only ever touches the 2560×1440 stream to write it to disk. Eleven cameras of that, seven of them detecting, had the whole Linux side of a six-core CPU (Frigate, go2rtc, every decoder) at 13.6 percent when we captured its stats on 2026-09-03. A camera without a second stream would force the whole 4 MP decode just to notice a cat; the full arithmetic is on the detector page, and the config that expresses it is on the annotated config page.
Wi-Fi versus PoE
The received wisdom is that serious cameras are wired, and it is right. A camera on Cat6 with a PoE switch has one cable, cannot drop off a congested access point, and does not care where the router is. If you are putting cameras in a garage and two bedrooms and a garden, run cable.
Our situation is narrower and Wi-Fi has held up. Seven cameras sit in one sitting room a short distance from the access point. Each sends one 2560×1440 stream and one 640×360 stream continuously; the combined recording load across the whole set, house cameras included, measured 107 GiB on 2026-09-01, about 16.4 GiB per continuous 1440p camera (the retention page has the arithmetic). Frigate's skipped_fps reads 0.0 on every camera, which is the number that would tell you Wi-Fi was losing frames. The trade-off is real but it is not a reliability trade at this distance and this count. Past about ten cameras, or through a wall, or if you find yourself reading the router's client list to see who dropped, it is time for a switch and a drill.
One more thing wired cameras give you: a way to firewall them from the internet by port on the switch. With Wi-Fi cameras you do that on the router instead; the network page covers what we recommend.
What matters more than megapixels for a cat
- The lens, not the sensor. A cat drinks at night. The C120's f/1.65 is about half a stop brighter than the C210's f/2.0, and that is the difference between a fountain that glows and a smear. Nothing in the pipeline uses more than 1440 lines and the Shorts are cropped to a tall slice anyway.
- Where it sits. A camera at cat height, aimed slightly above the bowl, is worth more than any resolution. The cameras page is entirely about this.
- One job per lens. A camera that watches "the room" gives you a ceiling and no cat. Water, food, treat, court, face: five jobs, five cameras (the bed and playroom angles make up the seven), and the same family so there is one app and one account pattern.
- Two streams. Covered above; it is the feature people forget to check and the one that decides whether the PC copes.
- A local account. The RTSP credentials should be a purpose-made camera account, not the login for your app. Every config on this site refers to it as
<CAMERA_USER>/<CAMERA_PASSWORD>.
- Find the maker's RTSP page before you buy. Model name plus RTSP. For Tapo it is FAQ 2680. For most others it is in Frigate's camera-specific notes. No page, no purchase.
-
Check for a second, smaller stream.
Tapo's is
/stream2at 640×360. Other makers call it "sub stream" or "stream 2" and let you set its size; 640×360 or thereabouts is ideal for detection. - Prefer H.264. Some cameras default to H.265 to save bandwidth. Frigate can decode it, but stream-copying it to YouTube or playing it in a browser is a fight you do not need. Set both streams to H.264 in the app if there is a choice.
-
Make sure it can hold a fixed address.
The address goes into
config.yml. A DHCP reservation on the router is the cleanest way; a static address on the camera is fine if the router does not support reservations. -
Open the stream in VLC on day one.
rtsp://<CAMERA_USER>:<CAMERA_PASSWORD>@192.168.1.<N>:554/stream1in VLC's Open Network Stream. A picture means Frigate will get a picture. Do the same for/stream2. Then go to the camera-setup page.
If you are buying today
For a room, a handful of cameras and a PC that stays on, the Tapo family is the cheap, boring, correct answer: C120 if the room is dark at night, C210 if it is not and you want to spend less. For more than a room, buy PoE cameras from any brand on the Frigate list and a small PoE switch, and put the money you save on cameras into the cable. The tapo.com links are plain product pages. The two that follow are not: they go to TP-Link's own US store through its affiliate programme, and if you buy after clicking one, this site gets a small commission at no extra cost to you. The recommendation above was written before the programme said yes and reads the same now. On the store: Tapo C120 · Tapo C210.