Carpe Diem

備忘録。https://github.com/jun06t

Spinel でTV配信サーバーの構築

今回はSpinelというツールについて説明します。 ◆Spinel ってなーに? 普通チューナー本体が実装されているPCでしかTVは見れません。それを「チューナーがついたPCをサーバーにする」ことで「そのサーバーにアクセスすることでチューナーがないPCでもTVを視聴できる」といったことを可能にするツールです。便利ですね。 ※前回の「PT3 + softCAS + TVtest 視聴環境の構築」を一度試しているとスムーズに理解できると思います。 ◆事前知識 前回は PT3 → TVTest spinelsys1.png でしたが、今回は PT3 → Spinel → TVTest となります。ポイントなのが「スクランブルをどこで解除するか」で、これはSpinelでもTVTestでもどちらでも可能です。それぞれのやり方で紹介します。 ◇◇TVTestでスクランブルを解除する場合◇◇ spinelsys2.png ◆必要なツール ・Spinel_ver3.6.1.1   ・・・ 配信サーバーを構築できる ・TVTest_0.7.23 x86   ・・・ テレビを視聴するためのソフト ・BonDriver_PT3-ST(お試し人柱版4)   ・・・ チューナーを各種ツールで使用するためのドライバ。PT3とSpinel間で使用 ・BonDriver_Spinel_ver3.5.3.0   ・・・ チューナーを各種ツールで使用するためのドライバ。SpinelとTVTest間で使用 ・softCAS(winscard.dll)   ・・・ B-CASを不要にするDLL ◆サーバー側の設定1(ネットワークの設定) ①サーバーにするのでLAN内IPを固定します。やり方はググってください。今回の例では192.168.1.2とします。 ◆サーバー側の設定2(Spinelの設定) ① Spinel_ver3.6.1.1をダウンロードして解凍し、C:\TVにコピーします。(C:\TV\spinel)・・・解凍すると出来るフォルダはspinel3ですがspinelに名称変更しています。 ② BonDriver_PT3-ST(お試し人柱版4)x86フォルダの中身を全てC:\TV\spine\BonDriverにコピーします。 ③ C:\TV\spine\BonDriverにコピーしたBonDriver_PT3-S.dllをコピーして   ・BonDriver_PT3-S0.dll   ・BonDriver_PT3-S1.dll   を作成します。   同様に、BonDriver_PT3-T.dllをコピーして   ・BonDriver_PT3-T0.dll   ・BonDriver_PT3-T1.dll   を作成します。 結果、このような構成になります。 spinel02.jpg ④ C:\TV\spinel\BonDriverMapping.jsonをメモ帳で開いて以下を追加します。
/* BonDriver_PT3-ST */
{
    "DeviceName": "PT3",
    "Mapping": {
        "ISDB_T": "^BonDriver_PT3-T.*?\\.dll$",
        "ISDB_S": "^BonDriver_PT3-S.*?\\.dll$",
    }
},
spinel03.jpg ⑤ C:\TV\spinel\DeviceDefinitions\EarthSoft.xmlをメモ帳で開いて以下を追加します。
<DeviceDefinition DeviceName="PT3" DisplayName="EarthSoft PT3">
  <TunerDefinitions>
    <TunerDefinition TunerType="ISDB_T" Count="2">
      <ChannelCategories>
        <ChannelCategory>UHF</ChannelCategory>
        <ChannelCategory>CATV</ChannelCategory>
        <ChannelCategory>VHF</ChannelCategory>
      </ChannelCategories>
    </TunerDefinition>
    <TunerDefinition TunerType="ISDB_S" Count="2">
      <ChannelCategories>
        <ChannelCategory>BS</ChannelCategory>
        <ChannelCategory>CS110</ChannelCategory>
      </ChannelCategories>
    </TunerDefinition>
  </TunerDefinitions>
</DeviceDefinition>
spinel04.jpg ⑥ ここでspinel.exeをダブルクリックしてspinelの起動を確認します。 このような画面が表示されればOKです。右上のXボタンを押して終了します。 何かしらエラーが発生する場合は上記のスクリプトに全角文字が混じったりしている可能性が高いです。 spinel1.jpg ◆クライアント側の設定(TVTestの設定) ① BonDriver_Spinel_ver3.5.3.0をダウンロードし、解凍します。 ② BonDriver_Spinel3フォルダのBonDriver_Spinel.dll.iniBonDriver_Spinel3\x86フォルダにコピーします。 ③ BonDriver_Spinel3/x86フォルダのBonDriver_Spinel.dllをコピーして4つ作成し、それぞれ以下のように名称変更して名前が違うだけの4つのファイルを作成します。   BonDriver_Spinel_PT-S0.dll   BonDriver_Spinel_PT-S1.dll   BonDriver_Spinel_PT-T0.dll   BonDriver_Spinel_PT-T1.dll ④ BonDriver_Spinel.dll.iniをメモ帳で開いて以下のように編集します。 ; Spinelが稼働しているマシンのIPv4アドレスとポート番号を指定します。 Address = "XXX . XXX . XXX . XXX : 48083" XXX . XXX . XXX . XXXは事前準備で確認したパソコンのIPアドレスに変更します。今回の場合は192.168.1.2となります。 ⑤ BonDriver_Spinel.dll.iniをコピーして4つ作成し、それぞれ以下のように名称変更して名前が違うだけの4つのファイルを作成します。   BonDriver_Spinel_PT-S0.dll.ini   BonDriver_Spinel_PT-S1.dll.ini   BonDriver_Spinel_PT-T0.dll.ini   BonDriver_Spinel_PT-T1.dll.ini   結果、このような構成になります。 spinel05.jpg ⑥ BonDriver_Spinel_PT-S0.dll.ini、BonDriver_Spinel_PT-S1.dll.ini、BonDriver_Spinel_PT-T0.dll.ini、BonDriver_Spinel_PT-T1.dll.iniをメモ帳で開いて以下のように編集します。 ; 要求するチューナーのパスを指定します。 ; Spinelのチューナー名に表示されているパスを”"の中に指定して下さい。 ; 指定できるのは1つのパスのみです。 TunerPath = "PT3/0/S/0" BonDriver_Spinel_PT-S0.dll.ini → TunerPath = "PT3/0/S/0" BonDriver_Spinel_PT-S1.dll.ini → TunerPath = "PT3/0/S/1" BonDriver_Spinel_PT-T0.dll.ini → TunerPath = "PT3/0/T/0" BonDriver_Spinel_PT-T1.dll.ini → TunerPath = "PT3/0/T/1" ⑦ 以下の8つのファイルをC:\TV\TVtestにコピーします。   BonDriver_Spinel_PT-S0.dll   BonDriver_Spinel_PT-S1.dll   BonDriver_Spinel_PT-T0.dll   BonDriver_Spinel_PT-T1.dll   BonDriver_Spinel_PT-S0.dll.ini   BonDriver_Spinel_PT-S1.dll.ini   BonDriver_Spinel_PT-T0.dll.ini   BonDriver_Spinel_PT-T1.dll.ini ⑧ spinelを起動し、続いてTVtestを起動します。 ⑨ TVtest画面上でマウスを右クリックして、「チューニング空間/ドライバ」→BonDriver_Spinel_PT-S0を選択し、「PT3 + softCAS + TVtest 視聴環境の構築」の⑨⑩と同様にチャンネルスキャンを行います。 ⑩ TVtestでテレビが視聴できることを確認します。 ⑪ C:\TVフォルダをLAN上の別のパソコンにコピーし、コピーしたパソコンでTVTestを起動してテレビが見れることを確認します。 ※ LAN上の別のパソコンでテレビを見るためには、サーバでspinelの起動が条件になります。 ◇◇Spinelでスクランブルを解除する場合◇◇ spinelsys3.png ◆必要なツール 先ほどのツールに加えて以下のツールを用意します。 ・B25Decoder.dll   ・・・ スクランブルを解除するためのツールB-CAS or SoftCASを鍵にしてスクランブルを解除 ◆サーバー側の設定(Spinelの設定) 先ほどの設定に加えて以下の設定を行います。 ① C:\TV\spinelに次のファイルをコピーします。   B25Decoder.dll   softCAS(winscard.dll) ② C:\TV\spinel\Spinel.iniスクランブル解除をSpinel側で行うか、クライアントで行うか指定します。 ; B25/B1スクランブル解除の動作を指定します。 ; 解除を行うにはそれぞれB25Decoder.dll/B1Decoder.dllが必要です。 ; 0: 常にスクランブル解除前のTSを送信します。 ; 1: 常にスクランブル解除済みTSを送信します。 ; 2: スクランブル解除ONを要求してきたクライアントには解除済みTSを送信しますが、 ; それ以外のクライアントには解除前のTSを送信します。 ; 3: スクランブル解除OFFを要求してきたクライアントには解除前のTSを送信しますが、 ; それ以外のクライアントには解除済みTSを送信します。 DescrambleControl = 1 デフォルトはクライアント(TVTest)で行う設定になっていますが、今回はSpinelで行うため「1」を設定します。 ③ Spinelを起動し、TVTestの方のsoftCASを削除した状態で起動し、視聴できるか確認します。 以上です。 ソース: 秋の夜長はPT3のセットアップ PT3 + softCas + TVtest + spinel + EDCB PT3のチューナーを共有化する!(Spinel導入) SpinelバージョンアップでB-CAS処理有無の使い分けが可能に PT2 で TV 鯖と TV 倉を構築する