Raspberry Pi に EPGStation でTV録画してAmatsukazeで自動CMカットエンコード

6 min
EPGStation録画

Raspberry Pi 3B が手元にあったのでかんたんな録画サーバーを構築してみました。

EPGStation は録画管理ソフトで 無料で提供されているものですが、スマホなどからリアルタイム視聴ができたり録画予約機能など使い勝手が優れています。他にChinachu というソフトもありますよ。

今回の構成

録画環境

録画に使用するもの

  • ラズパイ本体
  • 地デジチューナー
  • Windows PC
  • NAS

ラズパイ (録画) > Windows PC (自動エンコード) > NAS (保存・再生)

まずラズパイで録画したファイルは一旦、ラズパイのMicroSDカードや接続したUSBメモリに保存されます。

録画後にスクリプトを通してWindows でCMカットとエンコードを自動で行います。

エンコードしたファイルは NAS に保存されるのでどこでも再生が可能です。

ちなみに自動エンコードさせるにはWindows PCは常時可動させておく必要があります。私の場合は ファンレスPC のVMWare ESXi 上に Windows10をインストールしています。

VMWare ESXi などを使うと全ての工程をPC一台で完結させることも可能です。

Ubuntu + EPGStation(録画) > Windows10(エンコード) > NAS (配信)

ESXi の場合 .vmxファイルに

usb.generic.allowCCID = “TRUE”

と記述することでカードリーダーが認識されました。

「設定の編集 > 仮想マシンオプション > 詳細 > 構成パラメータ」

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
XCY

メモリ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/ にアクセスして動作を確認します。

EPGStation

ラズパイに外部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などを使うといいと思います。

exeとdll

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編)

EPGStation と Amatsukaze を連動させる。

AmatsukazeでTS全自動エンコード

関連記事