masahirorの気まま記録簿

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

Spinel経由だとBS受信でドロップが発生する件

先日取り付けたBSアンテナ。

アンテナ線をTVサーバーのPT2に接続して、早速番組の録画をした。
「これで我が家のPT2でBS/CSの録画が出来る・・・」と思い、EDCBを使ってたくさん番組を予約した。
ところが、録画した番組を見てみると、ドロップが多発していた。
ドロップが多発する条件をテストしてみると、

  • 1チューナーでの視聴・録画ではほぼ発生しない
  • 1チューナーでも、番組によってはちょっとだけドロップが発生する
  • 2チューナーで同時に視聴・録画するとドロップばかり発生する

うーん、なぜだ。BSアンテナのレベルが弱いのか?分配がまずかったのか、混合器がまずいのか・・・それとも室内配線の線の減衰が大きいのか。


BSアンテナの分配について調べてみると、一応1つのBSアンテナで6分配程度まではブースター無しで出来るらしいが、うまくいかない。
とりあえず、減衰している可能性を考えて、ラインブースターを購入。


導線による減衰などを考えて、ラインブースターを導入してみた。

日本アンテナ CS・BSラインブースター CSB-C25-SP

日本アンテナ CS・BSラインブースター CSB-C25-SP



しかし症状は改善せず。


あとはソフトの可能性を考えて、2chで相談してみた。
すると、どうもチューナー共有ソフト「Spinel」の性能の問題らしい。SpinelのReadmeを読んでみると、そのことに触れていた。

[仕様]
・B25Decode機能を有効にすると一部のCSチャンネルが映らないか、音切れする場合がある。
  ・B25Decoder.dllのECM処理時間だけパケットの到着が遅れてしまうためです。
    ECMありサービスが多いチャンネルで起こり、特に顕著なのはND6(AXN等)です。
  ・version 3.0.0.0で若干改善できたと思いますが、通信面からのアプローチでは限界です。
  ・現在実装中の独自B25デコーダではECMを非同期処理するためこの問題は解消しますが、
    20ECMを超えると総処理時間が2秒を超えてしまうため、さすがにどうにもなりません。

要するに、Spinel側で情報量の多いチャンネル(主にCS)のB-CAS処理をすると、復号処理が間に合わないことがあるらしい。そのため、データが到達できず、受信側のEDCBやTVTestで遅延が発生して、ドロップとなる様子。


2chでは、Spinelで復号するのではなく、BonCasLinkを使って各クライアントでデコードする方法を勧められたので、早速BonCasLinkをTVサーバ、クライアントPCに導入。

BonCasLink ダウンロード
http://2sen.dip.jp/dtv/

(本日現在では、「BonCasLink Ver.1.10」を使用)
BonCasLinkは、B-CASカードをネットワーク上で共有出来るソフト。B-CASカードが刺さっていないPCでも、サーバからB-CASカードの情報を取得して、あたかもB-CASカードが刺さっているかのように仮想認識してくれる。


TVサーバ側、クライアントPC側両方でダウンロードして解凍。
TVサーバ側では「BonCasServer.exe」を起動させスタートアップにも登録。
TVTestを使用するクライアントでは「BonCasProxy.exe」を起動させ、IPアドレスをTVサーバのIPアドレスにセット。スタートアップにも登録。

同時に、SpinelでのB25Decoder処理を無効にした。Spinel.iniを編集して、Spinelを再起動。

; B25Decoderの動作を指定します。
;   0: 無効にします。
;   1: 有効にします。
EnableB25Decoder = 0


クライアントPC側でTVTestを使用し、リアルタイム視聴する場合、これまではSpinelからB-CASが解除された映像が配信されていたためデコード処理が必要なかったが、BonCasLinkに乗り換えたことでクライアントPC側でもデコード処理する必要が出てきた。
そこで、TVTestの設定画面で「カードリーダ」を「なし(スクランブル解除しない)」から「スマートカードリーダ」に変更。


TVTestでリアルタイム視聴する場合は、「BonCasProxy.exe」が動作している上でTVTestを起動させれば、ネットワーク越しに何の問題もなく視聴することが出来た。CSの2番組同時視聴もドロップ無し。クライアントPCが2台あるが、複数起動してもとりあえず問題なかった。まあ、設定が一手間増えるようになってしまったが・・・
(注:地デジのみの運用であればSpinel側の解除で十分問題ないです)


サーバ側のEDCBは特に設定変更不要。そもそもB-CASが刺さってるマシンだしね。
CS2番組録画を試してみたが、これまでのドロップが嘘のように、全く発生しなくなった。
これで快適にBS/CSの予約録画が出来るようになった。

【追記 2011/3/20】

Spinelのバージョンアップにより、このようなまどろっこしい方法をせずに済むようになりました。
詳しくは、下記エントリを参照してください。

SpinelバージョンアップでB-CAS処理有無の使い分けが可能に
http://d.hatena.ne.jp/masahiror/20110320/spinel_verup_drop_clear

アースソフト PT2

アースソフト PT2