What is PTP Webcam?

PTP Webcam is a plugin for macOS X that allows a DSLR to be used as a webcam for video conferencing, streaming, or recording. A DSLR will typically provide a superior image compared to built-in webcams in laptops or standalone monitors, and even dedicated web cameras.

PTP Webcam Comparison
DSLR
Webcam
Left: Nikon DSLR with an 50mm/f1.4 lens. Right: MacBook Pro FaceTime camera.

Getting PTP Webcam

Binary installation packages are available to download directly:

After installing the package, turn on your camera and plug it in via USB. Open QuickTime Player, select New Moview Recording from the File menu, and the camera should become selectable as the video source as well as display a status bar item.

PTP Webcam Camera Settings PTP Webcam Camera Selection

PTP Webcam is free and open source, and you can support the project through sponsorship:

Uninstalling PTP Webcam

Download and run the PTP Webcam Uninstaller,

… or delete these files and reboot to uninstall:

/Library/CoreMediaIO/Plug-ins/DAL/PTPWebcamDALPlugin.plugin
/Library/LaunchDaemons/org.ptpwebcam.PtpWebcamAssistant.plist
/Library/LaunchAgents/org.ptpwebcam.PtpWebcamAgent.plist

Features

Camera settings can be adjusted through a status item in the menu bar, and a preview is available to check the image.

With Nikon FX and DX DSLRs and Z-mount mirrorless cameras, depending in on the camera model, it allows full control over image settings.

With Sony Alpha mirrorless cameras, depending in on the camera model, limited camera settings are available.

Since v1.3.0, controlling UVC (USB Video Class) cameras, which includes most USB webcams, is also supported.

All applications that support video capture through CoreMedia are supported, including:

Compatible Cameras

A full feature matrix is available in CAMERAS.md.

Cameras in bold have been confirmed to work with PTP Webcam. The others are untested but should work. Striked through models are not currently working with PTP Webcam.

Full-Frame / FX Format

APS-C / DX Format

Incompatible Cameras

The following digital cameras are known to have hardware limitations that preclude their use as a webcam:


FAQ

Is there a forum or live chat?

There is a discord channel for chatting about PTP Webcam.

How is this different from using HDMI capture hardware?

With HDMI capture, you need additional hardware (eg. a USB dongle or capture card), and if your camera does not have clean HDMI output, the image will be overlaid with whatever else you see on the camera's screen. However, in general the HDMI image has a higher resolution and better frame-rate than the USB LiveView stream.

The good news is that it doesn't have to be one or the other! You can use PTP Webcam to control the camera, and still capture the HDMI output, if you have HDMI capture hardware available, and your camera can output an HDMI image while being controlled from the computer.

How is PTP Webcam different from OEM Software?

Canon EOS Webcam Utility Beta allows only one camera at a time, and the camera's settings cannot be controlled from the computer. The actual video stream quality is identical.

Nikon does not provide software to do this on the Mac.

Sony does not provide software to do this on the Mac.

My camera does not show up at all?

If your camera is plugged in and powered, Image Capture can see it, and is on the list of supported cameras it could be one of the following:

How does this work with Zoom / Skype / Chrome?

Zoom version 5.1.1 and newer works out of the box, as it has Library Validation disabled to work with virtual camera plugins.

Skype version 8.62.0.85 and newer works out of the box, as it has Library Validation disabled to work with virtual camera plugins.

The main problem with apps trying to use 3rd party video sources is that security restrictions for apps using Apple's Hardened Runtime and 3rd party libraries are not fine-grained enough. Apps can either choose to disable Library Validation, or are only allowed to use the ir own and system libraries, which excludes this project (and many other 3rd party camera drivers).

The only currently available solution, as a user, is to disable codesigning for those applications, which allows the use of 3rd party plugins at the expensive of disabling some OS security features for those apps.

The PTP Webcam installer package can attempt to remove code signing for Google Chrome installed in the "/Applications" directory during the installation, but the process has to be repeated when the applications are updated.

Does this work with FaceTime?

FaceTime's reluctance to be able to use PTP Webcam cameras as a video source could not be circumvented so far, so at the moment it does not work, but it is tracked as an open issue that can hopefully be resolved.

My camera shows up in Quicktime Player, but not in XYZ other application?

This is most likely an issue with code signing, see the instructions in the ReadMe related to code signing and library validation. It is likely that the hardened runtime is enabled for the application, and code signing must be disabled for PTP Webcam to work. The installer tries to do this for Zoom.us and Skype, but it may fail if they are in non-standard locations. Either way, please file a bug report so that a fix can be incorporated into future releases.

Photo Booth is one of the applications that cannot load PTP Webcam in their default states because of Library Validation. Zoom version 5.1.1 and newer disable Library Validation, and can thus use PTP Webcam without modification.

My camera will not honor the exposure settings?

Some cameras cannot be made to show an Exposure Preview, others need special settings:

Where can I find debugging and crash logs?

The debug logs for the LaunchAgent, which takes care of the control menu and camera management, are located at

/tmp/org.ptpwebcam.PtpWebcamAgent.stderr.log

Crash logs for the same, named PtpWebcamLaunchAgent*.crash, can be found in

~/Library/Logs/DiagnosticReports/

Where can I find the source code?

The source code is available at https://github.com/dognotdog/ptpwebcam.