Troubleshooting poor image quality - frustrated.

Gilera

Young grasshopper
Joined
Apr 30, 2019
Messages
76
Reaction score
21
Location
Australia
Hi everyone,
I'm new to the forum and could really do with some help. Tricky question to answer I know but I am trying to hunt down the source of some image quality issues on my residential installation. I feel that I have used good quality hardware and software throughout and despite playing around with various settings, i've been unable to sort this out.

My setup is shown in my signature below -
Three Illustra i610 mini domes (american Dynamics). These are a few years old and might have limited functions compared to some new cameras but the specs are all I need and they seem well built. I bought them for a very reasonable price from a close friend that had never unboxed them. They are fixed cameras and support 2 streams. Cameras with no IR built or mic built in so I am running separate external 12v powered microphones and IR lights.

PoE with Cat 5e cable, gigabit switch. Longest run about 30m.
Running current version of Xprotect Essentials+.

I have streams set up as H264 for primary stream, 1080p, VBR, 20fps.
Secondary stream JPEG.

Motion detection is currently being done on software side although cameras support doing this.
Hardware acceleration turned on. The Intel HD4000 card in the older i7 i'm using supports Quicksync should be up to this I believe. Drivers are up to date.

The issue is that I am getting jerky motion and dragging pixels in high motion regions such as somebody walking. This occurs in both live stream and recorded footage. Also I get very noisy images at night with IR lights.

I asked Milestone technical support and their response was that it is definitely a camera issue and something they have seen many times before. Basically that the encoding capabilities are not sufficient to keep up with the demands. They said that lowering the frame rate, resolution or compression should make a huge difference.

My initial thought was - sure blame the camera!

I really struggle with this. I cannot understand why the camera would be struggling, especially since I am not using the camera to do the motion detection and only have the frame rate at 20fps (max capability is 25fps as i'm set to PAL). I do not really want to accept any less and don't want to reduce the resolution. Why have these capabilities if you can't use them?

Can anyone with similar experience confirm if the capabilities of the camera is really a common issue?

Currently I have the second stream (JPEG) turned on in the camera even though I have Xprotect configured to use H264 for both live feed and record. The only time I utilise the second stream is for live feed when navigating directly to cameras which I have only reallydone for troubleshooting purposes i.e. to make sure the stream is intact when something goes wrong.

If it really is the camera, would I take some encoding load off the camera by turning this JPEG stream off?

Would I take some load off the camera by leaving the the second stream on and using it for the live feed through Xprotect rather than using H264 for both viewing and recording (which seems to be the default setting)? I notice that this is recommended by Milestone when troubleshooting SmartClient performance issues but not sure about camera performance.

Any other troubleshooting ideas??
 

Gilera

Young grasshopper
Joined
Apr 30, 2019
Messages
76
Reaction score
21
Location
Australia
Here is a still image showing the issue as it is easier than embedding a video. The playback sometimes freezes for 1-2 secs in the timestamp and then jumps forward to catch up.
 

Gilera

Young grasshopper
Joined
Apr 30, 2019
Messages
76
Reaction score
21
Location
Australia
Forgot to mention that I have I frame setting the same as FPS for all my cameras.
 

fenderman

Staff member
Joined
Mar 9, 2014
Messages
36,901
Reaction score
21,270
Forgot to mention that I have I frame setting the same as FPS for all my cameras.
Try lowing the frame rate to 15. What is the max bitrate set to? If the camera has a smart codec or h.264+/5+ switch to standard h.264.
Also note that this could be caused by dropped packets. Ensure you are using quality copper cable not CCA and that the cameras are connected to the same switch as the pc or a switch cascading from it not having to pass through a router.
Someone who uses xprotect can provide some better insight of the quirks. I will move this thread to the milestone section of the forum.
 

Gilera

Young grasshopper
Joined
Apr 30, 2019
Messages
76
Reaction score
21
Location
Australia
Thanks for the input.
I did actually lower the frame rate to 15 fps (and GOP length to 15 as well) since originally posting - sorry forgot to mention that. It didn't help.
It is currently VBR.
H264 high profile.
Good copper cable directly from camera to PoE switch. Server is also connected directly to the switch.
Have tried pinging cameras for an extended period and never had lost packets.
 

fenderman

Staff member
Joined
Mar 9, 2014
Messages
36,901
Reaction score
21,270
Thanks for the input.
I did actually lower the frame rate to 15 fps (and GOP length to 15 as well) since originally posting - sorry forgot to mention that. It didn't help.
It is currently VBR.
H264 high profile.
Good copper cable directly from camera to PoE switch. Server is also connected directly to the switch.
Have tried pinging cameras for an extended period and never had lost packets.
if there is a baseline or standard h.264 profile try it.
 

Gilera

Young grasshopper
Joined
Apr 30, 2019
Messages
76
Reaction score
21
Location
Australia
There is that option and I will surely try it. Had never heard of that used in troubleshooting until now when I was just reading another similar thread and you suggested the same - what are the benefits? I thought the high profile was a more efficient codec and reduced bandwidth.
 

fenderman

Staff member
Joined
Mar 9, 2014
Messages
36,901
Reaction score
21,270
There is that option and I will surely try it. Had never heard of that used in troubleshooting until now when I was just reading another similar thread and you suggested the same - what are the benefits? I thought the high profile was a more efficient codec and reduced bandwidth.
While high may reduce bandwidth , it may also require more computing power or may not play nice with xprotect for whatever reason (this is likely to be camera/manufacture specific.)
 

Valiant

Pulling my weight
Joined
Oct 30, 2017
Messages
308
Reaction score
177
Location
Australia
Where are you running the smart client?. The milestone recommend architecture is to have a separate workstation for the viewing PC, although for a small setup this shouldn't be a problem. It may be worth testing from another PC and note any differences.
 

Gilera

Young grasshopper
Joined
Apr 30, 2019
Messages
76
Reaction score
21
Location
Australia
It may be worth testing from another PC and note any differences.
Thanks for that suggestion. I am running the Smart client on the same machine as the recording server and accessing via remote desktop from my laptop. I presume that this recommendation is to spread the cpu/gpu load. I have checked the cpu and gpu load on my old i7 and it does go up when the Smart client is open but still no where near maxed out with my setup. It jumps from about 4-5% on the cpu to about 15%.
 

Valiant

Pulling my weight
Joined
Oct 30, 2017
Messages
308
Reaction score
177
Location
Australia
You can install the smart client (download separate component from the Milestone web site, or from the installer and selecting the smart client option only) on your laptop and point the IP address to the recording server. It may or may not make a difference. The image quality should be better than over a RDP session.
 

Valiant

Pulling my weight
Joined
Oct 30, 2017
Messages
308
Reaction score
177
Location
Australia
Currently I have the second stream (JPEG) turned on in the camera even though I have Xprotect configured to use H264 for both live feed and record. The only time I utilise the second stream is for live feed when navigating directly to cameras which I have only reallydone for troubleshooting purposes i.e. to make sure the stream is intact when something goes wrong.
How are you doing this ? are you using the Milestone Mobile client ?. I would leave the secondary stream to h.264 with a low resolution and low frame rate (eg. 5FPS) for viewing over a mobile connection.

Is the video being _recorded_ correctly ? You should pause the video and step forward and count the number of frames per second.

The big thing to check is Antivirus, ensure it's not scanning any of the recording folders. Search the milestone forums, there should be more information on where AV should be excluded.
 
Last edited:

adamg

Pulling my weight
Joined
Sep 19, 2017
Messages
250
Reaction score
129
Viewing cameras in Smart Client via a RDP session is a poor idea unless you have a restricted network limitation (i.e. VPN, proxy RDP over internet, VDI...). Frame skipping is basically a guaranteed sign of something being insufficient performance / bottlenecking the video decoding/rendering/transmission. Could be network, CPU, GPU, disk IO, RAM on the Milestone recording server. Could be network, CPU, disk IO, GPU, RAM on the Milestone viewing client.

Run Windows Task Manager on all the computers in the video chain watching the performance metrics while viewing 0 video, 1 video, 2 video, etc. Also run the Level 3 Diagnostics overlay in Smart Client.
 

Gilera

Young grasshopper
Joined
Apr 30, 2019
Messages
76
Reaction score
21
Location
Australia
You can install the smart client (download separate component from the Milestone web site, or from the installer and selecting the smart client option only) on your laptop and point the IP address to the recording server. It may or may not make a difference. The image quality should be better than over a RDP session.
That is a very good idea, thanks.
 

Gilera

Young grasshopper
Joined
Apr 30, 2019
Messages
76
Reaction score
21
Location
Australia
Thanks guys. A lot of useful suggestions. I will update as I go.

Also run the Level 3 Diagnostics overlay in Smart Client.
I turned this on and noticed that it fluctuates constantly between 7 or 8 FPS and around 15 (set at 15 currently). I'm guessing this is not normal? Should it hover very close to the target FPS if all is working well?

How are you doing this ? are you using the Milestone Mobile client ?.
The camera web user interface relies on a MJPEG stream being turned on for the live feed. This is really only for setup and I could turn it back to MJPEG if and when I need to. The camera supports 2 streams and they can be set to any combination of H264 or MJPEG. If primary stream is set to H264 1080p and secondary stream is also set to H264 then resolution must be lower - either 4CIF, 2CIF or CIF(cannot do two 1080p streams) which shouldn't really matter for me. I don't often use the mobile client - but I do use it. Once or twice a day I'll check it from my mobile phone for a minute or two.

Does the mobile client rely on a secondary feed? Otherwise I could turn it off.
If the mobile client does rely on a secondary feed - are you thinking that a low FPS H264 secondary stream might reduce encoding load on the camera compared to primary H264 + secondary MJPEG?
 

Valiant

Pulling my weight
Joined
Oct 30, 2017
Messages
308
Reaction score
177
Location
Australia
Does the mobile client rely on a secondary feed? Otherwise I could turn it off.
If the mobile client does rely on a secondary feed - are you thinking that a low FPS H264 secondary stream might reduce encoding load on the camera compared to primary H264 + secondary MJPEG?
I'm not 100% sure which stream it uses but my guess is that the Mobile server would use the smaller stream. I would leave it as H.264. The Mobile server does do some type of transcoding and that will put additional load on the CPU.
 
Top