録画サーバーを建てた で購入したサーバー機に、Ubuntu Server 18.04 LTSを入れて録画サーバーにした話。
BIOSの設定
SATA Mode
をRAID Mode
からAHCI Mode
に変更。
Power Failure Recovery
をPrevious 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.json
のhost
とwebhookURL
を環境に合わせて書く。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>
はEPGS-to-Discordのフルパス
こんな感じに飛んできます。
エンコード結果がおかしい
VAAPIでエンコードしたら、出力結果が酷い。なんだこれ。発生するのはすべてのチャンネルでなく、BSの一部のチャンネルのみ。調べるとBS再編の影響(エンコーダのMPEG2AD化)らしい。ffmpegでhwaccelを使うのをやめると回避できる問題だったので、とりあえず特定のチャンネルの放送を録画したものはhwaccelを使わずにエンコードすることに。
速度は落ちたけど結果は正常なものになりました。CPUがCeleronなので、なんとかしたい問題です。
なんとかなりました。録画鯖で発生していたエンコ時のブロックノイズ問題が解決した