Shino's Bar

お家で使うLinuxtux


Linuxでテレビ!

26 Jan 2007 (初出:19 Jul 2002) xawtv-3.95-0.2.nosrc.rpm, xawtv-setup-1.0 をアップ

ビデオキャプチャーカード(TVチューナー付き)の多くはWindows用として売られていますが、 そのうちbttv878チップを使ったものは、たいていLinuxでも使えます。 テレビを観るだけでなく録画などもWindowsに比べて安定して動きます。

関連ページ

チップとドライバ

Bt878/878Aチップを使ったものならかなりの確率でなんとか使えるようです。 ただしbttvドライバが新しいものが必要な場合があり、それを同梱するカーネルは新しいほうが良いでしょう。

参考までにVine Linux 4.0(kernel-2.6.16-0vl66)に同梱の bttvが対応するCARDLIST / 同 saa7134 / cx88 / em28xx .

IO-DATAの GV-BCTV4/PCI は逆にkernel-2.4.19以降で不都合があります。 詳細はこちら Vine Linux 2.6r3以降に同梱のカーネルではこの点は修正されています。

xawtvの導入

全画面に拡大して観られるかどうかはビデオカードとそのドライバに依ります。 xawtvの設定でoverlayで全画面拡大できない場合でも、grabdisplay(ソフトウェア的手段)によって全画面にできることがあります。

導入

VinePlusに xawtv のパッケージがあるので、これをリビルド、導入します。 Vine Linuxでは apt-get install xawtv あるいは apt-get install xawtv-setup でもよいでしょう。
あるいはここにnosrc.rpmを置いています。

Download xawtv-3.95-0.2.nosrc.rpm ... get source from xawtv Homepage

xawtv Homepage から xawtv-3.95.tar.gz をダウンロードして、~/rpm/SOURCES ディレクトリに置いてください。 Motifベースの motv をビルドするには openMotif-devel(あるいは openmotif-devel) も必要です。nosrc.rpm のあるディレクトリで

$ rpmbuild --rebuild xawtv-*.nosrc.rpm

とすると、xawtv-*.i386.rpm と、 openMotif-devel がある場合には xawtv-Motif-*.i386.rpm が作られます。 rootになって、 xawtv-*.i386.rpm をインストールしてください。

xawtv-fonts-*.noarch.rpm は必ずしも必要ではありませんが、次のようにして作ることができます。 xawtv Homepage から tv-fonts-1.1.tar.bz2 をダウンロードして、~/rpm/SOURCES ディレクトリに置いてください。

$ rpmbuild --rebuild --target noarch xawtv-*.nosrc.rpm

で、xawtv-fonts-*.noarch.rpm が作られます。

設定

Vine Linux 4.0などkernel-2.6では /etc/modpprobe.conf、 Vine Linux 3.2などkernel-2.4では modules.conf、kernel-2.2以前では conf.modules に

# TV
alias char-major-81 videodev
alias char-major-81-0 bttv
# KW-TV878-FNT
options bttv            card=78 tuner=2

#options tuner           type=2		  # 古い書き方です
#pre-install bttv /sbin/modprobe -k tuner # もっと古いカーネルではこの行も必要かも

などと記述、# depmod -a をしておきます。cardナンバーとチューナーのtypeはカードにより異なります。またカードによってはこのoptionの部分は不要です。 kernel-docをインストールしていると /usr/doc/kernel-doc-*/video4linux/bttv/CARDLIST に一覧があります。 また同じディレクトリにCardsというドキュメントもあります。 そのものずばりが載っていないと、似たようなところを片っ端から試してみます。 そのためのツールを用意しましたのでお試しください。xawtvのほかTcl/Tkも必要です。

Download xawtv-setup-1.0.tar.gz
ダウンロードしたtarballを展開し、できたディレクトリに入って root権限でxawtv-setupを起動してください。

$ tar xzf xawtv-setup-*.tar.gz
$ cd xawtv-setup
$ su
(rootのパスワードを入力)
# ./xawtv-setup

あるいは、次のコマンドでRPMが作られるので、できた xawtv-setup-*.noarc.rpm をインストールしても良いでしょう。

$ rpmbuild -tb xawtv-setup-*.tar.gz

Vine Linux 4.0では apt-get install xawtv-setup で同じものが導入できます。
xawtv-setup は TVキャプチャーカードを実装していなくても、途中まで実行でき、最新の各ドライバが対応しているカードのリストを見ることができます。

KW-TV878-FNTでは最初 card=10で動いてたかに見えたのですが、 さきのドキュメントを探していると これがcard=78で良いことが分かりました。kernel-2.4.19で新たに加わったようです。

xawtvrc.JP /etc/X11/xawtvrc として保存します。 (上記RPMを導入するとすでにあるはず) チューナーが日本のステレオ放送に対応している場合は上記ファイルの 'norm = ntsc' とあるところを norm = ntsc-jp または ntscjp と修正します。 xawtvの設定ファイルはこの /etc/X11/xawtvrc と 各ユーザーのホームディレクトリにある ~/.xawtv です。~/.xawtv は /etc/X11/xawtvrc の設定より優先するので注意してください。

デバイスファイルは次のようになっているはずです

$ ls -l /dev/video*
lrwxrwxrwx    1 root     root            6 Apr 25 09:41 /dev/video -> video0
crw-------    1 hoge    sys       81,   0 Jan 29  2000 /dev/video0
crw-------    1 hoge    sys       81,   1 Jan 29  2000 /dev/video1

すなわち/dev/video0を81,0で作り、/dev/videoにリンクを作っています。

全画面に拡大して観られるかどうかはビデオカードとそのドライバにも依ります。 ~/.xawtvの設定で capture = overlayで全画面拡大できない場合、capture = grabdisplay も試してください。 xawtvによる全画面表示は640x480を使うようなので XconfiguratorなどでXの640x480表示を有効にしておきます。 普段の表示が1024x740など他のサイズであってもxawtvで「F」キーを押すと自動的に切り替わり、全画面表示となります。 /etc/X11ディレクトリにある XF86Config あるいは XF86Config-4 あるいは xorg.conf に例えば

Section "Screen"
	Identifier "Screen0"
	Device "Matrox|Millennium G450 Dual Head"
	Monitor "TOTOKU CV533V"
	DefaultDepth 16
	Subsection "Display"
		Depth 16
		Modes "1024x768" "640x480"
	EndSubSection
EndSection

ATI All-In-Wonder (Vine2.5/2.6などXFree86-4.xで)編

ATI All-in-Wonder 128AGP(16MB)を付けているので、GATOSのTVソフトを導入。 Linuxでテレビが見られるようになりました。好きなサイズに拡大縮小、もちろ ん全画面もOK。

ATI All-In-Wonder (Vine2.0/2.1.xなどXFree86-3.3.6で)編

VineLinux2.0を導入後XFree86は3.3.6のままの時期は GATOSの旧いバージョンである0.0.5を Jan ONDREJさんの手になるRPMパッケージを使って導入しました。
今は VinePlusにRPMパッケージがあります。 ibtkgatosを順にリビルド、導入してください。

〜おまけ〜 TVカードの2枚刺し

TVキャプチャカードを2枚装着し、分配器(画質の点からブースター付きのものが良い)で両方にアンテナを繋げば2つのチャンネルを同時に試聴することができます。 この場合、同種のほうがよろしいが、異種のカードを組み合わせて使うこともできます。 設定の詳細はgoto複数カードの使用 音声はサウンドカードのほうでマイク入力とライン入力など2つあればそれぞれに繋ぎます。

いっぽうは /dev/video0, 他方は/dev/video1となるので xawtvの起動を

$ xawtv -c /dev/video0 &
$ xawtv -c /dev/video1 &

とすればウィンドウが2つ立ち上がり、それぞれチャンネルを独立して選べます。

私の場合はひとつはさきほどのKW-TV878-FNT、もうひとつはATI All-In-Wonder 128です。 この場合、KW-TV878-FNTのほうは /dev/video0となりますが、ATI All-In-Wonder 128のほうは /dev/video1とはなりません。

$ xawtv -hwscan

としてみると使えるデバイスが表示され、ATI All-In-Wonder 128のほうはXvideo extentionとしてアクセスすることが分かります。

$ xawtv -xvport 60

でATI All-In-Wonder 128のほうを使うことになります。 (60は xawtv -hwscan で示されたATI All-In-Wonder 128のポート番号)

実際に2つの番組を同時に視るという使い方はあまり無いと思われますが、 一方を録画専用に、他方を録画中にも自由に使えるチューナーとして使うには有用です。

LinuxでTV 関連リンク


Shino's Bar goto [シノバー店内案内] [MPEG2最前線!] [お家で使うLinux]