ブログトップ 記事一覧 ログイン 無料ブログ開設

masahirorの気まま記録簿 このページをアンテナに追加 RSSフィード Twitter

2011/03/20(日)

SpinelバージョンアップでB-CAS処理有無の使い分けが可能に

以前より構築、運用している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 ver3.5.0.1 を公開しました。 - Blog - Lapis Labs

が挙げられる。これにより、Spinelに接続するアプリケーションごとにスクランブルをON/OFF切り分けれるようになった。


これで何がメリットかというと・・・

  • BonCasLinkを使う必要がなくなった
  • 上記を満たしつつも、BS/CS録画時のドロップ多発が回避できる

という2点。


まず、クライアント目線で見てみよう。これまでは、SpinelからスクランブルのかかったTSデータをTVTestが受け取り、BonCasLinkでデコードした上で映像を見ていた。図にするとこんな感じ。

f:id:masahiror:20110320210000j:image

この場合、TVTestを動かす全クライアントにBonCasLinkを入れる必要があった。インターネット経由でTVTestを利用する際は、BonCasLinkの設定が面倒で視聴しにくい状態であった。


しかし、新バージョンのSpinelとBonDriver_Spinelを使用すれば、TVTestにはスクランブルが解除された映像を送ることが出来、ドロップの懸念があるEDCBにはスクランブルがかかったままの映像を送る、といった異なる動作が出来るようになった。


図を使って簡単に解説。まずサーバの場合。

f:id:masahiror:20110320210100j:image

Spinelでスクランブル解除してしまうとEDCBの録画の際にドロップが多発してしまう。そのため、スクランブル未解除のままEDCBに画像を送り、EDCB側でスクランブル解除するのが望ましい。サーバ側のためB-CASカードも刺さっており、EDCBによるB25処理は問題なく実行される。


次にクライアントの場合。

f:id:masahiror:20110320210200j:image

クライアントの視聴ソフトである「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単体で動くようになり、簡単に視聴できるようになった。

それでいて録画に影響が無いので、願ったり叶ったり。


作者さん、神アップデートありがとうございました。

また、新バージョンのリリースを教えてくださった「はろおさ」さん、ありがとうございました。



アースソフト PT2

アースソフト PT2

はろおさはろおさ 2011/03/23 22:04 さっそく記事にして頂きありがとうございました。
こちらから急かしたようでなんか申し訳ないです…。

でも、masahirorさんのブログは解説が丁寧で非常にわかりやすく、
実際に私自身も大変参考になりましたので、便利な情報として、
ぜひmasahirorさんのところで発信して頂きたいと思ったものですから。

どうもありがとうございました。

マホマホ 2011/03/23 23:42 はじめまして、こちらのブログを参考に首都圏にサーバーを設置し、地方で視聴、録画をしようと考えています。
質問なんですが、地方で視聴、録画をした後、録画したファイルはどうすれば地方の方にあるパソコンにコピーできるか、また地上派の2チューナ共録画中の場合どちらかを視聴しながら録画ということはできるのでしょうか?

長文になりましたがよろしくお願いします。

masahirormasahiror 2011/03/27 13:16 >はろおささん
いえいえ、お気になさらず。ブログのネタにもなりましたし、ネタ提供感謝です。
仕事柄もあってか、手順書を書くことに何も抵抗がないので、日記書くよりよっぽど書きやすかったりします(笑)

また、お褒めのお言葉ありがとうございます。これにおごること無く、今後も分かりやすい文章を書くことに努めたい次第です(自分の文章力アップのトレーニングという面でも)。


>マホさん
一つずつ回答いたします。
まず、「録画したファイルはどうすれば地方の方にあるパソコンにコピーできるか」ですが、単なるコピー(ダウンロード)であれば、ApacheなどでWebサーバを立ち上げるか、FTPサーバを立ち上げるなどの方法が考えられます。
録画ファイルを地方側でストリーミング視聴したいということであれば、、、これは自分はやってなかったので今回を機に調べてみました。エントリにまとめましたので、よろしければご参照ください。
http://d.hatena.ne.jp/masahiror/20110325/remote_ts_play


次に「地上派の2チューナ共録画中の場合どちらかを視聴しながら録画」ですが、もちろん可能です。そのためにSpinelというチューナー共有ソフトを利用しております。ただし、当然のことながら視聴できるチャンネルは、今録画しているチャンネルになります。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

過去の日記一覧

このページについて

ホームページ:MN SOFTWARE HOMEPAGE からリンクしてるブログです。
公開しているソフトの開発状況や、作者の日常の出来事・イベント・体験談・考え事などの記録。購入したもののレビューやお気に入りのものの紹介なども。カウンタ→

目的の記事が表示されていない場合は、検索してみてください。
※検索ワードは1単語程度に減らした方がヒットしやすいです。例:「ご飯 炊き方 梅干」→「ご飯」

日記内検索

最新コメント一覧