録画サーバーを建てた で購入したサーバー機に、Ubuntu Server 18.04 LTSを入れて録画サーバーにした話。

BIOSの設定

SATA ModeRAID ModeからAHCI Modeに変更。

Power Failure RecoveryPrevious StateからDisabledに変更。

Ubuntu Server 18.04 LTS

タイトルに書いてある通りOSはUbuntuを選択。特にこだわりはなく、単に一番多く使ったことがあるLinuxだからというだけです。Azure for Microsoft Imagine(Microsoft Imagine)からWindows Server 2016を貰ってインストールする手もありますが、面倒くさそうだったのでやめました。Linuxで不自由は無いはず。

が、Ubuntuのインストール中にネットワーク設定のところで止まってしまい、先に進めない。どうやらubuntu-18.04.1.0-live-serverのISOだとオンライン環境が必要らしい。ubuntu-18.04.1-serverのISOでインストールをやり直したところ問題なく終わりました。

Install 18.04 server without network connection

ドライバ

チューナーはPX-W3PE4なので、PLEX社のサイトからUbuntu18.04向けのものをダウンロードしてインストール。

が、このドライバをインストールしたあとでchecksignalを実行しても常にNo Signal!で受信ができない。

原因はよく分かりませんが、非公式ドライバに切り替えたら受信できるようになりました。kernelの制限などを受けないので、非公式の方が良いのかもしれないです。知らんけど。

ffmpeg

Kaby LakeなCeleronなので、Intel Media Server Studio 2018 R2を使ったQSVエンコードは使えません。Media Server Studioを使ったエンコードには及ばないものの、VAAPIを使えばQSVエンコードが可能らしい。Ubuntu 18.04 LTS QSVエンコード 成功?編を参考にインストール。一度失敗したけど最初からやり直したらうまく使えました。

Mirakurun

このサイトを参考にインストールしました。PX-W3PE4に非公式ドライバを使っているので、その辺りを多少読み替えつつ作業しましたが、特に問題は起きなかった…ハズ。

EPGStaion

最初はChinachuを使うつもりでしたが、EPGStationのほうがスマホで使いやすいらしい。視聴はPCでも予約はスマホからやることが多いと思ったので、EPGStationを使ってみることにしました。

公式のインストールマニュアルを参考にインストール。DBは推奨になっていたMySQLを使用。DBの文字コードをUTF-8にするのを忘れて時間を潰した…

EPGS-to-Discord

EPGStationの状態をDiscordに飛ばすやつです。予約の追加、録画開始、録画終了を知らせてくれる。録画終了時にはドロップが発生したかどうかも教えてくれます。

使い方が書いてなかったのでメモ。

1
2
3
4
$ git clone https://github.com/advancedbear/EPGS-to-Discord.git
$ cd EPGS-to-Discord
$ npm install
$ cp config.json.sample config.json

config.jsonhostwebhookURLを環境に合わせて書く。Webhook URLはIntro to Webhooksを参考に取得。

EPGStationのconfig.jsonの編集

1
2
3
4
"isEnabledDropCheck": true,
"reservationAddedCommand": "/usr/bin/node <EPGS-to-Discord>/index.js reserve",
"recordedStartCommand": "/usr/bin/node <EPGS-to-Discord>/index.js start",
"recordedEndCommand":"/usr/bin/node <EPGS-to-Discord>/index.js end",

はEPGS-to-Discordのフルパス

こんな感じに飛んできます。

エンコード結果がおかしい

VAAPIでエンコードしたら、出力結果が酷い。なんだこれ。発生するのはすべてのチャンネルでなく、BSの一部のチャンネルのみ。調べるとBS再編の影響(エンコーダのMPEG2AD化)らしい。ffmpegでhwaccelを使うのをやめると回避できる問題だったので、とりあえず特定のチャンネルの放送を録画したものはhwaccelを使わずにエンコードすることに。

速度は落ちたけど結果は正常なものになりました。CPUがCeleronなので、なんとかしたい問題です。