どうも面倒で自分ではPCを組んだことが無かったのですが、ビデオキャプチャ + DVDヤキヤキな専用機が欲しくなったので作ることになりました。予想通りそこにはイバラの道がぁ。
なぜ作るのか
ちょっと前からSonyのHDDビデオレコーダCocoonを使っていて、これがかなり良い塩梅にテレビ生活を変革させてくれる素晴らしい製品なんです。どこがどう素晴らしいかな説明はメンドクサイので割愛。問題は録画した画像を取り出す or DVDなどに書きだすことができない、またはそのように拡張する手段が無いこと。中身はMIPSの石積んだLinuxだってのがまた悔しさに拍車を書けます。なぜshell loginさせてくれない!? なぜNFSでマウントさせてくれない!?
最新型ではDVDでヤキヤキ可な製品も出ていますが、このジャンルの製品の常として制約事項が多いのが不満なのです。たとえばPCからデータを取り出すことができます、ただし専用ソフトで。とかそんなのばっかり。
というわけで足周りにLinuxを使う前提ならば Video 4 Linux なおかげで、キャプチャやエンコードは困ることは少なくて、あとはTV画面で操作できるUser I/Fが必要なだけなのです。User I/Fにしても MythTV などボチボチ完成度の高いものが既にありますが、あわよくば作ってしまえという勢いで。
どう作るのか
はっきりいってこのPCパーツや組み合わせな分野は素人ですし、秋葉原も一昨年冷蔵庫を買いに行ったっきりでお店の配置とかも覚えてません。とりあえず一週間ほどかけてパーツがどうのこうのWebで調べていたのですが、結局次のようなハードウェア構成で組むことにしました。- マザーボード Leadteck K7NCR18GM(micro-ATX nForce2チップセット TV-out有)
- CPU AMD Athlon 1800+
- RAM 512Mbyte(ものは忘れた)
- HDD 160Gbyte (シーゲートの7200rpmのやつ)
- TVキャプチャカード WinTV PVR-250(よく見つけられたな。。。)
つぎにソフトウェア。
- OS RedHat 9 Publisher's Edition(雑誌付録)
- iTVC15系キャプチャカード用ドライバ IvyTV( http://ivtv.sourceforge.net/ )
$ cat /dev/video0 > /path/to/my_capture.mpgみたく簡単にTVやS端子経由の映像を音声コミコミでMPEG-2でゲットできるようになる。WinTV PVR-250はハードウェアエンコードしてくれるのでCPUはI/O以外の仕事はほとんどしていないので、もっとヨワヨワなCPUで事足りたのかもしれない。幸せな時代に生まれたもんだ。
調子にのって選局や入力切換えやキャプチャ時間などを良い塩梅に設定するスクリプトをPerlで書いて気持ち良くなってみたりする。録画は
$ recgo.pl -c s -t 1h30m -o my_capture.mpgとかすればS端子の入力を1時間30分間分 my_capture.mpgに書き込んでくれる。ファイルに落とさず直接視聴したい場合は
$ recgo.pl -c 12 -t 15s -o - | mplayer -とかすればテレビ東京(12ch)を15秒間表示する。あ、いつも会社から自宅のノートパソコン(Mac OS X)にSSHしてメール見てるんですが
office$ ssh video.myhome.example.jp cat /dev/video0 | mplayer -とかすれば会社からテレビも見れるかな。 ←やめときなさい
というわけで録画予約などはcronなりatなりを組み合わせてあげればなんとでもなる中々素敵な状態になりました。WebのI/Fつけても良いかもしれない。
イバラの道
つぎは保存したMPEG-2を使ってDVD-Videoを作るステップ。WinTVはDVD用のデータでキャプチャすることは出来るのですが、そのままでは使用することができません。データの変換はdvb-mplexでサクっと終えて、dvdauthorでDVD-Videoに必要な各ファイルを作成。んでもってそれらでisoイメージを作ったらDVD-Rに焼いて終了でウヒウヒ。の予定だったのですがここで問題発生。書き込みを始め10秒ほど立つと/var/log/messagesにJul 2 01:25:08 hostname kernel: scsi : aborting command due to timeout : pid 113680, scsi1, channel 0, id 0, lun 0 0x00 00 00 00 00 00こんなログが出て、さらに3秒後には
kernel BUG at ide-iops.c:1262!でカーネルパニックで死亡。その後もドライブはデータを延々と書き込み続けるという悲しい状態。この症状はide-scsiでエミュレートされたscsiバスのスキャンを除き、消去などあらゆる書き込み処理で100%再現する。
DVD-RWドライブは東芝のSD-R5002を何も考えずに買っていたのですが、書き込みに使用している DVDRTOOLS は極最近このドライブをサポートしたらしい。ただメーリングリストを見る限りまだ問題が有りそう。ついでにide-iops.c繋がりで調べてみたところ今使っているカーネルv2.4.21に残っている問題っぽくて2.5系だとガリっと書き変わっているのでダイジョブらしい。んーめんどくせぇ。
もう買ってからかれこれ2週間ぐらい試行錯誤を続けているんだけど、このまま試行錯誤を続けるかそれともドライブを買い替えた方が早いか。ここが通れば第1段階としてほぼ満足なんだけどなぁ。。。あ、Win32使うってのはナシな方向で。