Mobile App Performance Issues

Joined
Sep 21, 2017
Messages
8
Reaction score
4
Location
Australia
Has anyone managed to tweak the settings on the xprotect mobile server to get video to play smoothly on the smartphone app? I have xprotect installed at two premises and one of them has a 40Mbit upload speed (which is more than enough bandwidth for a 1080p stream) the other has 7Mbit yet the video quality when viewing on the mobile app is still very choppy. Particularly the frame rate is very low, it looks around 5 frames per second instead of the 25-30 of my cameras

I have modified the config file on the xprotect mobile server to disable QoS (Quality of Service) which should stop the server from trying to degrade the quality, but it seems that that only has. Funnily enough it seems that xprotect uses the full bandwidth available (40Mbit, confirmed agaisnt windows 10 task/resource monitor) yet it still cannot provide smooth full frame rate output. The same occurs when trying to view recorded video. I've also ensured that the mobile app allows for full frame rate, resolution and quality

I've compared the quality to logging in the IP cameras natively over the internet and there is no issue with the stream when getting it direct from the camera, it's smooth and at full frame rate.

Whats frustrating is that other software such as Blue Iris can manage to deliver smooth video quality over the internet to their mobile app.

This is the only area why I am finding Milestones offering lacking.
 
Joined
Sep 21, 2017
Messages
8
Reaction score
4
Location
Australia
I've read in the milestone forums and other forums regarding the QoS. Even when i leave it at the default it doesn't really make a difference.

What resolution and frame rates are you using then?

I'll keep playing with the settings but so far cant seem to fix these performance issues.
 
Joined
Sep 21, 2017
Messages
8
Reaction score
4
Location
Australia
So i've done some further investigation. There appears to be a clear inefficiency in the way the milestone mobile server sends the output stream. My 4MP camera incoming stream is on average is approximately 2300kbps which is around 287.5kB/s. The milestone recording server confirms that it is receiving and recording at this bit rate and the camera also reports it is sending this bit rate when i log into the camera web interface. However, when I start a stream on my smartphone, the mobile server reports the bit rate at approx 1000kB/s which is equal to 8000kbps. This is confirmed in the network info in windows task manager.

I'm not sure what type of encoding the mobile server is using but it clearly not using h264. The output from the mobile server should match the bitrate of the camera, not be more than it, and definately not nearly 4 times the bitrate! It's no wonder that the quality of the mobile stream is suffering. The server CPU usage is only about 5-10% so there is no issue there. The CPU also has hardware encoding/decoding with intel quicksync.

When using an app like tinyCam to connect to the IP camera directly (either locally on WiFi or remotely over 4G), the bit rate matches the camera output of 287.5kB/s.

Can anybody else do a comparison of their mobile server output stream bitrate compared to the incoming camera stream bitrate, would be interested to see if other's also experience this.
 
Joined
Sep 21, 2017
Messages
8
Reaction score
4
Location
Australia
My router and the windows task manager both confirm the incoming/outgoing figures on the network, so there is no issue there. My ISP doesnt shape traffic and im on a fibre connection so there is no issue there.

I guess what im interested in is the comparison between the bandwidth between the IP camera and the milestone server, and the milestone server to mobile device. Have you done that comparison to see what the difference is?

In any case i've given up on using Milestone Mobile for live viewing of the cameras, Im using tinyCam instead for liveviewing the camera. The tinyCam android app has a much better interface, the video quality is better and it uses much less bandwidth since its getting the raw h264/h265 stream from the camera. Unfortunately i cant watch recorded video with tinyCam so im stuck using milestone for doing that.
 
Joined
Nov 25, 2016
Messages
3
Reaction score
0
I suspect that the server transcodes to motion JPEG rather than just acting as a proxy between the camera and your phone.
 

LittleScoobyMaster

Getting the hang of it
Joined
Jul 24, 2015
Messages
229
Reaction score
24
My router and the windows task manager both confirm the incoming/outgoing figures on the network, so there is no issue there. My ISP doesnt shape traffic and im on a fibre connection so there is no issue there.

I guess what im interested in is the comparison between the bandwidth between the IP camera and the milestone server, and the milestone server to mobile device. Have you done that comparison to see what the difference is?

In any case i've given up on using Milestone Mobile for live viewing of the cameras, Im using tinyCam instead for liveviewing the camera. The tinyCam android app has a much better interface, the video quality is better and it uses much less bandwidth since its getting the raw h264/h265 stream from the camera. Unfortunately i cant watch recorded video with tinyCam so im stuck using milestone for doing that.

I haven't done any extensive testing but I do notice that the Xprotect mobile app is slow as rhino s*** on my old iPhone5 and my brand new 2017 iPad. It's slow I tell you!

The word 'choppy' comes to mind quite often when I am viewing my cams with the mobile app.
 

fenderman

Staff member
Joined
Mar 9, 2014
Messages
36,897
Reaction score
21,250
I haven't done any extensive testing but I do notice that the Xprotect mobile app is slow as rhino s*** on my old iPhone5 and my brand new 2017 iPad. It's slow I tell you!

The word 'choppy' comes to mind quite often when I am viewing my cams with the mobile app.
does this occur even when you are on your local network? what router are you using?
 

LittleScoobyMaster

Getting the hang of it
Joined
Jul 24, 2015
Messages
229
Reaction score
24
does this occur even when you are on your local network? what router are you using?
I only use it on the local network. I've tried with several access points (802.11ac) but get the same results. It just seems to be the way the app is written. It's not as fluid as it could be. I've compared it to Blue Iris which has a much more responsive feel. I've always chalked it up to non streamlined programming on Milestones part. It's just chunky. It is slightly better on the 2017 iPad but not as good as it should be. The frame rates just aren't there compared to what I get with the regular smart client running on a PC. Not just multi cam view but even single 1080p cams don't seem to have the full 30 fps on the mobile app. Running 2017 r3. (same results with all previous versions).
 
Last edited:

fenderman

Staff member
Joined
Mar 9, 2014
Messages
36,897
Reaction score
21,250
I only use it on the local network. I've tried with several access points (802.11ac) but get the same results. It just seems to be the way the app is written. It's not as fluid as it could be. I've compared it to Blue Iris which has a much more responsive feel. I've always chalked it up to non streamlined programming on Milestones part. It's just chunky. It is slightly better on the 2017 iPad but not as good as it should be. The frame rates just aren't there compared to what I get with the regular smart client running on a PC.
strange....you would think they would have it sorted...
 

LittleScoobyMaster

Getting the hang of it
Joined
Jul 24, 2015
Messages
229
Reaction score
24
strange....you would think they would have it sorted...
If I had a jail broken IOS device I would try something like this to get an accurate fps count for Xprotect mobile client so we could have some data to show. But on IOS it would be a long shot due to the issues with this particular counter as it has a very low success rate according to the review.

How To Get An FPS Counter In iOS Games & Apps

Android users will probably have more luck getting Android fps counters because they are more prevalent on that platform. Anyone try a similar app yet on Android to get the actual fps? Curious what the actual fps count is. On my IOS devices it feels very slow but I would be curious what the actual numbers were. Maybe an Android user could post some snaps or something.

I am pretty close to using a different app for live viewing on mobile as well due to the slowdown issue with Xprotect mobile client. I'm hoping there might be a setting that can help or something. Maybe Milestone support has the answer.
 
Last edited:
Joined
Nov 25, 2016
Messages
3
Reaction score
0
Any chance you could record the choppiness you're seeing (use a 2nd phone for example) and share via Youtube?
 

Chaser2001

n3wb
Joined
Oct 1, 2017
Messages
2
Reaction score
3

LittleScoobyMaster

Getting the hang of it
Joined
Jul 24, 2015
Messages
229
Reaction score
24
This is almost certainly a transcoding CPU usage issue rather than a network bandwidth issue. When streaming to a mobile app, have a look at the server CPU stats. The CPU on my system maxes out at 100%. That's with an Intel Pentium Dual Core E5200 running @ 2.5GHz. Milestone does support hardware acceleration, but only on certain CPUs:

https://www.milestonesys.com/files/General/MilestoneGuides/MilestoneXProtectSmartClient_HardwareAccelerationGuide_en-US.pdf
All I know is that I wish they would fix it. Otherwise, I'm going to have to Junk It!

 

shokunin

n3wb
Joined
Jan 15, 2016
Messages
20
Reaction score
21
What are your mobile server settings in Milestone Management Client. Mine runs smoothly almost as smooth as watching them on the Smart Management Client.

Double check your settings:

On Mobile Servers - > General Tab

Uncheck - "Enable keyframes"

Hit the save button.

Performance Tab

Uncheck - "Enable full size Images" (this seems to reduce CPU performance on my system)

On the Stream Levels, I turned off the lower 2 stream levels and have Level 1 set to always, Max 30fps, Max Resolution: No Limits.
You can enable the lower 2 levels to make sure you're not 100% maxing out your CPU. I have plenty of headroom on my system.

Hit the save button.

I get smooth playback on either mobile or through a web browser.
 

GKL

Getting the hang of it
Joined
Oct 20, 2017
Messages
167
Reaction score
8
What are your mobile server settings in Milestone Management Client. Mine runs smoothly almost as smooth as watching them on the Smart Management Client.

Double check your settings:

On Mobile Servers - > General Tab

Uncheck - "Enable keyframes"

Hit the save button.

Performance Tab

Uncheck - "Enable full size Images" (this seems to reduce CPU performance on my system)

On the Stream Levels, I turned off the lower 2 stream levels and have Level 1 set to always, Max 30fps, Max Resolution: No Limits.
You can enable the lower 2 levels to make sure you're not 100% maxing out your CPU. I have plenty of headroom on my system.

Hit the save button.

I get smooth playback on either mobile or through a web browser.
Thanks for sharing that !

I was considering using the free XProtect Essential+ software along with the Milestone Mobile 2017 R3 app for windows phones, but I'd like to know if anyone else has successfully used your solution to resolve the choppy video on mobile devices issue since I did not see any replies after your post of anyone else trying your solution.

I just don't want to go thru setting everything up with new software just to uninstall it again if that solution don't work for everyone.

If I did have the choppy video issue on my smartphone I know the problem would not be with my network or my smartphone as I get good live remote video thru the iVMS-4500 mobile app, and I'd continue using it but for the fact that the iVMS-4200 storage server software does not "see" my HDD to allow me to set up auto record when motion is detected. The iVMS-4200 client software does let me record manually to my HDD but not automatically. So I got fed up trying to figure it out and want to use something different.

Thanks !
 
Top