これまで,PLEXのPX-W3PE REV1.3を使ってWindows PCで録画をしていたのですが,Win10にアップデートしてからというもの調子が悪く,ついに最近はブルースクリーンを発生させるまでになりました.
録画PCは普段使いのマシンも兼ねているため,流石に別の録画方法を考えないと,PCも更新かな,と思っていたところ,以下の記事を見つけました.
Raspberry Pi 4 で構築する録画マシン | 空気録学電子版【公式】
Raspberry Piを使えばPCほどの価格はかけずに済みます.ということで,Raspberry Piを使った録画マシンを作ることにしました.
やりたいことは以下です.
・地上波・BSを録画する.できれば4チャンネル同時録画.
・ストレージ(HDD)を接続してファイルサーバとする
・スケジュールで録画した動画をエンコードする
さらに,Raspberry Piを物色していると,最も新しいものは8GBのメモリを積んでいるようですので,
・64bit OSを使ってマシンを作る
もやります.
(これは失敗でした.H.264のハードウエアエンコーダが結局使用できずじまいです.大人しく32bitのRaspbianを使うのが確実です.)
1. 機材購入
録画に必要な機材を揃えます.
●Raspberry Pi
8GBメモリを載せた4Bにします.電源などを選ぶのが面倒だったので,以下のようなセットを購入しました.使い始めに必要なものが一通り揃っています.正直HDMIケーブルいらないんですが気にしない.\18,500くらい.
USB接続のMAX4番組録画可能なチューナーとして,PX-W3U4を購入しました.これも\17,500くらいでした.
チューナー内蔵のリーダーが使えなかったので,どこかのサイトでおすすめされていたSCM ICカードリーダー/ライター SCR3310/v2.0を購入しました.B-CAS・住基カード対応で,もし録画用途に使わなくともマイナンバーカード用に使えます.\1,500程.
何らかの方法で入手します.
家に転がっていたIO DATAのUSB3.0接続3TB HDD(HDC-AET3.0K)を使いました.ちょっと古いですが,バックアップは別で取るのでとりあえずいいでしょう.
出費は合計で\37,000くらいでした.
2. Raspberry Piのセットアップ
●ヒートシンク装着
ヒートシンクに熱伝導テープを貼付し,Raspi本体に取り付けます.熱伝導テープは3種で,CPU・メモリ・USBコントローラ用です.
参考:見せてもらおうか、アルミ製ヒートシンクケースの性能とやらを!
その後,ヒートシンクとファンをネジ止めします.六角ネジとレンチが付属されているので,それを使います.その後,ファンの電源をピンに接続します.GPIOの4番(5V)に赤,6番(GND)に黒のケーブルを接続します.(GPIO端子図)
●OSインストールとセットアップ
今回は64bit版が正式に出ているUbuntu Server 20.04.1 for Raspberry Piを使います.以下のサイトを参考にイメージをダウンロードしてSDカードに書き込みます.
Create an Ubuntu image for a Raspberry Pi on Windows | Ubuntu
セットのSDカードにはRaspbianがすでにインストールされているようなので,フォーマットしてから書き込みます.
USB電源ケーブル,microHDMIケーブル+ディスプレイ,USBキーボードを接続し,Raspberry Piを起動します.初期ID/パスワード ubuntu/ubuntuでログインします.
$ sudo apt update
$ sudo apt upgrade
でソフトウエアをアップデートしておきます.
ifconfigを使えるようにするため,
$ sudo apt install net-tools
を実行しておきます.
また,デフォルトだとDHCPが有効になっているので,以下のように固定IPに変更します.
$ sudo nano /etc/netplan/50-cloud-init.yaml
network:
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.3.48/24
gateway4: 192.168.3.1
nameservers:
addresses:
- 192.168.3.1
version: 2
必要があれば,録画用ユーザーを追加しておきます.
$ sudo adduser username
$ sudo gpasswd –a username sudo
$ sudo gpasswd –a username video
$ sudo reboot
さらに,時刻同期設定とタイムゾーン設定します.UbuntuはSystemdの機能で,ntp.ubuntu.comで同期されていますが,もし接続先を変えたい場合は
$ sudo nano /etc/systemd/timesyncd.conf
でNTP=xxxx.jpと変更し,サービスを再起動します.
$ sudo systemctl restart systemd-timesyncd.service
また,タイムゾーンの初期値はUTCになっているため,JSTにしておきます.
$ sudo timedatectl set-timezone Asia/Tokyo
3. パッケージインストールとチューナー接続
$ dmesg
$ pcsc_scan
$ sudo systemctl status pcscd
$ sudo systemctl start pcscd
●ドライバインストール
続いて,以下のコマンドをまとめて実行します.homeディレクトリに/working_directoryというディレクトリを作成してそこで作業します.
$ mkdir ~/working_directory && \
cd ~/working_directory && \
git clone https://github.com/nns779/px4_drv && \
cd px4_drv/fwtool/ && \
make -j$(nproc) && \
curl -O http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip && \
unzip -oj pxw3u4_BDA_ver1x64.zip pxw3u4_BDA_ver1x64/PXW3U4.sys && \
./fwtool PXW3U4.sys it930x-firmware.bin && \
sudo mkdir -p /lib/firmware && \
sudo cp it930x-firmware.bin /lib/firmware/ && \
cd ../ && \
sudo cp -a ./ /usr/src/px4_drv-0.2.1 && \
sudo dkms add px4_drv/0.2.1 && \
sudo dkms install px4_drv/0.2.1 && \
sudo modprobe px4_drv
すると,ドライバのビルドとインストールが行われます.ここで
$ dmesg
をもう一度行うと,px4video0~3のチューナーデバイスが4つ認識されているのがわかります.
4. Multi2復号機能のインストール
地デジ・BS・CSの暗号を復号化する機能libarib25をインストールします.本来,このあとに記載した"録画コマンドインストール"で一緒にインストールできるはずなのですが,私の環境ではインストールされずビルドに失敗したため,別途インストールしておきます.
$ cd ~/working_directory
$ git clone https://github.com/stz2012/libarib25.git
$ cd ./libarib25/cmake
$ cmake ..
$ make
$ sudo make install
5. 録画コマンドインストール
plex公式ドライバに付属のコマンドを流用して,録画コマンドrecpt1をビルドします.
以下のコマンドでPlexのコマンドをダウンロードします.
$ wget http://plex-net.co.jp/download/linux/Linux_Driver.zip
$ unzip Linux_Driver.zip
$ rm Linux_Driver.zip
$ cd Linux_Driver/MyRecpt1/MyRecpt1/recpt1
使えるようにヘッダを少し修正します.
$ sed -i".org" 's/-DTV/video/g' pt1_dev.h
makeします.
$ make clean
$ sh ./configure --enable-b25
$ make
$ sudo make install
これでビルドできました.録画を試してみます.
$ recpt1 --b25 --strip --device /dev/px4video2 27 10 /home/video/test.ts
test.tsをWindowsに移動してVLCプレイヤーなどで再生できれば録画成功です.
このあと,「mirakurunセットアップ」「Chinachuセットアップ」「Sambaと定期エンコードの設定」を行ったのですが,長くなったのでまた次回.
--追記--
続きを書きました.