以前より構築、運用しているPT2の「TV録画サーバ」。
- PT2での地デジ録画&視聴サーバ構築・ソフト設定(サーバ)編 - masahirorの気まま記録簿
- http://d.hatena.ne.jp/masahiror/20100301/pt2_server
上記手順で構築していると、「BS/CS録画の際にドロップが多発する」という事象に陥った。詳細と解決先は下記エントリ参照。
- Spinel経由だとBS受信でドロップが発生する件 - masahirorの気まま記録簿
- http://d.hatena.ne.jp/masahiror/20100601/spinel_pt2_bs
その後、Spinelのバージョンアップがあったと、上記エントリのコメント欄で教えてもらった。詳しく調べたところ、新バージョンではSpinelへの接続ソフトごとに、B-CAS処理(スクランブル解除)のON/OFFを切り替えれるようになったとのこと。
これは早速試してみたい。ってことで、やってみた。
まずは最新版の入手。以前はアップローダでしか公開されていなかったが、公式サイトが出来たようだ。
- Blog - Lapis Labs
- http://lapislabs.blog24.fc2.com/
上記2つのエントリを元にしたPT2環境ができあがっている上で、本日現在の最新版「Spinel ver3.5.0.1」「BonDriver_Spinel ver3.4.0.0」を使用する前提で記事を書いていきます。
新バージョンの変更点として、
- クライアントごとにスクランブル解除のON/OFFをコントロールできる機能を実装しました。
詳しくはSpinel.ini.defaultのDescrambleControlの項目を参照して下さい
が挙げられる。これにより、Spinelに接続するアプリケーションごとにスクランブルをON/OFF切り分けれるようになった。
これで何がメリットかというと・・・
- BonCasLinkを使う必要がなくなった
- 上記を満たしつつも、BS/CS録画時のドロップ多発が回避できる
という2点。
まず、クライアント目線で見てみよう。これまでは、SpinelからスクランブルのかかったTSデータをTVTestが受け取り、BonCasLinkでデコードした上で映像を見ていた。図にするとこんな感じ。
この場合、TVTestを動かす全クライアントにBonCasLinkを入れる必要があった。インターネット経由でTVTestを利用する際は、BonCasLinkの設定が面倒で視聴しにくい状態であった。
しかし、新バージョンのSpinelとBonDriver_Spinelを使用すれば、TVTestにはスクランブルが解除された映像を送ることが出来、ドロップの懸念があるEDCBにはスクランブルがかかったままの映像を送る、といった異なる動作が出来るようになった。
図を使って簡単に解説。まずサーバの場合。
Spinelでスクランブル解除してしまうとEDCBの録画の際にドロップが多発してしまう。そのため、スクランブル未解除のままEDCBに画像を送り、EDCB側でスクランブル解除するのが望ましい。サーバ側のためB-CASカードも刺さっており、EDCBによるB25処理は問題なく実行される。
次にクライアントの場合。
クライアントの視聴ソフトである「TVTest」からSpinelへの映像要求時には、Spinelはスクランブル解除済みのデータを送るようにする。こうすることで、B-CASの刺さっていないクライアント、およびBonCasLinkで仮想的にB-CASがあるようにする必要が無い。視聴だけのため、BS/CS視聴時の多少のドロップは気にならない。
概要的には以上のような感じ。
次に、実際の設定変更に入っていく。
Spinelのバージョンアップ
まずは最新版をダウンロード。
解凍して出来たファイルを、Spinelがインストールされたフォルダ内で上書きする(Spinelは終了させておくこと)。
Spinel設定変更
Spinelの設定項目が一部変更されている。今回の「アプリごとにスクランブルON/OFFを切り替える」を有効にするため、Spinel.exeと同じフォルダにある「Spinel.ini」を下記の通り修正する。
まず、B25関連の設定を削除する。具体的には下記の記述部分をばさっと削除。
; B25Decoderの動作を指定します。 ; 0: 無効にします。 ; 1: 有効にします。 EnableB25Decoder = 0
次に、新機能を有効にするため、下記の通り追記する。
; B25/B1スクランブル解除の動作を指定します。 ; 解除を行うにはそれぞれB25Decoder.dll/B1Decoder.dllが必要です。 ; 0: 常にスクランブル解除前のTSを送信します。 ; 1: 常にスクランブル解除済みTSを送信します。 ; 2: スクランブル解除ONを要求してきたクライアントには解除済みTSを送信しますが、 ; それ以外のクライアントには解除前のTSを送信します。 ; 3: スクランブル解除OFFを要求してきたクライアントには解除前のTSを送信しますが、 ; それ以外のクライアントには解除済みTSを送信します。 DescrambleControl = 3
原則解除とし、EDCBから呼び出すときだけ解除前のデータをもらうようにする。
BonDriver_Spinel のバージョンアップ
作業前にEDCBを終了させておくこと。
そして、最新版をダウンロード。
解凍して出来たファイルのうち、「x86」フォルダ内にある
- BonDriver_Spinel.dll
を、EDCBインストールフォルダの「BonDriver」フォルダへコピー。以前の例でいうと、
C:\PT2\EDCB\BonDriver
にコピー。
そして、以前の「BonDriver_Spinel」を削除し、アップデートする。
まず、
- BonDriver_Spinel_PT-T0.dll
- BonDriver_Spinel_PT-T1.dll
- BonDriver_Spinel_PT-S0.dll
- BonDriver_Spinel_PT-S1.dll
を削除。
次に、【BonDriver_Spinel.dll】を
- BonDriver_Spinel_PT-T0.dll にリネーム
- 上記をコピーして、BonDriver_Spinel_PT-T1.dllにリネーム
- 上記をコピーして、BonDriver_Spinel_PT-S0.dllにリネーム
- 上記をコピーして、BonDriver_Spinel_PT-S1.dllにリネーム
という作業を行えば完了。
BonDriver_Spinel設定変更
バージョンアップにより設定項目が増えたのと、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
をそれぞれ開き、すべてのファイルに次の行を追加していく。
; スクランブル解除を行ったTSの配信を希望するかどうかを指定します。 ; 実際に解除済みTSが配信されるかどうかは、サーバ側のDescrambleControl設定値によって決まります。 ; 0: 特に希望がない(どちらでもよい)事を通知します。(デフォルト) ; 1: スクランブルが解除されたTSの配信を希望する事を通知します。 ; 2: スクランブルされたTSの配信を希望する事を通知します。 DesiredDescrambleControl = 2
これでサーバ側の設定変更は完了。
あとはSpinel、EDCB共に立ち上げ、正しく録画出来るか動作確認。
TVTest側の影響
クライアント側に入れているTVTestの方は、BonDriver_Spinelを上書きするだけでよい。
※逆に言うと、BonDriver_Spinelを最新化しないと動作しなくなる。
上記「BonDriver_Spinel のバージョンアップ」で用意した
- BonDriver_Spinel_PT-T0.dll
- BonDriver_Spinel_PT-T1.dll
- BonDriver_Spinel_PT-S0.dll
- BonDriver_Spinel_PT-S1.dll
をコピーし、クライアント側のTVTestインストールフォルダに上書きすればよい。
例でいうと
C:\PT2Client\TVTest
へ上書きコピー。
「BonDriver_Spinel_PT-T0.dll.ini」などの設定INIファイルは、変更しなくても問題ない。というのも、今回の追加設定項目が無い場合、スクランブル解除された信号が送られる設定をSpinelに行っているからである。
設定が完了したら、BonCasLinkクライアントを終了させて、正常に視聴できるか動作確認。
BonCasLinkの停止
今回の対処で、サーバ側クライアント側共にBonCasLinkの出番は無くなるため、アプリケーションを終了させるなり、スタートアップから削除するなりして構わない。
万が一のため、ファイル自体は残しておいてもよいが・・・
まとめ
上記により、さらにPT2環境の利便性が向上した。
これまでは、TVTestを入れたクライアントにはBonCasLinkも入れる必要があり面倒であった。
さらに、BonCasLinkクライアントはサーバの指定がIPアドレスでしかできず、DDNSなどで出先からTVTest+BonCasLinkで視聴しようとした際、毎回ホスト→IP変換して設定変更しないといけないため面倒だったが、これでTVTest単体で動くようになり、簡単に視聴できるようになった。
それでいて録画に影響が無いので、願ったり叶ったり。
作者さん、神アップデートありがとうございました。
また、新バージョンのリリースを教えてくださった「はろおさ」さん、ありがとうございました。
- 出版社/メーカー: アースソフト
- メディア: エレクトロニクス
- 購入: 9人 クリック: 1,003回
- この商品を含むブログ (31件) を見る