Cómo encontrar qué aplicación está usando iSight (la cámara iMac)


36

¿Cómo puedo saber qué aplicación tiene la cámara abierta en un iMac (Running Leopard)? La luz verde está encendida indicando que la cámara está en uso y que la cabina de fotos no puede conectarse a la cámara. Las únicas otras aplicaciones que se ejecutan son Safari y Finder (lo mejor que puedo decir), ninguna de las cuales parece estar usando la cámara.

Si esto fuera Windows, usaría Process Explorer, ¿qué puedo hacer en una Mac para ver quién tiene un dispositivo en particular abierto?

EDITAR: usando la sugerencia de NSD, casi tengo una solución con

    lsof | grep "USBVDC"

Eso muestra todas las aplicaciones que intentan usar la cámara, pero no la que realmente la posee. Probablemente lo suficientemente cerca.

Respuestas:


24

Mi mejor conjetura sería que iChat Agent se estaba ejecutando en segundo plano.

Si no, entonces intente:

lsof | grep -i "AppleCamera"

En versiones anteriores de OS X (antes de Yosemite), esto debería usarse:

lsof | grep -i "iSight"

1
lsofno muestra nada relacionado con un iSight usado o no.
Chealion el

No es sorprendente.
Hasaan Chop el

3
Estoy un paso más cerca, encontré una manera de encontrar las aplicaciones que desean usar la cámara iSight USB incorporada usando su sugerencia. lsof | grep -i "USBVDC". Casi, si no todas las aplicaciones, usarán la biblioteca /System/Library/QuickTime/QuickTimeUSBVDCDigitizer.component/Contents/MacOS/QuickTimeUSBVDCDigitizer para llegar a la cámara.
Tony Lee

Un componente QuickTime es un poco más complicado que una biblioteca, pero tienes razón; buena atrapada.
Hasaan Chop el

ahora es "FaceTime"
LI Daobing

19

En 2014, VDCfunciona como un lsoftérmino de búsqueda para esto:

$ lsof | grep VDC
FaceTime  1097 user  txt      REG                1,4    405264    2934 /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC

Descubrí que era HipChat para mí, no estoy seguro de cuándo intentó iniciar una videollamada, pero nada en la interfaz de usuario sugirió que la cámara estaba en uso.
Phatskat

Al usar esta respuesta, descubrí que era mi cliente de Parallels, que estaba compartiendo la cámara con la máquina virtual de Windows
GreenAsJade

7

lsofEs una buena apuesta. Grepping para 'VDC' me da los mejores resultados, pero en versiones anteriores de OSX puede que tenga que usar otros términos 'AppleCamera', 'iSight'.

Luego tienes una lista y ves que un par de programas están usando la cámara. Podrías intentar matarlos uno por uno, pero ¿qué pasa si hay uno en el navegador y tienes un millón de pestañas abiertas?

Por lo general, este truco funciona para mí:

  • abra ActivityMonitor,
  • buscar VDC, VDCAssistant está listado,
  • forzar la salida de VDCAssistant.

El resultado es que todos los procesos que intentan usar la cámara se desconectan temporalmente. Esto se encarga de los procesos que siguieron usando la cámara debido a algunos problemas técnicos. VDCAssistant se reinicia automáticamente.

Este truco también funciona muy bien si un programa no puede acceder a la cámara.


4

Acabo de descubrir que tener Facetime minimizado hace que el LED iSight se encienda de vez en cuando. Cierre FaceTime haciendo clic en el botón rojo en la esquina superior izquierda. Seguirá recibiendo llamadas de FaceTime, pero la cámara solo se encenderá cuando entren.


Esto resolvió el problema del LED verde iSight parpadeante para mí, pero no puedo pensar en una justificación razonable (o cualquier documentación) de por qué Facetime me tomaría fotos cuando se minimiza.
christianbundy

0

iSight / AppleCamera ahora se renombra a FaceTime

lsof | grep -i "FaceTime"

puede ser como root, en caso de que alguien más lo esté usando. Por lo general, se minimiza el tiempo de cara, que es el problema. Ábrelo y déjalo.


0

Tomando prestada la excelente solución que iwein propuso, pero simplificándola y haciéndola programable, puede hacer esto:

sudo pkill 'VDCAssistant'

Luego puede poner esto en una función para que sea más fácil recordar:

repocam () {
    sudo pkill 'VDCAssistant'
}

Puede poner esa función en su .zshrcarchivo .bashrco lo que sea que use.

Fuera de alcance pero vale la pena perseguir:

Incluso podría configurar un trabajo cron o un agente de launchd o lo que quiera (¡Google para más detalles!) Para ejecutarlo de vez en cuando. Si puede descubrir qué aplicación (como HipShat) está desencadenando el problema, es posible que pueda encontrar una manera de ejecutarla al salir de la aplicación.

También es posible activar scripts cuando su computadora se despierta o se va a dormir.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.