Why is my Milestone XProtect LPR server CPU usage hitting 100%?
Answered by ANPR AI·Sourced
Short answer
High CPU usage on a Milestone XProtect LPR server is almost always caused by processing H.264 or H.265 compressed video streams. Milestone requires the LPR engine to decode these complex compression formats before analyzing the plates, which quickly overloads the server's processing capacity and causes dropped frames.
Explanation
Optical Character Recognition (OCR) algorithms cannot effectively read compressed video; they must analyze uncompressed, raw image frames to detect the sharp contrast edges of characters. When an IP camera sends an H.264 or H.265 stream, it utilizes inter-frame compression to save bandwidth, sending only the changes between frames rather than complete images. The centralized Milestone LPR server must utilize its CPU to decompress the stream frame-by-frame and reconstruct the entire image before it can even begin OCR analysis.
In a multi-camera setup, this constant video decoding creates massive computational overhead, maxing out CPU threads and delaying event triggers.
To resolve this bottleneck, Milestone explicitly mandates that cameras feeding the LPR engine must be configured to stream JPEG or MJPEG formats. H.265 is not supported for LPR. By sending uncompressed JPEG frames over the network, you force the camera's internal hardware to do the heavy lifting of image generation.
These independent, uncompressed frames are delivered to the server immediately ready for OCR analysis, completely eliminating the decompression overhead and stabilizing CPU loads.
Things to check
- Verify the stream configuration in the XProtect Management Client for all designated LPR cameras.
- Check if H.265 is enabled, as Milestone officially does not support H.265 for LPR processing.
- Confirm if the server is handling both continuous recording and LPR analysis on the exact same high-resolution stream; these should be separated into dual streams.
What to do
Log into the XProtect Management Client, navigate to the specific camera, and change the codec for the LPR stream to JPEG or MJPEG. If you also need to record video for general surveillance, configure the camera to use dual-streaming: map a primary H.264 stream to the recording server for long-term storage, and configure a secondary, low-framerate JPEG stream exclusively mapped to the LPR engine. If CPU usage remains high after this change, Milestone recommends moving one or more LPR cameras to a different dedicated LPR server.
ANPR Edge
Skip the dedicated ANPR camera. Read plates from the cameras you already have.
ANPR Edge is plate-recognition software that runs on a PC at your site and works with ordinary IP cameras, so plate reads no longer depend on one vendor's camera, NVR or firmware.
- Works with standard IP cameras over RTSP
- One license per location covers every camera
- Runs on a Windows PC or Mac you own