NVR choppy video. How do you calculate ideal aggregate BandWidth streaming requirements?

bluecam

Young grasshopper
Dec 1, 2017
34
1
Hi all,

I was able to setup an NVR for someone remotely with 6 lorex 4k cameras and a NR908 (couldn't do blue iris server, AFAIK, as they have a mac desktop). This is post Lorex/Dahua purchase, so everything working with post software updates (lorex cloud, etc).

Very clear static images, but movement/streaming is still a bit choppy, and I can improve by dropping resolution, frame rate, etc.. Another big help, they say (supposedly 2X compression), is using h.265, which I was able to set.

My question I was wondering about is the following.
1) In best setup, each camera is streaming at about 8Mpixels (bit)/Sec.
2) If I have N cameras, say, 6, that is 8X6 = 48Mpixels (bit)/Sec
3) I assume the limiting factor is upload speed, so 100M down is like (typically 10% of down or) only 10M up.
4) The 10M is obviously << than 48M.
5) Is it proper to multiply and compare that way, or (I would think) the N channels are multiplexed somehow, requiring less than NXstream rate total BW for ideal streaming.

Any ideas on how to get the aggregate bandwidth requirements on the router and internet? At least in theory. Because I can't imagine every 4K user having 50M+ upload speeds, if those assumptions are right.
 
Last edited:
Bandwidth isn't the only consideration. The processor of the nvr also has to deal with the compressed video stream, especially if you're viewing it live or are relying on the nvr to provide motion sensing or analytics (although really that shouldn't be happening with IP cameras as they should be handling the analytics themselves)

It's really going to depend on the actual camera, but this tool
Bandwidth calculator | CCTV Calculator

Suggests that 6 4k cameras streaming at high quality, 20fps will need just over 50Mbps bandwidth.
Your calculations are a little bit simplified, the network bandwidth, while obviously directly related to the resolution of the camera, isn't just a straight one for one conversion.

I've never used lorex, but most ip cameras will give you an estimated bit rate in the page where you set the resolution /quality /frame rate.

The spec sheet for that nvr suggests a maximum channel bit rate of 8192kbps. An 8mp camera on high quality will be breaking that limit.
 
Thanks for the reply, that's a pretty useful tool, although they don't show the exact calculations they use.
Still not clear if it's down or upload requirement. I would guess the requirement is upload, as the host is transmitting video outwards. In which case,
most ISP uploads of less than 20M are woefully inadequate. Download speed is 100M+ no issue there.

I can see the streaming estimates in the software sit around 8MP/s for each camera at highest settings. It sucks to have to cut way down (resolution, FPS, etc...) to get rid of the choppiness.
The NVR is close to the 8MP expected, so the bottleneck could be NVR, router, overhead etc... Just trying to get an ideal gauge of BW first.
 
So, I’m observing live streaming on a location offsite from the nvr/cameras location. The choppiness is viewing the app remotely, not locally on the nvr site. My reasoning is that if the setup requires say 8Mx6 = 48M total or aggregate bandwidth ( unless multiplexing reduces that load a lot) and it is transmitting that stream out of the NVR site, then that is upload speed. And upload speed from ISP is always much less then download. Say ISP provides 100M download, then upload is usually much less, like 10% or 10M. Hopefully you guys understand what I’m trying to say. If I need 50M to stream upload, then all the other limitations are irrelevant. The bottleneck is the ISP upload speed limitation. If it is not upload speed but somehow download, then it’s a different case entirely.
 
Ps I get that I can record at max res, etc... my issue is streaming and remote playback choppiness.
 
There is a difference with the bandwidth required to record (preferably locally) 6 streams to the NVR. For example, my NVR specs state: 320Mbps. Which gives, on max, 53,33333333333333Mbps per camera, which is quite large. Bitrate per channel is even limited (16Kbps ~ 20Mbps Per Channel). If your cams are on "separate" POE ports, then your "uplink" from the NVR is still "free". However, decoding capability is what you should be looking at: 4-ch@8MP(30fps), 16-ch@1080P(30fps) - this will already reduce the bandwidth: 16 channels FullHD 30fps at H264 is max 67Mbps.

But, I think your question is aiming at something else. If that decoding of 16 channels at FullHD is "choppy" and "stuttering", I suggest you try, when being not on-site, to leverage the substreams of your NVR. Maybe quality is not toppie, but it will for sure help.

Good luck!
CC
 
  • Like
Reactions: bluecam
@catcamstar, thanks, this is closer to what I was getting at.
Substream is definitely an option, and a way to reduce choppiness. But it is equivalent to just cranking down all the resolution, fps, etc.. on live stream (at a loss of visual quality of course). They give both options to have both available to switch between. I just want to get the highest possible 4k stream, without choppy jumps, live or sub and find exactly where the bottleneck is. As I've said, if the ISP only uploads 10Mbps and the multiple POE cameras are 4k and 8MPs and you have to multiply channel X bandwidth to stream (e.g. 6X8 = 48Mbps), and that stream is upload (not download), then forget it, very few could stream full 4k@50Mbs + with modern ISP upload speeds. Any of my above assumptions could be wrong, and that's what I'm trying to clarify here.

The advertised benefit of H.265 is a huge help (2X compression of H.264), as it cuts bandwidth requirements in half! But I did not see a doubling of quality, though.

I did get choppiness way down by cutting down all the resolution parameters of the cameras, and video is fairly smooth. It just feels like a waste to pay premium for 4K if you have to crank everything down to get smooth resolution. I also wish Blue Iris would be available for MACs and get rid of the NVR bottleneck completely.
 
Last edited:
The advertised benefit of H.265 is a huge help (2X compression of H.264), as it cuts bandwidth requirements in half! But I did not see a doubling of quality, though.
You mention H.265, Dahua has H.265+ which might (or not) be available on your LLorex, you can "mess around" (or better say: try out) with the other parameters too:
- lower fps: maybe you don't need 30fps on your remote streams
- change from CBR to VBR (might - or not - be an improvement)
- change resolution

I am not station you should "sacrifice" one parameter on another, but nowhere is stated your substream should look like pixels in minecraft. You can register locally at 4k, no problem there, but you squeeze a little bit on the substreams until you find, with your ISP setup, the "best-can-do", messing around with the protocols, fps, resolution etc.

What might help too - worth testing: if you throw in secure tunnel (VPN with/without compression), it might help transmitting in a better way.

All good ideas on paper :p
Good luck!
CC
 
Used H.265 (Lorex/Dahua supports), no visual quality improvement (vs. advertised 2X compression).
I had to cut FPS all the way to around 10-12 to get smooth, the 4K lorex cameras only advertise max 15fps @ full resolution, so it's down from there.
Yeah VPN a whole different track.

FYI Dahua owns Lorex now, and they even share software (that was a blessing as I am more familiar with Dahua).
 
If you're talking about streaming 4k to a remote site then yeah, it's no surprise you're having issues. The isp upload speed would definitely become a bottleneck fairly quickly.

Obviously everyone's requirements are different, but when we're setting up systems, the priority is always to have the maximum quality being recorded at the expense of live viewing if necessary, especially remote viewing where there are even more network bottlenecks.

If viewing the main substream isn't sufficient, lots of dahua cameras give you a 3rd stream (second sub stream) to play with.
You'll have to disable h265+, but it would allow you to create a 3rd stream at 1080 which may be a little easier to view remotely.

As you said, it's a waste to have 4k cameras reduced in quality just to allow remote viewing. If anything happens, a 4k quality image is going to be more use in court than a more blurry one that someone viewing it remotely is able to stand as a witness and say "yeah, I saw at happen live at exactly the same quality"

Short of getting a better upstream connection from the isp (not always even possible) then your options are much lower quality remote viewing by utilising the sub streams, or moderately lower quality of both live view and recorded footage.
Personally I'd totally forgo remote live viewing for a better recorded image, but as I said, each system has different requirements.