ofQTKitGrabber / QuickTime devices missing - AVFoundation change?


Hi, just hoping to bring up an issue with capture devices in ofQTKitGrabber on macOS Sierra.

I’m using a lot of CVBS video capture devices - generally these things are branded Elgato or Video FX, and need a proprietary driver like VideoGlide … or some in the past would work with macam. The last I see these things mentioned in the forums though is ~8 years ago!

My understanding is that they are loaded as QuickTime components, but Apple have recently cracked down on this with AVFoundation - is this the reason that the devices are not recognised in ofQTKitGrabber?

In Cycling '74 Max 6 the jit.qt.grab element is still working with these other devices, so would trying to use ofQuickTimeGrabber in macOS solve the problem?



You would need to use ofQuickTimeGrabber as those drivers work via QuickTime and not QTKit or AVFoundation.

If you install and build against earlier OS X SDKs it should be possible.
( see: MacOS 10.12 Sierra/XCode 8 - Quicktime deprecation workaround )

All the best,


Hi, bumping this up again to find a solution…

Trying to compile 0.9.8 with SDK 10.6 because of this line in ofConstants.h

		//on 10.6 and below we can use the old grabber
		#ifndef MAC_OS_X_VERSION_10_7

I’m getting “no member named llrint, llrintf etc” in cmath though. Is this something to do with C++11?


Successfully compiling OF 0.8.4 with SDK 10.6 now, but I get a linker _BeginUpdate error when declaring a ofVideoGrabber type… is this just a limitation of using Sierra?


In addition to using @theo’s workaround, you will need to compile your program as a 32 bit app. You are correct in saying that those older devices are loaded as QuickTime components, and this is the issue. Since QTKit is essentially a wrapper for QuickTime, and QuickTime never went 64 bit, then QuickTime components are only visible to 32 bit applications. If you want a 64 bit app to capture video from these devices you would need a 64-bit driver for AVFoundation, and unfortunately those do not exist, nor are they in the works by the VideoGlide people.

I’ve toyed for a couple of years with the idea of building some kind of 32-bit helper process that makes older capture devices visible to 64-bit apps via IPC or something like that, but it seems like Apple will be removing the ability of running 32-bit apps sooner rather than later, so I’m not sure it is worth the effort.