この特集のトップページへ
>
この回のトップページへ
RealProducerを使ってRMファイルを作成するためには,ビデオキャプチャカードやサウンドカードなどの設定が必要になる。サウンドについてはインストール時にあらかじめ設定されているかもしれないが,ビデオキャプチャデバイスについては,カーネルコンフィグレーションを行う必要があるだろう。
RealProducerは,ビデオキャプチャカードやサウンドカードから取り込んでRMファイルを作成したり配信したりする以外の機能もある。wavファイルやauファイル,movファイルなどからRMファイルに変換することもできるのだ。RMファイルへの変換だけを目的とするならば,ビデオキャプチャカードやサウンドカードが認識されていなくても構わない。 |
|
ビデオキャプチャカードの設定
RealProducerでビデオキャプチャデバイスを利用するためには,Video4Linuxで対応されている必要がある。Video4Linuxに対応している代表的なビデオキャプチャカード,メーカー別にさまざまなものがあるが,Linuxで最も多く使われているのは,Brooktree社のBT848またはその互換品を搭載したビデオキャプチャカードだ。BT848と同様なビデオチップとしてBT878(互換製品のFUSION社のFUSION 878Aも含む)もあり,BT878(およびFUSION 787A)を採用しているビデオキャプチャカードはBTB848のデバイスドライバで動作させることができる。
BT848やBT878を搭載したビデオキャプチャカードは,すでにWindows用としても安価なものが多数出回っている。これらを利用すればよいのだ。搭載されているチップに注目しておけばよい。
今回は,カノープスから発売されているWinDVR PCI(写真1)を利用することにした。WinDVRは,FUSION 878のビデオチップを搭載したビデオカードである(写真2)。
カノープス社はWinDVR PCIがLinux上で動作することを保証しているわけではない(そもそもドライバの関係上、Linux上ではWinDVR PCIがもつすべての機能を活かすことはできない)。 |
写真1■WinDVR PCI
|
写真2■WinDVR PCIに搭載されているチップ
|
BTB848やBTB878のビデオチップが搭載されていれば,問題なくLinuxで動作するというわけではない。特に,テレビチューナー部分や音声入力部分はビデオキャプチャカードごとに独自のものが利用されているケースが多い。このため注意が必要だ。BTB848のデバイスドライバを使って動作するビデオカードについては,BTB848のデバイスドライバであるbttvのホームページを参照するとよいだろう。ここに記載されているカードを探すのが確実といえる。 |
|
Video4Linuxの設定
前述したようにビデオキャプチャカードを利用するためには,まず最初にVideo4Linuxの設定をしておかなければならない。ここではまずカーネルを再構築し,BT848/BT878のビデオチップを搭載したビデオカードを利用する方法を説明しよう。
まずは,rootユーザーとしてログインしカーネルのコンフィグレーションを行うためのコマンドを実行する。ここでは,make menuconfigを使う。
# cd /usr/src/linux
# make menuconfig |
Video4Linuxの設定は,[Charactor devices]の項目にある。まずは,[Charactor devices]階層下の[Video For Linux --->]を開き,さらに下の階層を表示させる(Fig.1)。
Fig.1■[Charactor devices]を表示させる
|
この項目の先頭に[Video For Linux]と書かれたメニューがあるので,「M」キーを押してモジュールとして組み込む指定をする。さらに,[BT848 Video For Linux]にカーソルを合わせ,同じく「M」キーを押してモジュールとして組み込む。
[Video For Linux]にカーソルを合わせてモジュール化指定をすると,残りすべてが[M]マークとしてモジュールになるのだ。そのままの設定で構わない。特に,[BT848 Video For Linux]以外を組み込まないように設定する必然性はない(Fig.2)。
Fig.2■[Video For Linux]とそれに付随するドライバをモジュールとして組み込む
|
以上でビデオキャプチャカードの設定が完了した。後は,モジュールだけを再構築すればよい。再構築に移るには,make menuconfigを終了してから次のように指定しよう。
# make dep ; make clean
# make modules
# make modules_install
# /sbin/depmod -a |
上記の手順は,モジュールとして組み込むだけの指定だ。このため,カーネルを再構築する必要はなく,システム自体を再起動する必要もない。make bzliloなどを実行する必要がないということだ。 |
|
bttvドライバのアップデート
ほとんどの場合は,いままで説明してきたようにBTB848のデバイスドライバをモジュールとして組み込むだけで利用できる。しかし,本稿で利用しようとしているWinDVR PCIは比較的新しいビデオキャプチャカードであるため、Red Hat Linux 6.2に付属のBTB848ドライバではうまく動作しない。そこでBTB848のデバイスドライバをアップデートしなければならない。
筆者が実際に試したところ,Red Hat Linux 6.2のディストリビューションパッケージで構築されるBTB848ドライバでは,映像は表示されるものの音がまったく鳴らない状況だった。 |
|
BTB848のデバイスドライバは,bttvと呼ばれbttvのホームページから最新版をダウンロードできる。
bttvの最新版は,原稿執筆時点ではバージョン0.7.81である。しかしバージョン0.7.x系はカーネル2.4をベースとしたもののため,カーネル2.2をベースとしたRedHat Linux 6.2で利用するためには,i2c_stackにパッチを当てるなどの対処が必要となる。
カーネルを2.4に再構築するという選択肢もあるわけだが,RealSystem ServerやRealProducerは,カーネル2.2での動作しか保証していない。 |
|
本稿では,bttvのバージョン0.6.x系の最終版であるbttv-0.6.4hを利用することにした。バージョン0.6.x系であれば,RedHat Linux 6.2で利用する場合に特別な設定が必要ないのだ。
まずは,bttv-0.6.4hをbttvのホームページから適当なディレクトリにダウンロードしよう。そして次のようにしてアーカイブを解く。
$ tar xzvf bttv-0.6.4h.tar.gz |
すると,bttv-0.6.4hという名称のディレクトリができる。次のようにチェンジディレクトリ(cd)をして,カレントを移す。
suを実行し,rootとしてログインしてからmakeを実行する。
bttvは,make時にカーネルのソースファイルの一部を保存する。このためにrootユーザーでmakeコマンドを実行しなければならない。 |
|
次にインストールだが,筆者が試したところbttvのmake installコマンドは,キャラクタデバイスを書き換えたり,一部の設定がおかしかったりする。このため,ここではmakeコマンドにてコンパイルされたモジュール群を手動でコピーすることにしよう。
コンパイルされたモジュール群は,bttv-0.6.4hディレクトリ下のdriverディレクトリに含まれている。これらをLinuxのモジュールファイルが格納されているディレクトリにコピーする必要がある。次のコマンドを実行し,モジュールファイルが保存されている/lib/modules/カーネルバージョン名に指定しよう。バージョン名は,次のようにして/lib/modulesディレクトリの構成を調べればよい。
# ls /lib/modules
2.2.14-5.0
|
RedHat Linux 6.2の場合,カーネルの再構築やアップデートなどをしていなければ,カーネルのバージョン名は上記のように2.2.14-5.0になっているはずだ。この場合には,次のようにすればbttvのmakeにより作られたモジュール群をコピーすることができる。
# cp drivers/*.o /lib/moduels/2.2.14-5.0/misc/ |
カーネルのバージョン名が2.2.14-5.0以外である場合は,適時上記コマンドを読み替えてほしい。なお,上記コマンドはbttvを展開したディレクトリをカレントディレクトリとして実行することを想定している。 |
|
これにより,bttvが新しいものに置き換わる。以上でビデオキャプチャカードの設定が完了だ。
ここまでの操作によって,カーネルに含まれているbttv関連のモジュールが上書きされる。万が一元に戻したければ,カーネルモジュールを再構築すればよい。逆にいうと,カーネルモジュールを再構築すると,bttvはカーネルに付属されている古いバージョンに戻ってしまうので注意したい。 |
|
サウンドカードの設定
RealProducerを利用するためには,サウンドカードも正しく設定しなければならない。RedHat Linuxの場合には,sndconfigコマンドを使うと比較的簡単に設定できる(Fig.3)。
Fig.3■sndconfigコマンド
|
サウンドカードの設定は多種多様なため,本稿での解説は避ける。以下,各自適切にサウンドカードの設定がされていることを前提に話を進めていく。
なお,RealProducerが対応しているのはOSS(Open Sound System)(または商用OSS)に対応しているものだけである。ALSA(Advanced Linux Sound Archetecture)ドライバは正式にはサポートしていないので保証外となる。