RaspberryPi
raspbian
Chinachu

RasPi 3で録画サーバー構築(Chinachu)

まえがき

最近、TV番組をリアルタイム視聴するのが苦になってきたので、番組録画ができるものを探していました。
しかし、既製品を買うのはなんだか面白くないので、ラズパイで宅内用に録画サーバー構築に挑戦することにしました。
色々試行錯誤したので、忘れないためにも投稿。

注意書き

  • 個人的に利用することを目的として構築しています。録画データをWEBにアップロードしたりすると、著作権に触れると思われるのでご注意ください。
  • ド素人が書いていますので、手順に謝り等がある可能性がございます。もしご自身でサーバ構築される際は、自己責任でお願い致します。

用意したもの

ラズパイ本体

Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Pink)
¥4,571

ICカードリーダー

SCM ICカードリーダー/ライター B-CAS・住基カード対応 SCR3310/v2.0
¥1,899

ドングル

PLEX USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0
¥4,571

SDカード

家にあった16GBを使用。8GBあれば良いようです。

コード類

USB式のキーボード、HDMIケーブル、LANケーブル

外付けHDD

I-O DATA HDD 外付けハードディスク 2TB PC/テレビ録画/日本製/土日サポート EX-HD2CZ
¥6,708
2TBじゃ少ないかも。。。(知人曰く5TBは必要らしい)

ラズパイの設定

RaspbianをSDカードに焼くまで

RaspbianのDL

公式サイトRASPBIAN STRETCH LITEのZIPファイルをDLする。
スクリーンショット 2018-01-01 10.12.32.png

SDカードをフォーマット(Mac)

SDカードのフォーマット を参照ください。

RaspbianをSDカードに焼く(Mac)

MACでOSイメージを焼く を参照ください。

ラズパイを起動

キーボードとモニターに接続して、電源ON。
raspberry login: と表示されれば起動OK!

画面右上にイナズママークがチラチラ表示される(トラブルシューティング)

こんな表示が右上に表示される場合は、電源供給不足です。
参考:Raspberry Pi 3 Model B で遊んでみる - 電力不足になったら

私もUSBポートから電源供給していたので、このマークが出ていてOSが起動しませんでした(これで1時間くらい足止め・・・)

ログイン

初期は、以下の通り。

項目
login ID pi
Password raspberry

SSH接続設定

raspi-configでSSHを設定

sudo raspi-config

その後以下選択
5 Interfacing Options >> P2 SSH >> Yes

ロケーション設定

SSH設定から続き、raspberry-configでロケーションを設定
4 Localisation Options >> I2 Change Timezone >> Asia >> Tokyo

録画サーバーの設定

同軸ケーブルとB-CASの認識確認

$ lsusb | grep VidzMedia
Bus 001 Device 004: ID 3275:0080 VidzMedia Pte Ltd

$ ls /dev/dvb
adapter0

$ sudo apt -y install build-essential automake pkg-config
~~(中略)~~
utomake (automake) in auto mode

何を見ているかは不明。
とりあえず出てくればOK?

PX-S1UD firmware のインストール

ドライバは kernel に組み込まれていますが、別途 firmware が必要なので配置します。

sudo apt -y install unzip
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
sudo reboot now

再起動が終わったら、以下続き。

カードリーダーの設定

aptのupdate

sudo apt-get update

ドライバのインストール

sudo apt -y install pcscd libpcsclite-dev pcsc-tools
#少し時間かかる。

読み込み確認

pcsc_scan

以下のように表示されれば、OK

Japanese Chijou Digital B-CAS Card (pay TV)

なお、このコマンドの結果が
Card state: Card inserted, Unresponsive card,
などと表示されて止まってしまう場合は、B-CASカードの挿入の裏表が逆になっていないか確認してください。
通常白地に注意事項がたくさん書かれている側が、LEDランプ側に来るように挿します。また正常に挿されている場合は緑のLEDランプが点滅します。LEDランプが点灯(ついたまま)になっている場合は読めていません。
http://linux-memo.net/kaden/chidejiserver_ubuntu9-10_4configure.html

インストール

cd /usr/local/src
curl -sL https://github.com/stz2012/libarib25/archive/09770e3.tar.gz | sudo tar zxv
cd libarib25-09770e334837f6c67268c41c1c15784373d35e5b
sudo chown -R $(whoami) .
make
sudo make install
cd /usr/local/src
curl -sL http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.1.tgz | sudo tar zxv
cd recdvb-1.3.1
sudo chown -R $(whoami) .
./autogen.sh
./configure --enable-b25
make
sudo make install

VLC等でストリーミング再生可能

ホワイトリスト登録

再生可能するには、再生する端末のIPアドレスを、ホワイトリストに入れる必要ある。

#Viで/etc/hostsを開く。
sudo vi /etc/hosts

#以下表示内容
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi
192.168.1.4     win7         #この行追加

viコマンド

動作 コマンド
カーソルの右側に挿入 a
カーソルの左側に挿入 i
入力モードから抜ける [esc]
保存して閉じる :wq
保存せずに閉じる :q!

再生開始

$ recdvb --b25 --strip --http 8080

VLCで再生

VLC > ファイル > ネットワークストリームを開く

スクリーンショット 2017-12-29 16.41.25.png

http://192.168.1.10:8080/25と入力し、再生を押す。
再生できれば、成功。
スクリーンショット 2017-12-29 16.39.10.png

うまくいかない場合

当たり前ですが、USBの抜き差しとraspiの再起動。

Node.jsインストール

MirakurunはNode.jsのver8には非対応とのこと

スクリーンショット 2017-12-29 16.48.01.png
https://github.com/Chinachu/Mirakurun

#ver6をインストール
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Mirakurunをインストール

公式参照 https://github.com/Chinachu/Mirakurun

sudo npm install pm2 -g
sudo npm install mirakurun -g --unsafe --production

Rivarunもインストール

sudo npm install rivarun -g

これはなんだろう?

チューナーの設定

Mirakurunがインストールされると、/usr/local/etc/mirakurunに3つの設定ファイルが生成される。
設定が必要なのは、tuners.ymlとchannels.ymlの2つ。
tuners.ymlでは、チューナーの設定を行う。

とのことですので、viで設定追記。

$Vi /usr/local/etc/mirakurun/tuners.yml

#以下追加内容
- name: PX-S1UD-1
  types:
    - GR
  command: recdvb --b25 --strip <channel> - -

追記が終わったら、再起動

sudo mirakurun restart

チャンネル情報の取得

curl -X PUT "http://localhost:40772/api/config/channels/scan"

うまくいけば、こんな感じで表示されます。
スクリーンショット 2017-12-29 17.30.29.png

Chinachuのインストール

まずはGitのインストール

sudo apt-get install git

公式参照 https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2

git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
cd ~/chinachu/
./chinachu installer
# Auto を選択

このAutoのインストールが長い長い。
実際測ったことがないのですが、数十分では終わりません^^;
Autoを実行したら、放置が得策。

設定

cp config.sample.json config.json
vi config.json

とりあえず以下だけ設定すれば、動きました。

"uid" には通常 1000 または "実行ユーザー名" を指定します。

後は必要に応じて設定ください。

空ファイルの作成。

echo [] > rules.json

動作チェック

./chinachu service wui execute
# 問題なく起動できたらCtrl+\で終了

./chinachu update
# EPG取得テスト(エラーが出た場合は恐らく Mirakurun に接続できていません)

サービス開始・スタートアップ登録

sudo pm2 start processes.json
sudo pm2 save

#最後に再起動。
sudo reboot now

ブラウザでChinachu起動

http://192.168.1.10:20772/ にアクセスして表示されればOK!
スクリーンショット 2017-12-30 15.35.39.png

実際に使ってみての感想

なぜか、ライブ視聴ができない?

私だけかもしれませんが、ライブ視聴(ストリーミング視聴も)ができませんでした。
まあ録画用のため、ライブ視聴はできなくても問題はありませんが、気持ち悪い。。。
ラズパイのスペック不足かな??

案外容量を食う

だいたい30分アニメで2.6GB、紅白だと30GBくらい食いそう。
mp4にエンコードすれば、多少小さくできるようですが、ラズパイにそれをやらせるとヒートアップしそうなのでやめた。
まあDLしてWinで XMedia Recode 使ってエンコードでもしようか と考え中。

これだけ出来れば、十分

ルール設定で、歌手やグループの名前から予約せってもできる。
あまりテレビを見ない私にとっては、これだけできれば十分。

参考

以下サイトを参考にさせていただきました。
ありがとうございます。