VirtualBoxのゲストOSからホストのWebカメラを使う
VirtualBox 4.3から、Webカメラを仮想化して利用する機能が追加されました。
何が嬉しいかと言うと、MacBookに付いているFaceTimeカメラなどのホストOSが抱えているWebカメラをゲストOSからも使用できるようになることです。
このおかげで、ゲストOSでSkypeのビデオチャットなどができるようになる、という訳です。
ところがこの機能は、コマンドラインのツールを叩かないと使えないようです。
環境
- ホストOS: Mac OS X 10.8.5
- VirtualBox 4.3.6
- ゲストOS: Windows 8.1
手順
ホスト側の作業です。
まずはVirtualBoxにExtension Packを導入します。
VirtualBoxのサイトからダウンロードして来てください。
ダウンロードしたら、VirtualBoxの環境設定画面からExtensionをインストールします。
ここで一度、Webカメラを導入したいゲストOSを起動します。
再びホスト側の作業です。
VirtualBoxをインストールすると、VBoxManage
コマンドが使えるようになっているかと思います。
ターミナルからVBoxManage list runningvms
とVBoxManage list webcams
を打って、起動中の仮想マシン名と使用するWebカメラパスを確認します。
$ VBoxManage list runningvms "Windows 8.1 Enterprise" {963cd60e-239b-45c2-a581-96a36f641663} $ VBoxManage list webcams Video Input Devices: 1 .1 "FaceTime HD カメラ" CC23245B57EF9T9C9
"Windows 8.1 Enterprise"
が、目的のゲストOSが動いている起動中の仮想マシン名、CC23245B57EF9T9C9
が使用するWebカメラパスです。
$ VBoxManage controlvm "Windows 8.1 Enterprise" webcam attach CC23245B57EF9T9C9
仮想マシン名とWebカメラパスは自分の環境のものに置き換えてください。
コマンドを打った後、何も出なければ成功です。
もし以下のようなエラーが出たら、ゲストOSをシャットダウンし、VirtualBoxを再起動させてからもう一度ゲストOSを立ち上げてから試してみてください。
(一度それでハマってしまいました)
VBoxManage: error: Attach emulated USB webcam (VERR_PDM_NO_USBPROXY) VBoxManage: error: Details: code VBOX_E_IPRT_ERROR (0x80bb0005), component Console, interface IConsole, callee nsISupports VBoxManage: error: Context: "WebcamAttach(path.raw(), settings.raw())" at line 1448 of file VBoxManageControlVM.cpp
VirtualBoxの画面に戻ると、DevicesのメニューにWebcamsが追加されていて、先ほどアタッチしたWebカメラが選択できる(もしくは選択されている)と思います。
選択されていなかったら選択してください。
標準で入っている「カメラ」アプリの様子。
本日はDMTCxMicrosoftコラボハッカソンで技術メンターをさせていただいてました。
これでカメラを使ったアプリのテストも、Lyncでのビデオ会議も仮想マシンでできる!!
なおデタッチは
$ VBoxManage controlvm "Windows 8.1 Enterprise" webcam detach CC23245B57EF9T9C9
でできます。