本連載ではこれまで、ビデオ編集ソフトウェアとして第180回 でKdenlive を、第228回 でLiVES を、第285回 でpitivi を扱ってきました。これ以外にUbuntuで使うことの出来るビデオ編集ソフトウェアとしてOpenShot Video Editor やCinelerra が挙げられます。
いずれも非常に高機能なソフトウェアですが、カメラで撮影している映像を単にファイルとして保存する用途や、今カメラに映っている映像を単に「見る」用途に使うには大げさです。そこで今回は、そのような場合に使えるソフトウェアとして、guvcview を取り上げます。
guvcviewのインストールと起動
guvcviewをインストールするにはまず、UnityのDashやLauncherからUbuntuソフトウェアセンターを起動し、キーワード「guvcview」を検索します。guvcviewが見つかりますので、インストールしてください。
図1 Ubuntuソフトウェアセンターにおけるguvcviewの検索結果
guvcviewを起動するには、UnityのDashでキーワード「guvcview」を検索します。guvcviewが見つかりますので、クリックして起動します。もしシステムにビデオカメラが接続されており、使用可能な状態になっていれば、起動しただけで映像が表示されるはずです。たとえば筆者が使っているThinkpad E420には標準でディスプレイ上部にカメラが配置されており、guvcviewを起動すると自分の顔が表示されます。
図2 起動したguvcview。ここではUSB接続のWebカメラを用い、筆者の机上を撮影してみた
映像と音声のオプション
guvcviewを起動すると、プレビューウィンドウとコントロールウィンドウが表示されます。コントロールウィンドウでカメラの設定を変更し、映像を変更することができます。設定可能なオプションを簡単に見ていきましょう。
まずは「イメージコントロール」タブです。ここでは、輝度や彩度、ホワイトバランスや露出など、カメラの基本パラメータを設定できます。
図3 イメージコントロールタブ
次に「Video」タブです。ここではビデオ映像のフレームレート、解像度、フォーマット(カメラ出力)を設定します。また複数台のビデオカメラデバイスが利用可能であれば、どれを使うかを選択できます。
図4 Videoタブ
ビデオファイルには音声が付きものですので、「 オーディオ」タブも見てみます。「 Audio API」ではPORTAUDIOかPULSEAUDIOからオーディオ入力を選択できます。Ubuntu標準の設定ではどちらを選択しても結局PulseAudioがオーディオ入力元となりますから、PulseAudioを選びます。サンプルレートやチャンネルは、ビデオファイルに保存される音声データに影響します。とくにこだわりがなければ、デバイスデフォルトを選びます。
図5 オーディオタブ
ビデオ撮影
次にビデオ撮影をしてみます。コントロールウィンドウのボタン「Cap. Video」をクリックします。これだけです。
ビデオファイルはデフォルトで、ユーザーのホームディレクトリに保存されます。保存先を変更するには、コントロールウィンドウのメニュー「Video」から「Files」とたどります。
ビデオファイルの映像・音声データのコーデックを指定するには、コントロールウィンドウのメニュー「Video」から「Video Codec」あるいは「Audio Codec」とたどります。guvcviewはlibavをバックエンドで利用しており、MPEG4/AVC(H.264)やVP8などの主要なコーデックに対応します。もし使いたいコーデックがリストになければ、本連載の第285回 を参考に、libavcodecのextraパッケージをインストールしてください。
対応カメラ
guvcviewから使うことのできるカメラが気になるところです。そこでguvcviewをもう少し掘り下げてみましょう。
guvcviewの以上の機能のうち、GUIとコーデックを除くものは、libwebcamが実現しています。libwebcam はLinuxのVideo for Linux ( V4L)( 注1 )のインターフェースを更に抽象化するライブラリです。libwebcamのWebサイトによると、このプロジェクトはもともとスイスのLogitech社が始めたようです。Logitech社が開発を止めた後、LGPLにより有志の手で開発が継続されています。webcamという名の連想で、Webカメラの名で知られる安価で解像度の高くないカメラ専用という印象を持つかもしれませんが、V4Lドライバが開発されているデバイスであれば、Webカメラであってもなくても、映像を取得して扱うことができます。ただし、カメラの細かなコントロールはUSB接続のデバイスに限定されます。コントロール機能はUSB Video Device Classのアプリケーションとして書かれているためです。
V4Lがサポートするデバイスは、Hardware Device Information で調べることができますので、参考にしてください。入手が容易なUSB接続のWebカメラであれば、大抵の機種を使うことができるようです。
まとめ
ビデオデバイスからの映像を簡単に扱うソフトウェアとして、guvcviewを使うことができます。guvcviewはlibavやlibwebcamに依存します。libavは映像や音声のコーデックを提供するため、guvcviewは主要なビデオフォーマットを出力することができます。libwebcamはLinuxのV4Lサブシステムのアプリケーションとして書かれているため、guvcviewはウェブカメラを含む様々なビデオデバイスを利用することができます。