Virtual Camera Shows Jittering Frames and Solid Accent Color on macOS

Hello Apple Developer Support,

I’m developing a virtual camera using the CMIOExtensionDevice / CMIOExtensionStreamSource APIs on macOS. While the virtual camera appears in system settings and apps like Zoom and Google Meet, the video output exhibits the following issues:

Jittering frames: The first frame sometimes appears correctly, but subsequent frames flicker or jitter.

Solid color fill: Eventually, the camera feed fills entirely with a solid accent color (e.g., blue), rather than the intended video content.

Console logs: Repeated messages appear in Console.app:

Invalid display 0x00000000

Setup details:

The virtual camera is created using CMIOExtensionDevice and CMIOExtensionStream.

Video frames are rendered from NSImage/CGImage using CGContext and copied into CVPixelBuffers.

Frame delivery is controlled by a DispatchSourceTimer at 60 FPS.

macOS version: 26.2

Xcode version: 26.1

Observations:

The Invalid display 0x00000000 logs suggest that CGContext drawing or NSImage operations are failing in headless mode (i.e., there is no real display attached to the virtual camera).

Using CIContext with .useSoftwareRenderer = true appears to mitigate some flicker, but not entirely.

Questions / Requests:

Is it expected that CoreMediaIO virtual cameras cannot reliably render CGImage / NSImage frames offscreen?

Are there recommended APIs or approaches to render virtual camera frames fully headless to avoid display-dependent jitter?

Is there any documentation or sample code from Apple showing stable video output from a virtual camera extension that does not rely on a physical display?

Any guidance or examples would be greatly appreciated. This issue prevents the virtual camera from being used reliably in standard video apps.

Thank you, Savvy

Answered by DTS Engineer in 878089022

Let’s focus this discussion on your other thread.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Let’s focus this discussion on your other thread.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Virtual Camera Shows Jittering Frames and Solid Accent Color on macOS
 
 
Q