If the amount of motion you are waiting for is quite small, it might be hard to look at the motion via frame difference on the whole frame and compare to a threshold. If thats the case, I would suggest one of two options:

- do a frame difference as mentioned, but instead of summing the total difference in the whole frame and comparing to a threshold, divide the screen into a grid, and sum the difference in each grid. If any grid has more motion than a threshold, switch to that feed. - similar to the above, (but more complex - but easier to do as one of the samples has something very similar), do an optical flow motion estimation on the feeds, then check to see if any velocity vector is greater than a threshold.

Normally if developing from scratch the first option is much easier. But there is already a QC optical flow implementation in the samples (developer/examples/Quartz Composer/Plugins/Optical Flow). There you will find 2 QTZ files, any one of those will do but the OpticalFlow.qtz is probably easier to start with, you just need the branch upto and including the CI Optical Flow. This core image kernel takes two frames (current and prev) and outputs a new image containing velocity vectors (R is horizontal speed, G is vertical speed).What you want to do is loop through this image and check to see if any velocity (i.e. any pixel) is greater than a threshold (you DONT want to average all velocities and compare to a threshold because you will have the same problem as the whole image frame differencing in that the subtle movements will be absorbed by the noise).

P.S. in those optical flow QTZ samples, it will give an error about missing plugin. The OpticalFlowDownloader QCPlugin is not that important, all it does is take the RG vector field image, and convert it into an array of numbers. If its easier you could just compile the plugin and iterate through the array instead of the image... or better still just modify the QCPlugin to do the looping (as it already does do that) and just return the maximum velocity instead of (or as well as) the array of numbers....

hope this helps,


Memo (Mehmet S. Akten)

www.memo.tv

[EMAIL PROTECTED]



On 7 Jul 2008, at 20:13, Jeffrey Weekley wrote:

Thanks to Chris W. for his reply using a QC Histogram approach, but since neither screen capture nor speaker video source changes all that much, we weren't able to generate a delta that was wide enough to elicit a switch from one source to another.

I _know_ I saw such a composition at the WWCD last year ('07), but I can't find that example online or in the developer directory with XCode.

Does anyone have this, because I think it's just what we're looking for.

In a nutshell, here's the problem again:

One Video Screen Capture + One Camera Video (plus audio). We want to be able to post both videos to a directory, bring them into QC and switch between the video sources, based on whether or not something is happening on the screen capture. Most of the time, it's subtle, like a mouse move. The audio from the camera plays through out. We then want a Quicktime movie from the QC.

Any ideas?

Thanks in advance.

-Jeff W.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected] )
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/memo%40memo.tv

This email sent to [EMAIL PROTECTED]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to