家ではテレビにデジタルチューナーを導入しないと決まっていたので、PCで一応見れるようにとリモートでのリアルタイム視聴を視野に入れていた。http版recpt1を候補にしたが、MythTVでもfuse_b25で対応でき、MythTV Playerでリアルタイム視聴できるとわかったので、元々使っていたMythTVを引き続き使うことにした。視聴と予約録画が同じシステムにあるので、MythTVにはチューナーを効率的に活用できる利点がある。
MythTV+FUSE_b25とepgfillでパッチを当てずに常用できるが、BSが見られないなど色々と不具合があるのでパッチ当てたものを使う。ただし、依存関係やらが面倒なのでMythTVはDeb-Multimediaのものをベースにする。セットアップはPT1/PT2のDVBとMythTV @Wikiを参考にして行った。
MythTVを修正するためのパッチを用意する。
2011.9.29 追記
ISDB対応パッチとカテゴリ日本語化パッチを分離。パッチの形式を変更して再作成。
2011.9.30 追記
サブタイトルの切り直しパッチを更新。("最終回"や"<新>"などの文字列に対応)
2011.11.17
サブタイトルの切り直しパッチを更新
2011.12.11
サブタイトルの切り直しパッチを更新
2011.4.21
サブタイトルの切り直しパッチを更新
2012.5.19
0.25が最新版になったことの対策と自動アップデート防止を追記
番組表取得や全チャンネルのフルスキャンに対応したMythTVのISDB対応版がある。Debian-Multimediaのパッケージをベースにするため、これをそのまま使わずパッチとして利用する。
本家のソースとISDB版のソースを持ってきてパッチを作る。
$ sudo aptitude install git #gitが入っていない場合 $ w3m http://www.mythtv.org/download/mythtv/0.24.1 #本家 $ tar xjf mythtv-0.24.1.tar.bz2 $ git clone git://github.com/fukumen/mythtv.git mythtv #ISDB版 $ mv mythtv/mythtv/ isdb-mythtv $ diff -urN mythtv-0.24.1 isdb-mythtv > mythtv-isdb.patch
ISDB版で取得される番組表はepgdumpとは違い、カテゴリが英語になっているので、日本語に修正する。英語でも問題ないように思えるが、カテゴリが日本語になっていないと番組表の色分けが正常に行われない。
EITで取得した番組表のタイトルが番組名での録画予約に適さないのでサブタイトルを切り直すようにするパッチ。先頭の識別子と後半部分を切り出してサブタイトルの先頭につける。このパッチの正規表現では後半部分の切り出しが少し過剰になるかもしれない。
サブタイトル切り直しパッチ(2011.12.11版)
ISDB版でもBSには対応していないので無理やり対応させる。このレスを参考にデータベースにアクセスする際にTransportIDも一緒に取ってくる処理とDisEqCの無効化してBSをチューニングする処理を追加した。TSIDをつけてチューニングする処理を追加するだけでチャンネルスキャンで設定することはできない。そのため、データベースを直接操作する必要がある。チャンネル登録用スクリプトを用意したので記事の下の方を参照。
録画に失敗しても再試行しないバグがある。それに対応するパッチがwikiのトラブルシューティングにあるので持ってくる。これを当ててからfuse_b25に異常がない限り録画に失敗することはなくなった。
MythTVに内蔵しているffmpegをAACの音声切り替えに対応させるパッチ。これもwikiからもらってくる。視聴にMythTV Playerを使っていて音声切り替えでエラーが出るので効果は不明。
2011.11.16追記
Debian-Multimediaのmythtv(0.24.1+fixes20111029以降)にはこのパッチを当てられない。
takaaki 9月 10th, 2011
Posted In: ソフトウェア
タグ: Debian, DVB, fuse_b25, Linux, MySQL, MythTV, PT2, Qt, TV, ネットワーク, 録画
ウェブサーバーを作り直したのでメモ。
$sudo aptitude install apache2 libapache2-mod-php5 mysql-server php5-mysql
mysqlのrootパスワードが聞かれるので入力。
セキュリティの設定とPHPの有効化の設定。
コメントをはずして、デフォルトで全てのディレクトリにローカル以外からアクセスを禁止しておく。
$sudo vi /etc/apache2/conf.d/security 8 <Directory /> 9 AllowOverride None 10 Order Deny,Allow 11 Deny from all 12 Allow from 192.168.0.0/24 #LANのネットワーク 13 </Directory>
余計な情報をヘッダーに出力させない。
29 ServerTokens Prod
ServerSignatureをOff
40 ServerSignature Off 41 #ServerSignature On
ユーザーディレクトリでPHPが無効になっているので有効にする。
$sudo vi /etc/apache2/mods-available/php5.conf 8 # To re-enable php in user directories comment the following lines 9 # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it 10 # prevents .htaccess files from disabling it. 11 #<IfModule mod_userdir.c> 12 # <Directory /home/*/public_html> 13 # php_admin_value engine Off 14 # </Directory> 15 #</IfModule>
Onにはするな、と書いてあるようなので素直にコメントアウト。コンテンツをuserdirで動かしていたのでPHPが全部動かなくなった。これに気付かず今回サーバーを作り直した。
必要なモジュールの有効化
$sudo a2enmod <モジュール名>
無効化
$sudo a2dismod <モジュール名>
Apacheの再起動
$sudo /etc/init.d/apache2 restart (さらに…)
takaaki 2月 18th, 2011
Posted In: ソフトウェア