Lightweight, self-hosted NVR for ONVIF / RTSP / RTMP / GB28181 cameras.
Live view · recording · playback · PTZ · WebRTC / FLV · H.265
Website · Live demo · Docs · Releases · Issues
English · 简体中文
CCNVR is a self-hosted network video recorder for small and mid-size deployments. One package contains the server, web console, media server and a static ffmpeg — no plugin, cloud account or external media server.
This repository distributes releases only; CCNVR is proprietary and the source is not published.
| URL | Username | Password |
|---|---|---|
| https://demo.ccnvr.com | ccnvr_user |
ccnvr_user |
Shared instance — please don't change the password or delete devices.Some features are hidden; you can install them yourself.
| Ingest | RTSP, ONVIF, RTMP push, GB28181 |
| Web playback | WebRTC, HTTP-FLV, WS-FLV — no plugin, sub-second latency |
| Recording | Continuous / event plans, weekly schedules, per-plan retention |
| Playback | Timeline, download, storage cleanup |
| PTZ | ONVIF and GB28181 |
| Codec | H.264 / H.265, including in-browser H.265 |
| Alarms & events | GB28181 alarms, AI events, snapshots, webhook |
| Access control | Users, roles, per-channel permissions |
| Deployment | Windows, Linux, Docker |
Live view — video, stream info and playback URLs in one screen.
| Devices | Playback |
|---|---|
![]() |
![]() |
| Live thumbnails and recording status | Timeline playback, date picker and clip download |
The first visit opens the setup wizard: language, network, product name and admin password. Default account is admin / admin; the default password cannot be kept.
- Download
ccnvr-windows-amd64-<version>.zipfrom Releases and extract it. - Run
start.batand allow the firewall prompt. - Open http://localhost:16188. Stop with
stop.bat.
tar -xzf ccnvr-linux-amd64-*.tar.gz
cd ccnvr-linux-amd64
./start.sh # background start, prints the access URLs
sudo ./start.sh service # optional: systemd, start on bootStop with ./stop.sh. All default ports are above 1024, so ./start.sh does not need root.
docker run -d --name ccnvr --restart always \
-p 16188:16188 \
-p 15060:15060/tcp -p 15060:15060/udp \
-p 31100-31200:31100-31200/tcp -p 31100-31200:31100-31200/udp \
-v /opt/ccnvr/configs:/opt/media/bin/configs \
-v /opt/ccnvr/records:/opt/media/bin/records \
ccnvr/ccnvr:latestconfigsholds the config, database, machine ID and license — always mount it.- GB28181 requires UDP 15060, in the host firewall and the cloud security group.
- ONVIF discovery needs
--network hoston Linux; on Windows/macOS add cameras by RTSP URL.
| Port | Purpose |
|---|---|
| 16188 | Web console and API — required |
| 15060 | GB28181 SIP — TCP + UDP |
| 31100–31200 | GB28181 media — TCP + UDP |
| 25540 / 19350 / 31300 | Optional RTSP / RTMP / WebRTC — off by default |
| 16198 | Internal media API — never expose |
On a cloud server, open these in the security group as well as the host firewall.
| Bugs and feature requests | GitHub Issues |
| Licensing and OEM | Contact page |
| Security | Private advisory — not a public issue |
You can also reach us directly by scanning a QR code:
![]() |
![]() |
© 2026 CCNVR. All rights reserved. See LICENSE.





