ファイヤープロジェクト
キャプチャーカード導入記
2003-01-11T00:00+09:00   matsu
キャプチャーカードを買って来た.目的は.....何だっけ?否,「できるかできないか」それがまず問題なのだ.
出かける前は○○ハードウェアで紹介されていたWinfastTV 2000 XP Deluxeを買うつもりだったが,大須のツクモでAopenのVideo Station VA1000 PLUS 2を発見.チップがCONEXANTのbt878だということで,そして全く同じものを買ってもと思いAopenのものを選択.8979円.忘れずにビデオのオーディオ出力(赤,白.正式にはなんていうんだろ)をステレオミニプラグに変換するコネクタも購入.以下,軽く紹介.
ビデオ入力
テレビアンテナとS端子.コンポジット(普通の黄色いやつ)からS端子に変換するコネクタは付属
オーディオ入力
3.5Φステレオミニプラグ
オーディオ出力
3.5Φステレオミニプラグ
あと,チップはCONEXANTのbt878と書いたが,もとはBrooktreeのチップだったのだが,BrooktreeがCONEXANTに買収されたので,店頭ではCONEXANTと書いてあったらしい.
別に書く程のことでもないんだけど,一応.
  • キャプチャーカードを差す.
  • ビデオの黄色のケーブルをS端子の変換アダプタに差して変換アダプタのS端子側をキャプチャーカードに差す.
  • ビデオの赤と白のケーブルをステレオミニプラグに変換するコネクタに差してスレテオミニプラグ側をキャプチャーカードに差す.
  • キャプチャーカードに付属のステレオミニプラグのケーブルをキャプチャーカードのオーディオ出力に差し,反対側をサウンドカードの入力に差す.
オーディオ周りの入力と出力を間違わないように注意.
$/sbin/lspci -v
02:06.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 11)
        Flags: bus master, medium devsel, latency 32, IRQ 10
        Memory at ef000000 (32-bit, prefetchable) [size=4K]
        Capabilities: [44] Vital Product Data
        Capabilities: [4c] Power Management version 2

02:06.1 Multimedia controller: Brooktree Corporation Bt878 (rev 11)
        Flags: bus master, medium devsel, latency 32, IRQ 10
        Memory at ee800000 (32-bit, prefetchable) [size=4K]
        Capabilities: [44] Vital Product Data
        Capabilities: [4c] Power Management version 2
今回購入したキャプチャーカードのチップbt878はカーネルが思いっきりサポートしていてドライバとかもちゃんとあった.というか,だからこのカードにしたんだけど.で,あるならコンパイルしたくなるのが人情.今回は2.4.20を使用.linux/Documentation/video4linux/bttv/READMEによると(bttvはBrooktreeのTVの略か?)これらしい.
  • CONFIG_I2C=m
  • CONFIG_I2C_ALGOBIT=m
  • CONFIG_VIDEO_DEV=m
つまりmake menuconfigで
  • Character Devices ->I2C support ->I2C supportをM
  • Character Devices ->I2C support ->I2C bit-banging interfacesをM
これらはモジュールでなくてはならないらしい.そしてこのように設定すると,以下が出て来くるので,やはりモジュールで組み込む.
  • Multimedia devices ->Video For LinuxをM
  • Multimedia devices ->Video For Linu ->V4L information in proc filesystemを*
  • Multimedia devices ->Video For Linu ->BT848 Video For LinuxをM
この時SAA5249 Teletext processorというのに気づき,こっちのチップにした方が面白かったかなとちょっと思う.最後に
  • Sound ->BT878 audio dmaをY
にした.これをいれないと録画したときに録音できないらしい.そして
make-kpkg --revision ????? kernel_image modules
こいつらをいれるとコンパイル時間が5分位長くなった気がした.
あと/dev/video0を普段使用するアカウントが見られるようにする.
カードからの入力を出力するのにxawtvを使用した.
apt-get install xawtv xawtv-tools
で,実行してみたがなんだかうまく移らないので,.xawtvをネットの情報を参考に編集.
[global]
freqtab = japan-bcast
fullscreen = 640 x 480
pixsize = 128 x 96
pixcols = 1
jpeg-quality = 75
mjpeg-quality = 75
keypad-ntsc = yes
osd = yes
mixer = line
mov-driver = avi
mov-fps = 30
mov-audio = stereo

[defaults]
norm = NTSC-JP
input = Composite1
capture = overlay

で,なんとかテレビが見られて音もでる(line inのレベルを0にしているのに気づかずしばらくハマッたが).manによるとなんかのライブラリのおかげでxawtvではstereoにならないような雰囲気を感じた.
で,表示できたら次は録音である.まずxmixの右上Recording SourceでLine Inを選択.次にxawtvにフォーカスしてrボタンを押すとあとは,流れにそって流れる.または,コマンドラインから
xawtv-remote movie fvideo $(tempfile -d .).avi ; xawtv-remote movie start ; read ; xawtv-remote movie stop
などとするのもよいかもしれない.
音量の変更は,xawtvを起動した状態ならコマンドラインから
xawtv-remote volume num
などとnumのところを0〜100で指定しすればできる.
aviはファイル容量とか何だかいやなので,一気にmpeg1を作成したい.で,sampegである.ここからsampeg2_0.6.5.tar.gzをダウンロード.
tar zxvf sampeg2_0.6.5.tar.gz
cd sampeg-2
make
で,実行ファイルsampegができる.これでリアルタイムエンコードが可能となる.
sampeg --threads=2 -b --mpeg1 /dev/video  sample.mpg
だが,これだと音がでない.sampeg3も試してみたが,ダメだった.オーディオ情報は別ファイルに出力できるが,どうやってマージするのだろうか.
fameも試してみた.fameはlameのライブラリを使う.そこでハマったりした.あと,もし無ければあらかじめlameを落してmakeしておく.
tar zxvf lame-3.93.1.tar.gz
cd lame-3.93.1
./configure --prefix=/home/hoge/usr/local/lame
make
make install
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hoge/usr/local/lame/lib
そしてここからsourceforgeに飛んで以下を落す.
  • libfame-0.9.0.tar.gz
  • fame-0.9.0.tar.gz
そしてmakeする.まずlibfame.
tar zxvf libfame-0.9.0.tar.gz
cd libfame-0.9.0
./configure --prefix=/home/hoge/usr/local/libfame
make
make install
次にfame
export CFLAGS=" -L/home/hoge/usr/local/lame/lib/ -I/home/hoge/usr/local/lame/include/"
tar zxvf fame-0.9.0.tar.gz
cd fame-0.9.0
./configure\
--prefix=/home/hoge/usr/local/fame\
--with-libfame-prefix=/home/hoge/usr/local/libfame
make 
make install
lameの共有ライブラリのあるディレクトリをLD_LIBRARY_PATHに設定しないと,怒られるので注意.
matsu(C)
Since 2002
Mail to matsu