masahirorの気まま記録簿

個人的な出来事や意見、生活などの記録を思うままにブログに記録

PT2での地デジ録画&視聴サーバ構築・ソフト設定(クライアント)編

前回、PT2サーバまでの構築が完了した。


これで、「予約録画」「キーワード自動録画」および「録画した番組の視聴」まで出来るようになった。
さて、ここからがPT2の醍醐味。「別PCでのリアルタイム視聴」
PT2を搭載したサーバー機ではなく、同じネットワーク内にある「クライアントPC」で、PT2のチューナーが受信しているTV番組を視聴することが出来る。
この「PT2チューナーの共有」について解説していく。

※なお、上記「サーバ編」の設定が完了していることが前提です。




前回同様、参考にしたのは下記のサイト。

PT2 で TV 鯖と TV 倉を構築する
http://griffonworks.net/bon/build_pt2_server.html

クライアントは、録画した番組をネットワークドライブ越しに開いて視聴するか(前回説明済み)、リアルタイムの放送内容をクライアントソフトを使って視聴する。PTサーバ 1台あれば、同じチューナ・同じ番組(リアルタイム)を複数のPCで見ることも出来る。


今回も上記サイトの通り設定していけば完結するのだが、玄人向けの情報になっているので、自分がつまずいた部分も踏まえて画面のキャプチャを交えながら、やや詳細に設定したことを記していく。

なお、自分なりの解釈で書いているので、認識違いがあったらごめんなさい。

また、各種リンク2010/3/1現在のもので、時間が経つとリンク切れするかもしれません。その場合は、記載の単語をGoogleで検索してさがしてみて下さい。

※解説中に出てくる各種画像は、クリックすると拡大できます(一部除く)

リアルタイム視聴

TV視聴ソフト「TVTest」

共有したPT2チューナーをネットワーク越しで見ることが出来るソフト「TVTest」をセットアップする。

TVTest ダウンロード
http://2sen.dip.jp/cgi-bin/hdusup/upload.cgi?search=TVTest&send=99999

色々掲載されているが、今日時点ではTVTest ver.0.7.2」でOK。(64ビット版OSの場合は「x64」と書かれている方を)

これを解凍して出来たファイルを適当な場所にコピー。今回は例として

C:\PT2Client\TVTest

に全てコピーする。

スクランブル解除ランタイム「Multi2Dec」(B25Decord.dll)

TVTest側にも、スクランブル解除ランタイムをセットしておく。

Multi2Decの入手
http://2sen.dip.jp/cgi-bin/dtvup/upload.cgi?search=Multi2Dec&send=99999

今日現在では、 「Multi2Dec Ver.2.10」でOK。


ダウンロードして解凍したら、

圧縮ファイル→Multi2Dec→B25DecoderSDK

の中にある「B25Decoder.dll」だけを、TVTest.exeと同じフォルダにコピーする。例でいうと、下記のパスになる。

C:\PT2Client\TVTest\B25Decoder.dll


ただし、わざわざダウンロードし直さなくても、PT2サーバセットアップ時に配置した、例でいうとPT2サーバ側の

C:\PT2\Spinel3\B25Decoder.dll

をそのままコピーしてきても良い。

デコーダ「MPV Decoder」インストール

クライアント側には、「MPV Decoder」というデコーダをインストールする。

MPV Decoderの準備
http://2sen.dip.jp/cgi-bin/pt1up/upload.cgi?search=MPV+Decoder&send=99999

今日現在では、 「MPV Decoder (Compiled by ICC)」でOK。


ダウンロードして解凍したら、

  • ATOM
  • Core2(SSE3)
  • Normal

という3つのフォルダが生成され、それぞれに「Mpeg2DecFilter.ax」が入っている。
これは、それぞれのCPUに最適化されている「Mpeg2DecFilter.ax」なので、クライアントPCのCPUに応じて、

  • CPUがIntel Atom→ATOM
  • CPUがcore2duocore2quad→Core2
  • 上記以外のCPU→Normal ※分からない場合はこれで

いずれかを使用し、「Mpeg2DecFilter.ax」をSystemディレクトリにコピーする。WindowsXP以降であれば

C:\Windows\System32

へコピー。


その後、解凍したファイルの中にある「Install.bat」を実行する。
実行が終わったらインストールが完了しているので、解凍したファイル全て削除して良い。
(システムフォルダにコピーした「Mpeg2DecFilter.ax」はそのままで)



Spinel用クライアントドライバ「BonDriver_Spinel」インストール

サーバ構築と同様、TVTestからSpinelへアクセスするためのドライバ「BonDriver_Spinel」を、TVTestに読み込ませる必要がある。

まず、例でいうと

C:\PT2Client\TVTest\BonDriver_UDP.dll

は今回使用しないので削除。


次に、前回PT2サーバ機のEDCB内に置いた「DLL」「INI」ファイルをTVTest.exeと同じフォルダにコピーする。前回の例でいうと

C:\PT2\EDCB\BonDriver

配下にある

  • BonDriver_Spinel_PT-T0.dll
  • BonDriver_Spinel_PT-T1.dll
  • BonDriver_Spinel_PT-S0.dll
  • BonDriver_Spinel_PT-S1.dll
  • BonDriver_Spinel_PT-T0.dll.ini
  • BonDriver_Spinel_PT-T1.dll.ini
  • BonDriver_Spinel_PT-S0.dll.ini
  • BonDriver_Spinel_PT-S1.dll.ini

をが該当し、これを下記のパスにコピー。

C:\PT2Client\TVTest

「BonDriver_Spinel」動作設定

上記で複製した

  • BonDriver_Spinel_PT-T0.dll.ini
  • BonDriver_Spinel_PT-T1.dll.ini
  • BonDriver_Spinel_PT-S0.dll.ini
  • BonDriver_Spinel_PT-S1.dll.ini

の4つのINIファイルを、それぞれ一部修正する必要がある。
修正するのは2カ所。


1カ所目はチューナーコントロール独占の設定。

; 排他的チャンネルコントロールを要求するかどうかを指定します。
; これは録画アプリ向けの機能で、チューナのチャンネルコントロールを独占して
; 他のアプリがチャンネル切り替えをできないようにすることができます。
;   0: 要求しない
;   1: 要求する
RequireExclusiveChannelControl = 1

これは解説の通りだが、クライアント側にチャンネルコントロールの権利を独占させてしまうと、予約録画時にクライアントが現在選局されている番組が録画されてしまい、録画したいチャンネルが予約されない事態が発生してしまう。
予約録画時はチャンネルコントロール権をPT2サーバで動作しているEDCBに明け渡すため、「0」にする必要がある。(全てのINIファイルで有効にする)

変更後はこうなる。

; 排他的チャンネルコントロールを要求するかどうかを指定します。
; これは録画アプリ向けの機能で、チューナのチャンネルコントロールを独占して
; 他のアプリがチャンネル切り替えをできないようにすることができます。
;   0: 要求しない
;   1: 要求する
RequireExclusiveChannelControl = 0


予約録画動作時以外は、クライアント側でチャンネル操作が可能。
ただし、番組視聴中にEDCBの予約録画が動作しだしたら、勝手にチャンネルが変わるので注意というかびっくりしないように。


もう1カ所はSpinelが動作しているPT2サーバの設定

; Spinelが稼働しているIPアドレスとポート番号を指定します。
Address = "127.0.0.1:48083"

このIPアドレスを、PT2サーバのアドレスに変更する。こうすることでチューナーの共有が可能。
仮に、PT2サーバが「192.168.1.10」だった場合は、下記のようになる。

; Spinelが稼働しているIPアドレスとポート番号を指定します。
Address = "192.168.1.10:48083"

ホスト名でも設定可能。仮にPT2サーバのホスト名が「PT2SV」だったら

; Spinelが稼働しているIPアドレスとポート番号を指定します。
Address = "PT2SV:48083"

となる。
※ただし、同一ネットワーク同一セグメント等で、名前解決が出来る場合のみ。




INIファイルは4つ全てに変更を加えること。
また、PT2サーバがDHCPの場合は、固定IPにすることをオススメします。
さらに、PT2サーバでパーソナルファイアウォールが動作している場合は、停止しておいた方が楽です。




「TVTest」の設定

ここまで準備が出来たら「TVTest.exe」を実行する。
初回起動時は初期設定画面が表示されるので、下記の通り設定する。

  • ドライバ:とりあえずどれか選択
  • デコーダ:Mpeg2Dec Filter
  • レンダラ:デフォルト
  • カードリーダ:なし(スクランブル解除しない)


「OK」ボタン押下後、メイン画面が表示される。

画面を右クリックし、設定画面を開く。



【一般】

  • デコーダ:Mpeg2Dec Filter
  • レンダラ:デフォルト
  • カードリーダ:なし(スクランブル解除しない)


カードリーダについては、PT2サーバ側がB-CASで暗号化を解除し、解除後の映像データをSpinel経由で配信してくれるので、クライアント側にカードリーダー及びB-CASカードは不要。そのため、TVTestの設定も「なし」となる。



いったん「OK」ボタンで設定画面を閉じる。
次に、メイン画面の左下のボタンを押して「BonDriver_Spinel_PT-T0.dll」を選択しておく。




再度画面を右クリックし、設定画面を開く。



【チャンネルスキャン】
「スキャン開始」ボタンを押して、チャンネルをスキャンする。
すると、チャンネル一覧が表示されるので、これでチャンネル変更が可能となる。


再度設定画面を閉じ、左下のボタンを押して表示される「BonDriver_Spinel_PT-T1.dll」「BonDriver_Spinel_PT-S0.dll」「BonDriver_Spinel_PT-S1.dll」計4つ全て【チャンネルスキャン】を繰り返す。




ここまでで設定完了。
うまく設定されていれば、メイン画面の左下で「BonDriver_Spinel_PT-T0.dll」を選択し、下段左から2番目でチャンネルを変更し、映像がきちんと表示されるはず。


クライアント環境の複製

これでPT2チューナーを共有してのクライアント視聴設定は完了。
自宅にPCが複数ある場合、ここまで設定した情報が入っている「TVTest」フォルダ、例でいうと

C:\PT2Client\TVTest

を丸ごと別のPCにコピーし、「TVTest.exe」を実行するだけで、簡単にクライアント環境を複製できる。設定変更は不要。
Spinelのおかげで、複数PCで同時にTVTestを起動させても、それぞれのPCで同時に視聴することが出来る。
ただし、同じチューナーを選択した場合は、当然映るチャンネルは同じになるし、EDCBの予約録画がはじまれば、強制的にそのチャンネルに変わるのは同じ。複数PCにTVTestの環境を作ったからと同時に地デジ2チャンネル以上のチャンネルを見ることは出来ない。(要するに、物理的な地デジチューナー×2、BS/CSデジタルチューナー×2はそのままなので、同時受信チャンネル数が増える訳ではない)




EDCBのリモート操作

ネットワーク版EDCBの設定

EDCBは前回設定したが、予約録画の設定を変更する度にPT2サーバの画面を開くのは面倒だったりする。
なのでここは、クライアントPC側からリモートで、EDCBの予約一覧を操作したり、キーワード自動録画の設定追加・削除が行えるように設定する。


手っ取り早く設定する方法。それは、まずPT2サーバで設定したEDCBのフォルダを丸ごとクライアントPCにコピーする。例でいうと、PT2サーバにある

C:\PT2\EDCB

フォルダを、クライアントPCの

C:\PT2Client\EDCB

に丸ごとコピーする。

EDCBのリモート操作

コピーしたら、「EpgTimer_BonNW.exe」を実行。

接続先IPに、PT2サーバのIPアドレス(今回の例で行くと「192.168.1.10」)を入力し、「OK」ボタンを押す。
すると、ネットワーク版EDCBの管理画面が表示される。

あとの操作は、前回解説したEDCBとほぼ同じなので割愛。この画面から、予約の追加削除、自動予約の登録・変更・削除、予約録画の結果表示などが可能となる。



おまけ:出先のPCから地デジ視聴

今回のTVTestは、原則自宅ネットワークなど、ローカルネットワーク前提での設定であった。
しかし、ちょっと細工をするだけで、自宅から離れた場所からも、インターネット環境さえあればPT2サーバにアクセスして地デジを見ることが出来る。
これは、例えばPT2サーバを東京に設置して、福岡から東京の番組を見る、といったことも可能となる。

DDNSの設定

DDNSについては、色んなサイトで解説されているので割愛。要するに、自宅Bフレッツなど、動的にグローバルIPアドレスが振られる環境で、ホスト名でアクセスできるようになるサービスのこと。
過去自分が書いた記事が多少参考になるかも。

ルータのポート開放

標準設定の場合、Spinelでは「TCP/48083」と「TCP/48084」の2つのポートを使用するようです。
なので、この2つのポートを開放してあげましょう。ポート・NAT変換する場合は、この2つのポートの行き先をPT2サーバにします。
ルータによって設定方法が異なるので割愛するが、これも過去自分が書いた記事が多少参考になるかも。

TVTestの設定

今回設定したTVTestのフォルダ、例でいうと

C:\PT2Client\TVTest

を、出先のPCに丸ごとコピーする。出先に行く前にコピーしておくか、USBメモリ等で持ち運ぶと便利。自宅PCを持ち出して利用する場合は、「自宅ネットワーク用」と「出先用」の2つのフォルダを作っておくと便利。例えば、出先用は

C:\PT2Client\TVTest_Remote

というフォルダを作成し、「TVTest」フォルダ内のファイルをコピーしておく、など。



コピーしたら、

  • BonDriver_Spinel_PT-T0.dll.ini
  • BonDriver_Spinel_PT-T1.dll.ini
  • BonDriver_Spinel_PT-S0.dll.ini
  • BonDriver_Spinel_PT-S1.dll.ini

の4つのINIファイルの

; Spinelが稼働しているIPアドレスとポート番号を指定します。
Address = "192.168.1.10:48083"

IPアドレス部分を、DDNSで契約したアドレスに変更する。例えば、DDNSで有名な「DynDNS.com」にて、ドメイン名「dyndns.org」、ホスト名「pt2server」登録していた場合は、

; Spinelが稼働しているIPアドレスとポート番号を指定します。
Address = "pt2server.dydns.org:48083"

とする。
こうして出先のPCでTVTest.exeを実行すると、遠隔地からも視聴が出来ます。

実際には・・・

先日のGW帰省の際に、出先での視聴を実際に試してみました。

  • 【PT2サーバ】フレッツ光・マンションタイプ:福岡県
  • 【クライアント】BBIQ光・ホームタイプ:宮崎県

視聴をしてみると、ほとんど遅延なく見ることが出来た。ただ、ちょっとネットワークが不安定になると映像が固まり、そのまま再開されないこともたまにあった。無線LANを使用していたせいもあるかも知れないが・・・
でも、そうなった場合は再度チューナーを選び直せば、視聴は再開できた。
今回の仕組みの場合、地デジの放送データはデジタルのままで、再エンコードなどするわけではないので、出先からの視聴も地デジ画質でそのまま見ることが出来る。
これをうまく活用すれば、地域限定で見れない番組や、TVのない部屋でもPCを使って高画質にTVを見ることが出来て便利。


まとめ

PT2超便利!
そして、これらの機能をフルに活用するソフトは、全て有志の方が作ってくれたソフトのおかげ。
もう感謝しっぱなしです。
ハード以外は全て無料でここまで出来るのは、すごすぎます。PT2およびそれを支える技術者の皆さん、恐るべし!!!

関連エントリ
TVTestで録画TSファイル視聴&字幕表示
http://d.hatena.ne.jp/masahiror/20100521/tvtest_subtitle


アースソフト PT2

アースソフト PT2