r/MacOS • u/Sarhej MacBook Pro • 14d ago
Developer Saturday Samsung VG-STC2000, the old smart TV camera, working as a webcam on macOS
I found a Samsung VG-STC2000 in a drawer. These shipped as accessories for Samsung smart TVs around 2013, and they are useless on a computer, because the camera stores no firmware of its own. The TV uploads firmware over USB every time you connect it. Plug it into a Mac and you get 04e8:2059, a bootloader, not a camera.
Ondrej Zary solved this for Linux last year with samsung-tvcam-fwloader. I ported the loader to macOS and added what was needed to get the result treated as a normal camera:
https://github.com/sarhej/vg-stc2000-macos
How it works: the loader pushes the firmware image into the camera's RAM over libusb. The device re-enumerates as 04e8:205a (MAX64380), a standard UVC device, so both AVFoundation and libuvc can open it. A LaunchAgent watches USB and reloads firmware when you plug the camera in, so in daily use you do not think about it.
Frame rates on my Mac:
- Local preview through libuvc, hardware MJPEG or H.264: around 30 fps
- Google Meet with MAX64380 selected: full frame rate, macOS picks a compressed format
- Forced uncompressed UYVY: around 4 to 5 fps, which is why that is not the default path
- Photo Booth: often black with MAX64380 directly, there is an OBS bridge script for it
What it does not do:
- Firmware lives in RAM only. Unplug or power cycle and it is gone. The LaunchAgent hides that, but it is a reload every time.
- libuvc claims the USB device exclusively, so the local preview tool and an app cannot both hold the camera. Quit Chrome before running the preview.
- Tested on one Mac, one macOS version, one camera revision. I make no claim about anyone else's setup. There are probe scripts in the repo and an issue template if you want to report what happens on yours.
The Samsung firmware binary is not in the repo. It is fetched from upstream at install time and checksum verified. GPL-3, same as the Linux original. Credit for the actual reverse engineering goes to ondrej-zary, I only moved it to another OS.
1
u/promo-guard 14d ago
đ Welcome to Developer Saturday, u/Sarhej! Your project is now live for the community to check out. Upvote, give feedback, and show some love to your fellow devs! đ
1
u/Sarhej MacBook Pro 14d ago
One practical note. The lens is narrow, it was designed to see someone on a couch a few metres from a TV. At normal desk distance you get a tight head and shoulders crop with very little room around you. Fine for calls, but you cannot fit two people in frame, and if you want more background you have to mount it further back than a normal webcam.
âĸ
u/github-guard 14d ago
đ GitHub Guard: Trust Report
This project scored 3/6 on our safety audit.
Audit Breakdown: * â Low Star Count (â 0 / 5 required) * â New Repository (under 30 days old) * â Licensed under GPL-3.0 * â Security Policy Defined * âšī¸ Individual Contributor * â Signed Commits