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.
| Feature | CanonCam | EOS Webcam Utility | Capture card |
|---|---|---|---|
| Price | Free, MIT | Free tier / $5 per month Pro | Hardware + software |
| Extra hardware | None, USB cable | None, USB cable | Card + HDMI cable |
| Output | 1280×720 · 30 fps | 720p30 free · 1080p60 Pro | Up to 1080p60 |
| Auto exposure tuning | Yes, one click | Manual | Manual |
| Auto reconnect | Yes | No | n/a |
| Source available | Yes | No | No |
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
- 01
Read live view
CanonCam drives the camera over USB/PTP with gphoto2 and receives a stream of JPEG preview frames.
- 02
Push to the extension
Frames are decoded and pushed through the camera extension CoreMediaIO sink stream.
- 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
- 550D / Rebel T2i
- 600D / Rebel T3i
- 650D / Rebel T4i
- 700D / Rebel T5i
- 750D / Rebel T6i
- 760D / Rebel T6s
- 800D / Rebel T7i
- 200D / Rebel SL2
- 250D / Rebel SL3
- EOS 6D
- EOS 6D Mark II
- EOS 7D
- EOS 7D Mark II
- EOS 70D
- EOS 80D
- EOS 90D
- EOS 5D Mark II
- EOS 5D Mark III
- EOS 5D Mark IV
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.
brew install gphoto2 xcodegen