Cameras
Reolink cameras with Frigate: streams, models, gotchas
Make Reolink cameras reliable in Frigate: http-flv vs RTSP by model, main and sub stream roles, the two camera settings that matter, on-camera AI vs Frigate detection, and what to avoid.
Problem summary
Reolink is the most-bought PoE camera brand in home setups and the one that generates the most Frigate support threads, because Reolink's RTSP is unreliable on many hardware versions and its 4K models encode H.265 that the http-flv path cannot carry. The recipe that works: use Reolink's HTTP FLV streams (main for recording, ext or sub for detection) through go2rtc, set the camera to 'On, fluency first' (constant bit rate) and 'Interframe Space 1x', keep detection on a small H.264 sub stream at about 5 fps, and only use RTSP where Frigate's table says to (older 6MP-plus models) or as a secondary input for two-way talk. Reolink's own Smart Detection (person, vehicle, pet, animal, package on doorbells) runs on the camera and feeds the Reolink app and Home Assistant's Reolink integration; Frigate ignores it and runs its own detector on the sub stream, so the two coexist without conflict. Buying advice, from Frigate's own hardware page: stick to Reolink models of 5MP and lower, and if you are choosing new cameras, Dahua, Hikvision and Amcrest are recommended ahead of Reolink.
Look up the camera's resolution and generation against Frigate's Reolink table.
ffplay "http://CAMERA-IP/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=USER&password=PASS"
5MP or lower → http-flv; 6MP+ latest (Duo 3, CX-8xx) → enhanced http-flv (ffmpeg 8) or RTSP; 6MP+ older (RLC-8xx) → RTSP.
Stop before forwarding the camera's web, RTSP or FLV ports to the internet.
Layer path
Step-by-step runbook
Start here. Do each check in order, compare it to the expected result, and stop when the evidence explains the failure or the safe stop point applies.
Classify each Reolink camera
Check: Note model, resolution, generation, and whether it lists RTSP/ONVIF in Reolink's support article.
Expected result: You know the transport Frigate's table prescribes for each camera.
If not: A camera with no local stream is not a Frigate camera; plan a replacement.
Set the camera
Check: Main stream H.264 (below 4K on 8MP models unless using RTSP/enhanced FLV), 15 fps; sub or ext stream at about 640x360, 5 fps, same aspect ratio; 'On, fluency first'; 'Interframe Space 1x'; HTTP enabled.
Expected result: Steady streams that Frigate's decoder can hold.
If not: If a setting is missing, update the camera firmware first.
Define the streams in go2rtc
Check: Main and sub as `ffmpeg:http://IP/flv?...channel0_main.bcs...` and `..._ext.bcs...`; for two-way talk add the `Preview_01_sub` RTSP source without `ffmpeg:`.
Expected result: Both streams show producers connected in go2rtc.
If not: Test each URL with ffplay before blaming Frigate.
Assign roles in Frigate
Check: Camera inputs from `rtsp://127.0.0.1:8554/<stream>` with `preset-rtsp-restream`; record on main, detect (and audio if wanted) on sub; detect width/height matching the sub stream.
Expected result: Recordings at full quality, detection cheap, live view via go2rtc.
If not: If CPU is high, detection is on the wrong stream or fps is too high.
Decide what the camera's own AI is for
Check: Leave Reolink Smart Detection on if you use the Reolink app or Home Assistant's Reolink integration; configure Frigate zones and objects independently.
Expected result: Two detectors, no conflict, each feeding its own consumer.
If not: Do not expect Frigate to show camera-side detections; it never reads them.
Isolate and verify
Check: Cameras on a VLAN with no internet, no port forwards, Frigate reachable only on the LAN or over Tailscale; then watch a day of recordings for gaps.
Expected result: Continuous recordings and events with no dropouts.
If not: Gaps mean the transport or CBR settings; revisit steps 2 and 3.
Safe stop: Stop before forwarding the camera's web, RTSP or FLV ports to the internet.
Decision tree
If: 5MP or lower Reolink PoE camera (RLC-510A, RLC-520A, RLC-511 class).
Then: The documented sweet spot.
Action: http-flv main for record, http-flv ext or sub for detect, both via go2rtc with `preset-rtsp-restream` on the Frigate side.
If: 8MP or 12MP Reolink on the newest generation (Duo 3, CX-8xx).
Then: H.265 main stream.
Action: Use the enhanced http-flv over H.265 (requires ffmpeg 8.0 in Frigate) or RTSP for the main stream; keep the sub stream on http-flv for detection.
If: 8MP Reolink on an older generation (RLC-810A, RLC-811A class).
Then: FLV cannot carry its H.265 main stream.
Action: RTSP for the main/record stream, http-flv for the sub/detect stream; or drop the main stream to a 5MP H.264 setting.
If: Cameras connected through a Reolink NVR.
Then: The NVR re-exposes each camera as a channel.
Action: Use the NVR's IP with `channelN_main.bcs` / `channelN_ext.bcs` (N = 0 to 15) and the NVR's credentials.
If: You want two-way talk on a doorbell or camera in Frigate's live view.
Then: Supported on Reolink's latest cameras with a two-source go2rtc stream.
Action: Keep http-flv for video; add `rtsp://USER:PASS@IP/Preview_01_sub` (no `ffmpeg:` prefix) as the audio-capable second source; enable HTTP in the camera's advanced network settings.
If: Battery Reolink (Argus, Go) or a Wi-Fi model without RTSP.
Then: No local stream to give Frigate.
Action: Not a Frigate camera. Use it in the Reolink app, or replace it with a PoE model that lists RTSP and ONVIF.
Safe stop: Stop before buying more of the same model for Frigate; check Reolink's RTSP/ONVIF list first.
Evidence table
| Symptom | Evidence to collect | Likely layer | Next action |
|---|---|---|---|
| Frigate logs 'no frames have been received' for the Reolink camera. | Transport in the go2rtc source (rtsp vs http-flv) and the model's row in Frigate's table. | Wrong transport for the model. | Switch to the documented transport; test the FLV URL in VLC first. |
| Live view is grey or black on the 4K main stream but the sub stream works. | Main stream codec in the camera UI. | H.265 over FLV. | RTSP or enhanced http-flv (ffmpeg 8) for main, or lower the resolution below 4K. |
| Stream stutters, freezes for seconds, recovers slowly. | Bitrate mode and interframe space settings. | Variable bit rate and long keyframe interval. | Set 'On, fluency first' and 'Interframe Space 1x'. |
| High CPU on the Frigate host with only a few cameras. | Which stream has the detect role and its resolution and fps. | Detecting on the full main stream. | Detect on the sub stream at about 5 fps. |
| Person alerts in the Reolink app but no Frigate event, or vice versa. | Where each system detects: camera Smart Detection vs Frigate's detector and zones. | Two independent detectors with different zones and thresholds. | Tune Frigate's zones and min_score; the camera's AI does not feed Frigate. |
Commands and settings paths
Prove the FLV main stream plays before touching Frigate
ffplay "http://CAMERA-IP/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=USER&password=PASS"
Where: Any PC on the camera VLAN with ffmpeg installed (VLC 'Open Network Stream' also works).
Expected: Video plays within a couple of seconds.
Failure means: No video means HTTP is disabled on the camera, wrong credentials, or an H.265 main stream.
Safe next step: Enable HTTP in the camera's network settings; test the `_sub` URL to separate codec from auth problems.
Read the codec and resolution Frigate is receiving
ffprobe -v error -show_streams "http://CAMERA-IP/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=USER&password=PASS"
Where: Same PC as above.
Expected: codec_name=h264 with the width, height and frame rate you configured.
Failure means: hevc on a stream you send over FLV explains a blank view.
Safe next step: Lower the main stream below 4K or use RTSP/enhanced http-flv per Frigate's table.
Check go2rtc's view of the stream inside Frigate
Frigate UI → System → go2rtc (or http://FRIGATE-IP:1984/api/streams)
Where: Browser on your LAN.
Expected: The Reolink stream shows producers connected and consumers (record/detect) attached.
Failure means: Producer errors or reconnect loops point at the transport or the camera settings.
Safe next step: Fix transport and CBR/keyframe settings; restart the camera in Frigate.
Confirm the camera is isolated from the internet
Router or firewall rules for the camera VLAN, plus `curl -m 5 https://1.1.1.1` from a host on that VLAN
Where: Your router UI and a test device on the camera VLAN.
Expected: Cameras reach Frigate and NTP only; the test to the internet fails.
Failure means: A camera VLAN with internet access can phone home and be reached if credentials leak.
Safe next step: Block the VLAN's WAN access; allow only Frigate and NTP.
Hardware and platform boundary
Change only when
- Replace or add cameras when a Reolink model has no local stream (battery, some Wi-Fi), or when a 4K Reolink keeps failing after the documented transport fixes; Frigate's hardware page recommends Dahua, Hikvision and Amcrest ahead of Reolink for new purchases.
Evidence that matters
- PoE, a listed RTSP/ONVIF spec, H.264 on at least the sub stream, a true second stream you can set to about 640x360 at 5 fps, and constant-bit-rate and keyframe-interval controls in the firmware.
Evidence that does not matter
- Headline megapixels above 5MP for a home Frigate setup, and the camera's own AI marketing; Frigate does detection itself.
Avoid
- Avoid battery cameras for Frigate, avoid relying on Reolink RTSP where the table says http-flv, and avoid exposing camera ports to the internet.
Related tool/calculator
Use the linked calculator or tool to turn this runbook into numbers for your exact setup.
Frigate hardware plannerRelated problems
Last reviewed
2026-09-06 · Reviewed by HomeTechOps. Written to answer the most-asked camera question in Frigate's community in 2026 ('Reolink cameras now have their own AI, is Frigate still compatible', unanswered GitHub camera-recommendation threads, r/frigate_nvr). Every transport rule is taken from Frigate's camera-specific documentation table and Reolink's own FLV and RTSP/ONVIF support articles rather than from forum lore, and the page is explicit that Frigate recommends other brands first. On-camera Smart Detection is described as coexisting with Frigate, not feeding it, because that is how the software actually behaves. No camera was bench-tested for this page.
Sources/assumptions
- Stream recommendations follow Frigate's camera-specific documentation (checked 2026-09-06): 5MP-and-lower Reolink cameras of any generation should use http-flv (H.264); 6MP-plus on the latest generation (Duo 3, CX-8xx) can use http-flv-enhanced over H.265 with ffmpeg 8.0 or RTSP; 6MP-plus on older generations (RLC-8xx) should use RTSP.
- The FLV URL format, port 1935, channel numbering from 0, and the H.264-only limitation of FLV are from Reolink's own 'Introduction to FLV Stream' support article. Which Reolink models support RTSP and ONVIF at all is from Reolink's 'Which Reolink Products Support CGI/RTSP/ONVIF' article; battery and some Wi-Fi models do not.
- Smart Detection categories (person on all cameras; vehicle on all except E1 Indoor and FE series; pet/animal by model and firmware; visitor and package on doorbells) are from Reolink's Smart Detection article. Frigate does not consume camera-side detections; it runs its own detector.
- Frigate's hardware page recommends Dahua, Hikvision and Amcrest in that order and notes many user reports of problems with 4K-plus Reolink cameras. This page reports that guidance; it does not test cameras.
Source-backed checks
HomeTechOps turns official docs and conservative safety rules into a shorter runbook. These links are the source trail for the page direction.
Planning a purchase?
We keep a source-backed, price-free comparison so you can buy once and right. No star ratings, every spec cited.
Local Cameras: ONVIF vs UniFi vs Cloud →