应先用活动监视器勾选“摄像头”列精准定位占用进程,重点检查vdcassistant、applecameraassistant及厂商关键词进程并强制终止;再通过终端ps命令扫描残留句柄,必要时sudo killall重置服务;最后排查第三方kext驱动冲突或usb设备枚举异常。

Mac外接摄像头被其他软件占用时,系统会拒绝新应用访问设备,导致黑屏或“设备不可用”提示;此时必须定位并终止真实占用进程,不能只依赖权限开关或重启应用。
用活动监视器精准定位外接摄像头占用者
外接摄像头(如Logitech C920、Elgato Cam Link)在macOS中仍走CoreMediaIO路径,其占用行为与内置摄像头一致,但部分虚拟设备驱动可能隐藏在常规进程名之后。
按下Command + 空格键 → 输入“活动监视器”→ 回车启动;
点击顶部菜单栏“查看”→“列”→勾选“摄像头”;若该列未出现,先点“进程名称”右侧齿轮图标→手动勾选“摄像头”;
在“摄像头”列中查找值为“是”的进程——特别注意名称含【VDCAssistant】、【AppleCameraAssistant】、【corecapture】或外设厂商关键词(如logi、elgato、obs)的条目;
单击选中可疑进程 → 左上角红色停止按钮强制终止 → 立即插拔外接摄像头测试是否恢复识别。
终端命令穿透式扫描所有摄像头相关进程
活动监视器可能漏掉已退出但句柄未释放的僵尸进程,终端可调用系统底层接口强制刷新状态。
打开“终端”,输入以下命令并回车:
ps aux | grep -i "camera\|vdca\|avcapture"
输出结果中,重点关注USER列为当前用户名、COMMAND列含VDCAssistant或AppleCameraAssistant的行;
记下对应PID(第二列数字),执行:kill -9 【PID】(替换为实际数字);
若提示“Operation not permitted”,说明进程受SIP保护,需改用sudo killall VDCAssistant → 输入密码后执行。
排查外接设备专属驱动冲突
方法一:检查已加载的内核扩展
在终端中运行:kextstat | grep -i "camera\|video\|usb";
重点识别非Apple签名的kext,如com.logitech.driver.LogiCam、io.elgato.driver.CamLink等;
若发现异常驱动,先卸载对应软件(如Logitech Capture、Elgato Video Capture),再执行sudo kextunload -b 【bundle ID】;
方法二:临时禁用第三方USB视频类设备
断开所有非必要USB摄像头和采集卡,仅保留目标外接设备;
打开“系统设置”→“隐私与安全性”→“摄像头”,确认列表中无灰色禁用项,且目标应用开关已开启;
重新插入外接摄像头,观察“系统报告”→“USB”中是否显示设备已正确枚举(无黄色感叹号)。











