utamt engineer blog

アプリケーション開発について学んだことの備忘録です。

録画サーバ構築(1)

準備するもの

チューナー

PLEX USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0
https://www.amazon.co.jp/gp/product/B0141NFWSG/
¥4,840

ICカードリーダー

SCM ICカードリーダー/ライター SCR3310/v2.0
https://www.amazon.co.jp/dp/B0085H4YZC
¥1,380(中古)

B-CASカード

古いHDDレコーダーから拝借

チューナーの接続

チューナーのドライバをインストールする。

$ wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
$ unzip PX-S1UD_driver_Ver.1.0.1.zip
$ sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/

カードリーダ/B-CASの接続

カードリーダのドライバーをインストールする。

$ sudo apt-get install build-essential git
$ sudo apt-get install pcscd libpcsclite-dev libccid pcsc-tools

カードリーダにB-CASカードのチップが上向きになるように接続し、RaspberryPiにUSB接続する。
緑のランプが5秒間くらい点灯した後に消えるが、この動きで特に問題ないらしい。

接続を確認する。

$ lsusb 
...
Bus 001 Device 009: ID 04e6:5116 SCM Microsystems, Inc. SCR331-LC1 / SCR3310 SmartCard Reader
Bus 001 Device 011: ID 3275:0080 VidzMedia Pte Ltd 
...
$ sudo pcsc_scan
Using reader plug'n play mechanism
Scanning present readers...
0: SCM Microsystems Inc. SCR 3310 [CCID Interface] 00 00
...中略
Japanese Chijou Digital B-CAS Card (pay TV)

(Ctrl+C で終了)

B-CASデコード用ライブラリのインストール

日本の地デジ放送は暗号化された状態で配信されているため、そのまま受信して保存すると再生や複製の際に問題が起こる。そこで、B-CASカードの情報を使って受信と同時に復号するのが望ましい。これを実現するライブラリがlibarib25である。
このライブラリをコンパイルする際、cmakeとg++が必要なのでsudo apt-get install cmake g++でインストールしておく。

$ sudo apt-get install cmake g++
$ wget https://github.com/stz2012/libarib25/archive/master.zip -O libarib25.zip
$ unzip libarib25.zip
$ rm libarib25.zip
$ cd libarib25-master
$ cmake .
$ make
$ sudo make install

録画用コマンドのインストール

GUIの録画ソフトを動かす前に、CUIの録画コマンドが必要なので録画コマンドrecdvbをインストールする。

$ cd ~
$ sudo apt-get install dh-autoreconf
$ wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.2.tgz
$ tar xvzf recdvb-1.3.2.tgz
$ cd recdvb-1.3.2
$ ./autogen.sh
$ ./configure --enable-b25
字幕やデータ放送のデータが不要な場合は
$ make
字幕やデータ放送のデータが必要な場合は
$ EXTRA_SID=1 make
$ sudo make install

動作確認

物理チャンネル "24" を 10秒間録画する。

  • 保存先:/home/pi/test/
  • ファイル名:test.m2ts
# 録画開始
$ recdvb --b25 --strip 24 10 /home/pi/test/test.m2ts
# 録画終了
$ dmesg -w

(Ctrl+C で終了)

f:id:Utamt:20200503175621p:plain