0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

raspberry pi4をTVサーバにする1(別サーバにつながったB-CASを利用)

Last updated at Posted at 2020-03-06

#はじめに
今回の構成は、すでにある録画サーバーのB-CASカードを間借りしてTVサーバを立ち上げます。
うまくできればいずれ旧サーバーを退役させたい。

#まずは録画できるところまで
まず、コマンドラインで録画できるところまでやります。
このあとmirakrun/chinachuを入れてTVサーバー化します。

##作業用ディレクトリを掘る
まずは、作業用のディレクトリを作りましょうか。なんでもいいですが、
mkdir ~/tvserver
ぐらいで。
cd ~/tvserver
で作ったディレクトリに入っておきましょう。

##PX-S1UDのドライバのインストール
ドライバはPLEXにあるドライバをとってきて、その中にあるisdbt_rio.inpというファイルを/lib/firmware/の下に置くだけです。
なぜかx64/amd64のドライバでOKです。

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/

##カードリーダードライバインストール
今回カードリーダは本体につなぎませんが、これ入れないとこのあとのlibarib25インストールとかができないので入れます。

sudo apt-get install build-essential git

sudo apt-get install pcscd libpcsclite-dev libccid pcsc-tools

#B-CASデコードライブラリのインストール
libarib25をコンパイルするのにcmakeを使うのでcmakeをインストールします。また、cmakeするために、g++,automake,autoconfが必要なので、それも入れておきます。
sudo apt install cmake g++
sudo apt install automake autoconf

wget https://github.com/stz2012/libarib25/archive/master.zip -O libarib25.zip
unzip libarib25.zip
cd libarib25-master
cmake .
make
sudo make install

移動したディレクトリから戻っておきます。
cd ~/tvserver

#B-CASクライアントのインストール
WindowsでBonCasProxyとか呼ばれているものですね。
git clone https://bitbucket.org/gn64/rec10.git
cd rec10/b25-remote
make
sudo make install

移動したディレクトリから戻っておきます。
cd ~/tvserver

このライブラリは以下の環境変数を参照して動きます。
※以下は192.168.0.50のコンピュータでBonCasLinkのサービスがポート6900で動いている想定での例。
export LD_PRELOAD=/usr/local/lib/b25-client.so b25-client.soのパス 
export B25_SERVER_IP=192.168.0.50 BonCasLinkサーバが動いているPCのIPアドレス
export B25_SERVER_PORT=6900 BonCasLinkのサーバのポート番号

#録画用コマンドのインストール
recdvbコマンドをインストールします

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
sudo chown -R $(whoami) .
./autogen.sh
./configure --enable-b25
EXTRA_SID=1 make
sudo make install

ここでさっきのb25-remoteを使って動かせるようにrecdvbをラッピングしたシェルを作ります
注意:chinachuなどの録画アプリは、録画コマンドの強制停止にkillコマンドを発行するようですが、
ラッピングシェルをkillすることになるので、本体のrecdvbがゾンビ化してしまいチューナーを掴みっぱなしにしてしまいます。
なので別の方法を検討中。まずは/etc/environmentに前述の環境変数を設定してみるも、
コマンドラインでrecdvb起動した時は、ちゃんと環境変数を読み込んでデコードできるのに、
chinachu(というかMirakurun)からの実行ではうまく環境変数を読み込んでくれない。

2020/3/17追記
pm2で環境変数の変更が反映されない時の解決策にあるように、pm2でmirakurunやchinachuのrestartをしてみたが、それでもダメ。手詰まり気味。

cd /usr/local/bin
好きなエディタで以下の様に入力
※以下は192.168.0.50のコンピュータでBonCasLinkのサービスがポート6900で動いている想定での例。
sudo vi recdvb_remote

export LD_PRELOAD=/usr/local/lib/b25-client.so
export B25_SERVER_IP=192.168.0.50
export B25_SERVER_PORT=6900
/usr/local/bin/recdvb "$@"

※exportは要らないかもしれない
sudo chmod +x recdvb_remote

##まずは録画できるか確認
recdvbコマンドで録画がうまく行くか試します。
このあとの予約録画システムなどは、このコマンドを起動するので、これが動かないと話になりません。
※以下の32というのはチャンネルです。以下のページを見て、お住まいの地域に合わせて変えてね。
マスプロアンテナのページ
※10は録画秒数です

recdvb_remote --b25 --strip 32 10 ~/test.m2ts

うまく行くと以下のようなメッセージを出して動きます。

using B25...
enable B25 strip
pid = 27208
device = /dev/dvb/adapter0/frontend0
Using DVB card "Siano Mobile Digital MDTV Receiver"
tuning to 587143 kHz
polling..ok
SNR: 0

Recording...
Recorded 10sec

b-casデコードがうまくできていないと

using B25...
enable B25 strip
pid = 26923
device = /dev/dvb/adapter0/frontend0
Using DVB card "Siano Mobile Digital MDTV Receiver"
tuning to 587143 kHz
polling..ok
SNR: 250
bcas->init failed
Cannot start b25 decoder
Fall back to encrypted recording

Recording...
Recorded 10sec

おそらく環境変数の設定が間違っている


mirakurun/chinachu編に続く...

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?