Nimble uses way less resources than FFMPEG though, and the live stream is already flowing through it using almost no CPU at all, just need the option to save a frame now and then. With FFMPEG connected to the stream doing nothing it was using 50% of one core, taking the screenshot itself I don't think was causing any extra load. I think the problem with FFMPEG is it is decoding each frame constantly while connected to the stream when I only care about the 1 frame per second screenshot. I think Nimble could solve this problem if they supported it.
That said I solved my issue by finding that my camera had a snapshot feature built in and I just pull it from the camera directly with my app.