How to connect HikVision cameras off site

I’m doing an internship at a company and I had to connect cameras in construction site to a completely off site office that has a different network.

I connected using Cloud P2P but that streams only for 5 minutes and then stops streaming but my Manager doesn’t want that. How can I stream the live feed 24/7 for free?

Just use the Hik-Connect app from the app stores - its free and you can view them on any phone at any time.

:fire::video_camera: 24/7 CONSTRUCTION-SITE CAMERA STREAMING TO AN OFF-SITE OFFICE — FREE, STABLE & SECURE :globe_with_meridians::building_construction:


:bullseye: Cloud P2P stopping after five minutes is usually a vendor/app limit, not a camera limit. The practical free solution is to access the cameras or NVR through their RTSP/ONVIF stream over a secure site-to-office VPN — not by exposing camera ports directly to the internet. :backhand_index_pointing_down:


:brain: FIRST — CHECK WHAT YOU HAVE

IDENTIFY THE CAMERA SETUP:
──────────────────────────────────────────────
① IP cameras connected directly to the site router
② IP cameras connected to an NVR
③ A vendor cloud-P2P app only

LOOK FOR THESE FEATURES:
  → RTSP support
  → ONVIF support
  → NVR web interface
  → Main stream + sub-stream options
  → Local username/password creation

WHY IT MATTERS:
  → RTSP/ONVIF gives you a direct live stream
  → An NVR can provide one managed source for
    multiple cameras
  → Cloud P2P apps often impose session limits

Many IP cameras and NVRs support RTSP/ONVIF, which lets third-party clients access authenticated live feeds; the exact menu and URL format depend on the manufacturer. [1][2]


:1st_place_medal: BEST FREE OPTION — TAILSCALE VPN + NVR/RTSP

RECOMMENDED ARCHITECTURE:
──────────────────────────────────────────────

CONSTRUCTION SITE                         OFFICE
────────────────                         ──────
Cameras → NVR / mini-PC → Tailscale  ═══ VPN ═══> Office PC
                     encrypted tunnel

WHY THIS IS THE BEST OPTION:
  ✅ No five-minute P2P limit
  ✅ No router port forwarding
  ✅ Encrypted end-to-end
  ✅ Works across different networks
  ✅ Free for a small team/personal use
  ✅ Office sees the site NVR as if it were local

Install Tailscale on a device that can reach the cameras locally — ideally the NVR if it supports it, otherwise a small always-on Windows PC, Linux mini-PC, or Raspberry Pi at the construction site — and also install it on the office viewing PC. Mesh VPN access is specifically recommended over publicly exposing camera interfaces or RTSP ports. [3][4]


:wrench: SETUP PATH A — VIEW DIRECTLY IN VLC

BEST FOR:
  → One or a few cameras
  → Quick proof-of-concept
  → No recording required

STEP 1:
  Enable RTSP or ONVIF in each camera/NVR settings.

STEP 2:
  Create a LIMITED "viewer" account:
  → Live-view permission only
  → No admin or configuration rights

STEP 3:
  Install Tailscale at site + office.

STEP 4:
  From the OFFICE PC, open VLC:
  Media → Open Network Stream

STEP 5:
  Enter the site camera/NVR RTSP URL,
  using its Tailscale IP or hostname:

  rtsp://viewer:password@
  <site-tailscale-IP>:554/<camera-stream-path>

IMPORTANT:
  → The stream path is manufacturer-specific.
  → Find it in the camera/NVR manual or web UI.
  → Use the sub-stream for lower bandwidth.

VLC can open an authenticated RTSP live feed, and NVR documentation commonly provides a live-stream URL format plus channel and stream selection. [2][5]


:desktop_computer: SETUP PATH B — BEST FOR MULTIPLE CAMERAS

BEST FOR:
  → Construction site with multiple cameras
  → One central office dashboard
  → 24/7 live viewing
  → Optional motion recording later

AT THE SITE:
  Cameras → NVR OR always-on mini-PC

INSTALL ONE OF THESE FREE OPTIONS:
  → Frigate + go2rtc
  → Agent DVR
  → Shinobi CE

RECOMMENDED SIMPLE STACK:
  Cameras/NVR RTSP → go2rtc / Frigate dashboard
                  → Tailscale VPN
                  → Office browser

ADVANTAGES:
  → One dashboard for every camera
  → One connection to each camera, then restream
    to multiple office viewers
  → Easier health monitoring
  → Optional recording and motion alerts

Frigate’s bundled go2rtc component can take an RTSP source and present it for live viewing/restreaming; its documentation recommends deliberately controlling external exposure and keeping direct RTSP ports private. [6][7]


:warning: DO NOT DO THIS

❌ Do not forward RTSP port 554 directly to the internet
❌ Do not expose NVR admin panels publicly
❌ Do not use the default camera admin password
❌ Do not give every office user an admin account
❌ Do not run the camera main stream at maximum
   bitrate if site upload bandwidth is limited

WHY:
  → Camera/NVR interfaces are frequent targets
  → Direct RTSP endpoints often lack modern
    browser-grade protections
  → A VPN keeps the system off the public internet

Frigate’s remote-access guidance explicitly warns against exposing RTSP and go2rtc administration ports publicly because they may lack authentication, and recommends using a mesh VPN such as Tailscale instead. [3]


:satellite_antenna: BANDWIDTH — THE PART THAT DECIDES IF 24/7 WORKS

ESTIMATE SITE UPLOAD NEEDS:
──────────────────────────────────────────────

SUB-STREAM PER CAMERA:
  480p/720p at 0.5–1.5 Mbps

MAIN STREAM PER CAMERA:
  1080p at 2–4 Mbps
  4K at 8–16+ Mbps

EXAMPLE:
  4 cameras × 1 Mbps sub-stream
  = ~4 Mbps continuous SITE upload

BEST PRACTICE:
  → Use sub-streams for the office wall/dashboard
  → Open main stream only when investigating
  → Set H.264 or H.265 depending on compatibility
  → Prefer wired Ethernet from camera to NVR/switch

A central restreaming setup is valuable because it can avoid opening separate direct connections from every viewer to each camera; go2rtc/Frigate is designed for this kind of stream handling. [8][7]


:bar_chart: WHICH ROUTE TO CHOOSE?

SETUP COST DIFFICULTY BEST FOR 24/7 VIEW
Vendor Cloud P2P Usually free Easy Occasional viewing :cross_mark: Limited
Tailscale + VLC RTSP Free Easy–medium 1–4 cameras, quick setup :white_check_mark:
Tailscale + NVR web UI Free Easy Existing NVR, multi-camera view :white_check_mark:
Tailscale + Frigate/go2rtc Free software Medium Many cameras, dashboard, future recording :white_check_mark:
Public port forwarding Free Medium None — avoid it :police_car_light: Unsafe

:light_bulb: PRO TIPS

  • :fire: Use the existing NVR if there is one — it is usually the quickest stable route because all cameras are already consolidated there.
  • :bullseye: Create a separate read-only office_viewer account — never use the NVR/camera admin credentials on office machines.
  • :antenna_bars: Test one camera’s sub-stream in VLC first before deploying an entire dashboard; this proves RTSP, permissions, routing, and bandwidth.
  • :building_construction: Use a wired connection for the site gateway/NVR where possible; construction-site Wi-Fi is often the real cause of stream drops.
  • :laptop: Use an always-on mini-PC at the site only if the NVR cannot run Tailscale or provide remote access through the VPN.
  • :locked: Get manager approval before changing surveillance networking or enabling external access — camera feeds are sensitive company/security data.

For a free 24/7 setup, stop relying on the vendor’s Cloud P2P session. Enable RTSP/ONVIF on the existing NVR or cameras, create a read-only viewing account, connect the site and office through Tailscale, then view the stream in VLC or a Frigate/go2rtc dashboard. That replaces a time-limited cloud relay with private, continuous, encrypted access. :fire::video_camera::building_construction:

Thank you so much

That’s a really nice workaround but is there any method to do it without a 24/7 computer or hardware at the site? Also, isn’t remote desktop a good solution for 24/7 streaming if there is a computer at the site?

Also um could someone please tell me the port forwarding method

It’s really complex for me

Good questions — let me hit all three straight, because the answers change everything.

First, the thing nobody said: that 5-minute cutoff is a limit of the free preview in the app, not your cameras. The actual video (the camera’s RTSP feed — a standard live-video link) runs forever. The whole job is just getting that feed to the office 24/7. So:

━━━━━━━━━━━━━━━━━━━━━━━━━

:desktop_computer: “Is remote desktop good for this?”No — it’s the wrong tool.

RDP/AnyDesk stream a picture of a PC’s screen, not the camera. That means it needs a PC switched on 24/7 (the exact thing you’re trying to avoid), only one person can watch at a time, it’s heavy/laggy, and if the PC hiccups the feed is just gone. Fine for a quick peek, useless as a 24/7 wall of cameras.

━━━━━━━━━━━━━━━━━━━━━━━━━

:electric_plug: “Explain port forwarding simply.” → 4 steps — but read the :warning: first, it’s probably why it’ll fail on a site.

🔧 The 4 steps (do this only if the site has a real public IP — see warning)
  1. In the site router, give the NVR a fixed local IP (e.g. 192.168.1.64) so it never changes.
  2. In the router’s Port Forwarding page, forward port 554 (the RTSP video port) — and 8000 — to that NVR IP.
  3. Sign up for free DDNS (a fixed web name for your changing home IP) → https://www.duckdns.org (or the NVR’s built-in Hik-Connect DDNS).
  4. From the office, open VLC → Network Stream and type:
    rtsp://user:[email protected]:554/Streaming/Channels/101
    (101 = camera 1 main; use 102 for a lighter sub-stream, better for 24/7.)
    :locked: Must-do: change the camera’s default password and use a non-standard port — open Hik ports get hit by bots within hours.
    Find the NVR’s IP with Hikvision’s SADP tool → https://www.hikvision.com/en/support/tools/hitools/

:warning: The catch that wastes everyone’s day: CGNAT. Most construction sites run on a 4G/mobile router, and mobile ISPs don’t give you a real public IP — so port forwarding silently does nothing, no matter how perfectly you set it up. Quick test: check your router’s WAN IP, then open whatismyip.com — if they don’t match, you’re behind CGNAT and port-forwarding is dead. Use one of the no-hardware paths below instead :backhand_index_pointing_down:

━━━━━━━━━━━━━━━━━━━━━━━━━

:satellite_antenna: “Any way without a 24/7 computer at the site?”Yes — three, and none needs a PC.

Your NVR is already the always-on device. Lean on it:

① Just fix Hik-Connect (zero hardware, zero setup)
On the NVR: Network → Platform Access → enable, then share the device to the office’s Hik-Connect account. A properly added device streams continuously — the 5-min stop only happens on the anonymous quick-preview.
→ setup: https://supportusa.hikvision.com/support/solutions/articles/17000110900-how-to-setup-hikconnect

② A $30 travel router = the tunnel box (not “a computer”) :star:
The NVR can’t run a VPN itself, so drop a tiny GL.iNet pocket router at the site — it has Tailscale/ZeroTier built in (just toggle it on). It joins a private mesh with the office; you then open the NVR exactly like you’re on-site. Beats CGNAT, nothing exposed to the internet.
├─ enable Tailscale on GL.iNet → https://docs.gl-inet.com/router/en/4/interface_guide/tailscale/
├─ full Hik-NVR + Tailscale walkthrough → https://cats.fish/posts/Free-Secure-Remote-HIKVision-NVR-Access/
└─ or on any cheap OpenWrt router → https://github.com/adyanth/openwrt-tailscale-enabler

③ Make the NVR dial OUT to a free server (EHome/ISUP) — the 4G-proof trick :star::star:
Hik gear speaks a push protocol (ISUP/EHome): the NVR calls out to a server you run on a cheap/free cloud box and hands it the stream. No port-forward, no fixed IP, works on any 4G/CGNAT connection, and the only thing at the site is the NVR you already have.
├─ :page_facing_up: field-by-field setup → https://www.cnblogs.com/kumukim/p/18815023
├─ :toolbox: server that receives it → https://github.com/yingyemin/simple-media-server
└─ :repeat_button: republish as a normal stream → https://github.com/CharlesPu/HIKPusher

🎥 Want the office to watch in a plain browser tab (unlimited people, no app)?

Run go2rtc (one tiny file) next to the NVR or on the same VPS — it turns the camera’s RTSP into a browser WebRTC page anyone can open, no login, no app, lowest lag:
https://github.com/AlexxIT/go2rtc
Put Cloudflare Tunnel in front of it for a clean public link with no open ports:
https://github.com/blakeblackshear/frigate/discussions/6144

━━━━━━━━━━━━━━━━━━━━━━━━━

For a construction site specifically: it’s almost certainly on 4G → skip port-forwarding, go straight to ② (travel router + Tailscale) or ③ (EHome push). Both are free, survive CGNAT, and add zero hardware beyond the NVR that’s already sitting there.

The cameras were never the wall — the app’s timer was. Move off the app and the feed never stops.

Hey, Thank you so much!

Could you please explain the (EHome/ISUP) one, I couldn’t get it to work.
Also, my company has Webuzo subscription, would that be of any help?

:electric_plug: The EHome/ISUP fix — it only works when a machine on a public IP is actually listening for the NVR to dial into. In the NVR: Platform Access → ISUP, then match these 3 fields on both ends :backhand_index_pointing_down:

├─ :satellite_antenna: Version: EHome v5.0
├─ :globe_with_meridians: Server IP + Port: your public IP · 7660
└─ :key: EHome key + Account: same on device and server

:warning: If nothing is actually running/listening on 7660, it just silently fails — that’s 90% of “I couldn’t get it to work.”

:desktop_computer: The receiver (the thing listening on 7660):
├─ :high_voltage: easiest → iVMS-4200 (it is the ISUP server)
└─ :toolbox: self-host → simple-media-server · LiveNVR field-by-field guide

━━━━━━━━━━━━━━━━━━━━━━━━━

:white_check_mark: And yes — Webuzo is a BIG help!

It means your company already runs a VPS with a public IP — which is the exact box EHome was missing. →

SSH in → run the ISUP receiver (or go2rtc/MediaMTX, or a Tailscale/WireGuard node) → point the NVR at its-ip:7660

:light_bulb: That VPS becomes your free, always-on relay — no extra hardware at the site at all.