「個人的なメモ」スクランブルの掛かったTSをB25デコードする方法

使用するVM

Dev-Ubuntu22.04

参考までにこの記事で取り上げるOSはUbuntuである。

下準備

inaba-vmsのスマートカードリーダをDev-Ubuntu22.04に接続しておく

接続したらVMX構成ファイルに”usb.generic.allowCCID = TRUE“を追加しておく。

起動させたVM上で念のため” pcsc_scan”をかけてB-CASが認識しているか確認する

デコード方法

デコードしたいTSのあるディレクトリで次のコマンドを実行する

$ arib-b25-stream-test < "デコードしたいTS名" > "出力TS名"

Dev-Ubuntu22.04だったらSMBでWWWディレクトリにTSを直接コピーして実行するのが楽かも

注意点

スクランブルの掛かったTSは再生しようとしても何も映像や音声が出ない。なのでスクランブルが掛かっているのか録画に失敗したのかデータが破損しているのかの判定が難しい。

このようなTSの判定方法として、TVTestで直接再生させてみる方法がある。

具体的な方法としてはTvtPlayで該当ファイルを再生させてみてSの値が増えればスクランブル解除失敗となる。

さらにいうとTVTestを動作させているPCにカードリーダーを直接接続し、TVTestの設定からTSプロセッサを開き
デフォルトモジュールのB25.tvcasを選択。
デフォルトデバイスでSmartCardを選択。
デフォルトフィルターは、無印。

にしてみて再生出来れば100%スクランブル解除失敗になる。

環境構築方法

最初にEJCの仮想サーバーでUSBデバイスをパススルーさせるのにVMX構成ファイルに”usb.generic.allowCCID = TRUE“を追加する

次にカードリーダをOSに認識させる

$ sudo apt install pcscd pcsc-tools libpcsclite-dev

以下のコマンドでB-CASが認識すればOK

$ pcsc_scan
PC/SC device scanner
V 1.5.2 (c) 2001-2017, Ludovic Rousseau 
Using reader plug'n play mechanism
Scanning present readers...
0: Identive CLOUD 2700 R Smart Card Reader [CCID Interface] (55291450217446) 00 00

(snip)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
        Japanese Chijou Digital B-CAS Card (pay TV)

libaribb2をインストールするためにコンパイラを一通りインストールする

$ sudo apt install cmake libpcsclite1 libpcsclite-dev pkg-config

環境によっては(※というかよほどのゴリゴリ開発系マシンでなければ)追加で下記のコマンドも実行した方がいいかも

$ sudo apt-get update && sudo apt-get install build-essential

リポジトリをクローンする

$ git clone https://github.com/tsukumijima/libaribb25.git
$ cd libaribb25/

ビルドする

$ cmake -B build
$ cd build
$ make

インストールする

$ sudo make install

以上。

この記事を読んでくれた方へのまとめ

そもそもEPGStationやChinachuといった録画管理ソフトでスクランブルエラーのTSが録画されてしまうという不具合はまずもって起きない。

スクランブルエラーの原因として挙げられるのが外的要因か、ソフトを動かしているOSの異常などである。

外的要因として挙げられるのがカードリーダとの通信不良だ。

EPGStationなりChinachuなりでなにがしかの番組を録画中にカードリーダからB-CASを抜いてそのまま放置するとこの記事のようなスクランブルエラーのTSが録画されたりする。

次にあげるOSの異常だが、これは録画管理ソフトのバグ、OSのメモリリークなど多種多様な要因が絡んでいる。

この問題は定期的にOSを再起動させると防げたりする。

この問題は根本的にEJC CCPSの様に月間約380話数のアニメ(約1TB)を24時間365日録画しまくるというヘビーな使い方をしなければ発生しないので一般の方は気にしなくていいかと思う。

コメント