前回に引き続き、録画サーバー機能の構築を行っていく。
今度は Chinachu と EPGStation を導入する。
Chinchu
Mirakurun同様、本家に丁寧なインストラクションがある。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ git clone git://github.com/Chinachu/Chinachu.git $ ./chinachu installer Auto を選択 $ cp config.sample.json config.json ... $ echo [] > rules.json #動作確認 $ ./chinachu service wui execute $ ./chinachu update #サービス登録 $ sudo pm2 start processes.json $ sudo pm2 save |
以前は Ubuntu なら sytemctl で登録, service で操作してたようなきがしますが、
今は Chinachu も pm2 で管理されるようになったんですね。
旧環境からの引き継ぎ
旧環境の jsonファイルをコピーする。
私は、録画済み番組情報については data/recorded.json を物理コピー、
予約ルール(rules.json) については、数が少ないので念の為手動で WebUI から入れ直した。
既存の録画ファイルは同じ場所に見えるようにしてやれば、新環境のUI から同様に扱うことができる。
WebUIを介したネットワーク越しの視聴
WebUI からのライブ視聴や録画済み番組の視聴について、
ffmpeg のコマンドは旧環境と同一にみえるのに CPU負荷が激増していた。
- 旧環境: 〜100% @G1610 (2C2T)
- 新環境: 〜200% @G5420 (2C4T)
こんなに負荷が高かったら、旧環境時代で使えているはずがない。
CPUのスペックを考慮するとおおよそ4倍程度の計算負荷に相当する。
リアルタイムに間に合う限界までCPU負荷を割いてエンコードする仕様???
この時は原因がわからなかったので、別途対処することにした。
⇒ (EPGStationと共に) iGPU でハードウェアエンコードするようにしました。
EPGStation
前述したように、EPGStation は (rootless) docker 上で動かす。
docker, docker-compose の導入については割愛。
本家で公開している (Mirakurun +) EPGStation の dockerコンテナを利用する。
こちらも基本的には本家の手順に則るが、Mirakurun 関連は除外する。
1 2 3 4 5 6 7 8 9 |
$ git clone https://github.com/l3tnun/docker-mirakurun-epgstation.git (rename to epgstation) $ cp -a docker-compose-sample.yml docker-compose.yml mirakurun の項, epgstation-depends_on: mirakurun の削除 $ cp -a epgstation/config/config.sample.json epgstation/config/config.json "mirakurunPath": "http://[ipaddress]:[port]/" $ docker-compose pull $ docker-compose build # ffmpeg のビルドが始まるので結構掛かる $ docker-compose up (-d) |
その他、以下を行った(任意)
- recorded がストレージの当該箇所を指すようにした
- config.json:
"recordedFormat", "basicAuth", "delts", "xxxPrioirty" ... - data/streamfiles, upload として /var/tmp を渡すように docker-compose.yml を変更
デフォルトでは、ブラウザからポート8888 にアクセスすればよい。
なお、ブラウザ上での動画ストリーミングなどのデータは、
初期値では「アクセスポート+1」へ流されるようになっているので、
ポートを閉じたり開いたりする人は、こちらも通す設定にする必要がある。
ハードウェアエンコード
Chinachu と同様、iGPU によるハードウェアエンコードするようにしました。
(ライブ視聴, 録画済み視聴, HLS視聴, 録画後のトランスコードなど全て)
⇒ 次回はハードウェアエンコードの準備編です。