
レコーダーがほしいが高いのでRaspberry Piで作る。
・省電力
・家中どこでもリアルタイム視聴&録画データ視聴
・いろんなデバイスで再生可能
使用機材
・raspberry pi 3 model b 家にあったやつ
・PX-S1UD V2.0(USBドングルTVチューナー)Amazon:4840円
・SCR3310-NTTCom(カードリーダー)ヤフオク:1000円
・B-CASカード(こわれたチューナーから拝借)
・HDD500GB 家にあったやつ
・アンテナケーブル Amazon:552円
・ACアダプタ付きUSBハブ 家にあったやつ
家にあったもの+追加6392円
意外と高い…
※B-CASカード単体で購入はできません
※録画ファイルは個人で楽しんでください
構成
OS:Raspbian buster Lite
チューナー制御:Mirakurun
録画制御:chinachu γ
手順
⓪前準備
適宜実施
・ssh許可
・JISキーボード設定
・ロケーション設定
・静的IP設定(以下例として192.168.0.81で表記 パイだけに81)
①HDDをマウント
HDDの接続確認
HDDを接続して
$ sudo fdisk -l | grep /dev/sd
Disk /dev/sda: 465.8 GiB, 500107860992 bytes, 976773166 sectors
sdaのaの部分を覚える
HDDパーティション設定(覚えたaの部分は適宜変更)
$ sudo fdisk /dev/sda
$ Command (m for help): d #パーティション削除
$ Command (m for help): p #状態確認
$ Command (m for help): n #パーティション作成
$ Command (m for help): p #状態確認
$ Command (m for help): w #書込み
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
HDDフォーマット
$ sudo mkfs.ext4 /dev/sda
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
HDDのUUDIを確認
$ sudo blkid /dev/sda
/dev/sda: UUID="66d07669-6e68-4fda-90de-e2f74bdc7cec" TYPE="ext4"
起動時に自動的にマウントされるよう設定
$ sudo vim /etc/fstab
以下追記(確認したUUIDに適宜書換え)
UUID=66d07669-6e68-4fda-90de-e2f74bdc7cec /mnt/hdd1 ext4 nofail 0 0
再起動
$ sudo reboot
マウントされていること確認
$ df -h | grep /mnt/hdd1
/dev/sda 458G 0G 458G 0% /mnt/hdd1
②ユーザー追加(任意)
$ sudo adduser tv #ユーザー追加
$ sudo gpasswd -a tv sudo #sudoできるように
$ sudo adduser tv video #videoグループ
録画先のディレクトリ権限を変更する(Videoグループにしないと録画できない)
$ sudo chown -R tv:video /mnt/hdd1
~~~~~以下追加ユーザーで操作~~~~~
③sambaで共有設定
録画ファイルの共有用に設定
sambaインストール
$ sudo apt install samba
samba設定
$ sudo vim /etc/samba/smb.conf
以下追記
[tv]
comment = Raspberry Pi
path = /mnt/hdd1
guest ok = yes
read only = no
browsable = no
force user = tv
samba再起動
$ sudo service smbd restart
windowsPCから接続する場合は
エクスプローラーで以下にアクセスして接続確認
\\192.168.0.81\tv
④チューナーの接続
ドライバのファイルをfirmware配下にコピー
$ 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
接続確認
チューナーを接続した状態で
$ ls /dev/dvb/
adapter0
と表示されればOK
⑤カードリーダーの接続
必要なパッケージのインストール
$ sudo apt install build-essential pcscd libpcsclite-dev libccid pcsc-tools
B-CASカードを指して接続確認
$ sudo pcsc_scan
Japanese Chijou Digital B-CAS Card (pay TV)
と表示されればOK(Ctrl-Cで抜ける)
B-CASデコード用ライブラリのインストール
$ sudo apt-get install cmake g++
$ wget https://github.com/stz2012/libarib25/archive/master.zip -O libarib25.zip
$ unzip libarib25.zip
$ cd libarib25-master
$ cmake .
$ make
$ sudo make install
⑥録画用コマンドのインストール
必要なパッケージのインストール
$ sudo apt-get install autoconf automake
$ 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
$ sudo make install
動作確認(17チャンネルを10秒間録画)
recdvb --b25 --strip 17 10 /mnt/hdd1/test.m2ts
マウントしたHDDに録画したファイルが作成されていればOK
エラーが起こっている場合はこのサイトでチャンネルが存在するか確認
(リモコンのチャンネルではなく物理チャンネル)
★この時点でリアルタイム視聴が可能★
接続元のIPアドレスをホワイトリストに登録し
$ sudo vim /etc/hosts
$ recdvb --b25 --strip --http 8080
を実行するとTV起動
VLCアプリのネットワークから、
http://192.168.0.81:8080/[チャンネル]
で視聴可能
金沢エリアは以下
http://192.168.0.81:8080/13
http://192.168.0.81:8080/14
http://192.168.0.81:8080/15
http://192.168.0.81:8080/16
http://192.168.0.81:8080/17
http://192.168.0.81:8080/23
終了するときは
$ ps ax | grep recdvb
でプロセスIDを確認し
$ kill [プロセスID]
⑦Mirakurunのインストール
GitHubの手順に従ってインストール
Node.jsインストール
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt-get install -y nodejs
一緒にNode.jsのパッケージ管理ツールnpmもインストールされる
npmコマンドで必要なパッケージインストール
$ sudo npm install pm2 -g
$ sudo npm install mirakurun -g --unsafe-perm --production
$ sudo npm install rivarun -g
$ sudo npm install arib-b25-stream-test -g --unsafe
TVチューナーの設定
$ sudo EDITOR=vim mirakurun config tuners
以下追記
- name: PX-S1UD-1
types:
- GR
command: recdvb --b25 --strip --dev 0 - -
isDisabled: false
チャンネルの設定
$ sudo EDITOR=vim mirakurun config channels
以下追記(地域に合わせて) nameは適当でわかればOK
- name: NHK総合
type: GR
channel: '15'
- name: NHKEテレ
type: GR
channel: '13'
- name: テレビ金沢
type: GR
channel: '17'
- name: 北陸朝日放送
type: GR
channel: '23'
- name: 北陸放送
type: GR
channel: '14'
- name: 石川テレビ放送
type: GR
channel: '16'
または以下コマンドでチャンネルをスキャン
$ curl -X PUT "http://localhost:40772/api/config/channels/scan"
Mirakurun再起動
statusがonlineになっていればOK
Mirakurunを通してリアルタイム視聴するにはVLCで以下にアクセス
http://192.168.0.81:40772/api/channels/GR/13/stream
http://192.168.0.81:40772/api/channels/GR/14/stream
http://192.168.0.81:40772/api/channels/GR/15/stream
http://192.168.0.81:40772/api/channels/GR/16/stream
http://192.168.0.81:40772/api/channels/GR/17/stream
http://192.168.0.81:40772/api/channels/GR/23/stream
⑧Chinachu (録画サーバー) 設定
必要なパッケージのインストール
sudo apt-get install build-essential curl git-core vainfo
chinachuはマウントしたHDDにインストール
$ git clone git://github.com/kanreisa/Chinachu.git /mnt/hdd1/chinachu
$ cd /mnt/hdd1/chinachu
$ ./chinachu installer
1. Auto を選択
録画ルールの初期ファイル作成
$ echo "[]" > rules.json
設定ファイルの編集
$ cp config.sample.json config.json
$ vim config.json
以下設定
"uid": "tv"
"recordedDir" : "/mnt/hdd1/recorded/",
Chinachuの起動確認
$ cd /mnt/hdd1/chinachu/
$ ./chinachu service wui execute
Ctrl+Cで停止
Errorが出なければOK
Node.jsとnpmのバイナリへのリンクを追加
$ cd .nave/
$ ls -al
node -> /mnt/hdd1/chinachu/.nave/installed/10.16.3/bin/node
npm -> /mnt/hdd1/chinachu/.nave/installed/10.16.3/bin/npm
nodeとnpmのリンク設定を確認する
この設定に合わせてリンクする
$ cd installed/
$ mkdir 10.16.3
$ mkdir 10.16.3/bin
$ cd 10.16.3/bin/
$ ln -s /usr/bin/node .
$ ln -s /usr/bin/npm .
ちなみにNode.jsのバージョンは
$ nodejs -v
v12.16.2
で、リンクの10.16.3とは異なるが、ただのフォルダ名なので気にしない。
サービスに登録
$ cd /mnt/hdd1/chinachu/
$ sudo pm2 startup
$ sudo pm2 start processes.json
$ sudo pm2 save
Mirakurun再起動
$ sudo mirakurun restart
EPG情報の取得テスト
$ cd /mnt/hdd1/chinachu
$ ./chinachu update
エラーが出なければOK
エラーが出た場合うまくいかない場合はMirakurunのログを確認してみる
$ sudo mirakurun log server
チャンネル登録ができているか確認するには以下
$ rivarun --list | sed 's/},/},n/g'
chinachuのダッシュボードにアクセス
http://192.168.0.81:20772/
番組表がうまく取得できていればOK
~~~~~~~~~~~~~~~~~~~~~~
TVの視聴、録画ファイルの視聴はKodiというアプリがおすすめ
設定参考サイト
https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2
うちの場合はAndroidTVにKodiをインストールして、ネットワーク越しに録画ファイルを視聴している。
そのほかPCにもKodiをインストールして、家じゅうどこでもTVが視聴できる環境ができた!
※その他設定
Mirakurunがメモリを食うのでラズパイのSWAPメモリ容量は2Gに変更
Mirakurunのバッファがオーバーフローしてフリーズするのでバッファサイズを変更
$ sudo vim /usr/local/etc/mirakurun/server.yml
最後の行に、以下を追加する
highWaterMark: 67108864