Blue Iris UI3

I just have to assume your server CPU(s) can't manage more than that frame rate regardless of resolution.

Make sure you've gone through everything in this page: Optimizing Blue Iris's CPU Usage | IP Cam Talk

Not likely.

First been thru all the optimisations. I have set continuous recording, direct to disk, no pre-trigger buffer etc. All the typical things that pull a system up.

I have been using BI for near 5 years now. I am well aware of what can slow a system down.

So you think, that an i7-2600 Server runnning 8 1080p cams at 35-40% cpu, cannot stream at 640x480 all 8 cameras faster than 6fps, but work perfectly fine streaming a single 4K stream at 10fps? So can't do 24.5MP/s (total of 640x480@10fps x 8 Cams) but can handle 83MP/s (3840x2160@10fps x 1 camera).

It doesn't make sense that it can handle higher MP/s but not lower, just because it is multiple cameras instead of single.

Also as stated, I get the same results on another server. 2 different servers, 2 different amount of cameras and MP/s etc. 2 different viewer PC's. If viewing all cameras, it behaves as if there is a fps limit set to 5 or 6. And yet no limit is set anywhere.
 
Latest BI version?

Blue Iris wont stream single cameras at resolutions larger than 1280x720 unless you are using jpeg encoding, which is usually a lower frame rate.

I don't know what is making your system struggle to output a good FPS. Can you try creating a 2-camera group with just a pair of 1080p cams and set its fps limit to 30 and resolution to 1280x720 or smaller and see what FPS that is capable of? If my notion is correct that your cpu is the limiting factor you should be able to add cams to that group one at a time and see the FPS drop at some point. Maybe gradually or maybe all at once when you add a certain camera.
 
Latest BI version?

Blue Iris wont stream single cameras at resolutions larger than 1280x720 unless you are using jpeg encoding, which is usually a lower frame rate.

I don't know what is making your system struggle to output a good FPS. Can you try creating a 2-camera group with just a pair of 1080p cams and set its fps limit to 30 and resolution to 1280x720 or smaller and see what FPS that is capable of? If my notion is correct that your cpu is the limiting factor you should be able to add cams to that group one at a time and see the FPS drop at some point. Maybe gradually or maybe all at once when you add a certain camera.

Will try that, but what CPU are you talking about? BI or the PC I am viewing from? If BI then how can it not handle it when it sitting at 40% CPU? Use more CPU if it needs it...
 
OK, I setup a group called TEST and added 2 of the cams to it.

I left the resolution alone, so it is using default. Set FPS limit to 30. Left everything else alone for the group. Test with BI minimised too.

Results:
(Cameras - Stream Res reported by UI3 - FPS)

2 - 1712x480 - 15
3 - 1280x720 - 13
4 - 1280x720 - 9
5 - 1920x720 - 7
6 - 1920x720 - 6
7 - 1280x720 - 7
8 - 1280x720 - 6

I can understand more cameras = more grunt needed. But my CPU is sitting at around the 40-50% mark. So if I need more grunt for better FPS its got headroom.
 
Will try that, but what CPU are you talking about? BI or the PC I am viewing from?

I'm talking about the server (BI) cpu. If the client (PC you view from) is too slow for the H.264 stream, UI3 will notify you about it.

If BI then how can it not handle it when it sitting at 40% CPU? Use more CPU if it needs it...

Well the answer is really complicated. You see, you have a 4 core CPU, which thanks to Hyper-Threading is being shown in Windows as an 8 core CPU. So one thread of work can use up to 12.5% of the CPU time and no more. The rest of the CPU time can only be used by other threads (it is a matter of physics, not some silly limit imposed by someone). Likely, the encoding of a group stream is mostly if not entirely single-threaded.

To make things more complicated, Hyper-Threading only adds about 20% performance gain (on average ... it is very workload-dependent), but Windows represents it as if it were a 100% gain. If you give your i7-2600 four constant threads of work, it should show 50% CPU usage. After that, all bets are off. You could add just one more thread of work and be at 100%.
 
Isn't BI Multithreaded?

I still don't understand why it isn't working even on 1 thread. as stated, even if I drop the groups res to 640x480, it makes no difference.

8x720p = 73.728 MP/s
8x640 = 24.576 MP/s

I still get stuck on 5-6 Frames. And no change in CPU usage. And I even have quicksync for decoding.
 
Maybe its your camera's frame rate being set to 10fps. All of mine run 6fps except one @ 15 (15 cams total) BI showing total at 208MP/s I just ran a test setting my "all cameras" web server to 30 and I can get 24-27 fps in UI3. This is on a I5-3670k and that will push it to 60% when viewing UI3. Something don't sound right ??

test.JPG test2.JPG
 
  • Like
Reactions: bp2008
I've been using UI3 for months a love it. Lately when I first pull it up to view my home from any computer in my house or at work the first camera view I click on is not the one that "go's big". A different camera will pop up but if I make that camera view smaller and try again the correct camera view shows up and works perfect till closed. I have two cameras that UI3 is telling me are not in the group I wonder if this has anything to do with it.

Thanks again for a AWESOME interface.
 
  • Like
Reactions: bp2008
Ok, it's because i use Firefox 58.
In Firefox the Clips play Ok (Jpeg) but in Chrome (H.264) they have pixelation.
 
Ok, it's because i use Firefox 58.
In Firefox the Clips play Ok (Jpeg) but in Chrome (H.264) they have pixelation.

You need to adjust your encoder profiles in BlueIris. Go to options/web server/advanced/streaming 0/configure

This setting I show here will produce a good image, you need to setup all 3 streaming modes 0-1-2 and then play with it to get best results depending on what device and connection speed you are viewing from.
 

Attachments

  • stream.JPG
    stream.JPG
    50.7 KB · Views: 65
Thanks Tinman. I already found that option after playing around.
So this also effects the clips and not only live view?
 
Isn't BI Multithreaded?

I still don't understand why it isn't working even on 1 thread. as stated, even if I drop the groups res to 640x480, it makes no difference.

8x720p = 73.728 MP/s
8x640 = 24.576 MP/s

I still get stuck on 5-6 Frames. And no change in CPU usage. And I even have quicksync for decoding.

Yes, a great deal of what Blue Iris does is multithreaded, but not everything it does is multithreaded/asynchronous, and not all the threads have the same amount of work to do, and some threads have to pause while they wait for another thread to do something. It is all very complex, and many multi-threaded programs can hit CPU performance bottlenecks long before 100% CPU usage.

When BI builds a group frame for 8 cameras, then regardless of the output resolution it always has to take 8 source frames and rescale them. This part might be a limiting factor on your system.

You also mention having at least one 4K camera. My experience is that 4K cameras take a huge amount of CPU time, and 2nd-generation Intel CPUs like your i7-2600 can't hardware accelerate streams bigger than 1920x1080.

My dad's BI server is an i7-3770K, only one generation newer than yours, and its all-cameras group (1920x1008) frame rate bounces all over between 10 and 15 FPS with just 25% overall CPU usage. This is with 18 cameras. And at home, my ~21 camera system used to run on an i7-3770K and be unable to go above about 7 FPS on its group stream. Then I upgraded to an i7-8700K and now it can do 21 FPS building the same group stream. Point is, a newer CPU should make a huge difference in this for you.
 
You need to adjust your encoder profiles in BlueIris. Go to options/web server/advanced/streaming 0/configure

This setting I show here will produce a good image, you need to setup all 3 streaming modes 0-1-2 and then play with it to get best results depending on what device and connection speed you are viewing from.

By the way for the web server's streaming profiles I recommend using the maximum possible iframe interval (keyframe interval / GOP) of 300. The way the streaming is done between Blue Iris and the mobile apps/UI3, you don't need keyframes for anything really. They sometimes clean up the colors a bit if the camera just switched to or from black&white mode, but other than that there is no reason for another keyframe after the first one. Keyframes are less efficient than other frames and often come with a temporary image quality penalty, so having fewer of them will make your stream look better (especially at low bit rates).
 
Yes, a great deal of what Blue Iris does is multithreaded, but not everything it does is multithreaded/asynchronous, and not all the threads have the same amount of work to do, and some threads have to pause while they wait for another thread to do something. It is all very complex, and many multi-threaded programs can hit CPU performance bottlenecks long before 100% CPU usage.

When BI builds a group frame for 8 cameras, then regardless of the output resolution it always has to take 8 source frames and rescale them. This part might be a limiting factor on your system.

You also mention having at least one 4K camera. My experience is that 4K cameras take a huge amount of CPU time, and 2nd-generation Intel CPUs like your i7-2600 can't hardware accelerate streams bigger than 1920x1080.

My dad's BI server is an i7-3770K, only one generation newer than yours, and its all-cameras group (1920x1008) frame rate bounces all over between 10 and 15 FPS with just 25% overall CPU usage. This is with 18 cameras. And at home, my ~21 camera system used to run on an i7-3770K and be unable to go above about 7 FPS on its group stream. Then I upgraded to an i7-8700K and now it can do 21 FPS building the same group stream. Point is, a newer CPU should make a huge difference in this for you.


But what you're now saying still makes no sense. i7-3770K vs i7-2600 is an effective 16% faster. How can 16% allow for a jump from 8 to 18 Cameras at minimum 10fps?

All the evidence still points at something not being right. I just can't find if its cameras, BI or UI3. I don't believe its UI3 or my viewing PC as I can get full frames on fewer cameras.

And here's another thing, I have a group that has 4 of the cameras in there. When on that group, I get full fps. If I change back to all 8 I hit the 6fps limit. But CPU % never changes. Same CPU for either 8 or 4.

There is even a 2 camera group and same thing. I get full frames on that group but no CPU change.

If it was CPU issue, then should usage drop accordingly....
 
Are you sure you have "All cameras" selected when you click the gear ?

View attachment 27464
Certainly do.

I have had more progress, and now proof it isn't my CPU.

To clarify my setup: i7-2600 10Gb RAM - 8 1080 Cameras 7 at 10FPS and a PTZ at 20FPS. All set to 2048 and PTZ at 4096.

I tried increasing the FPS on the cameras and that didn't work.

I then tried dropping the bitrate on the PTZ to 2048 and I got 20+ frames on UI3, then I refreshed and it dropped again to 6fps.

I tried bumping it back to 4096 and no change and dropping it again, no change.

I now know that the CPU can give me above 20fps on all 8 cameras, I just can't find and replicate the setting that is causing the problem. But something is.

PS: SOmeone mention I had 4K cameras too, I do, but on another system.