Como descobrir qual aplicativo está usando o iSight (a câmera do iMac)

36

Como descobrir qual aplicativo tem a câmera aberta em um iMac (Running Leopard)? A luz verde está acesa indicando que a câmera está em uso, assim como o Photo Booth não pode se conectar à câmera. Os únicos outros aplicativos em execução são o Safari e o Finder (o melhor que posso dizer), nenhum dos quais parece estar usando a câmera.

Se fosse o Windows, eu usaria o Process Explorer, o que posso fazer em um Mac para ver quem tem um dispositivo específico aberto?

EDIT: usando a sugestão de NSD, eu quase tenho uma solução com

    lsof | grep "USBVDC"

Isso mostra todos os aplicativos que tentam usar a câmera, mas não o que realmente é o proprietário. Provavelmente perto o suficiente.

Tony Lee
fonte

Respostas:

24

Meu melhor palpite seria que o iChat Agent estivesse sendo executado em segundo plano.

Caso contrário, tente:

lsof | grep -i "AppleCamera"

Nas versões anteriores do OS X (antes do Yosemite), isso deveria ser usado:

lsof | grep -i "iSight"
Hasaan Chop
fonte
11
lsofnão mostra nada relacionado a um iSight usado ou não.
Chealion
Não é surpreendente.
Hasaan Chop
3
Estou um passo mais perto, encontrei uma maneira de encontrar os aplicativos que desejam usar a câmera USB iSight embutida usando sua sugestão. lsof | grep -i "USBVDC". Quase, se não todos os aplicativos, usarão a biblioteca /System/Library/QuickTime/QuickTimeUSBVDCDigitizer.component/Contents/MacOS/QuickTimeUSBVDCDigitizer para acessar a câmera.
22410 Tony Tony
Um componente do QuickTime é um pouco mais envolvido que uma biblioteca, mas você está certo; boa pegada.
Hasaan Chop
agora é "FaceTime"
LI Daobing 24/02
19

Em 2014, VDCfunciona como um lsoftermo de pesquisa para isso:

$ 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
zigg
fonte
Descobri que era o HipChat para mim - não tenho certeza quando tentou iniciar uma vídeo chamada, mas nada na interface do usuário sugeria que a câmera estava sendo usada.
phatskat
Usando essa resposta eu descobri que era meu cliente Parallels, que estava compartilhando a câmera com a máquina Windows Virtual
GreenAsJade
7

lsofé uma boa aposta. Grepping para 'VDC' me dá os melhores resultados, mas nas versões mais antigas do OSX você pode ter que usar outros termos 'AppleCamera', 'iSight'.

Então você tem uma lista e vê que alguns programas estão usando a câmera. Você pode tentar matá-los um por um, mas e se um estiver no navegador e você tiver um milhão de guias abertas?

Normalmente, esse truque funciona para mim:

  • abra ActivityMonitor,
  • pesquisa VDC, VDCAssistant está listado,
  • force sair do VDCAssistant.

O resultado é que todos os processos que tentam usar a câmera são desconectados temporariamente. Isso cuida dos processos que continuavam usando a câmera devido a algumas falhas. O VDCAssistant é reiniciado automaticamente.

Esse truque também funciona muito bem se um programa não pode acessar a câmera.

iwein
fonte
4

Acabei de descobrir que a minimização do Facetime faz com que o LED iSight acenda de vez em quando. Feche o FaceTime clicando no botão vermelho no canto superior esquerdo. Você ainda receberá chamadas do FaceTime, mas a câmera só será ligada quando elas chegarem.

MotoBarsteward
fonte
Isso resolveu o problema do LED verde iSight piscando para mim, mas não consigo pensar em uma justificativa razoável (ou em qualquer documentação) sobre o motivo pelo qual o Facetime tiraria fotos minhas quando minimizado.
christianbundy
0

O iSight / AppleCamera agora é renomeado para FaceTime

lsof | grep -i "FaceTime"

pode ser como raiz, apenas no caso de alguém mais usá-lo. Geralmente é minimizado o tempo que é esse o problema. Abra e saia.

zainengineer
fonte
0

Tomando emprestada a excelente solução proposta pela iwein, mas simplificando-a e tornando-a programável, você pode fazer o seguinte:

sudo pkill 'VDCAssistant'

Você pode colocar isso em uma função para facilitar a lembrança:

repocam () {
    sudo pkill 'VDCAssistant'
}

Você pode colocar essa função no seu .zshrcarquivo .bashrcou no que você usar.

Fora do escopo, mas vale a pena perseguir:

Você pode até configurar um trabalho cron ou um agente launchd ou o que quiser (Google para detalhes!) Para executá-lo de vez em quando. Se você descobrir qual aplicativo (como o HipShat) está causando o problema, poderá descobrir uma maneira de executá-lo ao sair do aplicativo.

Também é possível disparar scripts quando o computador acorda ou entra no modo de suspensão.

iconoclasta
fonte
0

você também pode usar o aplicativo de supervisão: https://objective-see.com/products/oversight.html

O aplicativo de supervisão pode detectar se alguns outros aplicativos estão usando sua câmera ou microfone, alertá-lo e, em seguida, você pode bloqueá-lo, deixá-lo ou adicioná-lo à lista de permissões.

LI Daobing
fonte