VTDecoderXPCService CPU usage
  • Hi @armakarma - the current beta (4.2.4b5) still has this tweak, so please test it and report back. Thanks.

    Note that it's not high CPU usage per se that's the problem here - high CPU usage could be completely normal depending on your setup. The problem here is CPU usage of VTDecoderXPCService that starts low, but that gradually increases over time all the way to 100%. Are you experiencing this?
  • Ok, here is my update.....I was experiencing high CPU of VTDecoderXPCService which went away when I upgraded to High Sierra. I then thought the problem came back as I was experiencing high CPU usage once again. I checked Activity monitor and though that the problem had somehow recurred but in fact this time in was VTENCODERXPCService (not decoder) that was through the roof. I realised that this must be due to the fact that I was displaying my cameras on 2 different iPads at the same time using the iOS App. Once I stopped using the apps to view, everything returned to a respectable level and performance has been great with no errors.

    Hope this helps.
  • Thanks for the update. High encoding CPU usage is expected with multiple viewing clients connected. You can mitigate this by switching the streaming format from H.264 to JPEG in the iOS clients (in the SecuritySpy iOS app settings), though this will use more network bandwidth (not a problem over a local network, but may provide slow performance over the Internet).
  • I've been mucking around with this myself as I've seen the issue cropping up for me.

    On my system, it looks like VTDecoderXPCService's high use of CPU is directly tied to motion detection and having the camera windows open (either on Mac or iOS devices)

    I'm running 5 Foscam cameras of varying types. The two with motion detection enabled are using ~9% CPU each.

    I had motion detection turned one for a third camera that was using 18% CPU by itself. I turned that off and CPU dropped to 0.0%

    I tested turning motion detection off with the other two, and voila, no CPU.

    Motion on for two cameras: http://take.ms/w9Luu
    Motion off: http://take.ms/rarseH

    That's with the Cameras window closed on my Mac. If I open it, all 5 shoot up considerably, which I suppose defeats the purpose of the software entirely (not being able to see the cameras).
  • Hi @mikejandreau - what you are reporting is completely normal. When SecuritySpy has to decompress the incoming video for any purpose - for example to display in video windows or to perform motion detection - it has to invoke the VTDecoderXPCService to do this task, and this uses CPU time. 9% per camera is very modest CPU usage, and note that this 9% represents the amount of usage of a single CPU core, so for example if your Mac has a 4-core CPU, then this 9% represents only about 2% of your Mac's total processing capacity.
  • Hi Ben, I've been running SS on an old OLD iMac at home for some time now, it's a 2006 running Lion, it runs fine on it. I swapped it to a slightly less old one yesterday, a 2007 running EC, and the VTDecode problem is there. I actually forgot about this having upgraded the work machines to Sierra (which solved the problem).

    So, back to EC: You mentioned up there a bit about a beta version of SS with a VTDecode killer thing built in, I'm guessing this never made it into the release version as Sierra fixed the issue?
  • Hi @steveb - what exactly are the symptoms you are seeing? High VTDecoderXPCService CPU usage isn't necessarily the sign of a problem, it could be a perfectly normal consequence of having to decode the incoming video from the cameras.

    What is the CPU usage of VTDecoderXPCService when you first open SecuritySpy (after all the cameras have opened and displaying live video)? Then, what is the CPU usage of VTDecoderXPCService after 12 hours or so of running? What are the exact specs of your iMac?
  • My VT experience may help so I'm sending it along plus I have a question.

    On a 2018 27" iMac, I'm running SS 4.2.9 with three cameras and my VTEncoderXPCService shows 0.0 % CPU. I only record motion detected files to a Capture Destination on my hard drive and FTP Uploads are not enabled.

    I also have a 2015 27" iMac and I installed a copy of SS for view only. When I launch the view only app, the main computer's VTEncoderXPCService jumps from 0% to 71% and on the remote computer the VTDecoderXPCService jumps from 0% to 15%. I imagine this is the expected usage for this setup. I've applied all of the optimization steps recommended in the manual.

    Both iMacs are running Sierra and have plenty of RAM plus SSD drives.

    If there is anything special to adjust when operating in the view only mode, I'm open to suggestions that might reduce the 70% CPU usage in view only mode is running on a remote Mac.
  • Hi @bg2003 this sounds perfectly normal. Adding a viewing instance will require the server to encode video to sent to the viewer, which is why you're seeing the encoder increase. The best way to reduce this CPU usage is to reduce the frame rate that the client requests (which can be done under Preferences -> Cameras -> Device on the viewing computer).

    However note that this 70% figure will be for one core of your server iMac, not its entire processing capacity. Check how many cores your iMac has by opening Activity Monitor and opening the "CPU Usage" window from the Window menu. It's probably 8 (8 virtual cores running on 4 physical cores), in which case a 70% usage for one process represents only a 9% usage of the iMac's overall processing capacity. So your current settings seem fine, and I don't think you need to take steps to reduce this usage.
  • Is it safe to assume the new 2019 iMac lineup continues to support hardware-accelerated video processing? When you read the specs, what is the main indicator that video processing is supported in hardware (rather than the CPU)?
  • According to reports, the new 2019 iMacs will use Intel's 8th-generation and 9th-generation "Core" CPUs. The specifications of these are described in Intel's document 8th and 9th Generation Intel Core Processor Families (Datasheet).

    The relevant technology here is called "QuickSync", which does hardware encoding and decoding of video data, and the document shows these two tables for decode and encode:

    image

    image

    So, these CPUs support the decoding of 16 simultaneous H.264/H.265 streams at up to 1080p (2 MP) in hardware via the QuickSync module. Unfortunately the specs don't say how many simultaneous decode streams are supported at higher resolutions, which would be useful information, with many users now moving to higher-resolution cameras.

    The encoding table indicates that this is for a single stream only - any additional encoding streams will be done by the actual CPU rather than the special QuickSync module.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!