Linuxで最強のテレビ録画サーバを目指す【2】-ハードウエアMPEG2キャプチャ-

['03/12/14] 初稿
['03/12/25] 追記
['04/01/04] 追記
['04/03/28] 追記(新たに対応したカードに関する情報)
■はじめに
■TV録画を快適に -DiGA E80H に持った不満-
 こちらのページで解説したように,Linux ベースでのTV/FMラジオの録画/録音サーバを立ち上げ,ストリーミング機能も含めて 便利に使っていました.しかし,TV録画に関して述べると,常用し始めた後で いくつかの不満点が出てきました.当初は『とりあえず放送されたものを録画でき, そこそこの品質でチェック出来たら良い』と思っていたのですが,思いの他安定 かつ便利に使えるため,欲が出てきたとも言えます.

 実はきちんと録画したい(残したい)ものに関しては Panasonic製 DiGA E80Hを購入したこともあり,こちらで録画すれば良いと考えていました. しかし,使い込むに従い,次第に DiGA の欠点が見えてきます.あくまでも私が 主観的に感じるところの欠点ですが,以下のような不満点を持ち始めました.

  • 使い込むようになると,ディスク容量80GBは少ない
  • 録画予約がネットワーク経由で行えない(オプション製品で一部 実現できますが,汎用性はあまり無いように思います)
  • 録画データをPCに移動するのが手間
  • 4.7GBに2時間記録可能である"SP"クオリティは精細感がそれほど無い(ビットレート不足)
  • ユーザー・インターフェイスが今二つくらいこなれていない

 以上,かなり贅沢な悩みだと思います.VTRの置き換えと考えた場合は,かなりの部分 で妥協できるレベルだと思います.

 しかし,内蔵80GBディスクの空き容量を確保するために, DVD-R/RAM にデータを書き出して PC に移動する…という作業を頻繁に 行っていると,とてもではないですが忍耐力無くしてやってられません. HDD から DVD-R/RAM へファイルをコピーする際に使用する DiGA のユーザ・ インターフェイスは,PC を使い慣れ ている人にとってはまどろっこしく,また,1枚コピーするのに30分間(記録ビットレート を変更する場合は実時間.つまり,2時間物は2時間コピーに必要)かかり,ダビング 中は予約録画が実行されません.

 また,PC とデータのやり取りをするために使用する DVD-R/RAM の 4.7GB という容量が 1つのネックになり,映画を綺麗に録画しようとしても,"SP"クオリティを常用する ことになってしまいます("XP"で録画し,メディアに書き出す際に編集して2つに分割& 2枚に分けて記録&PC側で再び結合…という手も使えますが,手間がかかります).

 これらを全てクリアするためには,ネットワーク経由で録画が可能であり,録画した ものを同じくネットワーク経由で吸い出せるような製品がベストだと思います.そう いった意味では,NEC製 AX300の ような製品が良いとは思うのですが,流石に10万を大きく超えるものはおいそれとは 購入できません.

 そのような経緯もあり,PC で TV録画を行うことにし,メインで利用しても 不満を感じないような『最強のテレビ録画サーバ』を目指すことにしました.

■TV録画を快適に -BT878互換チップで録画の問題点-
 PC で録画を行うことにより,DiGA E80H に対して持っていた不満点は概ね解決 します.特に Linux で行い,不足部分を自分でプログラミングする方向で考えれば, 事実上自分のスキルとハードウエアのスペックが許す限り(それと懐具合も), 何でも出来るでしょう.このようなことを考え,改めて Linux での TV 録画環境を再構築 することにしました.

 前回, BT878 互換チップ搭載カードで TV録画サーバを構築したわけですが,これで 不満に感じたのは以下の3点です.

  • 高解像度での録画に対応できない
  • ソフトエンコードのため,平行して何らかの処理を行うとコマ落ちなどの問題が 出る
  • 画質が今ひとつ(BT878系列は白飛びしやすい)

 BT878 互換チップ搭載カードを選択した時点で,これらの点は妥協すべき問題 かもしれません.また,一時期 mencorder を使用してノイズ除去フィルタをかけつつ高解像度での キャプチャを試みたのですが,(原因は特定できませんでしたが)音声と映像の同期ズレ の問題が発生し,安定して録画を行うことができませんでした(*).

(*)CPUパワーには充分余裕があるが,fpsやキャプチャサイズなどのパラメータを調整 しても症状は改善しなかった

 Windows であれば,MPEG2 ハードウエアエンコーダ搭載のキャプチャカードが多数 存在し,これらを使用すれば上記のような問題は一通り解決可能です.しかし, Linux では,安定可動するハードウエアエンコーダを搭載したカードに関する情報が 殆ど無く,また,あっても日本国内では 入手困難なものばかりでした.しかし,今年(2003年)の下旬に,この状況は大きく変わりました

■Linux でMPEG2 ハードウエアエンコーダ搭載カードは使えるか? 〜プロローグ〜
 MPEG2 ハードウエアエンコーダ搭載カードに使用されている『MPEG2エンコードチップ』 には,多くの種類が存在します.そしてそれらチップを何とか Linux で動かそうとする プロジェクトも多数立ち上がっています.しかし,これらチップはメーカーのノウハウの 固まりであるため,NDA契約(所謂秘密保持契約)を結ばなければ技術情報を得ることが出来 ないものが殆どです.そのため,多くのプロジェクトの進捗は思わしくなく,また,自ずと リバースエンジニアリングに頼ることになりますので,『特定のカードのみに対応した ドライバ』となることが多いという状況でした.

 この『特定のカード』というのがクセ物であり,大抵日本国内では入手困難なものばかり です.そのため,『Linux ではソフトエンコードカードしかマトモに使えない』といった 雰囲気が色濃くあり,実際にその通りでした.

 しかし,2003年9月頃に,インターネットの巨大掲示板 :-) にて, 玄人志向 ITVC15-STVPCIこのドライバで動くらしい』 という話がありました(実際には映像のみ取り込めるという状態であった).しかし,このカード は既に旧製品となり,入手は困難になりつつありました.そして現行商品である 玄人志向 ITVC16-STVLP も動くのではなかろうかという予想が出始めます.実際に購入した人が試したところ, ちょっとしたパッチを当てることにより,見事に(TV の映像のみではありますが)利用可能で あることが確認されました.あとは音声入力のみです.

 そのやりとりをウォッチしていた私は早速ドライバをダウンロードし,ソースを眺めて みました.元々 Win PVR 専用に書かれたドライバであったため,音声周りは定番の MSP34XX というチップを利用すること前提で書かれています.このチップは音声入力として複数のアナログ入力 を接続することが可能であり,ソフト的な設定により,どの入力をデジタル化して出力するかを 切り替えます. そしてカードメーカーによりそのアサインはは異なるわけですが,ドライバのソースを眺めると, 『Tunerからの入力は1番』のように決め打ちでコーディングされていました. おそらくこの辺りをちょこっと直せば動くだろうという甘い見積もりをし,私もカードを通販でオーダー しました.しかしその後の掲示板でのやりとりで,カード上には MSP34XX と思わしきチップは 搭載されていないとの話が出ました.数日後に手元に届いたカードを見回してみると,確かに搭載 されていません.ここからカード&ドライバとの格闘が始まりました...

■Linux でMPEG2 ハードウエアエンコーダ搭載カードは使えるか? 〜格闘編〜
 まず行ったのは,テスター片手にカード上のパターンのトレースです.

 主要なチップの 型番を控え,その機能を調べていった所,ADC(A/Dコンバータ),マルチプレクサ(複数入力 から任意の入力を選択&出力する)が確認できましたので,そこを中心に追っていきます.するとマルチ プレクサの制御信号は MPEG2 エンコードチップである CX23416 の下の方に入っていくのが 確認できました.どうも GPIO (汎用入出力ポート)の信号を使用し,音声入力を切り替え ているようです.Windows 上でその挙動を確認したところ,たしかにそう なっていました.

以下の改造は試行錯誤した際のものです.Linux で動作させる際にこれら改造は不要です

ICピンに Hi/Low どちらの信号が来ているか確認するには,この手のツールが手軽
(ロジアナやオシロがあればもっと良いが,これらはいずれも高価.写真の製品は15,6年くらい 前に購入したが,2千円くらいであった覚えがあります)
黒,赤のワニ口クリップを電源に接続し(それぞれGND,VCC),千枚通しのような突起を 確認したいピンに接触させる.すると LED/ブザーで当該のピンが Hi か Low かを 教えてくれる(たしかTTLレベルで検出…だったと思う.説明書は紛失).また,パルスが 出ている場合はそれも分かる.

最近は IC ピンのピッチが狭いので,利用時はショートさせないように慎重に…


Windows上で録画ソフトを動作させ,TVチューナーを選択した際に,マルチプレクサの 入力信号選択線(2本)が共に Low であることを確認.そこで当該の IC の足を跳ね上げて GND に落とし,強引に Low にしてみた.しかし,依然としてチューナーからの音声出力を 取り込めず,この試行は失敗.(実はデモジュラもコントロールする必要があった)

 後は CX23416 の GPIO をコントロールする方法が分かれば OK です.そこで日本で CX23416 を扱う代理店に資料請求をしたのですが,NDA 契約の壁が立ちふさがりました(ちなみに 代理店の方は非常に親切に対応して下さいました.ありがとう).Windows 用のドライバの 解析も進めていたのですが進捗は思わしくなく, こちらのページで解析されているドキュメント を精読することにしました.そしてあれこれ試してみたところ,とりあえずチューナーからの音声入力 ができるようになりました.

 その結果をレポートしたところ,時を同じくしてKomoriya氏が同カードの解析を 進めており,音声多重の動作&設定に関しても解析済みとのこと.早速私が作りかけていたソース とマージ&提供し,いくつかの問題を FIX して公開.その後 Komoriya氏がさらなる拡張と ivtv driver の CVS版への対応をして下さり, 高機能かつ安定して動くようになりました.

■Linux でMPEG2 ハードウエアエンコーダ搭載カードは使えるか? 〜現状と今後の展開〜
 現状はと言いますと,Komoriya氏が精力的に活動して下さり,ITVC15-STVPCI への対応と IVTVドライバの本家へのマージが決まりました. 2003年12月現在,本家の安定版としてリリースされているものにはまだマージされていませんが, 近々公開されるようです.玄人志向の ITVC15-STVPCI,ITVC16-STVLP に対応した現在の最新版 ソースは,Komoriya氏 のページからダウンロード可能です.

 本家のドライバは『Win PVR 専用』的にコーディングされていましたが,今回の玄人志向の カードに対応させる際に,かなりの部分を汎用的なコードに書き換えました.その関係で, MPEGエンコードチップとして CX23415/CX23416 が使用されているカードであれば,ドライバに 若干の修正を加えることにより動作すると思います.修正方法に関するガイドは こちらのページ(EUC テキスト) (Komoriya 氏のページに置いて頂いている物と同じです)を参照してください.

■Linuxで 玄人志向 ITVC16-STVLP を使う
■玄人志向 ITVC16-STVLP
 日本国内では玄人志向から販売されていますが,YUAN 製の MPG600 というカードです.私は 15千円程で購入しましたが,現在は1万円弱にまで 値下がりしているようです.

玄人志向 ITVC16-STVLP.見慣れたパッケージ
前の型(ITVC15-STVPCI)では MPEG1/2 エンコードカードとして CX23415 を使用していたが, ITVC16-STVLP は CX23416 を使用.CX23416 は MPEG2 デコード機能をチップから削除しており, 低消費電力&低発熱のチップとなっている.
内容物一覧.Windows 用のドライバ,DVD Encorder,Power DVD (DVD Player) が付属. ブラケットは Low-profile のものが取り付けられている.通常の PCI スロットに取り付ける 場合は,同梱されているノーマルタイプのブラケットに付け直す必要がある.

入力端子としては,TVアンテナ入力の他に,Video入力(RCAコンポジット,S端子),Audio入力 (ステレオミニピンジャック)が用意されている.

カード表面.Low-Profile 対応ということで非常に小型.金属製の箱のようなゴツイ パーツは定番の Philips 製TVチューナ
カード裏面
MPEG1/2ハードウエアエンコーダ CX23416.低消費電力ということもあり,CX23415 の場合は必須であった冷却ファンが無く,ヒートシンクすら付いていない.

右上の2段になっている部分に音声多重をハンドリングするデモジュラがある.

左上のやや大きめのチップがビデオプロセッサ (SAA7115).その他,オーディオ関係の ICが配置されている.また,写真には収まっていないが,左の方にDRAMが実装されている.

 このカードの売りは,Low-Profile 対応で省スペースなこと.そして低消費電力な チップを搭載しているため,ファンレス動作が可能なことです.正に今回のような用途 には打って付けです.

 比較的低価格で販売されており,入手性が良い点も Good です.

■Linux,ドライバ のインストールと設定
 Linux で本カードを利用するためには,ドライバをインストールすることの他に, Kernel を V4l2 対応に構築し直す必要があります(必須ではないとドキュメントには書かれ ていますが,お勧めできません).詳しい手順に関しては, こちらのページ(EUC テキスト) (Komoriya 氏のページに置いて頂いている物と同じです)を参照してください.

# ちょっと手抜きしています :-)

■ITVC16-STVLP で TV録画
 ドライバに同梱されている test_ioctlptune を使用してカードの 各種設定(チャンネルやビットレート設定など)を行った後,/dev/video0 をリダイレクトすることにより,MPEG ストリームをそのままファイルに落とすことができます. 厳密な設定を行いたい場合は, これらプログラムのソースを参考にして,自前のプログラムないしはスクリプトを組むと 良いでしょう.

 もっと手軽に録画を行いたい場合は,同じくドライバに同梱されている perl スクリプト である record-v4l2.pl を使うと良いでしょう.様々なオプションが設定可能 であり,大抵のことはこれ1つで事足りるでしょう.なお,利用時にはいくつかの perl module をインストールする必要があります.詳しくは こちらを参照して下さい.

 一般的な使い方としては,/usr/local/bin 等のパスが通った所に record-v4l2.pl をコピーし,"record-v4l2.pl --channel <チャンネル> -t <録画時間[sec]> --freqtable ntsc-bcast-jp" のように実行します.するとカレントディレクトリに"Tuner_0-<チャンネル>-<日付>-<時間>" というディレクトリが作成され,その下に video.mpg という MPEG2 形式のファイルが 出来ます.

 その他のパラメータの詳細に関しては,オプション無しで record-v4l2.pl を実行し, 表示される usage を読んでみて下さい.

■予約録画
 前述のようにコマンドを叩けば録画が出来るわけですが,次に行うべきことは 予約録画です.

 Linux で設定した時刻に任意のコマンドを実行するためには,一般に at または cron を利用します.前者は任意の時刻に1回だけ設定したコマンドを実行するものですが,後者は, ある特定のパターン(例えば「毎週土曜の 22:00」 等)の時刻に繰り返しコマンドを実行する ことができます.

 柔軟なTV録画システムを構築するとしたら, cron を利用して, こちらのページで解説したように何らかのプログラムを 起動するようにした方が良いでしょう.この場合,起動したプログラムが録画キューを確認& 指定時刻であれば録画開始…のような動作を行うようにします. そしてこのキューを Web インターフェイスを介してコントロール 出来るようなものを開発すれば,録画システムとして最強でしょう.

 しかし,今回はまだそこまで手が回っていませんので :-),手軽に予約録画を行う方法を 解説することにします.なお,以下のスクリプトはあくまでもサンプルですので,そのままでも 動作は致しますが,用途に合わせて record-v4l2 のオプションを追加 するようにした方が良いでしょう.特にビットレートは,デフォルトで高めになってますので, 利用可能なディスクの空き容量に対して注意が必要です.

 まず,以下のようなシェルスクリプトを,パスの通った所に rec_tv.sh という名前で保存 します.実行フラグを立てておくのを忘れないで下さい(chmod +x rec_tv.sh).


#!/bin/sh
if [ $1 -gt 12 ]
then
    FREQ_CONF="ntsc-cable-jp"
else
    FREQ_CONF="ntsc-bcast-jp"
fi

/usr/local/bin/record-v4l2.pl --channel $1 -t $2 --freqtable $FREQ_CONF --directory /tv_mpeg

 このスクリプトでは,チャンネルとTVの周波数テーブル,保存先以外は record-v4l2.pl のデフォルト 値を使用するようにしています.そして rec_tv.sh 実行時に渡された1つ目のパラメータを 録画するチャンネル,2つ目を録画時間(単位は秒)として実行するようにしています.なお, 録画ファイルは /tv_mpeg ディレクトリ以下に書き込むように設定していますので,最低限 この部分だけは各自の環境に合わせて修正してください.

※record-v4l2.pl が /usr/local/bin 以外にある場合はこのパスも書き換えて下さい.

※12ch を超えるチャンネルは CATV 用です.なお,CATV チューナーが表示するチャンネルは, 実際に規定されている周波数テーブルのチャンネルと異なる場合がありますので注意して下さい

 動作確認のために,コマンドライン上で "rec_tv.sh 4 60" のように上記スクリプト を実行し, 4ch が 1分間記録されるかを確認して下さい.

 次に, at コマンドを利用して録画ジョブを at キューに積むスクリプトを記述します.以下の内容 を, "ivtv_rec.sh" としてパスの通った所にで保存して下さい.こちらも同じく実行フラグ を立てるのを忘れないで下さい.

#!/bin/sh
#                    time   date    ch rec_time[sec]
# usage: ivtv_rec.sh 22:00 11/05/03 4  3600
echo "/usr/local/bin/tv_rec.sh $3 $4" | at $1 $2

※tv_rec.sh が /usr/local/bin に置かれていると仮定しています.異なる場合は パスを書き換えて下さい

 実行方法は至って簡単で, "ivtv_rec.sh <時間> <日> <チャンネル> <録画時間>"と コマンドラインで叩くだけです.例えば 2003/12/31 12:00 から 1ch を 1時間録画する 場合は,"ivtv_rec.sh 12:00 12/31/03 1 3600" のように実行します.ちなみに日時の 記述フォーマットは, at コマンドに準じます.

 なお,本スクリプトを利用する場合, atd が動作していることが必須条件です. atd が動作しているかは "ps aux | grep atd" して確認可能です.atd が自動起動 しないように設定されている場合は,ntsysv コマンド等で自動起動するように設定しておいて下さい.

 次に現在予約しているキューの確認やキャンセル方法ですが,基本的に at 系のコマンド で行います.キューの一覧表示は atq コマンドで行い,削除は atrm コマンドで行います. 詳しくは man ファイルを参照してください.

■TIPS
 ここでは,私が TV 録画を行った際に抱えた3つの問題,そしてTIPSに関して解説します.

■パーミッション問題
 多くの Linux ディストリビューションでは,ユーザーがコンソールからログインした際に, 自動的にログインしたユーザーに合わせて様々なデバイスファイルのパーミッションを変更します. そのため,1台のマシンをを複数人で共用している場合や,コンソールから別ユーザー(例:root)が ログインしているような場合, /dev/video0 が at で実行されるスクリプトから操作できないという 問題が引き起こされます.

 この問題を解決するために,私は/etc/security/console.permsを編集して対応しました.

 このファイル中に

# permission definitions
<console>  0660 <floppy>    0660 root.floppy
<console>  0666 <sound>     0640 root.sys
<console>  0600 <cdrom>     0600 root.disk
<console>  0600 <pilot>     0660 root.tty
<console>  0600 <jaz>       0660 root.disk
<console>  0600 <zip>       0660 root.disk
<console>  0600 <scanner>   0600 root
<console>  0600 <fb>        0600 root
<console>  0600 <kbd>       0600 root
<console>  0600 <joystick>  0600 root
<console>  0600 <v4l>       0600 root
<console>  0700 <gpm>       0700 root

 と,いうエントリーが並んでいますので,

# permission definitions
<console>  0660 <floppy>    0660 root.floppy
<console>  0666 <sound>     0640 root.sys
<console>  0600 <cdrom>     0600 root.disk
<console>  0600 <pilot>     0660 root.tty
<console>  0600 <jaz>       0660 root.disk
<console>  0600 <zip>       0660 root.disk
<console>  0600 <scanner>   0600 root
<console>  0600 <fb>        0600 root
<console>  0600 <kbd>       0600 root
<console>  0600 <joystick>  0600 root
<console>  0666 <v4l>       0666 root
<console>  0700 <gpm>       0700 root

上記のように変更します.このように修正することにより,常に /dev/video*, /dev/radio* 等の 一連の v4l 用のデバイスファイルは誰からでも利用できるようになります.ただし,セキュリティ 的にはやや問題がある設定ですので,別の方法が採れる場合はそちらを使用するようにして下さい.

■発熱問題

 CX23416 は低発熱であり,ITVC16-STVLP はファンレスで動くと書きましたが,それでもかなり 発熱します.そのため,充分にケース内が冷却されていない場合は問題が起きます.症状としては, 録画中や録画後,不意に OS ごとハングアップするという現象として表れます.対策は充分に冷却することです.

 一時この症状が頻発しましたが,ケースファンの回転数を上げ気味にしたところ収まりました. しかし,夏場の利用が心配ですので,MPEGエンコードチップに『チップ冷却用ヒートシンク』を貼り付け ようと考えています.

■録画開始時間のズレ

 record-v4l2.pl は,録画開始時(tunerの周波数セット時)に,1,2秒 sleep します.内蔵クロックを NTP 等を使用して完璧に近く合わせていたとしても,録画開始時の最初の2秒くらいが切れてしまいます. これが嫌な場合は,対処療法ではありますが,1分前から録画開始すると良いでしょう.

■MPEG2 ファイルのサムネイル画像を作成する

 Web インターフェイスを用いた録画システムを作成する場合,録画した動画のサムネイル画像が 表示されると便利でしょう.MPlayer を使用すると,任意の場所の1フレームを JPEG 形式等に保存することが出来ます.例えば aaa.mpg ファイルの先頭から 10秒目の1フレームを JPEG 形式で保存する場合,"mplayer -vo jpeg -ao null -ss 10 -frames 1 aaa.mpg"のように 実行します.カレントディレクトリに 00000001.jpg という名前でファイルが出来ているはずです.

※私の MPlayer のインストール方法が悪いためか,上記の方法ではシークが利かず,動画ファイルの 先頭のフレームがファイルに落とされました.フレーム数を "2" として実行した所,00000001.jpg に先頭のフレーム, 00000002.jpg に指定した位置の1フレーム画像が保存されることが確認できましたので,少々気持ち 悪くはありますが,2つめの画像ファイルを使う…と,いうことでお茶を濁しています.bug?

■まとめと今後の課題
 ITVC16-STVLP が利用可能になってからというもの,DiGA は要らない…とまでは行きませんが, 『綺麗に残したい物は ITVC16-STVLP で撮る』ようになりました.ディスクは空いているだけ フルに使えますので,DiGA 利用時には常に(DVD-R/RAM の容量の関係で)ビットレートを絞って 録画していましたが,高ビットレートで綺麗な状態で録画出来るようになりました.また, ITVC16-STVLPは 1万円弱の廉価なキャプチャカードではありますが,画質はまずまずで,特に 低ビットレートで記録した場合でもそれほど破綻を来しません.また,BT878系チップで頻発 していた白飛び問題も発生せず,とても満足しています.

 総合的に考えて,VTR の置き換えとしては全く無問題です.値段から考えても,絶大な コストパフォーマンスを発揮しています.常用するようになって困った問題としては, 『気になる番組は録画キューに入れる』ようになり,急速にディスクの空き容量が 減っていくことでしょうか…

 次に今後の課題としては,以下のようなことを考えています.

  • Webを用いた録画予約・録画物管理インターフェイスの作成
  • ITVC16-STVLP のオーバーヒート問題検証
  • 玄人志向 CX23416GYC-STVLPのドライバ開発したいな…

 CX23416GYC-STVLP は ITVC16-STVLP にノイズ除去チップを搭載し,最強と言っても過言ではない キャプチャカードです.
 ゴーストリデューサー,Y/C 分離チップを搭載しており,Windows で利用してみた感じでは Y/C 分離がかなり有効であり,画質がとてもシャープになります(輪郭の滲みが無くなり, クッキリとする).値段も 15千円以下で購入可能ですので,Linux で動作した暁には最強の テレビ録画システムになるのではなかろうかと思います

 ただ,私の方はこのところ本業に忙殺される毎日でして, Komoriya氏にとっても期待している今日この頃です (^^).あと,このカードで使用されている NEC製 の Y/C 分離チップで ある uPD64083 のデータシートがどうしても入手できず,難渋しています(ELISNETには uPD64082 のデータシートしかありません.また,メーカーからは門前払い状態でした).これがドライバ 開発の進捗を遅らせている1つの原因になっていますので,もし提供して頂ける方がおられましたら, ご連絡頂けると助かります.

年内に間に合わせようと急いで書いたため,多少乱筆気味&校正不足ですみません...

['04/01/04]追記
Linuxで最強のテレビ録画サーバを目指す【3】-再生環境 AVeL LinkPlayer-へ続く

■['03/12/25]追記:その他の情報
 少々書き忘れたことがありましたので,メモ書きに近い体裁ですが,補足しておきます.

  • 現在,本家のIVTVドライバは『安定版』 として公開されている CVS-latest.tar.gz の他に,開発中の版が存在します.そして2003年12月 現在公開されているものは,いずれも玄人志向のカードを動作させる変更が盛り込まれていません.

  • ITVC16-STVLPを動かすべく Komoriya氏と私が共同で開発したものは,当初は安定版ベースで 作業を行っていましたが,現在は本家開発中の最新版に追従すべく修正したものが Komoriya氏のページで公開されています. 公式にはこれが最新版です.ITVC15-STVPCIへの対応と,音声多重に関する実装もきちんとされています.

  • 環境依存かもしれませんが,上記の最新版のドライバを利用した際に,問題が発生するケースが あります.その症状としては,ハングアップの頻発や "Not enough free buffers, stream 0" メッセージが頻繁に出力される等として表れます.後者に関しては,ドライバを insmod する際に mpg_buffersを増やすことにより改善する場合もありますが,解決しない場合もあります

  • 上記のような症状が出ている環境であっても,安定版ベースのドライバであれば問題なく 動いたという話もあります.ちなみに私は安定版ベースのドライバをいじって使っています :-)

  • ITVC16-STVLPにしか対応しておらず,また,音声多重放送周りの実装が不充分な版ではありますが, ここにむかーし作成した版が置いて あります.もし最新版のドライバで問題を抱えた場合は,一度これを試してみて下さい. (個人的には)現在一連の修正が本家にマージされるのを待っている段階ですが,もしも リクエストが多い場合には,その後加えられた修正を含め,最新版の CVS-latest ベースの 版を作ることに関して Komoriya氏と相談したいと考えています.

  • ハングアップが頻発する場合であっても,ドライバに起因していない場合もあります. 私の環境でも,安定版ベースのドライバ利用時にハングアップしたことがありました.本文にも 書きましたが,大抵その原因はオーバーヒートです.MPEG2 エンコードチップに対して 小型のチップ冷却用のヒートシンクを付けることにより,現在は過酷な利用状況下に於いても 安定稼働しています.

['04/01/04]追記
 Komoriya氏のページのドライバに関する 情報がアップデートされました.最新の動向などはそちらを参照してください.


['04/03/29]追記
 日本人が中心になって行っているivtvドライバの拡張ですが,新たに いくつかの最新のカードに対応しました.対応したカードは, 長瀬 TRANSGEAR 5000TVI/O Data GV-MVP/RX玄人志向 CX23416GYC-STVLP (YUAN MPG600GR のOEM)>の3種類です.また, AOpen VA2000MAX-SNT6も 現在Tuner入力のみ対応していますが,画質のチューニングは未了です(白飛びが激しい).

 最新ドライバの入手や情報に関しては,ぱ研の CX23416GYC-STVLPの解析ページを参照して下さい.なお, 各入力(Tuner,S-Video,Composite)の番号が玄人志向 ITVC16-STVLPとは 変更になっていますので,スクリプトを使い回す際にはご注意を.これらカードでの使い 方や,如何に解析行って新規カードに対応させるかに関して,時間があるときでも別ページに まとめたいと考えています.


『Asus Terminator 活用メモ』 へ戻る