OBS Setup for Old Canon DSLRs (No Capture Card)
Short answer: old Canons (450D, 1000D, 500D, 40D, 50D) don’t appear as webcams over USB, so OBS can’t see them directly. The working chain is: eos-movrec captures the Live View feed over USB → OBS grabs the eos-movrec window with Window Capture → OBS Virtual Camera (or a stream output) sends it anywhere. On Mac/Linux the same idea works via a gphoto2 + FFmpeg pipeline. This page covers the full setup.
Quick Answer: Connect the camera over USB, run eos-movrec, add a Window Capture source in OBS pointed at its window, crop the borders, and start OBS Virtual Camera. Set the OBS canvas to the feed’s native size (848×560 for the 450D). Mac/Linux users can use the gphoto2 + FFmpeg pipeline instead.
The Concept: Why Window Capture
Modern cameras with movie mode can present themselves as UVC webcams, which is why OBS’s Video Capture Device source lists them. Pre-2010 Canons can’t — over USB they speak Canon’s PTP control protocol, not UVC video. eos-movrec bridges that gap: it talks PTP, pulls Live View frames, and shows them in its own window. OBS then captures that window. It’s one extra hop, but it’s free, it needs no capture card (these bodies have no HDMI to capture from anyway), and it works on any 450D/1000D/40D/50D-class body. Camera-specific walkthroughs: 450D as webcam, Twitch with 450D.
Windows Setup, Step by Step
- Prep the camera. Enable Live View, set the lens to MF and pre-focus, disable Auto Power Off, and for long sessions fit a dummy battery.
- Connect and launch eos-movrec. USB Mini-B data cable straight into the PC (no hub), camera on, start eos-movrec. Confirm the Live View feed is moving in its window.
- Create the OBS scene. In OBS Studio: Settings → Video → set Base and Output resolution to the feed’s native size — 848×560 (450D), 768×512 (1000D), or 1024×680 (40D/50D/5D Mark II). Set Common FPS Values to 25 or 20 to match the ~17–22 fps feed; forcing 60 fps just duplicates frames and wastes CPU.
- Add Window Capture. Sources + → Window Capture → select the eos-movrec window. Hold Alt and drag the red handles to crop away the title bar and borders until only the video remains.
- Add audio separately. Sources + → Audio Input Capture → your USB microphone. The camera feed is video-only (why there’s no audio).
- Go live or go virtual. For streaming, set up your Twitch/YouTube output as normal. For video calls, click Start Virtual Camera and pick “OBS Virtual Camera” in Zoom/Teams/Discord.
Tuning: Latency, Sharpness, Stability
- Latency: expect roughly half a second of delay through the PTP → window-capture chain. It’s fine for calls and streaming; don’t use it for real-time monitoring of fast action.
- Sharpness: keep the OBS canvas at native feed size. Upscaling 848×560 to 1080p in OBS adds blur without adding detail — if you need bigger output, upscale in post with Topaz or free methods instead.
- Stability: quit Dropbox, Google Drive, antivirus real-time USB scanning, and Canon EOS Utility before starting — anything that polls the camera can steal it mid-session (device busy fix). If the feed freezes, unplug/replug USB and restart eos-movrec before touching OBS.
- Exposure: shoot in M mode at a fixed shutter/aperture/ISO so brightness doesn’t breathe mid-stream; white balance on a preset, not Auto.
Mac and Linux: the gphoto2 + FFmpeg Pipeline
eos-movrec’s classic builds are Windows-centric (though an active Qt fork on GitHub targets Win/Linux/Mac). The native Unix alternative skips eos-movrec entirely: gphoto2 pulls LiveView frames from the camera over USB, FFmpeg encodes them into a stream, and that stream is presented to OBS as a virtual camera. The open-source dslr-usb-stream project documents exactly this pipeline for macOS and it adapts to Linux with minimal changes. Conceptually it’s the same three hops as Windows (capture → OBS → output); only the capture tool differs. Our Mac webcam guide covers the Mac-specific virtual-camera options (Camera Live + CamTwist) in detail.
Quick Troubleshooting
- Black preview in eos-movrec: Live View isn’t enabled — enable it and press SET.
- Camera not detected at all: charge-only cable, hub, or driver issue — see troubleshooting.
- Choppy feed: normal at ~20 fps; don’t fight it with 60 fps output settings. Close background apps.
- OBS shows a still frame: the eos-movrec window lost focus or the camera slept — disable Auto Power Off.
Frequently Asked Questions
How do I get my old Canon DSLR into OBS without a capture card?
Run eos-movrec to capture the camera’s Live View feed over USB, add a Window Capture source in OBS pointed at the eos-movrec window, crop away the window borders, and start OBS Virtual Camera. No capture card is involved at any step.
What canvas resolution should I use in OBS for a 450D?
Match the feed: 848×560 for the 450D, 768×512 for the 1000D, 1024×680 for the 40D/50D/5D Mark II generation. Setting the OBS canvas to the native feed size avoids blurry upscaling.
Why is the OBS feed choppy or laggy?
The feed itself is only ~17–22 fps MJPEG, so set OBS to match (20 or 25 fps output) rather than forcing 30/60 fps. Also use a direct USB port (no hub), close apps that poll the camera (Dropbox, Google Drive — see device busy fix), and keep PC load light.
Can I use this on Mac or Linux?
Yes — via the gphoto2 plus FFmpeg pipeline: gphoto2 streams the LiveView frames, FFmpeg encodes them, and the stream is fed into OBS as a virtual camera. The open-source dslr-usb-stream project documents this for macOS.
Does the camera’s audio come through OBS?
No — eos-movrec’s MJPEG feed carries no audio, and these bodies have no mic input anyway. Add your USB microphone as a separate Audio Input Capture source in OBS.
Window Capture vs. Video Capture Device — which source type?
Use Window Capture on the eos-movrec window. These old Canons do not present as UVC webcams over USB, so OBS’s Video Capture Device source will not list them — that source is for real webcams and capture cards only.
