@ianj: GPU strain isn't the issue here - the bottleneck is the work being done on the CPU. motion-mmal only captures either video or stills, not both at the same time.
Browser based streaming can be disabled if you set the port for the streaming to zero in the config file, I think. It also doesn't take up any CPU if there's no browser connected.
There is only one resolution setting, but effectively there are two because of the secondary buffer option (though that is a multiplier). The streaming output can select either the primary or secondary buffer as output; if you select primary then the resolution will match the original settings, if you select secondary then the resolution will be the higher-res secondary image. That's how you can have a lower-res streaming image.
If you have the primary buffer for streaming, this will be encoded on the CPU, which can be a performance hit. If you set the secondary buffer to the GPU encoded JPEG mode, then this gets passed straight through reducing the CPU load - but as the resolution is higher, it uses more network bandwidth.
It would be possible to add a tertiary buffer via the MMAL API that could also be encoded to JPEG on the GPU and used for the streaming; this could be a different multiple of the original image resolution and thus could be both smaller and save CPU load. Probably worth a try - however right now I can't make any promises about working on it due to lack of time. Could be an interesting exercise "for the reader" ...
@recurry: apologies for any confusion... I think the README is out of date. I've been focussed on improving the code
The complete code is in the mmal-test branch of Github and has been for quite a while; it is buildable, and there are instructions in the BUILD-HOWTO file.
The code is also fully functional - it is reasonably well structured, and in keeping with the style of the rest of motion so could be the subject of a pull request on the original repo. However I think that is a mirror of the main code in SVN, so I don't know if the original developers will pay attention to it. But at least the code is out in the public domain anyway, which is the most important thing!