Adding Cameras
SkyView natively connects only to RTSP and ONVIF. Proprietary protocols (Tapo / Xiaomi / Wyze, etc.) are bridged to RTSP via go2rtc and then added. This chapter covers various connection scenarios and advanced features.
ONVIF auto-discovery (preferred)
If the camera and SkyView are on the same LAN and the camera has ONVIF enabled (on by default from the factory):
- 1
Scan
Web admin → Cameras → Add → choose "ONVIF auto-discovery"; after a few seconds all ONVIF devices on the LAN are listed
- 2
Pick the target
Find the IP / MAC / vendor matching your camera and select it
- 3
Enter credentials
The ONVIF username and password (not necessarily the same as the RTSP password! Hikvision/Dahua factory defaults are often admin/12345 or similar)
- 4
Save
SkyView automatically negotiates the main/sub stream addresses and probes the PTZ / two-way audio ports, storing them all together
ONVIF returns the wrong IP
Manual RTSP
Use the manual method when ONVIF isn't supported or returns a wrong address. You need to find the RTSP URL from the vendor manual or the IPC app; common formats:
| Brand | Example RTSP main-stream address |
|---|---|
| Hikvision | rtsp://user:password@IP:554/Streaming/Channels/101 |
| Dahua | rtsp://user:password@IP:554/cam/realmonitor?channel=1&subtype=0 |
| TP-Link Vigi (IPC, not Tapo) | rtsp://user:password@IP:554/stream1 |
| Xiaomi / Aqara / Imou and other proprietary protocols | Direct RTSP not supported — use the go2rtc approach below |
Verify with VLC
Tapo / Xiaomi / Wyze and other proprietary protocols → go2rtc bridge
Consumer cameras like the TP-Link Tapo C100/C200/C220, Xiaomi Mi Home, and Wyze don't enable standard RTSP, but the community project go2rtc can bridge them to RTSP for SkyView to connect to.
- 1
Start a go2rtc container
On the same machine as SkyView is fine; port 1984 is go2rtc's web UI and 8554 is the RTSP it exposes.
bashdocker run -d --name go2rtc \ --restart=always \ --network host \ -v $(pwd)/go2rtc.yaml:/config/go2rtc.yaml \ alexxit/go2rtc - 2
Configure cameras in go2rtc.yaml
Tapo example: the Tapo app's guest account is enough.
yamlstreams: livingroom: tapo://guest_password@cameraIP:554/stream1 kitchen: tapo://guest_password@anotherIP:554/stream1 - 3
Add the camera in SkyView
Use the manual RTSP method, set the URL to
rtsp://<go2rtc host IP>:8554/livingroom, and leave credentials blank.
Why substreams matter
ONVIF / mainstream IPCs provide two streams: a main stream (HD, for Live viewing) and a substream (low-res, for AI detection). SkyView automatically obtains the substream address via ONVIF. With manual RTSP, we recommend filling the substream URL in the second field, which lets detection save 70%+ on bandwidth and CPU.
Substreams cut resource usage
Video codec: prefer H.264, avoid H.265
At the same quality, H.265 (HEVC) has a 40~50% lower bitrate than H.264, which looks economical, but browser playback support is poor — most users get a black screen / spinner when viewing Live or playback in the web admin. Before enabling a camera, change its codec to H.264.
| Client | H.264 | H.265 (HEVC) |
|---|---|---|
| Chrome / Edge (Windows / Linux) | ✅ Perfect support | ❌ Won't decode by default, black screen / spinner |
| Safari (macOS / iOS) / Chrome (macOS) | ✅ Perfect support | ✅ Supported, but some older devices stutter |
| SkyView Android / iOS app | ✅ Perfect support | ✅ Native player, perfect support |
How to change it
H.264. Change both the main stream and the substream. Some Hikvision models have a modified H.264+ format; choosing standard H.264 is most reliable. After changing, verify once in VLC that it plays correctly.Roughly doubling recording space is acceptable
PTZ control (pan/tilt/zoom)
For ONVIF-connected cameras that support PTZ, direction / zoom buttons appear automatically at the bottom-right of the Live page. Manually-added RTSP cameras don't enable it automatically; you need to fill in the ONVIF port (usually 80 / 8000) and PTZ credentials in the camera details.
Two-way audio (Talkback)
Cameras supporting the ONVIF backchannel allow two-way audio (hold the microphone button in the app to talk and the other side hears you). The web admin doesn't support initiating talkback yet; only the mobile apps (iOS / Android) have the hold-to-talk button.
Release before switching cameras
Notes on editing / deleting cameras
- After changing the RTSP URL, detection may not restart automatically: because there's a "detection failed" status record for that camera, you need to click "Clear detection error" in the camera details for it to run again
- Deleting a camera also removes the database record and the streaming path, but the recording files are not deleted — to avoid accidentally destroying evidence. Delete them manually under
data/recordings/<id>/ - Renaming / regrouping affects neither recordings nor event history
Hikvision / Dahua / TP-Link Vigi (professional IPC)
These three are mainstream commercial IPC brands, all with standard ONVIF + RTSP across their lineups and the best SkyView compatibility. Factory default credentials:
| Brand | Default account | First-connection tips |
|---|---|---|
| Hikvision | admin / custom (forced to set on first boot) | If ONVIF can't get a stream, log into the camera's web UI and enable the ONVIF protocol |
| Dahua | admin / admin | The default ONVIF port 80 is shared with HTTP |
| TP-Link Vigi | admin / custom | ONVIF is off from the factory; enable it via the Vigi app first |
GB28181 (Chinese national standard — Hikvision / Dahua / Uniview NVR·IPC·DVR)
GB/T 28181 devices register themselves into SkyView — no need to enter an RTSP URL per camera, and every channel under one NVR can be batch-imported. Most national-standard IPCs, NVRs and DVRs from Hikvision / Dahua / Uniview ship with an "upstream platform (GB28181)" option. Requires SkyView 0.9.13 or later.
Off by default — upgrades are seamless
Step 1 — Enable GB28181 in SkyView
- 1
Turn it on
Web Admin → Settings → GB28181 → toggle Enable.
- 2
Set a registration password
The page shows the platform parameters to enter into your devices and lets you set a registration password (shared by all devices). The default platform parameters usually work as-is.
- 3
Set extern_host for remote access
If the device and SkyView are on different networks, put the address your device can reach you back on (public IP or a router-mapped address) into extern_host; leave it blank for same-subnet direct connections.
- 4
Save
After saving, the GB28181 service starts listening on 25060 and waits for devices to register.
| Platform parameter | Default | Notes |
|---|---|---|
| Platform SIP ID / upstream ID | 34020000002000000001 | Enter as the device's "upstream platform GB ID" |
| SIP domain / realm | 3402000000 | Leave blank to auto-use the first 10 digits of the SIP ID |
| SIP server address | SkyView host LAN IP (e.g. 192.168.1.50) | The device must be able to reach this |
| SIP server port | 25060 | |
| Registration password | Set your own | Shared by all devices |
Step 2 — Configure the "upstream platform" on the device / NVR
In the device's web UI, find "Platform Access / GB28181 / Upstream Platform" (wording varies by vendor) and fill in the table below. After saving, the device registers itself — an NVR reports all of its channels at once:
| Field on the device | What to enter |
|---|---|
| Upstream SIP server ID | SkyView's SIP ID (34020000002000000001) |
| SIP server domain | SkyView's SIP domain (3402000000) |
| SIP server address / IP | SkyView host address (LAN IP locally; the extern_host address over the internet) |
| SIP server port | 25060 |
| Registration username / device GB ID | The device's built-in 20-digit GB ID, or make one up |
| Registration password | The registration password you set in SkyView |
| Transport | UDP |
Step 3 — Import channels and use them like any camera
Back in Web Admin → GB28181 page → "Devices / channels to import": successfully registered devices and NVR channels appear here. Tick the channels you want and click Import (multi-select; import all of an NVR's channels at once). Once imported, these channels behave like ordinary cameras — live view, recording, AI detection, snapshots, online status, PTZ + presets, two-way talk and on-device playback all work, identical in the UI to RTSP / ONVIF cameras.
Remote / cross-network deployment
| Port | Protocol | Purpose |
|---|---|---|
| 25060 | UDP | GB28181 SIP signaling (register / catalog / start-stop stream) |
| 30000 | UDP | GB28181 RTP media (device push; multiple streams share one port) |
Won't connect / no picture?