2020年版自宅録画サーバーの準備

(2021年9月2日追記)
簡単にインストールする方法を公開
(2020年03月08日追記)2020年版 デジタル放送録画の圧縮を最適化するFFmpegの使い方」について紹介。
FFmpegのパラメータを決める際に参考にしてください。

そろそろ2020年が近くなり、自宅録画サーバーも新しいバージョンを検討している。

2019年にあった出来事

2019年にあった変化として、以下の項目がある。

  1. Intelは、Media Server Studioを終了し、Media-SDKをオープンソースとした。(2019年7月8日)
  2. CentOSがバージョンアップした。
    2018年12月03日 7.6-1810
    2019年09月17日 7.7-1908
    2019年09月24日 8.0-1905
  3. 第9世代Intel Coreが発売された。(2018年10月~)

このような状況を踏まえて、2020年の自宅録画サーバーについて考えてみた。

2020年版自宅録画サーバーの考え方

CPUや周辺チップの性能向上があり、Intel QSVもオープンソースになったので、以下の構成を考えた。
(1)第8世代Intel Coreを使う。
(2)CentOSは、7.6を使う。
(3)とりあえず、libx264のCRFモードを使い、Media-SDKを第8世代Intel Coreで動かせるよう努力する。

まず、第8世代CPU(i3-8100)で作って性能を測定した。

2020年版自宅録画サーバーのハードウェア

以下の部品を集めて組み立てた。

No.カテゴリ品名個数メーカー税込価格
Amazon
2019年11月26日現在
1ケースCore V11Thermaltake¥4,489
2電源KRPW-L5-400W/80+1玄人志向¥2,948
3マザーボードROG STRIX H370-I GAMING1ASUS¥15,588
4CPUi3-8100
1intel¥17,977
5メモリDDR4 PC4-19200 4GB2CFD¥5,686
6チューナーカードPX-W3PE4
1PLEX¥11,321
7SSD(240GB)CSSD-S6B240CG3VX1CFD¥3,111
8HDD(4TB)ST4000DM0041Seagate¥7,979
9カードリーダーSCR3310/v2.01SCR¥1,880
合計¥70,979

Mini-ITXのマザーボードで、第8世代CPU(i3-8100)を動かす。

※マザーボードの注意点
「ROG STRIX H370-I GAMING」は、なぜか有線LAN端子が2つある。
一つはIntel、もう一つは、Realtek。またWiFiもある。
適当にインストールすると、3つとも動作することがある。
しかし、安定しない時があったので、最終的にはIntelだけを利用している。
裏のパネルを見ている状態で、右側のLAN端子である。

ケースは小さい。

ケース正面

 

バックパネル

ケース側面

ケース上面

2020年版自宅録画サーバーのソフトウェア

以下の構成が無難だろう。

項目名前備考
OSCentOS7.6(Gnome Desktop)
ffmpeg、qsvMedia-SDK準備中
前準備セキュリティ、カードリーダ
チューナードライバ非公式ドライバ
録画ディスク設定
録画制御mirakurun
録画予約epgstationブラウザから利用
サーバー監視muninブラウザから利用
ファイルサービスsambaWindowsから利用
リモートデスクトップxrdpWindowsから利用
録画視聴plex media serverブラウザから利用

QSVはまだ使えないので、libx264でトランスコード性能を測定する。
QSVでは、CRFモードが使えず固定量子化モードを選択したが、libx264を使うに当たりCRFモードを使ってみた。

EPGStationのconfigの設定は、以下のとおり。

{
"readOnlyOnce": false,
"serverPort": "8888",
"mirakurunPath": "http+unix://%2Fvar%2Frun%2Fmirakurun.sock/",
"dbType": "mysql",
"mysql": {
"host": "localhost",
"port": 3306,
"user": "epgstation",
"password": "mirakurun",
"database": "epgstation",
"connectTimeout": 20000,
"connectionLimit": 10
},
"ffmpeg": "/usr/local/bin/ffmpeg",
"ffprobe": "/usr/local/bin/ffprobe",

"recorded": "/mnt/data1",
"recordedTSDefaultDirectory": "/tv/",
"recordedEncodeDefaultDirectory": "/temp/",
"recordedFormat": "%TITLE%_%YEAR%-%MONTH%-%DAY%",

"maxEncode": 1,

"encode": [
{
"name": "crf23",
"cmd": "/bin/bash %ROOT%/config/enc-libx-crf23.sh",
"suffix": "-crf23.mp4",
"default": true
},
{
"name": "crf24",
"cmd": "/bin/bash %ROOT%/config/enc-libx-crf24.sh",
"suffix": "-crf24.mp4"
}
],

"recordedViewer": {

同じconfigフォルダに入れるエンコード用シェルスクリプトは、以下の2つ。
(2020年7月3日追記 パラメータで-vf yadifは必要ないようだ。これを除くといくらか速くなる。)
enc-libx-crf23.sh

#!/bin/bash

eval `$FFMPEG -i "$INPUT" -vf yadif -preset veryfast -c:v libx264 -crf 23 -f mp4 -c:a aac -strict -2 -ar 48000 -ab 192k -ac 2 -loglevel error "$OUTPUT"`

enc-libx-crf24.sh

#!/bin/bash

eval `$FFMPEG -i "$INPUT" -vf yadif -preset veryfast -c:v libx264 -crf 24 -f mp4 -c:a aac -strict -2 -ar 48000 -ab 192k -ac 2 -loglevel error "$OUTPUT"`

2020年版自宅録画サーバーの性能

実際に録画を行って評価した結果は、以下のとおり。

項目名平均ビットレート
crf=23
平均ビットレート
crf=24
標準偏差
crf=23
標準偏差
crf=24
NHK3.55M2.56M1.58M0.92M
テレビ朝日3.4M2.7M1.04M0.75M
NHKBSプレミアム5.09M4.4M2.72M2.3M

想定以上に良い結果が出た。ポイントは、2つ。

  1. 平均圧縮率 crf=23 preset=veryfastで地上波もBSも25%以下。
    局名圧縮後のファイルサイズ
    (1時間あたり)
    サンプル数
    テレビ朝日1.46GB213
    NHK1.66GB192
    BSプレミアム2.24GB260
  2. 平均圧縮速度 crf=23 preset=veryfastで3倍程度

3チャンネル同時録画でcrf=23で1週間行ったが、トランスコードはいくらか溜まることはあっても、処理に破綻はなかった。
1週間で、テレ朝213番組、NHK192番組、BSプレミアム260番組、合計665番組程度録画し、トランスコードする能力があった。

上記のグラフはmuninで測定したCPU稼働率である。
8月後半の1週間3チャンネルの録画を行うと、4コアで400%のうち、system 20%、user 180%、nice 150%となっている。

Intel QSVを使わないでも、1日30番組で1週間210番組ならば、余裕で使えそうだ。

以下、実際の録画結果を説明する。

テレビ朝日

テレビ朝日のCRF=23の結果は以下の通り。

項目名
データ数213
平均3.4Mbps
標準偏差1.05Mbps

NHK

NHKのCRF=23の結果は以下の通り。

項目名
データ数192
平均3.55Mbps
標準偏差1.58Mbps

BSプレミアム

BSプレミアムのCRF=23の結果は以下の通り。

項目名
データ数260
平均5.09Mbps
標準偏差2.72Mbps

2020年版自宅録画サーバーのまとめ

今回組み立てた2020年版のハードウェアとソフトウェアで十分な機能と品質を持っている。

今までIntel QSVを使ってきた。

これを使う理由は、第6世代CPUではHD(1920×1080,1440×1080)をmp4にトランスコードする時、圧縮速度が2倍以下だったことである。つまり、1時間の番組を1時間でトランスコードするのでは、遅すぎる。

しかし、今回第8世代CPUを使ってみて、HD(1920×1080,1440×1080)をmp4にトランスコードする性能は、平均で3倍程度あった。これならば、Intel QSVを使わなくても十分な性能があり、しかも画質はCRFモードの方が良い可能性がある。

CRFモード23でトランスコードする際の懸念事項は、以下のとおりである。

  1. TSからmp4への平均圧縮率は25%以下だが、50%を超えるmp4も存在する。
    圧縮後のビットレートは、地上波で1~12Mbps、BSで1~14Mbps。ビットレートが8Mbps以上になるとmp4のファイルサイズは、元のTSのファイルサイズの50%を超えてくる。
  2. 圧縮後のビットレートが高い番組は、圧縮速度も遅くなる。
    ビットレートが10Mbps以上になると、圧縮速度が2倍まで落ちてくる。
2019年12月01日 | Posted in 電脳:録画サーバー | タグ: , , , No Comments » 

関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください