What I'm looking to do is modify an existing or create a new video source. I spend a lot of time on Facetime and Google Hangouts and want to modify the video before it goes into either application. I see this happening 1 of 2 ways.
My program takes the initial video source (my USB webcam), modifies it, then outputs to a new video source that I can select from Facetime/Hangouts.
My program modifies the original video source in place.
The modifications I plan on doing are being able to zoom in, replace the video with a static image, split screen my video with something of my choosing, and be able to play sound effects.
I'm capable of writing this in just about any language, the problem is that I don't have a clue where to begin. Every search I've performed has come up completely off topic. I'm sure I'll end up using OpenCV, but everything I've read only writes the video to a file. I need it to write to a new stream so that when I select Video Source, my application shows up (or if I can write to the original stream). Is OpenCV capable of doing that or are there other libraries that can accomplish this? (This is all running on a Mac)