Quick Sync

Shuki

BIT Beta Team
Oct 14, 2016
28
4
Hi,

I have BI 4.4.8.9 over W10E 64bit run as a service, Intel i7 3770 Ivvy Bridge which supports QuickSync (checked in Intel site). I installed latest Intel HD4000 driver 64 bit version15.33.43.4425 for QuickSync purpose and enabled HW acceleration.
My CPU varies per motion/recording from 45 to 85% for 20 Cameras (most of them 2MP, rest 0.3MP).
Without BI HW acceleration CPU is melted with 100% usage, OS impacted.

I read many threads here about Quick Sync and BI HW Acceleration and saw different versions of Intel driver suggested.

Am I using a bugless version of Intel driver for BI?
When switching BI to HW +PostProc, CPU drops further, but i have playback halts so switched back to normal HW acceleration. Anything i can do to use HW+PostProc option?
How can i tell in OS if QuickSync is used/on with no errors ?


Using latest 15.33.43.4425 for Windows 10 64 bit:
Download Intel® Graphics Driver for Windows® 10 and Windows 7*/8.1* [15.33]
 
Don't try to use the PostProc option. It is for very small camera loads.

That driver is probably fine; I think the memory leak problem only affected Skylake CPUs which are the 6xxx series (yours is the 3xxx series a.k.a. Ivy Bridge). You can check that quick sync is working by downloading GPU-Z and looking at the GPU usage graph for the Intel GPU. It should be around 0% usage if hardware acceleration (quick sync) isn't working. Get GPU-Z here: TechPowerUp

It sounds like you probably do not have "Direct to disk" recording enabled. This would reduce CPU usage a lot if you turned it on. I'm going by memory here but I think you'll find the direct to disk option in the camera properties > record tab > file format and compression button.

It can be a chore to set up direct to disk for the first time, because Blue Iris doesn't overlay its timestamps on your recordings anymore, but the CPU savings make it worthwhile. So when you enable direct to disk, I suggest you delete Blue Iris's timestamp overlay and get the camera to embed its own. You also need to make sure each camera keeps time accurately, and deals with daylight savings correctly. You can run NetTime - Network Time Synchronization Tool on your Blue Iris server to make it into an NTP (network time protocol) server that you can point your cameras at, and that way you can have the cameras update their time from the time server very often, every minute even, to guarantee their clocks don't drift far.
 
  • Like
Reactions: fenderman
Thanks bp2008. I also use your enhanced www package.

I see load around 35% so i assume QuickSync works ok, however i do see sometimes blueiris.exe process memory increase over days with number of handles increasing which indicating possible memory leak. I made seperate investigation on that from networking perspective and can share results on other thread.

I always using "direct to disk" and this is how it is set for each camera + BVR. I re verified.
I also deployed all of the troubleshooting section to improve performance (no overlay text, 15 fps, etc..). camera + BI server sync time over NTP correctly. all that troubleshooting section in guide is covered.

main reason for asking about quick sync is that for every android playback, it halts for a random second and continues. sometimes several time in same short playback. Another issue i experience at the moment is autocycle hangs after few random seconds of work for mainly the groups i created (less for +all cameras), and i reported that already and have other thread for that here in forum under android section.


upload_2016-12-1_10-20-16.png
 
Interesting. I am currently running 22 cameras on my i7-3770K (same as your CPU , except clocked at 3.6-3.9 GHz). It has the same Intel HD Graphics 4000 at 27-28% GPU Load. Under Blue Iris Status on the Cameras tab, I have 627-630 MP/s. This number is a good way to compare the relative workloads of Blue Iris systems since it takes into account the resolution and frame rate of all the cameras and is a more useful measure of how much video data the system has to process continually. Anyway CPU usage of blueiris.exe is only around 30% if I run blueiris in service mode. So I'm guessing your MP/s number is a little higher than mine.

Poor remote video playback performance could be blamed on wifi.
 
Well,

My memory leak probably related to my environment, but yet i found the root cause.
From startup steady state, handles reached from 1600 to 3800 and memory from 3G to 6.5G. i restarted service 16 hours ago

post service restart, i have this:
upload_2016-12-3_9-39-47.png
but some cameras reporting yellow flag (low FPS) and indeed some 15fps cameras shown in BI connections are varied from 5 to 12 fps. bandwidth throughput reported by BI seems bit lower than 4Mbps so not sure if this drop relates to network, OS or BI at the moment.
upload_2016-12-3_9-44-18.png

my main issues currently are (1-3 are new issues, item 4 is old issue):
1. +auto cycle playback from android (802.11ac strong wifi and server over router LAN and from LTE) for any group halts after seconds
2. +auto cycle playback from LAN IE active x works ok with some lags (alert sound seems not synced with trigger)
3. fps drop from 15fps on several cameras (last week i instaled sophos AV so will try to remove it and see)
4. blueiris.exe process memory increase over days along with handles which may imply memory leak


my stream profile:
upload_2016-12-3_9-50-21.png
 

Attachments

  • upload_2016-12-2_17-23-22.png
    upload_2016-12-2_17-23-22.png
    15.9 KB · Views: 7
  • upload_2016-12-2_17-24-16.png
    upload_2016-12-2_17-24-16.png
    21.5 KB · Views: 9
  • upload_2016-12-2_17-27-22.png
    upload_2016-12-2_17-27-22.png
    3.2 KB · Views: 8
I don't know what to tell you. Any of your cameras connected via wifi, or all hard-wired?

You do know that when you set a camera's frame rate you need to set it in the camera's web interface, right? In Blue Iris under camera properties you should either set the max frame rate option to match the camera's frame rate or set it a few FPS higher. I like to set mine two higher ... so if the camera is streaming 15 FPS I set it to 17 in Blue Iris. This helps prevent frames from being dropped when you use direct to disk -- the symptom of frames being dropped is temporary video corruption appearing in recordings. Usually you can just ignore the frame rate as set in Blue Iris unless you are getting frame rate warnings or corruption in your direct to disk recordings. BI is supposed to automatically increase the frame rate setting as necessary to match what the camera is outputting, but it won't adjust the number down; only up.
 
1. Cameras are not AC; so they will be turning AC network into a B/G/N compatible network and you wont get any of the nice AC features with these devices on your WiFi.
2. Wireless cameras are a bundle of issues; even with perfectly strong signal you cannot guarantee service.. always susceptible to outside interference from the billions of devices out there that also operate on 2.4GHz (Microwave Ovens, Game Controllers, RC Toys, Cordless Phones, Baby Monitors, ad nausium)
 
Hi bp2008, nayr,

all my cameras are always connected via wired, 100Mbps network router, and all frame rates and bandwidth are set in the camera. most are hikvision set to 2MP with VBR, Meduim (reduced from highest), 4Mbps, 15 fps I frame 15 (was 30 with same issue). network delay is very low (few ms). total Mbps is now 52Mbps.
BI camera properties is set to 15, but i see it is dynamically increased to 17 for some cameras. so it is >= camera settings. 1 camera is 1MP with fixed 25fps at day and 12 at night but BI camera properties set to 25 so it's ok.
i don't have corruption of recording and playbacks are ok from android, although first playback has 1 second lag after few seconds of playback.
This is has 10 users, half will connect daily several times for few minutes. 1 is constancly using activeX for 8 hours a day for camera cycle using it's own group, 1 android tablet constantly connected for 8 hours doing cycle for several groups (but not anymore due to halt issue).

to increase TCP performance i also tweaked my W10 TCP/IP stack for maximum performance using TCPOptimizer to achieve high efficient throughput. issue still persists.
just had blueiris.exe process reached 9GB mem and crashed. doing daily service restart to avoid it. Removed my Antivirus and remained with lousy defender, disabled BlueIrisTools but remained with bp2008 enhanced web server.
 
Just on a hunch, try this "4358" driver which is the version I have: Download Intel® Graphics Driver for Windows® 10 and Windows 7*/8.1* [15.33]

KXz01nl.png
 
Finally my main 2 issues resolved!

1. Thanks bp2008, the blueiris.exe performance/memory leak issue stopped after downgrading to intel hd4000 driver 4358. this version must be mentioned in BI requirements/recommendations.
2. auto cycle issue was a bug and resolved by Ken in 4.4.9.2 after working with him on this for 2 weeks. I am glad.
 
I'm glad to hear the driver fixed things. I didn't think the memory leak affected Ivy Bridge CPUs, only Skylake. I guess now I know better. It is very disappointing for Intel to not have fixed this yet after all this time - I know the bug was reported to them months ago.

Thanks for working with Ken to squash another bug, too! For every one person who reports a bug there are probably 10+ others who are just silently frustrated with BI for it.