Raspberry Pi 4BとPX-W3U4で録画マシンの構築 (1)録画コマンドインストールまで

これまで,PLEXPX-W3PE REV1.3を使ってWindows PCで録画をしていたのですが,Win10にアップデートしてからというもの調子が悪く,ついに最近はブルースクリーンを発生させるまでになりました.

DSC_1702.jpg

録画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程.

 

B-CASカード
何らかの方法で入手します.

●録画先ストレージ
家に転がっていたIO DATAのUSB3.0接続3TB HDD(HDC-AET3.0K)を使いました.ちょっと古いですが,バックアップは別で取るのでとりあえずいいでしょう.
現行モデルで買うならこの辺でしょうか.

2. Raspberry Piのセットアップ

必要なものが揃ったらまず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. パッケージインストールとチューナー接続

●パッケージのインストール
環境構築に必要なパッケージをまとめてインストールしておきます.
sudo apt install -y build-essential git wget libasound2-dev \ 
  autoconf libtool pcsc-tools pkg-config libpcsclite-dev pcscd \ 
  cmake yasm curl ssh dkms unzip 
●機器接続
この時点でPX-W3U4をRaspberry Piに接続します.
$ dmesg 
でPXW3U4が認識していることを確認します.
また,カードリーダーを接続し,B-CASカードを挿入します.
$ pcsc_scan 
B-CASカードが認識されているか確認します.もしpcsc_scanが使えなければpcscdが起動していないので起動します.
$ 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と定期エンコードの設定」を行ったのですが,長くなったのでまた次回.

 

--追記--

続きを書きました.

 

dededemio.hatenablog.jp