Reverse-engineered RTSP/HTTP server for ultra-cheap iLnkP2P IP cameras (X5, A9, A7)
Re-implementation of the iLnkP2P/PPPP protocol used on cheap (<$5) IP cameras with the TXW817 chip. Streams camera video directly to NVRs, VLC, Blue Iris, Home Assistant, or any RTSP/MJPEG client -- no cloud, no app, no intermediaries.
Tested with X5, A9, and A7 1080p. App: YsxLite.
- RTSP server -- H.264 (via GStreamer) or JPEG/RTP, TCP and UDP transport
- HTTP server -- MJPEG streaming + web UI dashboard
- Multi-camera support, audio & video
- Rotation / mirroring, friendly names
- WiFi camera configuration (pairing)
- Single frame capture
npm install && npm run build
# RTSP (for NVR / VLC / Blue Iris)
node dist/bin.cjs rtsp_server --discovery_ip 192.168.1.255
# HTTP (for browser)
node dist/bin.cjs http_server --discovery_ip 192.168.1.255Connect to rtsp://<your-ip>:8554/camera or open http://localhost:5000.
| Architecture | Project structure, data flow, source files |
| Initial Setup | Building, pairing cameras, running, config |
| RTSP Server | RTSP/RTP streaming, H.264/JPEG modes, compatibility |
| HTTP Server | MJPEG streaming, web UI, routes |
| iLnkP2P Protocol | Reverse-engineered camera protocol |
| GStreamer | JPEG-to-H.264 transcoding pipeline |
| Reverse Engineering | Ghidra, Frida, Wireshark dissector |
Per pictures of the X5 and A9, the main chip is TXW817 (chinese, english).
The cameras connect to Tencent cloud servers on boot. Block outbound internet access on your router. Both servers work fully offline. See Protocol docs for details on the spyware IPs.
OpenBK7231T provides open firmware for XR872, but the camera driver is not yet implemented. cam-reverse-rtsp is the current best option for local streaming.
npm run build # esbuild -> dist/bin.cjs
npm run typecheck # TypeScript type checking
npm test # Mocha testsPre-built binaries: CI results | Releases
See repository for license details. This is a fork of DavidVentura/cam-reverse.

