摄像头黑屏因VDCAssistant被独占或虚拟驱动抢占,需依次执行:1. sudo killall VDCAssistant并kickstart服务;2. 用活动监视器强制退出高能耗可疑进程;3. 用ioreg检查并卸载冲突的虚拟摄像头驱动。

Mac系统中摄像头黑屏或提示“设备不可用”,常因某个进程正在独占调用VDCAssistant服务或直接访问USB视频设备,而lsof命令本身无法直接列出摄像头设备占用——因为macOS不将摄像头抽象为网络端口或常规文件句柄,它由AVFoundation和IOCameraFamily内核驱动管理,【lsof -i 或 lsof /dev/ 无法查到摄像头占用进程】。必须改用系统级诊断工具与服务控制命令组合定位。
用终端命令重启VDCAssistant服务释放摄像头
VDCAssistant是macOS中统一管理摄像头硬件访问的守护进程,一旦卡死或被异常占用,所有应用都会报“设备不可用”。强制重启该服务可立即解除多数软性占用。
第一步:在终端中执行以下命令,终止当前VDCAssistant进程:
sudo killall VDCAssistant
第二步:系统会自动拉起新实例;若未自动恢复,手动触发启动:
sudo launchctl kickstart -k system/com.apple.VDCAssistant
第三步:等待3秒后,立刻打开“相机”App测试画面是否出现。这一步无需重启电脑,生效极快——但注意:【执行前请关闭所有视频会议软件(Zoom、Teams、OBS等),否则它们可能在服务重启瞬间重新抢占有】。
用活动监视器定位高嫌疑进程
虽然lsof查不到摄像头,但某些进程会在运行时持续持有IOCameraDevice或AVCaptureSession资源,表现为高CPU或高网络占用。活动监视器能直观暴露这类行为。
打开“活动监视器”→切换到“能耗”标签页→点击“平均能耗”列排序→从顶部开始逐个检查名称含camera、avcapture、webrtc、obs、zoom、teams、slack、chrome的进程。
找到可疑进程后,选中→点击左上角“X”按钮→选择“强制退出”。
这一步操作起来很简单,直接把进程关掉就行;但别跳过验证——关完立刻开“相机”App,黑屏即说明没清干净,需继续往下查。
用ioreg命令确认物理摄像头是否被内核级驱动劫持
虚拟摄像头(如OBS Virtual Camera、ManyCam、Snap Camera)会注册为独立IOService并覆盖真实设备路径,导致系统识别到“两个摄像头”,但只让一个可用。ioreg可查看底层设备树绑定状态。
在终端中运行:
ioreg -p IOUSB -w 0 | grep -i "video\|camera"
若输出中同时出现AppleCameraInterface和OBSVirtualCamera(或ManyCam、Broadcam等),说明虚拟驱动已加载并可能抢占控制权。
此时需卸载虚拟驱动:前往对应软件设置页关闭“虚拟摄像头”开关,或直接删掉其kext(例如sudo kextunload /Library/Extensions/obs-virtualcam.kext)。
卸载后必须重启VDCAssistant服务(回到第一个

















