前回のレシピでは、Skypeの新しいバージョンをUbuntuで使う方法を紹介しました。ウェブカメラを購入して友人とビデオ通話やビデオチャットを楽しみたい方もいると思います。せっかくウェブカメラを購入したのに、何か思っていたのと映りが違うといった不満を持つ方もいるでしょう。そこで今回は、ウェブカメラの映像をリアルタイムに補正する方法についてのレシピです。
Video for Linuxサブシステム
ウェブカメラ選びは本連載の第147回が参考になるでしょう。たいていはUSB接続のものを購入することになるはずです。この際、UVCに対応しているものを購入すると、Ubuntuでもほぼ確実に動作します。
ここで、Ubuntuのウェブカメラのドライバーについて簡単にまとめます。USB接続のウェブカメラのドライバーは、Video For Linux(V4L)というプロジェクトで開発されています。
V4Lはビデオキャプチャーデバイス、ビデオオーバーレイデバイス、ウェブカメラ、AM/FMラジオカードデバイスをLinuxで使えるようにするための仕組みです。ドライバーとなるカーネルモジュールと、ソフトウェアにAPIを提供するライブラリー、ライブラリーを利用したユーティリティーソフトウェアがその成果となります。(注1)
このV4Lには新旧の2つのAPIバージョンがあり、旧APIすなわちバージョン1は今は使われていません。しかし、Skypeの以前のバージョンはこのバージョン1を採用していたようです。そのためウェブカメラによっては、バージョン1との互換ライブラリーを事前にロードしてからでないとSkypeから使うことができませんでした。Skypeの最新バージョンである4.0ではこの点も改善されているようです。
Video4Linuxコントロールパネル
Video4Linuxコントロールパネル(v4l2ucp)を使うことで、V4Lサブシステムから、ウェブカメラをダイレクトにコントロールできます。Cheeseなどのソフトウェアによる補正と異なり、デバイスそのものの挙動を変えるため、補正された映像を他のソフトウェアで利用することができます。
インストールするには、Ubuntuソフトウェアセンターでキーワード「v4l2ucp」で検索し、「Video4Linuxコントロールパネル」をインストールしてください。
起動するには、UnityのDashでキーワード「v4l2ucp」で検索してください。
V4l2ucpのメインウィンドウは縦に長く、ノートPCなどの低解像度ディスプレイには収まりません。AltキーとF7を同時押しするとウィンドウの真ん中を掴んで移動することができますので、ウィンドウ下部のコントロールを操作したい場合は試してみてください。
v4l2ucpでコントロールできる項目は多岐に及びます。次の項目が代表的なものです。
- Brightness: 明るさを調整
- Contrast: コントラストを調整
- Saturation: 色調表現の階層を調整
- Hue: 色相を調整
- Gamma: ガンマ補正の調整
各項目値を変更するだけでデバイスの設定値も変更され、ビデオ入力に反映されます。Skypeなどのソフトウェアでビデオ入力を使用中でも、各項目の操作は可能です。色相調整はちょっとしたいたずらに使うこともできるでしょう。
なお、デバイスが対応していないコントロール項目まで表示されてしまうため、そのようなコントロールを操作しようとすると、次のダイアログが表示されます。
ビデオ入力のプレビュー
v4l2ucpではビデオ入力をプレビューしながらの操作も可能です。ビデオ入力をプレビューするには、「Preview」メニューから「Start preview」を選択してください。新しくウィンドウが開いてビデオ入力を映し出します。
ただしこの場合、デバイスからのビデオ入力を他のソフトウェアと同時に利用できません。Skypeなど目的のソフトウェアでビデオ入力を利用する前に、プレビューを見ながらビデオ入力デバイスを調整しておくという使い方がよいでしょう。