カメラが真っ黒になる — 排他ロックの問題(Zoom・Teams・OBS)
カメラの権限は許可済みで、使用中を示す小さなLEDまで光っているのに、ビデオの枠は真っ黒。エラーも確認画面も出ず、ただ暗いだけ。10回のうち9回まで、これはカメラの故障ではありません。ロックです。別のアプリがすでにウェブカメラを占有していて、いま見ているアプリには何も届いていないのです。
ウェブカメラが一度に一人の主人にしか仕えない理由
ほとんどのウェブカメラ — そしてほとんどのカメラドライバー、とくにWindowsでは — が許すのは同時に一つの利用者だけです。最初にビデオストリームを開いたアプリが排他的なアクセス権を得て、後から要求した側はエラーを受け取るか、さらに紛らわしいことに、何の説明もなく真っ黒なフレームを受け取ります。これは特定のアプリの不具合ではなく、カメラドライバーの動作の根幹に組み込まれた設計判断です。
ややこしいのは、何をもって「開いている」とみなすかです。通話中である必要はありません。アプリはビデオデバイスを初期化した瞬間からカメラを掴んでおり、次のような場合にそれが起こります。
- プレビュー画面を表示しているとき(たとえばZoomのビデオ設定ページ)
- 「閉じた」つもりでも実際にはタスクトレイやメニューバーに最小化されているとき
- 配信ソフトの場合は、起動している間ずっと
常連の容疑者たち
- Zoom はウィンドウを閉じた後もバックグラウンドで動き続けます。設定画面のプレビューも、会議が始まっていなくてもカメラを掴みます。
- Microsoft Teams は常駐することで悪名高く、ウィンドウを閉じてもトレイの中で生き続けます。中途半端に参加した会議がデバイスを開いたままにすることもあります。
- OBS Studio は映像キャプチャソースとして追加したカメラを、録画の有無にかかわらずOBSが開いている間ずっと保持します。仮想カメラ機能はさらにもう一段の複雑さを加えます(後述)。
- Discord はビデオを有効にしてボイスチャンネルに入っている間、そしてビデオテストの後にもカメラを掴むことがあります。
- ブラウザのタブも同様です。閉じ忘れたMeetのタブ、カメラテストのページ、アクセスを許可したどのサイトでもストリームを保持しえます。逆に、ネイティブアプリがカメラを抱え込んでいる場合は、真っ黒になるのはブラウザのほうです。簡単なウェブカメラテストが権限を尋ねずに黒画面を出すなら、ロックが第一容疑者です。
仮想カメラ:特別に紛らわしい存在
OBS、Snap Camera、NVIDIA Broadcast、Camo、ManyCam系のツールは仮想カメラドライバーをインストールします。ホストアプリが作った映像を中継する、偽のウェブカメラです。よくある失敗は2通りあります。
- 本物ではなく仮想カメラを選んでしまっている。 ホストアプリが動いていなければ、仮想カメラは黒(またはプレースホルダーのロゴ)を出力します。ビデオアプリのカメラ選択欄を確認し、「OBS Virtual Camera」などと表示されていたら、実際のデバイス名(「Integrated Camera」「Logitech C920」など)に切り替えてください。
- 仮想カメラのホストが物理カメラを掴んでいる。 OBSがウェブカメラを中継しているなら、実デバイスの持ち主はOBSです。他のアプリは仮想カメラを使うか、何も映らないかのどちらかになります。
これらのツールをずっと前に使わなくなったのなら、アンインストールすればすべてのカメラ選択メニューから幽霊デバイスが消えます。
Windowsで犯人を見つけて終了させる
- まずタスクトレイ(時計の近くにある ^ の矢印)を確認します。Zoom、Teams、Discord、Slack、そこにあるカメラ関連のアプリを右クリックして終了を選びます。「ウィンドウを閉じる」ではありません。
- まだ黒いままなら、Ctrl + Shift + Esc でタスク マネージャーを開きます。プロセスタブでZoom、Teams(ms-teams.exe)、Discord、OBS、Skype、あるいはカメラメーカーのユーティリティ(Logi Tune、Lenovo Vantageのカメラ機能など)を探します。一つずつ選んでタスクの終了をクリックしてください。
- Windowsは最後にカメラを使ったアプリも教えてくれます。設定 → プライバシーとセキュリティ → カメラを開き、下へスクロールするとアプリごとの最近のアクティビティが見えます。犯人の見当がまったくつかないときの有力な手がかりです。
- 黒くなっていたアプリですぐに再テストします。ロックは、掴んでいたプロセスが終了した瞬間に解放されます。
macOSで犯人を見つけて終了させる
- メニューバー(右上)にZoom、Teams、カメラ系ユーティリティがないか確認し、それぞれのメニューから終了します。
- 怪しいアプリでは Cmd + Q を押してください。macOSでは赤い閉じるボタンをクリックしてもアプリは終了しないことで有名で、Teamsが午後じゅうカメラを掴み続けるのはまさにこれが原因です。
- 徹底的に調べるならアクティビティモニタを開き(Spotlightで「アクティビティモニタ」と入力)、zoom、teams、discord、obs、caphost などを検索してプロセスを選択し、×(停止)→ 終了をクリックします(強制終了は通常の終了が失敗したときだけ)。
- メニューバー横の緑のカメラインジケータ(最近のmacOSではコントロールセンター内のオレンジ/緑のドット)は、カメラやマイクが使用中であることを示します。コントロールセンターをクリックすればどのアプリか分かります。
macOSはWindowsよりアプリ間でのカメラ共有にやや寛容ですが、それでも排他的にデバイスを開くアプリは少なくありません。診断の手順は同じです。
再起動:正当な最終手段
思いつく限りのプロセスを終了させてもどこでもカメラが黒いままなら、パソコンを再起動してください。これは迷信ではありません。カメラドライバーは実際にハングすることがあり、生きている持ち主がいないのにデバイスを「使用中」のまま残してしまいます。再起動はドライバースタックとUSBバスをリセットします。外付けウェブカメラなら、10秒ほど抜いて(できれば別のポートに)挿し直せば、再起動せずに同じリセットができます。
カメラ系アプリを一切起動していない状態で再起動しても、新しいブラウザで映像が黒いままなら、もうロックの領域ではありません。その場合は権限とドライバーを体系的に確認していってください。ブラウザとOS別のウェブカメラ権限の直し方がその道筋を扱っており、プライバシーカバー(2回確認する価値があります。ソフトウェアでは絶対に直らない唯一の「黒画面」の原因です)やデバイス マネージャーでのドライバーリセットも含みます。
次から同じ問題を避けるために
- 通話が終わったらビデオアプリは完全に終了する。ウィンドウを閉じるのではなく、トレイやメニューバーから終了する。
- 勤務時間中はカメラの「持ち主」を一つに決め、他のアプリは閉じたままにする。
- 大事な通話の前には30秒のブラウザテストでカメラが空いていることを確認する。権限を尋ねてきて、解像度とFPSの実測値付きで映像が表示されれば、誰もロックを握っておらず、安心して参加できます。