PT2をDVBデバイスとしてMythtvで使っている。
2011年末あたりから安定して使えるようになってきたので、この時点で思い出せる範囲でメモを残しておこう。
AMD Athlon II X2 Dual-Core 240
BIOSTAR GF8100 M2+ SE
GALAXY GF PGT520-LP/1GD3 FANLESS
earthsoft PT2
NTT-ME SCR3310-NTTCom
Toshiba BCA-453K
ケーブルTVからの地上波信号と、BS/CSアンテナからの信号を取り入れている。
OSはUbuntu 10.10、Kernel 2.6.35.10で以前から使っているPlextor ConvertX PX-TV402Uのドライバーを強引にコンパイルした関係で、アップデートできないまま使い続けている。ケーブルの番組はSTBの映像をPX-TV402UでキャプチャしてMythtvで録画、チャンネル切り替えはLircにより制御している。
この環境にPT2によるデジタル放送記録機能を加えて、5チャンネル同時録画が完成する。
PT1/PT2のDVBとMythTV @Wikiと底辺迷走さんの方法によりパッチを当てたmythtv 0.24をインストール。特に問題はなくfuse_b25から復号した信号を記録できる。
地上波、BSはEITから取り込んでいる。ケーブルの番組はONTVがなくなり、mc2xmlも頻繁に落ちるのでCSのEITからepgdumpを使って取り込む。
その時に使っているスクリプトは以下の通り。
/usr/local/bin/epg-cs-mythfilldb.sh
#!/bin/bash
cd /tmp/
/etc/init.d/mythtv-backend stop
/bin/sleep 3
/usr/local/bin/tune 2 256 &
/bin/sleep 3
/bin/cat /dev/dvb/adapter2/dvr0 > 256.ts &
/bin/sleep 60
/usr/bin/pkill -9 -f 'cat /dev/dvb/adapter2'
/usr/bin/pkill -9 -f 'tune 2'
/bin/sleep 3
/usr/local/bin/tune 2 752 &
/bin/sleep 3
/bin/cat /dev/dvb/adapter2/dvr0 > 752.ts &
/bin/sleep 60
/usr/bin/pkill -9 -f 'cat /dev/dvb/adapter2'
/usr/bin/pkill -9 -f 'tune 2'
/bin/sleep 3
/etc/init.d/mythtv-backend start
/usr/local/bin/epgdump /CS 256.ts 256.xml
cp /home/hoge/.mythtv/pre.txt 256mod.xml
/usr/local/bin/replace.php 256.xml >> 256mod.xml
/usr/local/bin/mythfilldatabase --refresh-all --file 3 256mod.xml
/usr/local/bin/epgdump /CS 752.ts 752.xml
cp /home/hoge/.mythtv/pre.txt 752mod.xml
/usr/local/bin/replace.php 752.xml >> 752mod.xml
/usr/local/bin/mythfilldatabase --refresh-all --file 3 752mod.xml
epgdumpのみではタイトルに#番号が入ってしまうため、次のスクリプトで回避している。汚いし、”「”がのこる不具合があるが実用上問題ないのでこれで行く。
/usr/local/bin/replace.php
#!/usr/bin/php -q
<?php
error_reporting(E_ALL);
mb_regex_encoding("UTF-8");
if (file_exists("$argv[1]")) {
$xml = simplexml_load_file($argv[1]);
foreach ($xml->programme as $pr){
$title = $pr->title;
$desc = $pr -> desc;
if (mb_ereg( '(^#|^#)',$title)){
mb_ereg('(#|#)([0-9]|[0-9])+\s',$title,$regs);
$st = mb_ereg_replace('(#|#)([0-9]|[0-9])+\s',NULL,$title);
$st = html_entity_decode($st);
$pr ->title = $st;
$pr ->desc = $regs[0].$desc;
echo $pr->asXML();
echo PHP_EOL;
}elseif(mb_ereg( '(#|#)([0-9]|[0-9])+.*$',$title,$regs)){
$st = mb_ereg_replace( '\s?(#|#)([0-9]|[0-9])+.*$',NULL,$title);
$st = html_entity_decode($st);
$pr ->title =$st;
$pr ->desc = $regs[0]." ".$desc;
echo $pr->asXML();
echo PHP_EOL;
}else {
echo $pr->asXML();
echo PHP_EOL;
}
}
echo "</tv>";
} else {
exit('Failed to open $argv[1].');
}
?>
replace.phpでxmlの頭に次のテキストをいれようとすると、どうしても先頭に空白行が入ってしまい、mythfilldatabaseがうまく動かないので別ファイルにして挿入している。
.mythtv/pre.txt
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv generator-info-name="tsEPG2xml" generator-info-url="http://localhost/">
<channel id="1002.ontvjapan.com">
<display-name lang="ja_JP">スターchプラス</display-name>
</channel>
<channel id="1086.ontvjapan.com">
<display-name lang="ja_JP">日本映画専門chHD</display-name>
</channel>
<channel id="306ch.epgdata.ontvjapan">
<display-name lang="ja_JP">フジテレビCSHD</display-name>
</channel>
<channel id="1059.ontvjapan.com">
<display-name lang="ja_JP">ショップチャンネル</display-name>
</channel>
<channel id="1217.ontvjapan.com">
<display-name lang="ja_JP">ザ・シネマ</display-name>
</channel>
<channel id="800ch.epgdata.ontvjapan">
<display-name lang="ja_JP">スカチャンHD800</display-name>
</channel>
<channel id="801ch.epgdata.ontvjapan">
<display-name lang="ja_JP">スカチャン801</display-name>
</channel>
<channel id="802ch.epgdata.ontvjapan">
<display-name lang="ja_JP">スカチャン802</display-name>
</channel>
<channel id="100ch.epgdata.ontvjapan">
<display-name lang="ja_JP">e2プロモ</display-name>
</channel>
<channel id="194ch.epgdata.ontvjapan">
<display-name lang="ja_JP">インターローカルTV</display-name>
</channel>
<channel id="1025.ontvjapan.com">
<display-name lang="ja_JP">Jスポーツ ESPN</display-name>
</channel>
<channel id="1016.ontvjapan.com">
<display-name lang="ja_JP">FOX</display-name>
</channel>
<channel id="1018.ontvjapan.com">
<display-name lang="ja_JP">スペースシャワーTV</display-name>
</channel>
<channel id="1046.ontvjapan.com">
<display-name lang="ja_JP">カートゥーン ネット</display-name>
</channel>
<channel id="1213.ontvjapan.com">
<display-name lang="ja_JP">トゥーン・ディズニー</display-name>
</channel>
<channel id="1010.ontvjapan.com">
<display-name lang="ja_JP">東映チャンネル</display-name>
</channel>
<channel id="1005.ontvjapan.com">
<display-name lang="ja_JP">衛星劇場</display-name>
</channel>
<channel id="1008.ontvjapan.com">
<display-name lang="ja_JP">チャンネルNECO</display-name>
</channel>
<channel id="1009.ontvjapan.com">
<display-name lang="ja_JP">洋画★シネフィル</display-name>
</channel>
<channel id="1003.ontvjapan.com">
<display-name lang="ja_JP">スター・クラシック</display-name>
</channel>
<channel id="1133.ontvjapan.com">
<display-name lang="ja_JP">時代劇専門チャンネル</display-name>
</channel>
<channel id="1006.ontvjapan.com">
<display-name lang="ja_JP">スーパードラマ</display-name>
</channel>
<channel id="1014.ontvjapan.com">
<display-name lang="ja_JP">AXN</display-name>
</channel>
<channel id="1204.ontvjapan.com">
<display-name lang="ja_JP">ナショジオチャンネル</display-name>
</channel>
<channel id="110ch.epgdata.ontvjapan">
<display-name lang="ja_JP">ワンテンポータル</display-name>
</channel>
<channel id="1028.ontvjapan.com">
<display-name lang="ja_JP">ゴルフチャンネル</display-name>
</channel>
<channel id="1092.ontvjapan.com">
<display-name lang="ja_JP">テレ朝チャンネル</display-name>
</channel>
<channel id="1019.ontvjapan.com">
<display-name lang="ja_JP">MTV</display-name>
</channel>
<channel id="1024.ontvjapan.com">
<display-name lang="ja_JP">ミュージック・エア</display-name>
</channel>
<channel id="1067.ontvjapan.com">
<display-name lang="ja_JP">朝日ニュースター</display-name>
</channel>
<channel id="1070.ontvjapan.com">
<display-name lang="ja_JP">BBCワールド</display-name>
</channel>
<channel id="1069.ontvjapan.com">
<display-name lang="ja_JP">CNNj</display-name>
</channel>
<channel id="361ch.epgdata.ontvjapan">
<display-name lang="ja_JP">ジャスト・アイ</display-name>
</channel>
<channel id="1041.ontvjapan.com">
<display-name lang="ja_JP">Jスポーツ 1</display-name>
</channel>
<channel id="1042.ontvjapan.com">
<display-name lang="ja_JP">Jスポーツ 2</display-name>
</channel>
<channel id="1043.ontvjapan.com">
<display-name lang="ja_JP">JスポーツPlusH</display-name>
</channel>
<channel id="1026.ontvjapan.com">
<display-name lang="ja_JP">GAORA</display-name>
</channel>
<channel id="1040.ontvjapan.com">
<display-name lang="ja_JP">sky・Aスポーツ+</display-name>
</channel>
<channel id="101ch.epgdata.ontvjapan">
<display-name lang="ja_JP">宝塚プロモチャンネル</display-name>
</channel>
<channel id="1207.ontvjapan.com">
<display-name lang="ja_JP">SKY・STAGE</display-name>
</channel>
<channel id="305ch.epgdata.ontvjapan">
<display-name lang="ja_JP">チャンネル銀河</display-name>
</channel>
<channel id="1201.ontvjapan.com">
<display-name lang="ja_JP">AT-X</display-name>
</channel>
<channel id="1050.ontvjapan.com">
<display-name lang="ja_JP">ヒストリーチャンネル</display-name>
</channel>
<channel id="803ch.epgdata.ontvjapan">
<display-name lang="ja_JP">スカチャン803</display-name>
</channel>
<channel id="804ch.epgdata.ontvjapan">
<display-name lang="ja_JP">スカチャン804</display-name>
</channel>
<channel id="1007.ontvjapan.com">
<display-name lang="ja_JP">ムービープラスHD</display-name>
</channel>
<channel id="1027.ontvjapan.com">
<display-name lang="ja_JP">ゴルフネットワーク</display-name>
</channel>
<channel id="1074.ontvjapan.com">
<display-name lang="ja_JP">LaLa HD</display-name>
</channel>
<channel id="1073.ontvjapan.com">
<display-name lang="ja_JP">フジテレビ739</display-name>
</channel>
<channel id="1072.ontvjapan.com">
<display-name lang="ja_JP">フジテレビ721</display-name>
</channel>
<channel id="1047.ontvjapan.com">
<display-name lang="ja_JP">アニマックス</display-name>
</channel>
<channel id="1062.ontvjapan.com">
<display-name lang="ja_JP">ディスカバリー</display-name>
</channel>
<channel id="1193.ontvjapan.com">
<display-name lang="ja_JP">アニマルプラネット</display-name>
</channel>
<channel id="160ch.epgdata.ontvjapan">
<display-name lang="ja_JP">C-TBSウエルカム</display-name>
</channel>
<channel id="1120.ontvjapan.com">
<display-name lang="ja_JP">QVC</display-name>
</channel>
<channel id="185ch.epgdata.ontvjapan">
<display-name lang="ja_JP">プライム365.TV</display-name>
</channel>
<channel id="1015.ontvjapan.com">
<display-name lang="ja_JP">ファミリー劇場</display-name>
</channel>
<channel id="3201.ontvjapan.com">
<display-name lang="ja_JP">TBSチャンネル</display-name>
</channel>
<channel id="1090.ontvjapan.com">
<display-name lang="ja_JP">ディズニーチャンネル</display-name>
</channel>
<channel id="1022.ontvjapan.com">
<display-name lang="ja_JP">MUSIC ON! TV</display-name>
</channel>
<channel id="1045.ontvjapan.com">
<display-name lang="ja_JP">キッズステーション</display-name>
</channel>
<channel id="1076.ontvjapan.com">
<display-name lang="ja_JP">TBSニュースバード</display-name>
</channel>
<channel id="147ch.epgdata.ontvjapan">
<display-name lang="ja_JP">CS日本番組ガイド</display-name>
</channel>
<channel id="1068.ontvjapan.com">
<display-name lang="ja_JP">日テレG+</display-name>
</channel>
<channel id="5004.ontvjapan.com">
<display-name lang="ja_JP">fashion TV</display-name>
</channel>
<channel id="300ch.epgdata.ontvjapan">
<display-name lang="ja_JP">日テレプラス</display-name>
</channel>
<channel id="1023.ontvjapan.com">
<display-name lang="ja_JP">エコミュージックTV</display-name>
</channel>
<channel id="1208.ontvjapan.com">
<display-name lang="ja_JP">Music Japan TV</display-name>
</channel>
<channel id="2002.ontvjapan.com">
<display-name lang="ja_JP">日テレNEWS24</display-name>
</channel>
また、OCN(Okinawa Cable Network)の731、732チャンネルで放送されているJ Sports1&2はCSではなくBSで放送されているためCSのEITではチャンネル変更の案内しか表示されない。BSの当該局をactive EIT scanした結果が対象チャンネルの番組表に入ってくるようにした。
あと、地上波、BSの番組タイトルに全角スペースが含まれていると、mythfrontendで視聴する際に番組タイトルによるグループ表示で不具合が出るので、mysqlのmythconvergデータベースのprogram、recodedテーブルを定期的に直接操作して全角スペースを半角スペースに置き換えている。