Windows 11からカメラを認識する

システムに登録されているカメラはDirectShowデバイスとしてアクセス可能

現在システムに登録されているカメラは、スタートを右クリックして出てくるメニューから、

Bluetoothとデバイスを選択、さらにカメラを選択、

接続済みカメラはvlcからdshow://デバイスとして扱えます。USB接続のWebcameraなら認識されればここに現れます。任天堂のSwtich 2用のカメラも使えます。(記事は復刻しません。)このマシンはノートパソコンなので、よほど古い機種でない限り、Integrated Camera(組み込みカメラ)が使えるのが普通です。他に上の例では、Hikvisionというのが見えていますが、これはネットワークカメラです。USB接続ではなく、IPアドレスを持ったものでも、一定のプロトコルを満たすものであれば、見つけられます。ONVIF規格に準拠したカメラならば、idとパスワードを入れれば、使えるようになります。残念ながらこのブログで何度も取り上げているTS-WLCEは、この基準に合致していないので、ここには現れません。ただし、rtspないしhlsで画像は読めます。(既出)さて、上のIntegrated Cameraをクリックすると、

このようにLiveの動画が得られます。明るさ等の調整も可能です。

こちらは別のカメラです。認識させるには、

ここから、

で、ユーザ名とパスワードを入れて、”カメラを追加する”です。

追加されました。Nintendo Switch Cameraをつなぐと、即現れて、

画角の確認等ができます。システムレベルでこれらのカメラを使うのは、”カメラ”アプリからできます。

背景が”ごちゃ”で恐縮です。右側の真ん中くらいのカメラアイコンをクリックするとカメラを切り替えることができます。

マシンは別ですが、同じipカメラはネットワーク経由でアクセスできますから、その画像を見ることは可能です。

それぞれのカメラで使える分解能はどうなっているでしょうか?前記事のプログラムを走らせると、

$ ./dev-list
Device: Integrated Camera
  Resolution: 1280x720
  Resolution: 320x180
  Resolution: 320x240
  Resolution: 424x240
  Resolution: 640x480
  Resolution: 848x480
  Resolution: 960x540
  Resolution: 640x360
  Resolution: 640x360
  Resolution: 320x180
  Resolution: 320x240
  Resolution: 424x240
  Resolution: 640x480
Device: Hikvision
  Resolution: 2560x1440
  Resolution: 2560x1440
  Resolution: 1920x1080
  Resolution: 1920x1080
  Resolution: 1280x720
  Resolution: 1280x720
  Resolution: 704x480
  Resolution: 704x480
  Resolution: 352x240
  Resolution: 352x240
Device: Nintendo Switch Camera
  Resolution: 640x360
  Resolution: 640x480
  Resolution: 360x640
  Resolution: 1280x720
  Resolution: 320x240
  Resolution: 320x180
  Resolution: 180x320
  Resolution: 1920x1080
  Resolution: 640x480
  Resolution: 1280x720
  Resolution: 960x540
  Resolution: 480x272

ここに見えているカメラはキャプチャーデバイスとして、MRL dshow://経由で、VLC MediaplayerあるいはLibvlcから使用できます。本来は、Libvlcの関数(media discoverer等)からカメラを列挙し、取り得る分解能も調べられるはずですが、できませんでした。ので、Copilot君が教えてくれたコードから作った関数を組み込んでプログラムを作りました。その実体は、別記事で。

コメント