Linux 上でテレビを観たり,録画したりできる環境を構築する.
Linux で TV チューナーカードを使うためには, カーネルに Video4Linux が組み込まれている必要がある. また,TV をディスプレイに表示させるプログラムとして xawtv や MPlayer が必要である.
Video4Linux,xawtv 共に Red Hat Linux 9 などには最初から インストールされており, BT878 搭載の TV チューナーカードなら特別な設定はいらない.
しかし,SAA713x シリーズのチップを搭載したカードを使用する場合, カーネルに最新のドライバを組み込み,xawtv のバージョンも上げる必要がある. カーネルへの最新ドライバの組み込み方法は こちら を参照.
bytesex.org から xawtv_3.91.tar.gz をダウンロードし,以下の手順でインストール.
$ cd /usr/local/src $ tar zxvf xawtv_3.91.tar.gz $ cd xawtv-3.91 $ ./configure $ make # make install
チャンネルなどの設定をした
.xawtv
をホームディレクトリに作成.
MPlayer は,さまざまな種類の動画や音声を再生できるマルチメディアプレーヤーである. テレビの観覧や録画も可能.インストールはやや複雑なので こちら を参照.
xawtv を使ってテレビを観る.
$ xawtv &
1 〜 12 までのチャンネルは,1〜0,-,=,のキーボードで変更可能. フルスクリーン表示への切り替えは F.
MPlayer を使ってテレビを観るのは,かなり面倒.
$ mplayer > -tv driver=v4l2:device=/dev/video0:input=1:amode=1 \ > -tv norm=NTSC:width=640:height=480 \ > -tv chanlist=japan-bcast:channel=1 tv://
driver=v4l だと音が出ない.device=/dev/video0 を指定しないと,
/dev/video がデフォルトで使用され,
Red Hat Linux 9 ではこれはディレクトリなのでエラーになる.input=1 は入力を TV チューナーに設定.
入力を S-Video にしたい場合は input=0 とする.毎回これを入力するのは面倒なので,
Perl で書いたスクリプト
tvwatch.pl
を利用する.
これを $HOME/bin など PATH の通たディレクトリに置いて,
実行可能に chmod しておく.
$ tvwatch.pl 1
これで 1 チャンネルを観ることができる.
テレビを録画するためには MPlayer に付属する mencoder を使用する.
mplayer 同様,起動するためのコマンドが非常に長いので,
Perl で書いたスクリプト
tvrec.pl
を利用する.
これを $HOME/bin など PATH の通たディレクトリに置いて,
実行可能に chmod しておく.
$ tvrec.pl -c 1 -t 00:01:30 -o out.avi
これで out.avi に 1 チャンネルを 1 分 30 秒録画できる.
テレビ王国 が番組表と共に配布している tvpi ファイルを使って, 録画予約を実現する.
Linux 上で atd サービスが有効になっている必要がある. atd サービスが有効になっているかどうかチェックする.
# chkconfig --list atd atd 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
もし全てオフになっている場合には,atd をサービスに追加する.
# chkconfig --add atd # service atd start
録画予約のための Perl スクリプト
tvbook.pl
を $HOME/bin など PATH の通ったディレクトリに入れておき,
実行可能に設定しておく.
tvbook.pl の漢字コードは EUC UNIX 形式にしておく.
また,tvbook.pl は内部で tvrec.pl を呼び出しているので,
tvrec.pl が動作するように設定しておく.
テレビ王国 が配布している tvpi ファイルの漢字コードは Shift-JIS DOS 形式なので, EUC UNIX 形式に変換してから tvbook.pl に渡す.
$ nkf -e -Lu TVPTI_output.tvpi | tvbook.pl
これで録画予約が実現する.
また,正確な時間に録画を開始するためには,
PC の時計を常に正確にしておかなければならない.
ntpd を使って,常にタイムサーバと同期を取らせておく.
Red Hat Linux 9 ならば,
redhat-config-date
コマンドで設定できる.要 X 環境.
viusulce@hotmail.com
Last modified: Sun Mar 14 17:51:54 JST 2004