完全自己流録画環境再セットアップメモ(on Windows)

魔が差してPT3の3枚目が生えてきた上にST8000VN0022が爆熱で燃えそうだったしPC組み替え終わって1台空いたから録画を突っ込んでしまったメモです。

用意するハード
数TBぐらいの適当に書き込むことに向いている録画HDD(非SMRな事が望ましい)
数TBぐらいのある程度デカい任意の倉庫HDD(別に例の12TBでもいいしBarracudaでも良い)
なんかしらちゃんと動くチューナーボード
以上の物を問題なく動かせる任意のPC

システム関係以外は大体流用が効くのでしんどいと思うならある程度手を抜いて流用するのも手

1,Windowsを入れて適当にドライバ類のセットアップをする。

今回はWindows Server2019でセットアップ。I218-Vは正攻法ではWindowsServerにドライバがあたらないのでGigabitCTを刺した。
FAT32だと4GB制限に引っかかることがあるのでNTFSブートが出来ないときはこちらを(1909等の現行のWindows10でも動作します)
Mate(MK32M/E-F)にWindowsServer2016を焼く | たさなんぶろぐ

2,チューナー周りのセットアップ

いざセットアップして不安定でしたはかなしいのである程度放置してみるとか今回はPT3なので
アースソフト
からPT3のドライバーとSDKを落として入れておけばOKです。
しばらくは消えることはないと思いますがもう更新はないと思うのでローカル保持が無難だと思います。
BonDriverは
epgdatacapbon/BonDriver_PT3-ST: PT3用のBonDriver
からで、ReleaseのバイナリについてくるBSCSのchsetが未更新でろくに動かないので
【3波】 アースソフトPT1/PT2/PT3 Rev177【TS】の362のExampleの改変版を用いて出力したchsetを利用しました
あと、今問題なく見れてる人たちも2020年3月末にFOX(BS238)とDlife(BS258)が放送終了したことによってBS11/TS0及びBS23/TS02が現状停波状態になって2ch分ぐらいチャンネル登録者がダブるようになったので差し替えておくのも良いと思います。(今後同chで別事業者が放送する可能性があった気がしますが)
僕は現時点でチャンネルスキャンでダブルのが嫌だったので差し替えました。

追記(2022年5月10日) 今だとこれを使うのがお手軽なのでオススメです
hyrolean/BonDriver_PTx-ST_mod: PT1/PT2/PT3用ハイブリッドBonDriver

後はエア受信でCATV帯域を使用しないならばBonDriver_PT3-T.ChSet.txtの53ch以降を削除しておくとチャンネルスキャン時間が短縮出来ます。
わかる人は使用chで決め打ちにするのも悪くはないかと思いますが面倒なのでオススメはしません。

この辺でこのBonDriver一式を適当なTVTestとかに入れて動作確認しておくと楽です

3,Spinelのセットアップ

今回はPT3+Spinel+BonDriver_Spinel+EPGTimerの組み合わせで腐りきってるのでググればいくらでも出てくると思いきや腐りすぎて本格的に出てこなくなってきてるのである程度真面目に

Spinelは
Spinel ver3.6.1.1 を公開しました。 – Blog – Lapis Labs
BonDriver_Spinelは
BonDriver_Spinel ver3.5.3.0 を公開しました。 – Blog – Lapis Labs

SpinelはPT3のBonDriverの定義がないので
Spinel DeviceDefinitions\EarthSoft.xml (PT3用設定済み)
Spinel3 BonDriverMapping.json(PT3用設定記述済み)

を参考にしました。DeviceDefinitionsはフォルダ内検索されるようなので改変分は別に分けておいた方が再セットアップが楽だと思います。

Spinelは.NET Framework3.5がないと動かないのでWindowsの機能の変更から追加しておきます。

Spinel/BonDriverフォルダにBonDriver_PT3-STのdll一式をチューナー分リネームして入れておきます(例のmod入れてる場合はそれに合わせてChset入れたり入れなかったりしてね)

面倒なのでどっかでみたシンボリックリンクにするやつで手抜きすることにしました。 2つ以上のBonDriverが開けなくなるのでやっちゃダメです

ってことで大人しくコピーで手打ちしました。これでよかった。

rem in (0,1,5) の0は開始値, 1は刻み, 5は終了値
rem PT3が3枚の時は3枚x2チューナーから-1で5
for /l %%i in (0,1,5) do (
copy BonDriver_PTx.dll BonDriver_PT3-T%%i.dll
copy BonDriver_PTx.dll BonDriver_PT3-S%%i.dll 
)

歴史的経緯でBonDriver_PT3のままになってますが、立て直すならPTxになるようにBonDriverのreadme読んでSpinel側も修正した方が良いと思います(それならBonDriver_PT3の定義を書かなくて済む)。あとはT側だけChset残してありますが53ch以下削除用だったと思います。

Spinel.iniは

ServerPortNo = 任意のポート
AlwaysConfirmOnExit = 1

のみの変更ですがローカル運用ですしダブらなければ別にポートを変える必要もあんまりないと思います。AlwaysConfirmOnExitは誤爆防止のため

Spinel.exeのショートカットを作成後スタートアップにぶち込んでおきましょう。また、プロパティから最小化設定にしておくと起動時にウインドウが出てこなくて済みますが録画PCだと出てきた方がいいのでお好みで

動けば大体こんな感じになります(出てくるのはdllの数分なので実際の運用ch数と一致しているか注意)

ここでちゃんと接続してる感じになっていればOKです。

BonDriver_Spinelもini弄ってからチューナーの数だけコピペします

; セクション名は変えないで下さい
[BonDriver_Spinel]
IniVersion = 1

; Spinelが稼働しているマシンのIPv4アドレスとポート番号を指定します。
Address = "127.0.0.1:xxxxx"

; 要求するチューナーのパスを指定します。
; Spinelのチューナー名に表示されているパスを""の中に指定して下さい。
; 指定できるのは1つのパスのみです。
TunerPath = "PT3/0/S/0"

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

; 常にTCP/IPを使用してサーバーに接続するかどうかを指定します。
; 名前付きパイプの動作に不安がある場合に使用して下さい。
;   0: 通常(ローカルの場合は名前付きパイプを使用)
;   1: 常にTCP/IPを使用
ForceTCPDataLinkMode = 1

; プロセスが応答無しになっていないかを検知するかどうかを指定します。
; 検知した場合は通信リンクを強制的に閉じます。
; 誤検知のリスクがあるため、特に問題がない場合はOFFのままにして下さい。
;   0: 検知しません
;   1: 検知します
EnableHostProcessAliveCheck = 0

; 接続要求に対するサーバーからの応答を最大何秒待つかを指定します。
; コメントアウトした場合は20秒に設定されます。
;ConnectTimeoutSeconds = 60

; マジックパケットを送信するアドレスをIPv4形式で指定します。
; ポート番号を指定していない場合は9番ポートに送信されます。
;WakeOnLANTargetIPEndPoint = "192.168.1.255"

; マジックパケットで起動させるマシンのMACアドレスを指定します。
;WakeOnLANTargetMACAddress = "00:11:22:AA:BB:CC"

; スクランブル解除を行ったTSの配信を希望するかどうかを指定します。
; 実際に解除済みTSが配信されるかどうかは、サーバー側のDescrambleControl設定値によって決まります。
;   0: 特に希望がない(どちらでもよい)事を通知します。(デフォルト)
;   1: スクランブルが解除されたTSの配信を希望する事を通知します。
;   2: スクランブルされたTSの配信を希望する事を通知します。
DesiredDescrambleControl = 0

基本的には変更要素はIPとポート番号とチューナーパスをお好みや環境に応じて変えると。

ForceTCPDataLinkMode = 1
RequireExclusiveChannelControl = 1

はForceTCPDataLinkModeは有効にしておかないとEDCBが録画開始処理に失敗しました(空き容量不足の可能性あり)と刺さるので
(例【EDCB】EpgDataCap_Bonについて語るスレ 61
1に、RequireExclusiveChannelControlはEDCBで叩く方を優先させるため(というよりSpinelの仕様上他からチャンネル変えられてしまうのでそうならないようにチャンネルロックするようにするもの)

でこれも使う分だけリネームして終わりです。

TVTestとか視聴用ではRequireExclusiveChannelControl = 0にしておく

ここでTVTestとかの動作確認しておくと切り分けが楽です。してませんが

4,EPGTimerのセットアップ

tkntrec/EDCB: xtne6fさんのフォークにちょびっとだけパッチを追加するブランチ(フォーク)です。

から頂いてきてビルドして配置します。
無駄に何個も錬成したBonDriver_SpinelたちをBonDriverフォルダに入れて適当にチャンネルスキャンします。エア受信で中継局何個も拾ってしまう家庭では地上波でダブってるchを設定とかchset4直接弄るとかで削除しておきます。
Spinelの都合で数やらないと行けないのが面倒

Spinelの都合でSrvをサービス化しておいてもログオン出来てないと録画自体は出来ないので別にスタートアップにEPGTimer入れておけば良いと思いますが私は時計調整を放送波のTOTにお任せしたい人なのでサービス登録しておきます。EpgTimerAdminProxyにやらせた方が良いかもしれません(追記で眺めてたら気になったので一応)

設定大体適当でなんとかなりますが、ファイル名はお好み、マージン設定だけは長めに設定しておきましょう(私は頭30秒CM残したいので35s後ろ10s録ってます)。あとデータ放送が閲覧できる良い時代になったので字幕とデータカルーセルはONにした方が良いと思います。(そういう時代)

B25関係は触れたくないけれど忘れそうなのでメモっておくと従来通りのdll(VC++ 2005の再頒布可能パッケージがいる方 libほげほげな方だと頭に壊れたパケットが出てくるのであんまり良くない 捨てる実装書けば良いんだろうけど)で。MS-RDPの関係でスマートカードリーダーを叩けないのでBonCasLink(これもいる方)でwazokuさんちにあったBonCasLinkのクライアント代わりのWinScard.dllを配置して終わりです。基本的にはSpinelには処理をさせてません。
多分ソースはあるのでなんとかできるにはできるんだろうけれど正直触りたくない…

EMWUIとかEPGTimerNWとかは他の人が書いてるので省略っていうか僕もあんまり覚えてないです

という感じにとりあえず録画環境は立ちました。

こんな感じにやるとあんまり余計なライブラリを入れずにきれいに立てられると思います。BonDriverProxyとかで困らない人とかMS-RDP使ってない人とかもっと楽だと思います。

5,チューナーによって映るchが違うんだけど!?

PT3の一つ目と二つ目で映るchが違う(都会のテレビが映る方と田舎のテレビが映る方みたいな感じで分かれるとか)場合でも問題なく運用出来るのですが、面倒な点としては同じチューナーだとどっちのチューナーがどっちの配線になっているかがややこしいので何らかの方法でどっちがどっちか指定出来るようにしておく必要があります。

PT3の例だとBonDriver_PT3-(T|S)(0|1)なファイル名だと1つ目、
BonDriver_PT3-(T|S)(2|3)なファイル名だと2つ目、と明示することが出来ます。(ここでいう一つ目か二つ目かはマザボ側の認識順序に影響されるので上から1つ2つというきれいな形にはならない可能性がそれなりに高いです。要するにマザボの出来次第)ぶっちゃけよくわかんなくてもファイル名を変えてあげて1つずつ叩いていってチャンネルスキャンすればどっちがどっちかわかると思います。スキャン後にちゃんと映らないchをそれぞれ削除してあげるとちゃんと動くはずです。

またBonDriver_BDAを利用するタイプのだとiniの[tuner]項目でFriendlyNameあたりで指定してあげると1つ目か二つ目か分けることが出来ると思いますが、BDAなチューナー何機も持ってないので未確認です多分先駆者がいると思うのでググってください…

今回は

BonDriver_PT3-T→T0/T1→スカイツリー波
         T2/T3→山奥の送信所
         T4/T5→スカイツリー波

となってます。すっごい気になりますが、物理的に楽な配線をしたらT2/T3とT4/T5が逆になったので諦めました。

このままBonDriver_Spinelにもこの順序で食わせているので先ほどのEPGTimerの画像だとT0-T1,T4-T5に在京キーが来ててT2/T3に群馬の局が来てると思います。これを応用すると多分MaxM4とかでも上手に運用出来ると思います。しらんけど。忘れてたけど、勿論受信chが変わるのでchsetを流用してはなりません。

何年かこれでやってるからもう忘れてる感じがすごいけれど最低限これだけやれば動くのでヨシ

おわりに

WindowsUpdateの自動更新設定で自動でインストール以外にしなくていいのでせめて自動再起動だけは切って…
Windows 10 / Windows Server 2016 の Windows Update 後の自動再起動の制御方法 | Microsoft Docs
あとはcontrol userpasswords2で自動ログオンを有効に…(Spinelが上がらなくて再起動後に録画出来ない)

そういえばケース変えてからHDDが共振するので夜しか眠れなくなりましたどうしよう(おわり)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください