メインコンテンツへスキップ
ヘルプ

対応していないウェブアプリでWebカメラの映像ソースを変更する方法

Aidan Fitzpatrick

公開日: 2020年8月25日· 更新日: 2020年11月17日

Cover image for: 対応していないウェブアプリでWebカメラの映像ソースを変更する方法

WebRTCを使えば、ブラウザ上でユーザーが音声や映像のソースを選択できるようにするのは簡単です。しかし、すべてのウェブベースのビデオアプリが、Webカメラの映像ソースを変更するためのコントロールを実装しているわけではありません。

一部のブラウザでは、これは問題になりません。たとえばFirefoxとEdgeはどちらも、サイトごとに映像ソースを選択できます。一方、Google Chromeでは特別なchrome://settings/content/cameraというURLを使ってデフォルトのWebカメラを選択できますが、このデフォルトカメラの設定はWebRTCでは使用されません。Google Chromeのフォーラムでは、この点について不満の声が多く寄せられていますが、解決策が示される見通しは今のところありません。

そのため、映像ソースの選択機能を実装していないアプリ(vMixなど)を使い、かつサイトごとの映像ソース選択に対応していないブラウザ(Chromeなど)を使っている場合、ユーザーはどうにもできない状況に陥ってしまいます。映像カメラを選択できないビデオアプリは、結果として任意のカメラを選んでしまうため、ユーザーは使いたいカメラを使えないことがあります。

幸い、Chrome上のウェブベースのビデオアプリに特定のカメラを強制的に選択させる、手早く使える裏技があります。

vMixのvmixcall.comサービスでの手順は次のとおりです。

  1. Chromeを起動し、ビデオチャットのセッションを開始します。
  2. ⌥ Option + ⌘ Cmd + i のキーボードショートカット、または More Tools → Developer Tools メニューから、Chromeの「デベロッパーツール」を開きます。
  3. デフォルトの「Console」タブに以下のコードを貼り付け、Enterキーを押します。
function gotDevices(deviceInfos) {
  // Look for the Reincubate Camo video input device.
  var deviceId;
  for (deviceInfo of deviceInfos) {
    if (deviceInfo.kind === 'videoinput' && deviceInfo.label === 'Reincubate Camo') {
      deviceId = deviceInfo.deviceId
      break;
    }
  }
  if (deviceId) {
    const constraints = {
      audio: true,
      video: { deviceId: { exact: deviceId } }
    };
    navigator.mediaDevices.getUserMedia(constraints).then(gotStream);
  } else {
    console.error('Unable to find Reincubate Camo video input device.');
  }
}
function gotStream (stream) {
  // Tell the vMix Call session to switch to a different stream.
  try {
    session.gotLocalStream(stream);
  } catch {
    console.error('Unable to trigger vMix Call session stream update.');
  }
}
// Ask the browser for a list of media devices.
navigator.mediaDevices.enumerateDevices().then(gotDevices)

これで、Chromeは自動的にCamoの映像ソースに切り替わるはずです。この回避策がうまくいかない場合は、コメント欄でお知らせいただくか、直接お問い合わせください。サポートいたします。

実際の様子は次のとおりです。

今後こうした手間を避けたい場合は、利用しているビデオサービスの提供元に、アプリへの映像ソース選択機能の追加を働きかけてみてください。


執筆者について

Aidan Fitzpatrick

創業者兼CEO

世界初のiOSデータ復旧ツールを開発した後、Aidanは2008年にReincubateを設立しました。それ以来、AMD、Qualcomm、HPといった企業と協力し、Camoアプリのエコシステムを筆頭に、映像ソフトウェア向けの意義深い機械学習機能を切り拓きながら、同社を世界トップクラスのISVの一つへと成長させてきました。Aidanのリーダーシップのもと、Reincubateは英国最高峰のビジネス栄誉を4度受賞し、The Sunday Timesの「100 Tech」リストにも選出され、Apple Design AwardおよびApp Storeのノミネートで業界からの評価を獲得しています。彼の仕事や手法はモバイルフォレンジックに関する学術論文でもたびたび引用されており、Google、Microsoft、Snapなどの企業が主催するイベントへの登壇にも招かれています。


関連記事

お困りですか?

すべてのお問い合わせに1営業日以内に返信するよう努めています。

support@reincubate.com
ヘルプ