Technical reference for how Neolink communicates with Reolink "Baichuan" (BC) P2P cameras and serves them over RTSP. These documents describe how the system actually works (grounded in the source), organised one topic per file.
config ─▶ NeoReactor ─▶ NeoCam ──(on demand)──▶ discovery/lookup ─▶ P2P/relay connect
│
▼
BC control channel (login, encryption,
stream requests, PTZ, talk, …)
│
┌──────────────┴───────────────┐
▼ ▼
media substream (BcMedia) two-way audio (talk)
│
▼
RTSP factory (timestamping) ─▶ RTSP clients
- Ownership & lifecycle — the reactor lazily creates a per-camera actor; a permit system connects on demand and disconnects when idle.
- Discovery — a UID is resolved via Reolink lookup servers (region-selectable) and a connection is negotiated over LAN, P2P hole-punch, or relay.
- BC control protocol — an encrypted, framed request/reply channel.
- Media — video/audio arrive as the BcMedia substream and are re-timestamped for RTSP; audio can also be sent back to the camera (talk).
- Transport & bandwidth — a reliable-UDP layer with CUBIC flow control governs stream bitrate.
| Topic | File |
|---|---|
| Camera-ownership model (reactor / actors / permits) | architecture.md |
Connection modes & lifecycle (connect_mode, reconnect, backoff) |
connection-modes.md |
| Connection, discovery methods, regions, bandwidth, UDP flow control, diagnostics | connection-and-bandwidth.md |
| UDP discovery / P2P negotiation handshake (message catalog & sequences) | discovery-handshake.md |
| BC control protocol (framing, modern/legacy, binary mode, encryption, message IDs) | bc-protocol.md |
| Media substream format (BcMedia), codecs, stream kinds | media-streams.md |
| A/V timestamping on the RTSP output | av-timestamping.md |
| Two-way audio (talk) | two-way-audio.md |
| Reolink SongP2P / RDT — empirical notes | reolink.md |
| Home Assistant integration (go2rtc, WebRTC/MSE/HLS, H264/H265, viewing cards) | home-assistant.md |
Per-camera configuration options and their defaults are documented in the project
README.md ("Camera Configuration Reference").