The NVR doesn’t actually block things, it just reroutes the data onto different endpoints. It acts like a passthrough and aggregator on the video feeds from the cameras and it can optionally modify and reencode the stream too (depending on the NVR model - third stream, overlay data on AI detection methods, etc).
The way it works is as follows. It depends on how you connected your cameras to the NVR:
-
Both cameras and NVR are on the same external router. They will all be in the same subnet. In this case, you can directly access all ports on your cameras (rtsp, http for still images, etc) and you can also access them on the NVR IP as a mirror. It is recommended to not use the direct camera IPs to get a stream off them, because their relatively weak CPU may have trouble serving two clients with highres streams.
-
Cameras are directly connected to the NVR internal router. In this scenario, the NVR puts them into a separate subnet that is not directly routed to your main subnet. The NVR uses virtual NAT ports (65002, 65003, etc) on its own IP to map the individual camera port 80. So you can use these virtual ports to access the camera config or to get a still image. But you can’t directly pull a video feed off the camera that way (these ports are not mapped), you need to pull them from the NVR instead. But that’s the recommended way anyway.
So to get an RTSP stream of any camera connected to the NVR, regardless of the method used:
rtsp://user:password@your_nvr_ip/ISAPI/Streaming/channels/101
Open this URL in vlc for example, to test. It should show the primary stream of the camera configured as camera 1 within the NVR. replace the 101
at the end to get other streams or cameras. The first number is the camera channel ID, the last one is the stream ID (1 = main stream, 2 = substream, 3 = third stream). So for example this would give you the low resolution substream of camera 4:
rtsp://user:password@your_nvr_ip/ISAPI/Streaming/channels/402
You can configure the generic camera integration with those URLs to get live feed on the HA dashboard.
For still images, you can use the direct camera IP or the virtual ports mappings, depending on how you connected the cameras. The NVR will not pass through still image data, it has to be requested from the camera itself. For example, use this to get a still image from camera 1:
http://your_nvr_ip:65001/ISAPI/Streaming/channels/101/picture
All this works without ONVIF. If you want to use ONVIF instead of configuring all this manually, you need to first enable ONVIF in the NVR web config system, add a user for it with appropriate permissions and then configure the ONVIF integration in HA on the NVR IP: