録画ツール導入

作業開始:2016/05/21 掲載:2016/06/10 追記:2017/01/17

録画には「recdvb」を使う。multi2復号機能を組み込むため「libalib25」も必要。

開発環境

いずれにせよ、ソースからのコンパイル&インストールとなるので、こちらのとおりまずは開発環境を調えておく。

# apt-get install autoconf
# apt-get install build-essential
# apt-get install curl
# apt-get install git-core
# apt-get install libssl-dev
# apt-get install libtool
# apt-get install libboost-all-dev
# apt-get install pkg-config
# apt-get install yasm
# apt-get install linux-headers-`uname -r`

この辺の「何をするのに何が必要か」は、初心者が本当に途方に暮れるところだと思う。とりあえずは先達を真似るしかない。

multi2復号機能

multi2復号機能のライブラリ「libarib25」をインストールする。

# exit
$ mkdir ~/git
$ cd ~/git
$ git clone https://github.com/stz2012/libarib25.git
$ cd ./libarib25
$ make
$ su
# make install
# /sbin/ldconfig
# exit

録画ツールをビルドするときにこのライブラリ(と、SCR用ライブラリlibpcsclite-dev。すでに導入済み)をリンクして、復号機能を持たせるわけだ。

2017/01/17追記:

別のハードウェアで再挑戦中に判明したのだが、
現在 libarib25 はビルドシステムに cmake を採用していて、上述の手順ではビルドできない。
僕の環境では以下の手順でできた。

まず事前に、cmakeをインストールしておく必要がある。

# apt-get install cmake

でいけた。引き続き

# exit
$ mkdir ~/git
$ cd ~/git
$ git clone https://github.com/stz2012/libarib25.git
$ cd ./libarib25/cmake
$ cmake ..
$ make
$ su
# make install
# /sbin/ldconfig
# exit

こんなかんじ。

録画ツール

LinuxでのTV録画ツール「recpt1」(定番だそうな)をPX−S1UD等に対応させた「recdvb」が公開されているので、使わせていただく。
現時点(2016/05/26)での最新版は「recdvb-1.3.1」。

$ cd ~
$ wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.1.tgz
$ tar xvzf recdvb-1.3.1.tgz
$ cd recdvb-1.3.1
$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ su
# make install

無事インストールできたら、試しに何か録画してみる。カードリーダにB−CASカードを差して

# exit
$ recdvb --b25 --strip 37 120 /TvRec/test.ts
using B25...
enable B25 strip
pid = 6123
device = /dev/dvb/adapter0/frontend0
Using DVB card "Siano Mobile Digital MDTV Receiver"
tuning to 617143 kHz
polling..ok
SNR: 300

Recording...
Recorded 120sec

以下、各コマンドパラメータの意味。

別のパソコンから共有フォルダを確認。


長さ2分のメディアファイルが確かにできている。再生してみると

妙に小さいな。ワンセグだこりゃ。

ならば、とパラメータを追加(赤字の部分)してみる。

$ recdvb --b25 --strip --sid hd 37 120 /TvRec/testhd.ts
using B25...
enable B25 strip
pid = 6160
device = /dev/dvb/adapter0/frontend0
Using DVB card "Siano Mobile Digital MDTV Receiver"
tuning to 617143 kHz
polling..ok
SNR: 0

Recording...
Available sid = 25600 25601 25984 65520
Chosen sid = 25600
Available PMT = 0x1f0 0x3f0 0x1fc8 0x1cf0
Recorded 120sec

sid(ServiceID)を指定。今度はどうだ。


余分なデータストリームがそぎ落とされているせいか、ファイルサイズが小さい。



今度はOk。なおモザイクは当方でかけたものである。念のため。

ここまでは順調だなあ。
ちなみに録画中のCPU負荷だが、録画中に別コンソールを起動しtopコマンドで見てみた。

$ top
PID  USER PR NI VIRT  RES  SHR  S %CPU %MEM TIME+   COMMAND
6656 hoge 20  0 31020 3780 2212 S 22.1  0.4 0:14.20 recdvb
6669 hoge 20  0 10980 4324 3664 S  0.7  0.4 0:00.11 sshd
6679 hoge 20  0  4616 2776 2412 R  0.7  0.3 0:00.25 top

赤字のとおり、recdvb自体のCPU使用率は20%台半ばといったところ。ちなみにWindowsXP+rectestの場合、

70%超えだったから、負荷が約1/3に軽くなったワケだ。

2017/01/17追記: ファームウェアを /lib/firmware/ に置かないとどうなるか

単に好奇心からやってみた。

$ recdvb --b25 --strip 37 120 /TvRec/test.ts
using B25...
enable B25 strip
pid = 6123
device = /dev/dvb/adapter0/frontend0
Using DVB card "Siano Mobile Digital MDTV Receiver"
tuning to 617143 kHz
polling.....
Cannot lock to the signal on the given channel

こうなった。電波が弱くて受信できない状況と、見た目は全く同じ。もちろん実際に電波が弱いわけではない。
ちゃんとファームウェアを置いて再起動すると、正常に録画できるようになる。

ファームウェアがちゃんとロードされているかどうかを知るには、dmesgが使える。

$ dmesg|grep firmware
intel_rng: don't want to disable this in firmware setup, and if
[ 10.299494] usb 1-4: firmware: direct-loading firmware isdbt_rio.inp
←ロードされてる。

←戻る:共有フォルダのマウント  ↑トップ  次へ:予約録画ツールで苦労する→