Linux ムービー・動画環境

Linux で DV

2001年11月4日

こちらでも解説しているように、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. ビデオの編集

1. カーネルへのパッチの適用

カーネル 2.2 系では IEEE1394 のデバイスドライバは含まれていません。カーネルにパッチを当てる必要があります。
http://linux1394.sourceforge.net/ からパッチ ieee1394-2.2.19-20010527.gz を入手し、カーネルにあてます。

$ 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 以外のプラットフォームのファイルがないためのエラーなので気にしなくていいでしょう。

2. モジュールの作成

# cd /usr/src/linux
# make menuconfig

とすると、カーネル設定画面が出ます。
パッチをあてたあとであれば、その中に "IEEE 1394 (FireWire) support" というのがあるのでそれを選択します。
その中で以下の項目をモジュールとして選択します (Mマークをつける)

IEEE 1394 (FireWire) support (EXPERIMENTAL)
これ必須。1394サポート。これを選択しないと以下のメニューは現れない。
OHCI (Open Host Controller Interface) support
これも必須。
Video1394 support
これは必須か?ビデオって書いてるから選んだけど、modprobe で読み込まなくても取り込みはできた。
Raw IEEE1394 I/O support
これも必須。
SBP-2 support (Harddisks etc.)
これは IEEE1394 のストレージ (ハードディスクなど) を使う場合に必要。ビデオには必要なし。
保存して終了し、モジュールの make、インストールなどを行ってください。 またその他 lilo の更新や、リブートなどを必要に応じて。

3. libraw1394 のインストール

libraw1394 は 1394バスにダイレクトにアクセスするため raw1394 ドライバを使うプログラムで要求されるそうです。簡単にいうと、"必要になるからダウンロードせよ" とのこと。
http://linux1394.sourceforge.net/download.html から libraw1394-0.9.0-1.i386.rpm, libraw1394-devel-0.9.0-1.i386.rpm を持ってきて rpm -ivh (rpm ファイル名) でインストール。
ただ、これだけだと /dev/raw1394 ができず、あとでおこられるので、ソース tar ボールも持ってきます。(libraw1394_0.9.0.tar.gz)

$ tar zxvf libraw1394_0.9.0.tar.gz
$ cd libraw1394
$ ./configure
$ make
$ su
# make dev

として、デバイスファイルを作ります。
また、一般ユーザが使えるようにアクセス権を変更します。

# chmod 666 /dev/raw1394

4. モジュールのロード

以下のようにします。

$ modprobe ohci1394
$ modprobe raw1394

5. テスト

libraw1394 をインストールすると、testlibraw という IEEE1394 バスをチェックするプログラムがあります。

$ 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" とあるので、カードは認識されていることが分かります。

6. gscanbus を使う

gscanbus は GUI で IEEE1394 接続機器が確認できる gtk+ プログラムです。

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 できるように "ターミナル内で実行" としておいた方がいいでしょう。

7. dvgrab でデータ取り込み

装置を認識させたらいよいよお楽しみのビデオデータ取り込みです。 dvgrab はコマンドラインベースの DV 取り込みプログラムです。
これは tar ボールの中に spec ファイルがあるので RPM パッケージが簡単に作れます。

$ 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 を指定した方がいいでしょう。

8. ビデオの編集

ここまで来たら Windows のようにビデオを編集して、テープに書き戻したりしたいですね。
Linux 上のビデオ編集ソフトには、Broadcast2000Kino があります。

Broadcast2000 はかなり良さそうなソフトなのですが、残念ながら配布が中止されてしまっています。しかし、有るところには有るもので、ここから拾って来ました。探せば他にもあるようです。しかし、AVI ファイルが扱えない上に、テープへの書き戻しはできません。

Kino は書き戻しもサポートしていて良さそうですが、残念ながら XFree86-4 を要求するライブラリを必要とするため断念。

編集は今後の課題としたいと思います。


関連リンク:


戻る | Linux ページに戻る | real-baishi に戻る