2020年版自宅録画サーバーの準備
目次
(2021年9月2日追記)
簡単にインストールする方法を公開
(2020年03月08日追記)「2020年版 デジタル放送録画の圧縮を最適化するFFmpegの使い方」について紹介。 FFmpegのパラメータを決める際に参考にしてください。
そろそろ2020年が近くなり、自宅録画サーバーも新しいバージョンを検討している。
2019年にあった出来事
2019年にあった変化として、以下の項目がある。
- Intelは、Media Server Studioを終了し、Media-SDKをオープンソースとした。(2019年7月8日)
- CentOSがバージョンアップした。
2018年12月03日 7.6-1810
2019年09月17日 7.7-1908
2019年09月24日 8.0-1905 - 第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 V1 | 1 | Thermaltake | ¥4,489 |
2 | 電源 | KRPW-L5-400W/80+ | 1 | 玄人志向 | ¥2,948 |
3 | マザーボード | ROG STRIX H370-I GAMING | 1 | ASUS | ¥15,588 |
4 | CPU | i3-8100 | 1 | intel | ¥17,977 |
5 | メモリ | DDR4 PC4-19200 4GB | 2 | CFD | ¥5,686 |
6 | チューナーカード | PX-W3PE4 | 1 | PLEX | ¥11,321 |
7 | SSD(240GB) | CSSD-S6B240CG3VX | 1 | CFD | ¥3,111 |
8 | HDD(4TB) | ST4000DM004 | 1 | Seagate | ¥7,979 |
9 | カードリーダー | SCR3310/v2.0 | 1 | SCR | ¥1,880 |
合計 | ¥70,979 |
Mini-ITXのマザーボードで、第8世代CPU(i3-8100)を動かす。
※マザーボードの注意点
「ROG STRIX H370-I GAMING」は、なぜか有線LAN端子が2つある。
一つはIntel、もう一つは、Realtek。またWiFiもある。
適当にインストールすると、3つとも動作することがある。
しかし、安定しない時があったので、最終的にはIntelだけを利用している。
裏のパネルを見ている状態で、右側のLAN端子である。
ケースは小さい。
ケース正面
バックパネル
ケース側面
ケース上面
2020年版自宅録画サーバーのソフトウェア
以下の構成が無難だろう。
項目 | 名前 | 備考 |
---|---|---|
OS | CentOS | 7.6(Gnome Desktop) |
ffmpeg、qsv | Media-SDK | 準備中 |
前準備 | セキュリティ、カードリーダ | |
チューナードライバ | 非公式ドライバ | |
録画ディスク設定 | ||
録画制御 | mirakurun | |
録画予約 | epgstation | ブラウザから利用 |
サーバー監視 | munin | ブラウザから利用 |
ファイルサービス | samba | Windowsから利用 |
リモートデスクトップ | xrdp | Windowsから利用 |
録画視聴 | 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 |
---|---|---|---|---|
NHK | 3.55M | 2.56M | 1.58M | 0.92M |
テレビ朝日 | 3.4M | 2.7M | 1.04M | 0.75M |
NHKBSプレミアム | 5.09M | 4.4M | 2.72M | 2.3M |
想定以上に良い結果が出た。ポイントは、2つ。
- 平均圧縮率 crf=23 preset=veryfastで地上波もBSも25%以下。
局名 圧縮後のファイルサイズ
(1時間あたり)サンプル数 テレビ朝日 1.46GB 213 NHK 1.66GB 192 BSプレミアム 2.24GB 260 - 平均圧縮速度 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でトランスコードする際の懸念事項は、以下のとおりである。
- TSからmp4への平均圧縮率は25%以下だが、50%を超えるmp4も存在する。
圧縮後のビットレートは、地上波で1~12Mbps、BSで1~14Mbps。ビットレートが8Mbps以上になるとmp4のファイルサイズは、元のTSのファイルサイズの50%を超えてくる。 - 圧縮後のビットレートが高い番組は、圧縮速度も遅くなる。
ビットレートが10Mbps以上になると、圧縮速度が2倍まで落ちてくる。
コメントを残す