Free & open source · macOS

Turn your Canon DSLR into a Mac webcam, over USB

One USB cable. No capture card, no subscription, no watermark, no account. CanonCam publishes your Canon EOS live view as a real macOS camera, so Zoom, Meet, OBS and FaceTime just see a webcam.

  • MIT licensed
  • No cloud, no telemetry
  • 1280×720 · 30 fps

Lives in the menu bar. Opens live view on demand.

Why this exists

Using a DSLR as a webcam should not cost a subscription

Canon's own EOS Webcam Utility is free up to 720p30 with one camera over USB. Higher resolution, multiple cameras and wireless sit behind Pro, at about $5 a month. The other common route, a capture card plus software like Ecamm Live, means buying hardware or another recurring licence. Meanwhile the camera already streams live view down its USB cable using an open protocol.

Comparison of CanonCam, Canon EOS Webcam Utility and a capture card setup
FeatureCanonCamEOS Webcam UtilityCapture card
PriceFree, MITFree tier / $5 per month ProHardware + software
Extra hardwareNone, USB cableNone, USB cableCard + HDMI cable
Output1280×720 · 30 fps720p30 free · 1080p60 ProUp to 1080p60
Auto exposure tuningYes, one clickManualManual
Auto reconnectYesNon/a
Source availableYesNoNo

To be straight about it: CanonCam outputs 720p, the same as Canon's free tier. That is not an artificial cap. The USB live view preview stream is lower resolution than the sensor, so it is the real ceiling for this approach. If you need 1080p60, buy the capture card.

What it does

The parts that usually get gated

Optimize light & quality

One click sets 1/50s for flicker-free 50 Hz lighting, opens the lens to its widest aperture, picks automatic white balance and walks ISO up to the lowest value that still looks good.

Software autofocus

Trigger the camera autofocus from the menu bar without touching the body.

Automatic reconnect

Camera sleeps, or someone bumps the cable? CanonCam notices, backs off, reclaims the USB connection and resumes on its own.

Starts on demand

Open the camera in any app and live view starts by itself. Nothing to launch first.

Real virtual camera

A CoreMediaIO system extension, so it shows up natively in every app camera list. Not a browser plugin.

Nothing leaves the Mac

No network code in the repository at all. No telemetry, no account, no cloud.

How it works

USB in, virtual camera out

  1. 01

    Read live view

    CanonCam drives the camera over USB/PTP with gphoto2 and receives a stream of JPEG preview frames.

  2. 02

    Push to the extension

    Frames are decoded and pushed through the camera extension CoreMediaIO sink stream.

  3. 03

    Appear as a webcam

    The extension publishes them as a 1280×720, 30 fps camera named CanonCam. Any app can select it.

Compatibility

Which Canon cameras work as a webcam?

CanonCam reads the available controls from the camera at runtime instead of hardcoding a model, so it works with whatever gphoto2 supports. Developed and tested on the Canon EOS 200D / Rebel SL2.

Expected to work

May need extra steps

1000D-era bodies want a capture mode other than Auto, with preview in still-image mode. Some 7D-and-later bodies need viewfinder=1 set first, which CanonCam does not send today.

Not supported

R-series mirrorless: R5, R6, RP, R50, R5 C. gphoto2 video-mode support for these is known to hang or fail. CanonCam targets EOS DSLRs.

The reliable test, whatever your body: if gphoto2 --capture-movie --stdout > test.mjpg produces frames, CanonCam will work.

FAQ

Common questions

Can I use a Canon DSLR as a webcam over USB?

Yes. Canon EOS bodies stream live view over their USB cable using PTP, an open protocol. CanonCam reads that stream on macOS and publishes it as a virtual camera that any app can select. You need nothing but the USB cable that came with the camera.

Do I need a capture card?

No. Capture cards read the camera HDMI port. CanonCam uses the USB port instead, so there is no extra hardware to buy and nothing else to plug in.

Is CanonCam free?

Yes. CanonCam is free and open source under the MIT license. There is no subscription, no account, and no paid tier. You build it once from source with your own Apple Developer account.

Which Canon cameras work as a webcam with CanonCam?

Canon EOS DSLRs from roughly 2010 onward, including the 550D, 600D, 650D, 700D, 750D, 760D, 800D, 200D, 250D, 6D, 7D, 70D, 80D, 90D and 5D Mark II through Mark IV. CanonCam was developed and tested on the EOS 200D / Rebel SL2. R-series mirrorless bodies are not supported.

Does it work with Zoom, Google Meet, OBS and FaceTime?

Yes. CanonCam registers as a real macOS virtual camera through a CoreMediaIO system extension, so it appears in the camera list of any app that can pick a webcam, including Zoom, Google Meet, Microsoft Teams, OBS, FaceTime and QuickTime.

How is this different from Canon EOS Webcam Utility?

Canon EOS Webcam Utility is free up to 720p30 with a single camera over USB. Higher resolution, multiple cameras and wireless require the Pro subscription at about 5 dollars a month. CanonCam is free and open source, and adds one-click exposure optimization, software autofocus, automatic reconnect and auto-start when an app opens the camera.

Does CanonCam work with the Canon R5, R6 or RP?

No. Support for CanonCam comes from gphoto2, and gphoto2 video-mode support for R-series mirrorless bodies is known to hang or fail. CanonCam targets Canon EOS DSLRs.

What resolution does CanonCam output?

CanonCam outputs 1280x720 at 30 fps. That is the same as the free tier of Canon EOS Webcam Utility. It is not an artificial cap: the PTP live view preview stream is lower resolution than the camera sensor, so it is the practical ceiling for this approach.

Build it, plug in the cable, pick CanonCam

There is no prebuilt binary: macOS camera extensions must be signed by the team that ships them, so you build once with your own Apple Developer account. Everything you need is in the repository.

Get CanonCam on GitHubbrew install gphoto2 xcodegen