こちらでも解説しているように、TV チューナ・ビデオキャプチャカードによって、ビデオ映像の Linux への取り込みは一応できるようになりました。
一方、私は DV カメラも持っています。この映像の取り込みはビデオキャプチャカードから Composite 経由で取りこむことはできますが、せっかくデジタルビデオなんだからデジタルのままで取り込みたいですね。と言うわけで、IEEE1394 カードに挑戦です。
ハード構成:
PentiumIII 1GHz, 640MB Memory, UltraATA 100 (実際には66) HDD
Ratoc REX-PCIFW1 --- PCI の IEEE1394ボード (もらい物、多分1万円以内で買える)
Canon PV1 --- DV カメラ。
4pin - 4pin の IEEE1394 ケーブル
ここではハードウェアのインストールまでは解説していません。適切にインストールしておきましょう。
OS:
Vine-2.1.5 kernel-source-2.2.19 パッケージ
1. カーネルへのパッチの適用
2. モジュールの作成
3. libraw1394 のインストール
4. モジュールのロード
6. gscanbus を使う
7. dvgrab でデータ取り込み
8. ビデオの編集
$ gunzip ieee1394-2.2.19-20010527.gz
$ su
# cp ieee1394-2.2.19-20010527 /usr/src
# cd /usr/src/linux
# patch -p1 < ../ieee1394-2.2.19-20010527
いくつかエラーが表示されますが、Help ファイルのエラーや、i386 以外のプラットフォームのファイルがないためのエラーなので気にしなくていいでしょう。
# cd /usr/src/linux# make menuconfig
とすると、カーネル設定画面が出ます。
パッチをあてたあとであれば、その中に "IEEE 1394 (FireWire) support" というのがあるのでそれを選択します。
その中で以下の項目をモジュールとして選択します (Mマークをつける)
$ tar zxvf libraw1394_0.9.0.tar.gz
$ cd libraw1394
$ ./configure
$ make
$ su
# make dev
として、デバイスファイルを作ります。
また、一般ユーザが使えるようにアクセス権を変更します。
# chmod 666 /dev/raw1394
$ modprobe ohci1394
$ modprobe raw1394
$ testlibraw
とすると
successfully got handle
current generation number: 1
1 card(s) found
nodes on bus: 2, card name: ohci1394
using first card found: 2 nodes on bus, local ID is 1, IRM is 1
(以下略)
とかでます。 読み方は良く分からないですが、"1 card(s) found" とあるので、カードは認識されていることが分かります。
http://www.ivistar.de/0500opensource.php3?lang=en から gscanbus-0.7.1.tgz をとってきます。
$ tar zxvf gscanbus-0.7.1.tgz
$ cd gscanbus-0.7.1
$ ./configure --prefix=/usr
$ make
$ su
# make install
そして、gscanbus と打てば、こんな画面がでます。
"S400 Your Device" が IEEE1394 ホストアダプタ、"S100 AV/C Device" がアイコンをクリックするとその装置の情報ウィンドウが別にでます。
情報の中の GUID を /etc/guid-resolv.conf の 8 byte GUID hex に、対応す
る Identifying string に装置名を書いておけば、装置名を表示させることができます。
ご覧のように、ビデオカメラの情報ウィンドウにはビデオカメラの操作ボタンがあります。便利〜(?)
ただ、動作は不安定でかなりの確率で固まります。gnome のパネルに登録する場合はすぐに C-c で kill できるように "ターミナル内で実行" としておいた方がいいでしょう。
$ tar zxvf dvgrab-1.01.tar.gz
$ cd dvgrab-1.01
$ su
# cp dvgrab.spec /usr/src/redhat/SPECS/
# cd ../
# cp dvgrab-1.01.tar.gz /usr/src/redhat/SOURCES/
# cd /usr/src/redhat/SPECS/
# rpm -ba dvgrab.spec
# cd ../RPMS/i386/
# rpm -ivh dvgrab-1.01-1.i386.rpm
次は取り込みです。 いろいろオプションがありますが取り敢えず、
$ dvgrab /data/video/test
とやると /data/video/ 配下にtest001.avi ファイルができます。ファイルサイズが 1GB を越えると自動的に test002.avi に移ります。
ただ、これは AVI でも DV 形式というもので、そのまま Linux で再生できるアプリを私は見つけていません。
そこで、dv2jpg というツールを使い Motion JPEG に変換してやります。
変換の方法はこちらで解説しています。ここではもう少し dvgrab の使用方法に関して書きます。
実は dvgrab で保存できるファイル形式は 3 種類あります。DV1, DV2, RAW です。前者二つは avi ファイルの中の種類です。
形式を指定して保存するには
$ dvgrab --format dv2 /data/video/test
とやります (小文字で指定)。何も指定しない場合は DV1 になります。 詳しい形式の違いは判りませんが、上の dv2jpg は DV2 形式にのみ対応しています。今のところ DV 形式 avi を変換するには dv2jpg を使うしかないので、DV2 を指定した方がいいでしょう。
Broadcast2000 はかなり良さそうなソフトなのですが、残念ながら配布が中止されてしまっています。しかし、有るところには有るもので、ここから拾って来ました。探せば他にもあるようです。しかし、AVI ファイルが扱えない上に、テープへの書き戻しはできません。
Kino は書き戻しもサポートしていて良さそうですが、残念ながら XFree86-4 を要求するライブラリを必要とするため断念。
編集は今後の課題としたいと思います。