ToolActToolAct

カメラテスト

カメラデバイスをテスト、リアルタイムプレビュー、写真撮影、デバイス情報確認

未開始

リアルタイムプレビュー

テスト開始後にカメラ映像が表示されます

カメラテストとは?

カメラテストは、ブラウザがノートパソコン内蔵カメラ、外付け USB カメラ、その他の映像入力デバイスにアクセスし、ライブプレビューを表示できるか確認するツールです。ビデオ会議、オンライン授業、面接、ライブ配信、録画の前に、誤ったカメラ選択、権限ブロック、黒い画面、低解像度、照明不足などを確認できます。ブラウザのカメラ権限を使い、ページが実際に開ける映像ストリームを表示し、ローカルのスナップショットで画質や構図を確認できます。デバイス選択、解像度、フレームレート、アスペクト比、基本的な画質確認には役立ちますが、ドライバーやハードウェアの故障は修復できません。映像が出ない場合は、システムのプライバシー設定、他アプリの使用、ケーブル、ドライバーを確認してください。

使い方

使い方

  1. 「テスト開始」をクリックし、ブラウザのカメラへのアクセスを許可してください
  2. カメラのライブプレビューを確認します
  3. 「キャプチャ」をクリックして写真を撮影します
  4. カメラの切り替えや、異なる解像度のテストも行えます

ヒント

  • プレビューが表示されない場合は、ブラウザにカメラの使用許可が与えられているかご確認ください
  • カメラが他のアプリケーションで使用されていないか
  • 正しいカメラデバイスが選択されているか
  • システム設定でカメラが無効になっていないか

利用シーン

通話前にブラウザのカメラアクセスを確認するカメラを起動して権限状態、選択されたdeviceId、ライブプレビュー、実際の解像度、フレームレート、アスペクト比、前面/背面モードを確認します。面接、授業、ライブ配信、サポートセッションの前に、ストリームの固着、レンズの間違い、640x480へのフォールバックを検出すれば、参加者の前で恥ずかしいトラブルシューティングを避ける最も安価な手段となります。
カメラが実際にサポートする解像度を調査するQVGA、VGA、720p、1080p、1440p、4Kの組み込みチェックを実行します。ページは各解像度に対して明示的な制約付きでgetUserMediaを呼び出し、ブラウザとセンサーが受け入れるかどうかをマークするため、スペックシートでは4Kを謳っていてもUVCディスクリプタが実際には1080p止まりであるケースを暴けます。
ローカルスナップショットを証拠として撮影するCanvasのdrawImage APIでライブ映像からPNGスナップショットを撮り、有用なフレームをダウンロードし、不要なものを削除します。フォーカスエラー、IRカット帯域縞、レンズ歪み、フレーミングの問題、ベンダーへの送付が必要なハードウェア障害を文書化するのに役立ちます。
前面・背面・外部カメラを切り替えるノートパソコンに内蔵Webカメラと外部USBまたはバーチャルカメラが接続されている場合、カメラセレクタで異なるdeviceIdを選べば、OSの設定を介さずに通話ソフトウェアを正しいレンズに向けることができます。OBSバーチャルカメラ、Elgatoキャプチャカード、macOSのContinuity Cameraはそれぞれ別デバイスとして表示され、ページがラベルを表示するため、配信前に間違ったカメラを選ぶのを防げます。
黒画面や固着したプレビューを診断するプレビューが暗いまたはフリーズしている場合、ページはgetUserMediaの権限状態、デバイスラベル、適用された解像度を表示します。センサー自体の故障を疑う前に、OSのプライバシー設定、カメラを占有している他のアプリ(Zoom、OBS、FaceTime)、最近のUSBやドライバーの変更を確認してください。ほとんどの黒画面は別のプロセスがデバイスを独占占有していることが原因です。

仕組み

カメラテストツールは W3C Media Capture and Streams 仕様に基づいて構築されており、navigator.mediaDevices.getUserMedia(constraints) を使用してカメラにアクセスする。constraints パラメータは、解像度(幅、高さ)、フレームレート、フェイシングモード、デバイスID に対して ideal、exact、min、max の値を指定する JSON 形風のオブジェクトである。ブラウザの制約ソルバーは、カメラファームウェアが報告する UVC(USB Video Class)ディスクリプタに対してこれらの制約を交渉する。exact 制約を満たせない場合、OverconstrainedError で呼び出しが拒否され、これが解像度対度対応チェック機能の仕組みとなっている。各解像度を { exact } 制約でプローブし、失敗をマークする。 ストリームを取得すると、ビデオトラックは getSettings()(交渉後の実際の適用値)、getCapabilities()(ハードウェアの完全な対応範囲)、getConstraints()(元のリクエスト内容)を公開する。適用された解像度、フレームレート、アスペクト比、フェイシングモードは getSettings() から読み取られて表示される。ライブプレビューは video 要素の srcObject に MediaStream を設定することでレンダリングされ、ブラウザのメディアパイプラインがデコード、色空間変換、GPU アクセラレーションによる描画を JavaScript のピクセル操作なしに行う。 静止画キャプチャでは、CanvasRenderingContext2D.drawImage(videoElement, 0, 0) が現在のデコード済みビデオフレームを隠しキャンバスにスナップショットし、toDataURL('image/png') が PNG データ URL としてシリアライズする。enumerateDevices() は利用可能なすべてのメディア入力デバイスを列挙するが、デバイスラベルはユーザーが少なくとも1回カメラ権限を許可するまで空文字列となり、これはフィンガープリント防止の措置である。track.stop() を呼ぶとカメラハードウェアが解放されインジケーターライトが消灯し、videoElement.srcObject = null でレンダリングパイプラインが切り離される。getUserMedia にはセキュアコンテキスト(HTTPS または localhost)が必要であり、オリジンごとの権限プロンプトが表示される。カメラのインジケーターライトは OS レベルで強制され、ページ側では回避できない。

  • 制約交渉: ブラウザのソルバーが ideal/exact/min/max の値を UVC ハードウェアディスクリプタと照合。{ exact } プローブはセンサーが要求された解像度に対応できない場合に OverconstrainedError で失敗し、これにより解像度対応グリッドが構築される
  • トラックの内省: getSettings() は交渉後に実際に適用された解像度、フレームレート、アスペクト比、facingMode を返す。USB 帯域幅やセンサー能力の制約により、要求された ideal 値と異なる場合がある
  • enumerateDevices のプライバシー: デバイスラベルはオリジンごとに getUserMedia の権限が1回以上許可されるまで空文字列。仕様で定められたフィンガープリント防止措置であり、初回訪問時にデバイスセレクターに一般名が表示される
  • キャンバスによる静止画キャプチャ: drawImage() はデコード済みビデオフレームを GPU コンポジターから2D ピクセルバッファに再エンコードなしでコピーし、toDataURL('image/png') がロスレス PNG としてシリアライズ。フレームはブラウザのメモリ外には出ない
  • フェイシングモード: VideoFacingModeEnum は track.getSettings().facingMode から読み取られる('user' が前面、'environment' が背面、'left'/'right' が外部カメラ)。すべてのデスクトップ USB カメラが向きを報告するわけではなく、'unknown' と表示される場合がある
  • ストリームのライフサイクル: track.stop() はカメラハードウェアを解放し OS レベルのインジケーターライトを消灯。srcObject = null でレンダリングパイプラインを切り離す。デバイスを完全に解放して他のアプリケーションが取得できるようにするには両方が必要
  • セキュリティモデル: getUserMedia はセキュアコンテキスト(HTTPS または localhost)が必要で、オリジンごとの権限ダイアログを表示し、カメラインジケーターは OS/カーネルレベルで強制される。ページはこれら3つのゲートのいずれも回避できない

使用例

基本的なテストの流れ

1. テスト開始をクリックしてカメラの権限を許可
2. プレビュー映像で鮮明さ、フォーカス、フレームレートを確認
3. 撮影ボタンを押してテストフレームをキャプチャ
4. デバイス情報 (解像度、向き、フレームレート) を確認
用途: ビデオ会議、面接、ライブ配信の前のチェックに

解像度のテスト

1. 対応解像度パネルを展開
2. 各解像度 (1080p、720p、480p など) の横のテストをクリック
3. ハードウェアが実際に対応している解像度を確認
4. 用途に応じて安定動作する最高解像度を選択

複数カメラの切り替え

1. 上部のデバイス選択ドロップダウンを開く
2. 別のカメラ (フロント/リア、外付け Web カメラ) を選択
3. 画質、色味、低照度性能を比較
4. 通話に参加する前に正しいデバイスが選ばれているか確認

よくある質問

カメラテストでは何をチェックしますか?

ブラウザがカメラにアクセスできるか、提供される解像度、ライブプレビュー、そして基本的なキャプチャ(画像のスナップショット)を確認します。ビデオ通話の前に、正しいカメラが選択されているか、画像の向きや露出が適切かを確認するのに便利です。

なぜカメラが表示されないのですか?

よくある原因:ブラウザにカメラ権限が必要(アドレスバーの権限アイコンを確認)、別のアプリがカメラを使用中(Zoom、Teams、OBSを閉じる)、OSのプライバシー設定がブラウザのカメラアクセスをブロックしている(WindowsのプライバシーまたはmacOSのカメラ権限を確認)、ハードウェアスイッチがカメラを無効化している、などです。

前面カメラと背面カメラを切り替えられますか?

デバイスに両方搭載されていれば可能です。ページではnavigator.mediaDevices.enumerateDevices()で利用可能なカメラを列挙し、ドロップダウンから選択できます。スマートフォンでは「user」が前面カメラ、「environment」が背面カメラを指します。

どの解像度に対応していますか?

カメラとブラウザが提供するすべての解像度です。一般的な範囲は320×240、640×480、1280×720、1920×1080です。高解像度ほど(ライブ用途では)帯域幅とCPUを多く必要とします。デフォルトでは最高解像度を選択しますが、ネットワークが遅い場合は低い解像度を選んでください。

カメラ映像はアップロードされますか?

いいえ。映像ストリームはローカルで描画され、キャプチャしたフレームもブラウザ内に留まります。ただし、カメラ権限はオリジン単位で付与されるため、権限を取り消すまで同じサイトの開いているタブからアクセスできることに注意してください。使用後はタブを閉じてください。

映像が左右反転しているのはなぜですか?

ブラウザは前面カメラのライブプレビューを、ユーザーが期待する「鏡」表示に合わせるためにミラー反転します。キャプチャしたスナップショットは反転している場合とそうでない場合があるので、両方を確認してください。CSSのtransform: scaleX(-1)でミラー表示を切り替えられます。

カメラ権限が永久に拒否された場合はどうすればよいですか?

Chromeの場合、アドレスバーのカメラアイコンをクリックして「常に許可」を選択します。必要に応じてchrome://settings/content/cameraからリセットしてください。他のブラウザにも同様の権限設定があります。許可した後、ページを更新してください。

関連ツール

マイクテスト

オンラインマイクテストツール。音量波形とスペクトル分析をリアルタイム表示。録音再生、デバイス情報検出対応、ブラウザローカル実行でプライバシー保護。

キーボードテスト

オンラインキーボードテストツール。キー機能をリアルタイム検出、キーコードを表示。仮想キーボード視覚化、キー履歴対応、ブラウザローカル実行でプライバシー保護。

画面テスト

オンライン画面テストツール。ドット抜け、輝点、バックライト漏れを検出。複数の単色テスト、コントラストテストでディスプレイ品質を評価。

画面録画ツール

オンライン画面録画ツール。画面、ウィンドウ、タブを録画、音声録音対応。ソフトウェア不要、ビデオ即ダウンロード、ブラウザローカル実行でプライバシー保護。

証明写真作成ツール

無料オンライン証明写真作成ツール、AI背景除去機能搭載。日本標準サイズ(パスポート、身分証明書、履歴書)対応、ワンクリックで標準証明写真生成。ブラウザローカル処理でプライバシー保護。

リフレッシュレートテスト

オンライン画面リフレッシュレートテストツール。アニメーションフレームレートでモニターの実リフレッシュレートを検出、60Hz、120Hz、144Hz等の高リフレッシュレート対応。