ウェブカメラシミュレーターとは、既知の動画、画像、または画面を本物のウェブカメラであるかのようにアプリへ送る仮想カメラのことで、毎回同じ入力でカメラ機能をテストできます。Windows では FakeCam がこれを無料でこなします。テスト用のクリップかパターンを読み込んで再生を押し、テスト対象のアプリでカメラとして FakeCam を選ぶだけです。照明もレンズも不意の変化もなく、実行のたびにまったく同じフレームが届きます。

なぜ本物のウェブカメラではなくシミュレートするのか?

本物のウェブカメラは、テストフィクスチャとしては最悪の部類です。映像は光の加減、時間帯、前に座っている人、レンズキャップの有無で変わります。テストに必要なのはその正反対、つまり決定的(毎回同一のフレーム)で、再現可能(どのテスターでも、どの PC でも同じ結果)で、制御可能(解像度、動き、アスペクト比、さらには黒いフレームまで自分で選べる)な入力です。ウェブカメラシミュレーターは、まさにそれを提供します。

  • ビデオ機能の QA。 カメラのプレビュー、スナップショット、録画、背景ぼかし、顔検出、QR コードの読み取り、ビデオ通話。それぞれを、フレーム単位で中身が分かっているクリップに対して実行できます。
  • バグの再現。 お客様からの「カメラが真っ黒に映る」という報告も、意図的に黒いフレームを送れれば再現できます。
  • エッジケースを必要なときに。 縦向きの動画、16:9 のプレビューに入る 4:3 の入力、非常に動きの激しい映像、まったく変化しない静止フレーム、640 x 480 のソース。どれも手元に置いておけるファイルです。
  • デモとトレーニング。 デモ用のカメラは、部屋がどんな状態でも、毎回同じ仕上がりのクリップを映します。
  • カメラのないマシン。 デスクトップ PC、誰かが手動でテストするビルドエージェント、VM。仮想カメラがそれらにカメラを与えます。
ウェブカメラシミュレーターの仕組み:テスト用のクリップやパターンが FakeCam で再生されて仮想カメラに送られ、Chrome、Zoom、Teams、Discord、OBS からは普通のウェブカメラとして見える
テスト入力は FakeCam で再生され、テスト対象のアプリには普通のカメラとして見えます

必要なもの

  • Windows 10 または 11 の PC(物理マシン、またはデスクトップセッションのある VM)。
  • FakeCam(無料)。「FakeCam」という名前の仮想カメラを 1 つ登録します。
  • テスト入力:動画ファイル(MP4、MOV、AVI、WMV、MKV)、画像(PNG、JPG、GIF、BMP)、または画面そのもの。

ウェブカメラシミュレーターを設定する 4 ステップ

  1. FakeCam をインストールし、Windows がカメラを追加できるように有効化を一度クリックします(管理者の確認は一度だけで、それ以降はありません)。
  2. 設定で、テスト対象のアプリが受け取るカメラの解像度640 x 4801280 x 7201920 x 1080 から選びます。アプリが列挙するのはこの値です。
  3. テスト用のクリップかパターンを FakeCam にドラッグして再生を押します。テストセッションのあいだずっと流し続けるクリップなら、ループをオンにします。
  4. テスト対象のアプリで、カメラとして FakeCam を選びます。FakeCam はアプリより先に起動してください。多くのアプリは起動時にしかカメラ一覧を読み込みません。
4 つのステップ:FakeCam を有効化し、カメラの解像度を設定し、テスト用クリップを読み込んで再生を押し、テスト対象のアプリで FakeCam を選ぶ
決定的なカメラを手に入れる 4 ステップ

テストの途中で入力を切り替えるには、別のファイルを FakeCam にドロップします。アプリ側は同じカメラのまま、新しいフレームを受け取るだけです。「カメラなし」や「カメラが抜かれた」の経路をテストするには、停止を押すか、カメラを無効化します。

手元に置いておきたいテストキット

4 つの入力があれば、カメラのテストケースの大半をカバーできます。テスト計画の隣のフォルダーに保存しておきましょう。

4 つのテスト入力:カラーバーのパターン、動きの激しいクリップ、人物の顔が映るポートレートクリップ、黒いフレーム
小さな入力キットで、カメラのテストケースの大半をカバーできます
入力 見つかる問題
テストパターン(カラーバー、円、グリッド) 切り取り、引き伸ばし、アスペクト比の誤り、色ずれ、左右反転。楕円になった円や途中で切れたバーは一目で分かります
動きの激しいクリップ(速いパン、動くディテール) フレーム落ち、エンコーダーの品質、通話中の遅延、カメラより遅れるプレビュー
ポートレートクリップ(1 人、安定した照明) 顔検出、背景のぼかしと置き換え、自動フレーミング、自社製品の本人確認フロー
黒いフレームまたは静止画像 「カメラが動かない」というサポート経路、動きなしの検出、スクリーンショットとスナップショットの機能

下のパターンを保存して、FakeCam で再生してください。文字を含まないように描かれているので、テストチームのどの言語でも使えます。

カメラのテストパターン:カラーバー、グレーの階調、十字線付きの中央の円、細かいグリッド、セーフフレーム、ピクセルサイズ
このパターンを保存してカメラとして再生してください。円は真円のまま、バーは両端まで届いていなければなりません

シミュレーターと Chrome のフェイクカメラフラグの比較

自動化したブラウザでウェブアプリだけをテストするなら、Chrome と Edge にはフェイクカメラが内蔵されています。ブラウザを --use-fake-device-for-media-stream 付きで起動し、自分のファイルを流すには --use-file-for-fake-video-capture=clip.y4m を加えます。Playwright と Puppeteer は、これらのフラグを自動で設定してくれます。CI にはこれが正しい道具です。ただし、その効果はブラウザの中で止まります。そのブラウザプロセスの外では、何もカメラを認識しません。

FakeCam のような仮想カメラは Windows のレベルで動作するため、すべてのアプリから見えます。デスクトップアプリ、Electron アプリ、Windows の「カメラ」アプリ、本物の Zoom クライアントでのビデオ通話、人間のテスターが開いた普通のブラウザセッション。正直に比較すると、次のとおりです。

Chrome のフェイクカメラフラグと仮想カメラ:それぞれがカバーする範囲
自動化したブラウザテストにはブラウザフラグ、それ以外のすべてには仮想カメラ
Chrome のフェイクデバイスフラグ FakeCam の仮想カメラ
カメラが存在する場所 そのブラウザプロセスの中だけ Windows 全体、どのアプリでも
入力形式 Y4M / MJPEG ファイル MP4、MOV、AVI、WMV、MKV、画像、画面
自動テスト(CI) はい、そのために作られています いいえ。FakeCam は手動で操作します
デスクトップアプリの手動 QA いいえ はい
本物の会議クライアント(Zoom、Teams、Discord) いいえ はい
テスト途中での入力の切り替え ブラウザを再起動 新しいファイルをドロップ
費用 無料 無料(任意の一度きりの PRO あり)

両方を使い分けましょう。パイプラインにはフラグを、探索的テスト、デスクトップアプリ、サポート案件の再現、デモには仮想カメラを。

確実な結果を得るためのコツ

  • 解像度は意図的に合わせる。 FakeCam の解像度設定を変えてからアプリを再起動し、アプリが対応する各解像度をテストしてください。多くのアプリは形式を一度しか列挙しません。
  • 長いセッションにはループを。 ループ再生のクリップなら、テストが続く限りカメラを「ライブ」のままにできます。終わってしまったクリップは、最後のフレームが画面に残ります。
  • ミラーもテストケース。 会議アプリは自分のプレビューを左右反転しますが、相手に見える映像は反転しません。FakeCam のミラースイッチで両方を確認できます。
  • 画面を入力に。 画面タブを選ぶと、動作中のアプリのウィンドウ(タイマー、QR コードのページ)をカメラに流せます。読み取り機能のテストに便利です。詳しくは画面をウェブカメラとして使うをご覧ください。
  • 一度に 1 つのアプリ。 カメラを開けるのは、一度に 1 つのアプリだけです。次のテストを始める前に、前のアプリのプレビューを閉じてください。

ウェブカメラシミュレーターにできないこと

  • スクリプトやコマンドラインはありません。 FakeCam は手動のツールで、ファイルは手で読み込みます。スクリプト化したブラウザテストには、上記の Chrome のフラグを使ってください。
  • 音声は扱いません。 仮想カメラが置き換えるのはカメラ映像だけです。マイクの経路は別にテストしてください。
  • モバイル向けの仮想カメラではありません。 動作するのは Windows です。Android なら、エミュレーターの仮想シーンカメラが同様の用途をカバーします。
  • 本人確認をごまかすためのものではありません。 ウェブカメラシミュレーターはテストとデモのためのツールです。他者の本人確認を突破するために使うのは本来の用途ではなく、複数のサービスがそれを禁止しています。

次に読む