2011.01.15 (公開)
2011.01.22 (§7を修正)
2011.01.24 (§4-1を修正)
2011.02.02 (§7を修正)
2015.11.08 (新ドキュメントの公開)
このドキュメントは古いものです! Mythbuntu 14.04のDVBドライバを使ったPT2とMythTVの構築について、新たなドキュメントをまとめたので、そちらを参照して下さい。(2015.Nov.)
【目次】
§1. MythTVの概要とマシンの用意
§2. OSの選択と導入
§2-1. Ubuntu 8.10の導入
§2-2. 必要なパッケージの導入
§2-3. ビデオドライバの導入
§3. ハードウェアの導入
§4. PT2とMythTVの橋渡し
§4-1. vlcの導入
§4-2. 必要ファイルの作成
§5. MythTVの導入
§5-1. 初期設定とアドオンの導入
§6. MythTV Backend Setup
§7. 番組表の取得
§8. その他の設定、作業
§8-1. OSDの日本語表示
§8-2. Youtubeを閲覧できるようにする
§End. 参考にさせていただいたサイトなど
MythTVはオープンソースのDVR(Digital Video Recorder)アプリケーションです。以下のような機能がある上に、インターネット上で公開されている各種アドオンでの機能の拡張も可能です。主な機能を思いつくままに上げると
となります。
TV機能についてはアナログ放送ではTVチューナーカードを設定すれば、ほぼ完璧に動いていたのですがデジタル放送に移行するとそのままでは利用できなくなります。MythTVのデジタル放送対応の方法はインターネット上にありますが、自分の構築メモとしてまとめたのが、このドキュメントとなります。(ですから、内容に付いては無保証です)
MythTVはサーバー(バックエンド)とクライアント(フロントエンド)で構成されるので、それぞれ異なるマシンで実行することも出来ますが、このドキュメントでは1台でサーバーとクライアントを動かします。TVのリアルタイム視聴をするのであれば、なるべく速いPCを用意したいところですが、次のような環境でも実用になっています。 (無録画時のCPU使用率グラフとTV視聴時のCPU使用率グラフ)
ハードウェア | 製品名 | 備考 |
---|---|---|
マザーボード | ASUS AT3N7A-I | 残念ながら廃版らしい |
CPU | Intel ATOM330 | 1.6GHzを2.0GHzまでクロックアップ |
ビデオチップ | GeForce 9400M G (IONプラットフォーム) | オンボードグラフィックス |
メモリ | DDR2 800MHz 1GB x2 | |
HDD | SATA 1TB | HGST製 |
TVチューナー | アースソフト PT2 | TVチューナーカードとは言いがたいが |
カードリーダー | SCR3310-NTTCom | |
その他 | AREA 音響4 (USB音源) | オンボード音源が使えなかったので |
MythTVは各種Linux、FreeBSDで動作しますが、以下のような専用のディストリビューションもあります。
MythTVのデジタル対応は、Ubuntu 8.04 LTS/8.10/10.04 LTSでの動作実績がインターネット上で見つかりますので、これらの実績のあるものが良いでしょう。私は様々な事情からUbuntu 8.10を利用しました。また、このドキュメントもUbuntu 8.10での導入について書いてあります。
・10.04を使う(個人的)メリットとデメリット
・8.10を使う(個人的)メリットとデメリット
まぁ、私の環境できちんと動いたのが、Ubuntu 8.10であったということだけです。もちろん派生ディストリビューションMythbuntuの8.10でも同様に動きますが、インストールCDイメージの公開が終わっているのが問題です。
上のデメリットに書いたようにUbuntu 8.10は既にサポート切れのため、Ubuntu公式サイトにはインストールのためのCDイメージがありません。Mythbuntuも同様です。しかし、Ubuntuについては http://old-releases.ubuntu.com/ には過去のバージョンのデータ(インストールCDイメージやパッケージ)が残っています。(2011年1月現在。未来永劫、残っているとは限りません。) ここから、Ubuntu 8.10のインストールCDイメージを取得し、インストールします。
インストール後に各パッケージをアップデートしたいのですが、このバージョンのサポートが切れているために公式リポジトリがなくなっており、アップデート出来ません。が、これも実は http://old-releases.ubuntu.com/ にリポジトリが残っていますから、apt-lineを書き換えることで、ある程度のアップデートやパッケージの導入が可能です。具体的には次の手順になります。
この手順3の前に不必要なパッケージ(Openoffice.orgとかGIMPとか)をアンインストールしておくと、アップデートするデータ量が少なくなるので、私はそうしています。
次に必要なパッケージを導入します。その他の必要パッケージも同時に導入されますから、apt-getコマンドかSynapticでインストールすれば良いでしょう。
パッケージ名 | 備考 |
---|---|
build-essential | ビデオドライバやPT2のドライバ等のビルドに必要。 |
libtext-kakasi-perl | MythTV番組表の検索に必要。 |
xmltv | 番組表の取得に必要だった。今は他のプログラムで行っているが、一応入れておいた。 |
scim-bridge-client-qt | MythTVのメニューでカーソル操作が効かなくなる(scim-anthyとの相性)問題への対処で入れておく。 |
libccid | ICカードリーダーでB-CASカードを読むために必要 |
pcsc-tools | 〃 |
libpcsclite-dev | 〃 |
pcscd | 〃 |
pkg-config | PT2関連ファイルのビルドに必要 |
autoconf | 〃 |
automake | 〃 |
後々のため、コピー&ペーストできるようにコマンドを書いておきます。
sudo apt-get install build-essential libtext-kakasi-perl xmltv scim-bridge-client-qt libccid pcsc-tools libpcsclite-dev pcscd pkg-config autoconf automake
今回用意したハードウェアでは、nVidiaのGeForce 9400M Gがオンボードで搭載されているので、nVidia社のプロプライエタリドライバーを導入します。「システム」メニューから、「システム管理」→「ハードウェア・ドライバ」を実行して導入してもいいですが、それだと最新版のドライバーが利用できません。以下の手順で最新版のドライバを導入します。
デジタル放送対応の肝であるアースソフトのPT2とB-CASカードを読むICカードリーダーSCR3310-NTTComを利用するための設定を行ないます。ほとんどUbuntu Magagine Vol.5に掲載されている手順となりますが、ちょっと変更してます。
まず、PT2の最新のドライバーファイルとB25で暗号化された信号を複合するためのデコーダが含まれているドライバーファイルを~/tempにでもダウンロードします。2011年1月時点での最新ドライバーは、「pt1-7662d0ecd74b.tar.bz2」ですが、以前は 「38a793ac3d9d.tar.bz2」でしたので私はこれを使用しました。最新版でも作業に変わりはありません。B25デコーダーの含まれているドライバーファイルは「c44e16dbb0e2.tar.bz2」です。
cd
mkdir temp
cd temp
wget http://hg.honeyplanet.jp/pt1/archive/38a793ac3d9d.tar.bz2
wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.tar.bz2
ドライバーを導入します。
tar xf pt1-38a793ac3d9d.tar.bz2
tar xf 38a793ac3d9d.tar.bz2
cd pt1-38a793ac3d9d/driver/
make
sudo make install
sudo modprobe pt1_drv
ICカードリーダー用のパッケージはすでにインストールしているので、ICカードリーダーSCR3310-NTTComにB-CASカードをセットし、PCに接続します。次のコマンドを実行して、ICカードリーダーの名称が表示されていればOKです。
pcsc_scan
このコマンドは終了しませんから、[Ctrl]+[C]で終了させます。次にB25のデコーダーをインストールします。
cd ~/temp/
tar xf pt1-c44e16dbb0e2.tar.bz2
tar xf c44e16dbb0e2.tar.bz2
cd pt1-c44e16dbb0e2/arib25/
make
sudo make install
録画コマンド recpt1 をインストールします。
cd ~/temp/pt1-38a793ac3d9d/recpt1/
./autogen.sh
./configure --enable-b25
make
sudo make install
これでPT2が使えるようようになりました。確認するなら、
recpt1 --b25 --strip xx 30 test.ts
として、録画してみます。xxは地上デジタル放送の物理チャンネルNo.を指定します。物理チャンネルNo.はマスプロ電工の地デジ・地上デジタル放送向けチャンネル一覧表で確認してください。録画したファイル test.ts は動画プレイヤーで再生してみます。その際、必要なコーデックを検索してくれるので、リストアップされたコーデックを導入しておきます。
録画コマンドrecpt1の吐き出すデータをMythTVで受け取れるようにします。この章も「Nature Judge」の情報を元にしていますので、仕組みなどの詳しいことはそちらをご覧ください。
PT2の受信データは、vlcで変換されてMythTVに送り込まれますから、vlcのインストールが必要になります。vlcはパッケージ管理システム(aptあるいはSynaptic)でインストールせずに、「デジタル放送音声チャンネル構成切り替え対応パッチ」を当ててビルドした方が良いそうです。(まぁ、Ubuntu 8.10ではvlcも古いですし)
以下の操作は何をやっているかよく理解してませんが、サイト「Nature Judge」からの引用です。(ワークディレクトリだけ変えてあります)
$ sudo aptitude install libfaad-dev git-core unzip libtool libgettextpo-dev libdbus-1-dev liblua5.1-dev libmad0-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpostproc-dev liba52-dev libxcb1-dev libxcb-shm0-dev libxcb-xv0-dev libx11-xcb-dev libgl1-mesa-dev libqt4-dev libgcrypt-dev g++ libdvbpsi5-dev libnotify-dev liblivemedia-dev libraw1394-dev libv4l-dev libgnomevfs2-dev libogg-dev libshout-dev libgme-dev libtwolame-dev libdca-dev libflac-dev libmpeg2-4-dev libvorbis-dev libspeex-dev libtheora-dev libdirac-dev libschroedinger-dev libfluidsynth-dev libzvbi-dev libass-dev libxml2-dev librsvg2-dev libcaca-dev libpulse-dev libportaudio-dev libalsaplayer-dev libjack-dev libupnp-dev libprojectm-dev libavahi-client-dev libudev-dev libmtp-dev libosso-dev libsqlite3-dev libfribidi-dev
$ cd ~/temp
$ mkdir vlc
$ cd vlc
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0243.zip
$ unzip up0243.zip
$ tar xvf vlc_patch_0.01.tar
$ git clone git://git.videolan.org/vlc.git
$ cd vlc
$ git checkout 16cb266
$ patch -p1 < ../vlc_patch_0.01/vlc_patch_0.01.txt
$ ./bootstrap
$ ./configure
$ make
$ sudo make install
このままだと必要なライブラリーがパスの通ったところにないので、vlcが起動しません。次を実行して対処します。
sudo ln -s /usr/local/lib/libvlc.so.5 /usr/lib/
sudo ln -s /usr/local/lib/libvlc.so.5.0.0 /usr/lib/
sudo ln -s /usr/local/lib/libvlccore.so.4 /usr/lib/
sudo ln -s /usr/local/lib/libvlccore.so.4.0.0 /usr/lib/
上のようにライブラリのリンクを作成しても良いのですが、次のようにこれらのライブラリのあるディレクトリにパスを通すほうがスマートです。
ここまでの作業で、地上デジタル放送の録画、視聴は出来ます。例えば、
recpt1 --b25 --strip (地デジ物理チャンネル) - - | vlc -
とすることで指定したチャンネルの放送が視聴できます。
「Nature Edge」のサイトからの抜粋&一部変更です。
#!/bin/sh
cat << EOF
Content-type: video/vnd.dlna.mpeg-tts
EOF
pkill -9 recpt1
recpt1 --b25 --device=/dev/pt1video2 $QUERY_STRING - - 2>/dev/null
#EXTM3Uこれは松本での例。EXTINF:0,の後ろの数字は地上デジタル放送の各局のリモコンチャンネルにしておきました。
#EXTINF:0,1 - NHK総合
udp://localhost:1234
#EXTINF:0,2 - NHK教育
udp://localhost:1234
#EXTINF:0,4 - テレビ信州
udp://localhost:1234
#EXTINF:0,5 - 長野朝日放送
udp://localhost:1234
#EXTINF:0,6 - 信越放送
udp://localhost:1234
#EXTINF:0,8 - 長野放送
udp://localhost:1234
case $1 in前半のcase〜esac部分で地上デジタル放送のチャンネル番号と物理チャンネルを対応させています。後半部分が肝で、地上デジタル放送の音声に対応していないMythTVに対して、vlcで音声を(この例ではa52に)変換して渡しているようです。
1)
CH=28
;;
2)
CH=32
;;
4)
CH=22
;;
5)
CH=24
;;
6)
CH=23
;;
8)
CH=26
;;
*)
CH=$1
;;
esac
pkill -9 vlc
cvlc http://localhost/cgi-bin/pt2.cgi?$CH --sout '#transcode{acodec=a52, ab=128, channels=2}:duplicate{dst=std{access=udp, mux=ts, dst=localhost, port=1234}}' &
まず Mythbuntu-Control-Centreを導入するのが楽でしょう。次のように、入力します。(もちろん、Synapticからインストールしても構いません)
sudo apt-get install mythbuntu-control-centre
インストールの途中でlircの設定を求められます。赤外線リモコンを利用するなら設定してください。また、このマシンのMySQLパスワードに関しての表示がされますので目を通しておきます。
Mythbuntu-Control-Centreを使って、このマシンの役割(バックエンド、フロントエンド)やアドオンを導入&設定していきます。基本的に表示をよく読んで設定していけば良いのですが、ポイントだけ書いておきます。
パッケージ名 | 備考 |
---|---|
mythbrowser | A web browser for MythTV |
mythvideo | A generic video player frontend module for MythTV |
mytharchive | create and burn DVD's from MythTV |
mythnews | An RSS feed news reader module for MythTV |
mythgallery | Image gallery/slideshow add-on module for MythTV |
mythweb | Web interface add-on module for MythTV |
上のMythbuntu-Control-Centreによる設定を[適用]すると、何度か再ログインが要求されます。その後、ログインセッションがGnomeセッションからMythbuntuセッションに変更されます。この時からログイン後すぐにMythTVのフロントエンドが起動するようになります。
MythTVフロントエンドが起動したら、まず最初にテーマの変更と言語の設定をしておきます。デフォルトのテーマ「G.A.N.T」ではどこにフォーカスが当たっているか見にくく、余計な手間がかかるからです。メニュー最下行の「Utilities / Setup」から「Setup」→「Appearance」と辿ると最初にテーマ設定画面が出ます。適当に見やすいテーマを選択します。さらに何枚か設定画面をすすめると「Localization」という設定画面が出ます。次のように設定します。
Language:Nihongo
Guide Language #1:Japanese
Guide Language #2:Japanese
これだけ行ったら、[ESC]でフロントエンドを終了し、バックエンドの設定に入ります。
いよいよMythTVバックエンドの設定です。すべての項目を設定する必要はありませんから、ポイントのみの説明です。なお、MythTVの設定画面ではデフォルトでマウスカーソルが表示されません。操作はカーソルキーで行ないます。↑↓が項目の移動、←→が選択肢の変更です。[ESC]キーで前画面に戻ることが出来ます。
なお、この章は「Nature Judge」の情報を元に自分なりのやり方を加えたものです。
『1.一般』
ホストアドレスバックエンドの設定 | |||
---|---|---|---|
画面 | 項目名 | 値 | 説明 |
![]() | Local Backend の IP address | 127.0.0.1 | 通常はこの値で問題ないが、他のPCでフロントエンドを実行する場合は、このバックエンドのIPアドレスを入力しなければなりません。 |
Master Backendの IP address | 127.0.0.1 | 〃 | |
Locale Settings | |||
画面 | 項目名 | 値 | 説明 |
![]() | TVフォーマット | NTSC−JP | 必要無いかもしれませんが、他の選択肢にしておくのもなんなので。 |
チャンネル周波数テーブル | japan-bcast | 〃 | |
Your Local Timezone(for XMLTV) | Auto | 〃 |
『2.キャプチャーカード』
最初の画面で、(新規キャプチャーカード)を選択します。
キャプチャーカード設定 | |||
---|---|---|---|
画面 | 項目名 | 値 | 説明 |
![]() | カードタイプ | Network Recorder | 録画コマンドrecpt1からのデータはVLCに渡され、音声が変換された上でインターネット放送と同じようにMythTVに渡されるため。 |
M3U URL | http://localhost/pt2.m3u |
『3.ビデオソース』
最初の画面で、(新規ビデオソース)を選択します。すると「Searching for installed XMLTV grabbers」との表示後、設定画面になります。
ビデオソース設定 | |||
---|---|---|---|
画面 | 項目名 | 値 | 説明 |
![]() | ビデオソース名 | T-Digital | この値は一例です。お好きな(任意の)名前を付けてください。 |
Listings grabber | Japan (xmltv) | 必要無いかもしれませんが、他の選択肢にしておくのもなんなので。 | |
チャンネル周波数テーブル | Japan-bcast | 〃 |
『4.入力とソースの接続』
最初の画面には「[ FREEBOX : http://localhost/pt2.m3u ](MPEG2TS) -> (無し)」しか無いはずです。それを選択します。
ソースを入力に接続 | |||
---|---|---|---|
画面 | 項目名 | 値 | 説明 |
![]() | 表示名(任意) | PT2 | お好きな(任意の)名前を付けてください。TV視聴開始時に数秒間、画面に表示されます。 |
ビデオソース | T-Digital | 「3.ビデオソース」の「ビデオソース名」と同じものを選択してください。 | |
開始チャンネル | この時点では、まだチャンネルの設定がされていないので「このソースにチャンネルを追加してください。」と表示されているはずです。あとで設定します。 |
『5.チャンネル設定』
最初の画面の下部にある「チャンネルスキャナー」を実行します。次の画面「Scan Configuration」はそのまま「次 >」ボタンを押し下げます。さらに次の画面の「スキャニング」で「Adding Channels 〜(放送局名)」という表示が出ればOKです。
一旦、「4.入力とソースの接続」に戻り、「[FREEBOX : http://localhost/pt2.m3u ] (MPEG2TS) ->」を選択して「開始チャンネル」に適当なチャンネルに設定しておきます。
『チャンネル変更コマンドの設定』
最後に以下の手順で、チャンネル変更コマンドをします。
『各放送局の設定』
再度「5.チャンネル設定」を開き、各放送局設定の設定画面3枚目「チャンネルオプション - Video 4 Linux」の「周波数またはチャンネル」をpt2.m3uで設定したチャンネルにしておきます。
これで地上デジタル放送の視聴はできます。MythTVフロントエンドを起動してTV放送を視聴してみましょう。きちんと視聴できるはずです。しかし、まだ番組表取得の設定をしていないので、予約録画や番組情報、タイムテーブルなどはまだ利用できません。
MythTVは、xmltvで各国の番組表を取得して予約録画などができるようになっています。特にUbuntu 8.10のパッケージ管理システムから導入できるxmltvには日本用の設定ファイルもあります。(新しめのxmltvには無い) しかし、番組表の取得元(ontvjapan.com)がxmltvからデータ取得を弾くようになってしまった為、現状では xmltvでの番組表取得は難しくなっています。
その為、今は番組表の取得には mc2xml を利用しています。これは Ubuntuのパッケージ管理システムには登録されていないのでmc2xmlのサイトからLinux用のバイナリファイルをダウンロードして実行します。実行すると番組表データなどがmc2xmlのあるディレクトリに作成されますから、mc2xml用のディレクトリを作ってそこで実行するのが良いでしょう。以下、手順です。
mkdir ~/mc2xml
cd ~/mc2xml
mv (ダウンロードしたmc2xml) .
chmod +x mc2xml
./mc2xml -c jp -g 3900831 -U
-gのうしろの数値は、その地域の郵便番号です。実行すると、送信塔の選択肢が表示されますが、文字がおかしく読めません。(TER)が末尾に付くのが地上波放送のものらしいので、それを目安に適当に選択肢の数字を入力します。「Parsing ..... : 」に自分の使っている電波塔の名前が入っていればOKです。そうでなかったら、mc2xmlを実行したディレクトリに作成された2つのファイル mc2xml.dat と xmltv.xml を削除して、再度mc2xmlを実行します。
これで番組表(xmltv.xml)は取得できましたが、放送局のチャンネルがアナログのチャンネルになっていますので、それを地上デジタル放送の物理チャンネルに変換する必要があります。mc2xmlのあるディレクトリにmc2xml.renという変換ファイルを作っておきます。その内容は以下のようなものです。
40:6
42:8
44:1
46:2
48:4
50:5
「アナログチャンネル:地デジ物理チャンネル」というように放送局分書いておきます。
下のようにコマンドを入力してMythTVのデータベースに番組表データを納める前にやることがあります。まず、MythTV Backend Setupを起動して、「5.チャンネルの設定」を実行します。そこで、「チャンネル削除」を実行します。これをやってから下のコマンドを実行しないと、同じ放送局が二重に登録されてしまいます。
cd ~/mc2xml
rm mc2xml.dat xmltv.xml
./mc2xml -c jp -g 3900831 -U
mythfilldatabase --refresh-all --file 1 ./xmltv.xml
あとは、cronで毎日定時に番組表が取得されるようにすれば良いでしょう。その方法は、mc2xmlのサイトのF.A.Qに書かれていますが、次のようなシェルスクリプト(update.sh)を書いて、実行可能にしておきます。それをcronに登録します。
#!/bin/sh
cd ~/mc2xml
if ~/mc2xml/mc2xml ; then
mythfilldatabase --refresh-all --file 1 ./xmltv.xml
fi
念の為、MythTVフロントエンドの設定で、mythfilldatabaseが実行されないようになっていることを確認してください。(MythTVフロントエンドで「設定」→「一般」 )
最新版のMythTVならフォントの設定だけでTV視聴画面上のOSD表示がきちんとされますが、Ubuntu 8.10で採用されているMythTVでは日本語フォントが選択肢にありません。仕方ないのでMythTVのフォントディレクトリに使いたい日本語フォントをコピー、あるいはシンボリックリンクを張ったりして対処します。例えば、次のように英語フォントを削除して、その名前でリンクを張っても良いでしょう。
cd /usr/share/mythtv/
sudo rm FreeMono.ttf FreeSans.ttf
sudo ln -s ../fonts/truetype/vlgothic/VL-Gothic-Regular.ttf ./FreeMono.ttf
sudo ln -s ../fonts/truetype/vlgothic/VL-PGothic-Regular.ttf ./FreeSans.ttf
OSDのフォント設定は、MythTVフロントエンドの「設定」→「設定」→「テレビ設定」→「Playback OSD」の中にありますが、上記のようにデフォルトのフォントを削除し、その名前でリンクを作成した場合は何もしなくて良いはずです。
MythTVでは、MythBrowserプラグインを利用することでWebの閲覧が出来ます。しかし、Ubuntu 8.10に採用されているMythTV用のMythBrowserはFlashに対応していません。Youtubeを利用するためにはFlashが必要になりますから、MythBrowserの代わりにFirefoxを利用するようにして、Flashプラグインを追加します。ただし、MythTVでFirefoxが利用できるようにラッパーをかませる必要があります。
まず、次のような内容の /usr/bin/firefox-wrapper というファイルを作成します。
#!/bin/sh
/usr/bin/firefox ${11}
exit 0
このファイルは実行可能にしておきます。
chmod +x /usr/bin/firefox-wrapper
そして、MythTVフロントエンドで「設定」→「設定」→「インフォメーション設定」→「WEB設定」を表示し、「Browser」欄に /usr/bin/firefox-wrapper を設定します。
また、FirefoxにFlashプラグインを導入しておきます。これはAdobe Flash Playerのダウンロードページから、「Ubuntu 8.04+用debファイル」をダウンロードしてパッケージ・インストーラからインストールします。
さらに必要なら、以下の作業もします。
参考にさせていただいたサイトを紹介します。
ご意見、ご感想、間違い等ありましたら、ytakasuna@gmail.comまで連絡ください。