Raspberry Pi に EPGStation でTV録画してAmatsukazeで自動CMカットエンコード
Raspberry Pi 3B が手元にあったのでかんたんな録画サーバーを構築してみました。
EPGStation は録画管理ソフトで 無料で提供されているものですが、スマホなどからリアルタイム視聴ができたり録画予約機能など使い勝手が優れています。他にChinachu というソフトもありますよ。
今回の構成
録画に使用するもの
- ラズパイ本体
- 地デジチューナー
- Windows PC
- NAS
ラズパイ (録画) > Windows PC (自動エンコード) > NAS (保存・再生)
まずラズパイで録画したファイルは一旦、ラズパイのMicroSDカードや接続したUSBメモリに保存されます。
録画後にスクリプトを通してWindows でCMカットとエンコードを自動で行います。
エンコードしたファイルは NAS に保存されるのでどこでも再生が可能です。
ちなみに自動エンコードさせるにはWindows PCは常時可動させておく必要があります。私の場合は ファンレスPC のVMWare ESXi 上に Windows10をインストールしています。
Ubuntu + EPGStation(録画) > Windows10(エンコード) > NAS (配信)
USB チューナー PX-S1UD V2.0 Plus
地デジのチューナーが1つ付いています。
複数個接続することもできるようです。
地デジペーパーアンテナ必須ではないですが、近くにアンテナケーブルを接続できるところがない場合は、ペーパーアンテナを窓に貼ることでどこでも地デジの電波を拾うことができます。USBブースター付きなので電波の弱い場所でもいけそうです。
Raspberry Pi 3B (+)
こちらはラズパイ3B 本体とケースだけのシンプルな製品です。
USBケーブルやMicroSDなどセットになった3B+
MicroSDカード
録画中のファイルを一時的に保存しておくので少し大きめの容量を選んでおくと良いと思います。
私の構成は、ラズパイ本体ではなくUSBメモリ64GBを接続してそこに保存しています。MicroSDに保存するか外部に録画中のデータを保存するかどうかはお好みでどうぞ。
USBメモリはコレ使ってます!
Synology NAS
Synology のNASがGUIも洗練されていて使いやすいです。
録画以外でもファイル管理や音楽、Webサーバーなど独自のアプリがたくさんあるので便利なNASとしておすすめできます。セットアップに特別な知識は不要なので初心者でも安心です。
Video Station というアプリを使うことで外からでもスマホで録画・エンコードしたファイルを再生できますよ。
HDDを2ベイ管理できるので、たくさん保存する場合は容量が大きなHDDが必要ですね。
Windows PC
ここはお好みで。常時稼働が前提なのでできるだけ消費電力が低そうなPCをAliExpressで購入しました。到着まで12日かかりましたが安かったです。
XCY というメーカーのファンレスミニPCで、手のひらに乗るくらい小さいです。
構成はCeleron J1900 、メモリなしSSDなしで約11,000円でした。
- Celeron J1900 4コア 2.0Ghz
- USB3.0 x1, USB2.0 x3, HDMI, VGA, Gigabit LAN
- マイク・スピーカー端子
- mSATA and 2.5 inch SATA SSD/HDD
- DDR3L 1333/1600MHz 1.35V
メモリ8GB、mSATA SSD 120GBを別途購入。WiFi、Bluetoothは不要です。
合計で 約18,000円でしたが十分な性能です。
VMWare ESXi 上にWindows10 をインストールしています。
ESXiをインストールする場合はこちらを参考にしてください。
Raspberry Pi 3B (+) のセットアップ
Raspbian Stretch Lite をインストール
今回はCUI版の Raspbian Stretch Lite を使います。
SDカードフォーマッターでMicroSDカードをフォーマットしたあと、Etcher などでRaspbian のイメージをMicroSDに書き込みます。
OS 書き込み後は、「boot」フォルダ内に空の「SSH」フォルダを作成して、SSH接続できるようにしておきましょう。
EPGStation のインストール
こちらのnote を参考に Raspbian上にEPGStationをインストールしましょう。
Raspberry Pi 3 Model B+で地デジ録画サーバー(EPGStation編)
http://192.168.xxx.xxx:20776/ にアクセスして動作を確認します。
ラズパイに外部USBメモリやHDDをマウント
USBメモリやHDDをexFATでフォーマット、ラズパイに接続
## デバイスのUUIDを確認
sudo blkid /dev/sda1
## デバイスのUUIDを確認
sudo blkid /dev/sda1
UUID=”XXXX-XXXX” をメモ
## マウントポイントを作成
sudo mkdir -p /mnt/usbdisk
## piに所有権付与
sudo chown pi.pi /mnt/usbdisk
## マウント
sudo apt-get install exfat-fuse
sudo fdisk -l
sudo mount /dev/sda1 /mnt/usbdisk
sudo chown pi.pi /mnt/usbdisk
## 自動マウント
sudo vim /etc/fstab
## 末尾にデバイスのUUIDを追加
UUID=<strong>XXXX-XXXX</strong> /mnt/usbdisk exfat nofail 0 0
ラズパイにNASのフォルダをマウント
先にNASのSamba をオンにしておきましょう。
## マウントポイント作成
sudo mkdir -p /mnt/nas
## piに所有権付与
sudo chown pi.pi /mnt/nas
## 自動マウント設定
sudo vim /etc/fstab
## 末尾に以下を追加 (自分の環境に合わせてください)
//192.168.xxx.xxx/【保存先パス】 /mnt/nas/ cifs username=【ユーザー名】,password=【パスワード】,uid=1000,gid=1000 0 0
ラズパイにSambaをインストール
Windows からアクセスできるようにSambaをインストールしておきます。
sudo apt-get install samba
sudo vim /etc/samba/smb.conf
## 末尾に追加 (pathは環境に合わせてください)
[epgstation]
comment = EPGStation path = /mnt/usbdisk guest ok = yes read only = no browsable = yes force user = pi ## samba再起動 sudo service smbd restart
これでWindowsのネットワークから見えるようになると思います。
Windows とAmatsukazeの設定
EPGStation の録画フォルダをWindowsのドライブに割り当て
Windows の「PC > ネットワーク > コンピューター」にラズパイの先ほど設定したフォルダが表示されるので、右クリックしてドライブの割当をします。
ドライブレターはなんでもOKです。
NAS の共有フォルダをドライブ割当
同様にNASの保存先となるフォルダを探してドライブに割り当てておきます。
Amatsukaze の設定
Amatsukaze をダウンロードして適当な場所に展開
「amatsukaze/exe_files」内の2つのファイルをコピー
- AmatsukazeAddTask.exe
- AmatsukazeServer.dll
ラズパイに 「/home/pi/EPGStation/exe」 などディレクトリを作成して中にこの2つのファイルを入れておきます。SFTPソフトはFilezillaやCyberduckなどを使うといいと思います。
Amatsukazeのエンコード設定
CMカットとエンコードをここを参考に設定、プロファイルを作成します。
私の場合はエンコード+CMカットのmp4保存、CMカット+ts保存のプロファイルを作成しました。
Amatsukaze Server は自動エンコードに必要なので「AmatsukazeServer.vbs」をスタートアップに入れておきましょう。
EPGStaion にエンコード用のスクリプトを作成
ラズパイに mono をインストール
sudo apt install mono-devel
Amatsukazeと連携させるスクリプトです。【プロファイル名】はAmatsukazeで作成したプロファイル名を入力してください。【】の部分は不要です。
2つの中身は同じなので自分の好きなように設定してください。
#!/bin/sh
/usr/bin/mono /home/pi/EPGStation/exe/AmatsukazeAddTask.exe -r "C:【Amatsukazeのパス】Amatsukaze" -f "${INPUT}" -ip "【Windows機のIPアドレス】" -p 32768 -o "Z:【NASの保存先】" --remote-dir "X:【ラズパイの保存先】" -s "【プロファイル名】" --priority 3 --no-move
exit 0
このスクリプトを /home/pi/EPGStation/profiles など適当なフォルダに置きます。
## 実行権付与
sudo chmod +x /home/pi/EPGStation/profiles/mp4_cmcut.sh
sudo chmod +x /home/pi/EPGStation/profiles/ts_cmcut.sh
EPGStationのconfig.jsonを編集
最後に EPGStation の設定ファイル config.jsonを編集します。
場所は「/home/pi/EPGStation/config.config.json」です。
## encode に追加または置き換え
"encode": [
{
"name": "H264_CMCut",
"cmd": "/bin/bash /home/pi/EPGStation/profiles/mp4_cmcut.sh mp4",
"suffix": ".mp4",
"default": true
},
{
"name": "TS_CMCut",
"cmd": "/bin/bash /home/pi/EPGStation/profiles/ts_cmcut.sh ts",
"suffix": ".ts"
}
],
default: true にしておくとこれがデフォルトの録画プロファイルになります。
以上で、Raspberry Pi + Amatsukaze の自動エンコード環境は構築完了です。おつかれさまでした。
参考にさせていただいたサイト
Raspberry Pi 3 Model B+で地デジ録画サーバー(EPGStation編)