How-To

Local-Only Reolink Duo 3 PoE Setup for Frigate NVR

Step-by-step Frigate YAML for Reolink Duo 3 PoE: go2rtc http-flv ingest, sub-stream detect, VLAN hardening, and dual-lens stitched record—no cloud telemetry.

Privacy Smart Home Research Desk Jun 28, 2026

Keywords: reolink duo 3 poe frigate, Reolink Duo 3 Frigate YAML, local-only Reolink NVR, go2rtc http-flv Reolink, dual-lens Frigate setup, PoE camera VLAN privacy

Reolink Duo 3 PoE Frigate integration means ingesting the camera’s factory-stitched dual-lens panoramic stream through go2rtc, splitting record (main) and detect (sub) roles in config.yml, and blocking cloud/P2P egress so video never leaves your LAN. As of June 2026, Frigate’s official Reolink guidance routes 6MP+ latest-generation models like the Duo 3 through http-flv inside go2rtc—not raw RTSP on the main H.265 path—because community reports show fewer dropped frames after Frigate 0.1712.

Quick answer: How do you configure Reolink Duo 3 PoE in Frigate without cloud?

Add go2rtc http-flv streams for channel0_main.bcs and channel0_ext.bcs, point Frigate record at the restreamed main and detect at the sub, enable hardware decode on your NVR host, and firewall the camera to LAN-only with P2P disabled in Reolink settings.

Source: Frigate — Camera specific (Reolink)


Executive summary

The Reolink Duo 3 PoE is a 16MP dual-lens camera that outputs one stitched 180° feed—you do not merge left/right lenses in Frigate. The privacy win is operational: PoE backhaul, open RTSP/http-flv, and no subscription for local record. The engineering win is role separation: let the sub stream carry object detection while the main stream preserves plate-level detail on the stitched panorama.

This guide is YAML-first for buyers who already picked the Duo 3 and want a local-only Frigate NVR without Reolink cloud clips. We cross-link the hardware context in Reolink Duo 3 privacy review, protocol background in ONVIF vs RTSP, and NVR host sizing in build a local Frigate NVR.

Verdict: Marcus (one Duo 3 over driveway, N100 mini-PC, no cloud account) should deploy http-flv go2rtc + sub-stream detect and VLAN-block WAN on day one. Aisha (three Duo 3 units, Coral USB, Proxmox) should template the same YAML per camera with unique go2rtc stream names and never point detect at 7680×2160 mains—she will melt CPU and gain nothing for person detection.


Methodology: how the Duo 3 × Frigate stream matrix was built

We compared four ingest methods reported in Frigate GitHub discussions and the official Reolink camera-specific page (accessed 28 June 2026)134:

  1. Stream type — http-flv via go2rtc vs direct RTSP (h264Preview_01_*, h265Preview_01_*, Preview_01_*).
  2. Stability score (1–5) — editorial weighting from discussion #22248 and #12323 consensus through May–June 202634.
  3. Local-only posture — whether the path avoids Reolink cloud relay when WAN is blocked.
  4. CPU/GPU load — detect on sub only vs main misuse.

Where I’m less sure — exact sub-stream resolution varies by firmware; always read dimensions from Frigate’s System → FFmpeg panel after first connect.

Anecdotally, direct RTSP main on H.265 fails faster on ffmpeg 7+ than the http-flv copy path, matching Frigate maintainer guidance for 6MP+ latest Reolink hardware1.


Ingest methodgo2rtc / Frigate pathCodec (typical)Stability (1–5)Detect-safe?WAN-blocked OK?Notes
http-flv (recommended)ffmpeg:http://IP/flv?…channel0_main.bcs → restreamH.265 main / H.264 sub5Sub onlyYesOfficial Frigate pattern for Duo 3 class1
RTSP h264Preview_01_subDirect to FrigateH.2644YesYesGood fallback for detect-only tests
RTSP h265Preview_01_mainDirect or via go2rtcH.2652NoYesFrequent ffmpeg disconnects on some hosts4
RTSP Preview_01_maingo2rtc passthroughH.2653NoYesFirmware-dependent path naming
Reolink cloud / P2P appVendor relayn/an/an/aNoDefeats local-only goal—disable

Privacy note: Stability and privacy are linked—a camera that reconnects constantly tempts admins to punch WAN holes or enable P2P. Pick the stable LAN path first, then firewall.

Stat: Frigate lists 6MP or higher, latest generation Reolink cameras (Duo 3, CX-8xx) as http-flv with ffmpeg 8.0, or RTSP—with http-flv documented as the more reliable stream type.

— Frigate camera-specific documentation, accessed 28 June 2026

Dataset (JSON-LD)


Before YAML: camera prep on the Duo 3 (local-only posture)

go2rtc is Frigate’s bundled stream proxy. For Reolink 6MP+ models, it should pull http-flv from the camera once, then Frigate consumes a localhost RTSP restream—reducing duplicate authentication and smoothing H.265 quirks1.

On-camera settings (Reolink app or web UI, firmware verified June 2026):

SettingValueWhy
Encoding modeOn, fluency first (CBR)Frigate docs recommend CBR for Reolink stability1
I-frame interval frame rateReduces long-GOP decode stalls
HTTP / HTTPSHTTP enabled (advanced network)Required for http-flv ingest
P2P / UIDOffStops cloud rendezvous when WAN blocked
UPnPOffPrevents router pinholes
NTPLocal NTP (optional)Avoids hardcoded vendor time servers if you block WAN

Network: Assign the camera a static DHCP lease on an IoT VLAN (e.g. 10.50.0.0/24). Apply deny WAN egress per block smart devices from the internet. The camera needs L3 access to your Frigate host on ports 80/554/1935—not the public internet.

Checklist

  • Static IP or DHCP reservation for Duo 3
  • Change default admin password
  • CBR fluency first + 1× iframe
  • HTTP enabled; P2P and UPnP disabled
  • IoT VLAN with deny-WAN firewall rule
  • Test http-flv URL in go2rtc before enabling detect

Reference YAML: local-only Duo 3 on Frigate (go2rtc http-flv)

Replace DUO3_IP, FRIGATE_RTSP_USER, and FRIGATE_RTSP_PASSWORD. Frigate substitutes {FRIGATE_RTSP_USER} / {FRIGATE_RTSP_PASSWORD} from env vars when configured1.

# frigate/config/config.yml — Duo 3 PoE local-only baseline (June 2026)

mqtt:
  enabled: false  # optional; enable only if your broker is LAN-only

go2rtc:
  streams:
    duo3_driveway:
      - "ffmpeg:http://DUO3_IP/flv?port=1935&app=bcs&stream=channel0_main.bcs&user={FRIGATE_RTSP_USER}&password={FRIGATE_RTSP_PASSWORD}#video=copy#audio=copy#audio=opus"
    duo3_driveway_sub:
      - "ffmpeg:http://DUO3_IP/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user={FRIGATE_RTSP_USER}&password={FRIGATE_RTSP_PASSWORD}"

cameras:
  duo3_driveway:
    enabled: true
    ffmpeg:
      # Intel QSV example — swap for vaapi / coral host per your hardware
      hwaccel_args: preset-intel-qsv-h265
      inputs:
        - path: rtsp://127.0.0.1:8554/duo3_driveway
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/duo3_driveway_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      enabled: true
      width: 1280   # optional cap — remove to auto-detect sub dimensions
      height: 352
      fps: 5
    record:
      enabled: true
      retain:
        days: 14
        mode: motion
    snapshots:
      enabled: true
      retain:
        default: 14
    motion:
      threshold: 30
      contour_area: 50

Docker env (compose excerpt) for credential injection:

services:
  frigate:
    image: ghcr.io/blakeblackshear/frigate:stable
    privileged: true
    environment:
      - FRIGATE_RTSP_USER=admin
      - FRIGATE_RTSP_PASSWORD=your_long_lan_only_secret
    volumes:
      - ./config:/config
      - /etc/localtime:/etc/localtime:ro
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000

After docker compose up -d, open http://frigate-host:5000System → confirm camera fps on detect ≈ 5 and recording shows the stitched panorama.


Dual-lens “stitching”: what Frigate actually receives

The Duo 3’s dual lenses are fused in firmware into a single 180° channel—there is no left_lens / right_lens pair to combine in YAML. “Stitching” in search queries means preserving that panoramic main in your NVR without sending it to Reolink Cloud.

Stream roleTypical resolutionFrigate rolePrivacy / perf note
Main (stitched)up to 7680×2160recordHigh disk use; keep on LAN disk only
Sub (stitched)~896×2561280×352detectLow CPU; sufficient for person/vehicle models
AudioAAC / opus via go2rtcoptionalDisable if you do not need audio events

Worked example — Marcus, suburban driveway (1× Duo 3, N100, June 2026): Marcus blocks 10.50.0.44 from WAN on OPNsense, uses the YAML above with 14-day motion retain on a 2 TB BTRFS volume, and browses clips in Frigate only. His sub stream runs 896×256 @ 5 fps; CPU detect stays under 35% without Coral. Total extra cost beyond the ~$219 camera (Reolink store MSRP checked 28 June 2026): $35 PoE injector + $18 patch cable.

Worked example — Aisha, corner lot (3× Duo 3, i5 NVR + Coral USB): Aisha clones the go2rtc block three times (duo3_front, duo3_side, duo3_rear), assigns distinct IoT /24 leases, and maps QSV h265 on record + Coral detect. She caps detect width at 1280 because wider subs rarely improve label scores but cost ~8 ms inference per frame on CPU fallback.

http-flv + go2rtc — pros
  • Matches Frigate maintainer guidance for Duo 3 class hardware.
  • Single authenticated pull; Frigate hits localhost restream.
  • Survives many ffmpeg 7/8 upgrades better than raw H.265 RTSP.
http-flv + go2rtc — cons
  • Requires HTTP enabled on camera (still LAN-only if firewalled).
  • Slightly more moving parts than naive RTSP URL in one input.
  • Two-way talk needs extra RTSP sidecar per Frigate docs1.

RTSP fallback (when http-flv is blocked by policy)

Some admins prohibit HTTP on cameras entirely. Frigate documents RTSP as secondary for 6MP+ latest Reolink units1. Test sub-first:

go2rtc:
  streams:
    duo3_sub_rtsp:
      - rtsp://admin:PASSWORD@DUO3_IP:554/h264Preview_01_sub

cameras:
  duo3_driveway:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/duo3_sub_rtsp
          input_args: preset-rtsp-restream
          roles:
            - detect
            - record   # temporary — split when main is stable

Steel-man: RTSP-only purists argue http-flv is another parser surface and prefer one protocol end-to-end. On paper, that simplifies audits.

Rebuttal: On Duo 3 hardware, empirical stability on Frigate 0.17+ favors http-flv for the H.265 main; RTSP remains valid for sub detect or lab environments where you accept occasional ffmpeg restarts. For Marcus’s single-camera install, http-flv saves weekend troubleshooting; for Aisha’s triple install, it avoids 3 AM gap alerts.


Hardware decode and detector pairing

The stitched main is H.265 on most firmware builds. Pair record with Intel QSV, VAAPI, or NVIDIA NVDEC on the Frigate host—see Intel QuickSync on NASync for /dev/dri patterns.

Host classRecord decodeDetect backendDuo 3 count (editorial est.)
N100 mini-PC, QSVpreset-intel-qsv-h265CPU1–2
N100 + Coral USBQSVCoral3–4
i5 NVR + CoralQSVCoral4–6 Duo 3 subs @ 5 fps

I haven’t tested every Alder Lake-N box with 7680×2160 continuous record; your mileage will vary depending on bitrate caps and motion-only retain.


Troubleshooting checklist

SymptomLikely causeFix
No frames after Frigate 0.17ffmpeg + H.265 RTSP mainSwitch main to http-flv go2rtc path3
Detect CPU > 60%Detect on main streamMove detect to channel0_ext.bcs sub only
Green/garbled live viewBrowser H.265 limitationUse Frigate UI; enable apple_compatibility: true if needed
Intermittent disconnectsVBR + long GOPForce CBR fluency first, iframe 1×1
Works until WAN blockedP2P/DNS dependencyStatic IP, local DNS, deny WAN except NTP if required

Validate go2rtc directly: http://frigate-host:1984 → open stream duo3_driveway before editing Frigate roles.

Step-by-step diagram for local-only Reolink Duo 3 PoE integration with Frigate NVR showing go2rtc http-flv stream ingest, dual-lens stitched main record path, sub-stream object detection, IoT VLAN firewall rules, and YAML config blocks without mandatory Reolink cloud or P2P telemetry for privacy-focused home surveillance.
Flow: Duo 3 stitched panorama → go2rtc http-flv → Frigate record/detect split → local disk only.

Verdict

For reolink duo 3 poe frigate installs in June 2026, treat http-flv go2rtc ingest + sub-stream detect + WAN-blocked IoT VLAN as the default production stack—not Reolink Cloud and not 16MP detect. Marcus should be done in an afternoon on one N100. Aisha should template YAML per camera and budget Coral once aggregate subs exceed three.

The Duo 3 is not the most privacy-perfect camera on the market—Reolink still ships optional cloud hooks—but with P2P off and Frigate owning retention, you keep stitched 180° evidence on disks you control. For brand-level tradeoffs, read Reolink vs Ubiquiti local-only privacy.


FAQ

Frequently Asked Questions

Does Frigate need to stitch the Duo 3 dual lenses manually?

No—the camera outputs one fused panoramic stream. Configure one Frigate camera with main for record and sub for detect.

Should I use RTSP or http-flv for Reolink Duo 3 in Frigate?

Prefer http-flv via go2rtc for the main path on 6MP+ latest Reolink models; use RTSP sub for fallback testing.

What detect resolution should I set for the Duo 3 sub stream?

Start with auto-detect; cap width around 1280 if CPU is high. Never detect on the 16MP main.

Can the Reolink Duo 3 work with Frigate fully offline?

Yes after setup—block WAN, disable P2P, and use Frigate for viewing and clips.

Why does my Duo 3 main stream fail after a Frigate update?

Check ffmpeg version notes and migrate main ingest to http-flv; verify CBR and 1× iframe on the camera.

Do I need a Coral TPU for one Duo 3 camera?

Not for a single sub stream on modern x86; add Coral when you run three or more detect streams.


Primary sources

#SourceURL
1Frigate — Camera specific (Reolink)https://docs.frigate.video/configuration/camera_specific/
2Frigate — Installationhttps://docs.frigate.video/frigate/installation
3GitHub — Duo 3 frames after 0.17 (#22248)https://github.com/blakeblackshear/frigate/discussions/22248
4GitHub — Reolink Duo 3 POE support (#12323)https://github.com/blakeblackshear/frigate/discussions/12323
5Reolink — Duo 3 PoE product pagehttps://reolink.com/product/duo-3-poe/
6Privacy Smart Home — Duo 3 review/guides/reolink-duo-3-poe-local-nvr-frigate-privacy-review-2026/
7Privacy Smart Home — Block IoT WAN/guides/how-to-block-smart-home-devices-from-accessing-the-internet/
8Privacy Smart Home — Frigate NVR build/guides/build-local-nvr-ugreen-nasync-frigate-2026/

Footnotes

  1. Frigate documentation — Camera specific configurations (Reolink), accessed 28 June 2026. https://docs.frigate.video/configuration/camera_specific/ 2 3 4 5 6 7 8 9 10

  2. Frigate GitHub Discussion #22248 — Reolink DUO3 does not receive frames after 0.17 update, June 2026. https://github.com/blakeblackshear/frigate/discussions/22248

  3. Frigate GitHub Discussion #22248 — recommended http-flv go2rtc structure for Duo 3 class cameras. 2 3

  4. Frigate GitHub Discussion #12323 — Reolink Duo 3 POE RTSP path notes and ffmpeg version behavior. https://github.com/blakeblackshear/frigate/discussions/12323 2 3