ラベル

このエントリーをはてなブックマークに追加

PT4KをTVTestで動かす話

PT4KがTVTestで使えるようになったと聞いたのでやってみた。
もっと他に効率のいい方法があるのかもしれないが取り急ぎ



用意したもの
2024/10/16 時点での話です


TVTest

TVTestをダウンロード、適当な場所に展開。
中に入ってるB1.tvcasとB25.tvcasは削除した。

BonRecTest.exe

BonRecTest.exeをダウンロード、TVTestのフォルダーにコピー
テストする際にTVTest関係なく使うだけなんで、別にTVTestと同じフォルダじゃなくてもいいんだけど。

BonDriver_BDA

MMT-TLVassociation/BonDriver_BDAを以前書いたような方法でビルド。
場合によってはBonTuner.cppとBonTuner.hをShiftJISで保存し直さないとエラーになる?
BonDriver_BDA.dll と TBS.dll をTVTestのフォルダーにコピー。
BonDriver_BDA.iniを次のように書く。

[Tuner]
UseSpecial="TBS"
Guid=
FriendlyName0="TBS 6812 ISDB-T/S/S3 Tuner"
Name="ISDB-S"
DVBSystemType=1
DefaultNetwork="4KBS/CS"
SignalLevelCalcType="SSStrength"
StrengthCoefficient=1000.0

[TBS]
SetTSID=1
LNBPowerON=1

[TuningSpace00]
TuningSpaceName="BS"
CH001 = 1,11861.740,L,0,BS1/TS0,0x1,0xB080
CH001 = 1,11861.740,L,0,BS1/TS0,0x1,0xB081
CH001 = 1,11861.740,L,0,BS1/TS0,0x1,0xB082
CH001 = 1,11976.820,L,0,BS1/TS0,0x1,0xB0E0
CH001 = 1,11842.560,R,0,BS1/TS0,0x1,0xB070
CH001 = 1,11842.560,R,0,BS1/TS0,0x1,0xB071
CH001 = 1,11842.560,R,0,BS1/TS0,0x1,0xB072
CH001 = 1,12034.360,R,0,BS1/TS0,0x1,0xB110
CH001 = 1,12034.360,R,0,BS1/TS0,0x1,0xB111
CH001 = 1,12034.360,R,0,BS1/TS0,0x1,0xB112


dantto4kのビルド

バイナリ配布されてるけど初めて使うものはソースからビルドして使いたがる人なので。
dantto4kのソースをダウンロード、展開
Win64 OpenSSL v3.3.2をダウンロード、インストール
TSDuck-Win64-3.38-3822.exeをダウンロード、インストール
ffmpeg-master-latest-win64-gpl-shared.zipをダウンロード、展開

C:\Program Files\OpenSSL-Win64\include この「include」フォルダをdantto4kのソースの thirdparty/openssl の中にコピー
C:\Program Files\OpenSSL-Win64\include この「lib」フォルダをdantto4kのソースの thirdparty/openssl の中にコピー
dantto4kのソースの thirdparty/openssl 内は「include」と「lib」フォルダだけがある状態。

同じように
C:\Program Files\TSDuck\include この「include」フォルダをdantto4kのソースの thirdparty/tsduck の中にコピー
C:\Program Files\TSDuck\lib この「lib」フォルダをdantto4kのソースの thirdparty/tsduck の中にコピー

ffmpeg-master-latest-win64-gpl-shared\include この「include」フォルダをdantto4kのソースの thirdparty/ffmpeg の中にコピー
ffmpeg-master-latest-win64-gpl-shared\lib この「lib」フォルダをdantto4kのソースの thirdparty/ffmpeg の中にコピー

danto4k.slnをVisual Studio 2022で開いてビルド。

BonDriver_dantto4k.dll と BonDriver_dantto4k.ini をTVTestのフォルダーにコピー
また、ffmpeg-master-latest-win64-gpl-shared\binにあるavcodec-61.dll、avformat-61.dll、avutil-59.dll、swresample-5.dll この4つのdllもTVTestのフォルダーにコピー。


TVTestを動かす前にテスト

コマンドプロンプトから次のコマンドを実行
BonRecTest --driver BonDriver_BDA.dll --output hoge.mmts --space 0 --channel 0
30秒くらい待って、「Error: Could not set channel」と出なかったらok
Ctrl+Cで強制ストップ。数百MBの hoge.mmts が出来てるはず。
もし「Error: Could not set channel」と出たならば、BonDriver_BDA.ini内の記述がおかしいのかも。

次に
dantto4k hoge.mmts hoge.ts
このようにしてtsファイルへと変換され、メディアプレーヤーなどで再生できればok


TVTestで動かす

TVTestを起動、BondriverにはBonDriver_dantto4k.dllを指定する。
あとはチャンネルスキャンして終わり。


---

その他 (今回の事には直接関係ない話)
EDCBのB25Decoder.dllをACAS用に差し替え
私は同じPC上でEDCBを使っていて、こちらは別のチューナーで地デジ/BSの視聴録画を安定して使っている。
ICカードリーダーが1つしかないため、カードをBCASからACASに変えたらEDCBもACASでB25デコードできるよう対応しなければならなかった。
ここのlibaribb25をダウンロードしてaribb25/b_cas_card.c を開き、この辺を参考に書き換えてビルド。libaribb25.dll をB25Decoder.dll にリネームしてEDCBのB25Decoder.dllと入れ替えた。
2024/10/25追記
やっぱり機器毎にICカードリーダーがあった方が安定しそうなので、もう一つICカードリーダーを追加した。B25Decoder.dllは元に戻して、最初に認識している方のICカードリーダーにACASを差し、2番目に認識したICカードリーダーにBCASを差した。EDCBのフォルダ(B25Decoder.dllがある場所)にB25Decoder.iniを作成し、ここを参考にしながら2番目のICカードリーダーの名前を記述した。

[CardReader]
Name=Identive SCR33xx v2.0 USB SC Reader 1

みたいな感じ。カードリーダーの名前が分からんかったらTVTestの設定にあるTSプロセッサーとか利用したら分かる。これでPT4KはACAS使う、EDCBで別チューナーが地デジ/BS/CS使う時はBCASと使い分けができた。

EDCBとPT4Kの組合せは今のところ考えてない。録画したくなるほどの4K/8K放送増えてほしい。

気になる出来事