2018年版 CentOS 7.4 「Chinachu γ + Plex」の構築ポイント

(2019年1月21日修正)内容を修正しました。
以下の項目を一番最後に移動。途中でインストールすると、ローカルでデスクトップが開かないという状態になり、修復できなかったため。
・ リモートデスクトップのインストール
(2018年10月5日追記)内容を更新しました。

・ CentOS 7.4 のSDメモリーカードによるインストール 
・ リモートデスクトップのインストール
・ CentOS 7.4 に対応したシェルスクリプト
・ サーバー監視用にmuninのインストール 
(2018年8月1日追記)Linuxサーバー構築の成功の秘訣は、枯れた技術を使うこと。

新しいパーツやソフトがリリースされても、すぐには使わないこと。これに尽きる。
Windows10の場合は、逆に「最新のパーツを使え」と言いたい。IntelもASUSも最初はWindows10しか頭の中にない。

2015年9月 「Intel Core i5-6500」「ASUS H170M-PLUS」
2017年8月 「CentOS 7.4(1708)」
2018年4月 「Intel Media Server Studio 2018 R1」

第6世代CPUがリリースされてから、実に2年半もかかっている。

CentOS 7.4と第6世代Intel Coreを使う理由

CentOS 7.4にインストール。CentOS 7.4を選ぶ理由は、Intel Quick Sync Videoを使うためである。現在公開されている最新版Intel Media Server Studio 2018 R1が、CentOS 7.4対応。

Intel Quick Sync Videoを使えば、i3-6100やi5-6500などの第6世代Intel Core CPUで、6倍速以上のトランスコードが可能。つまり、1時間の録画データ7.2GB(tsファイル)を10分で1.8GBのmp4に変換できる。

録画サーバーに求める機能は、「安定稼働」

私は、録画サーバーを日用品のように使っている。1台のサーバーで、1週間に100番組ほどの録画を行っている。したがって、録画サーバーに求めることはただ一つ、「安定稼働」である。

私が考える、録画サーバーの「安定稼働」対策は2つある。

  1. HDD温度が50℃を越えないようにする。
    使用しているHDDの動作温度は、0℃~60℃となっている。しかし、HDD温度が50℃を越える状態が続くとトラブルになることを経験的に知っている。対策としては、HDDの間隔を空けて設置し、冷却ファンで十分風を送ることである。
  2. CPUの100%稼働時間をできるだけ短くする。
    トランスコード時は100%になることが多い。これが継続するとケース内温度が高い状態になり、トラブルになることを経験的に知っている。対策としては、できるだけトランスコード時間を短くすること、つまりIntel Quick Sync Videoを使うことである。

最低気温が30℃以上の夜を「超熱帯夜」というらしい。今年は熱帯夜が10日以上、超熱帯夜もあったかもしれない。上記の対策を行わなければ、間違いなくトラブルになる。

構築手順

CentOS 7.4で、「Chinachu γ + plex + qsv」をインストールする手順は、以下の通りである。

  1. 録画サーバーのパーツを集めて、組み立てる。
  2. CentOS 7.4のGnome Desktopをインストールする。
  3. Intel Media Server Studio 2018 R1をインストールする。
  4. 録画サーバー構築の前準備
  5. 録画実行用Mirakurunのインストール
  6. 録画予約用Chinachu γのインストール
  7. 録画再生用plex media serverのインストール
  8. サーバー監視用munin-nodeのインストール
  9. リモートデスクトップをインストールする。

時間は、半日~1日かかる。

しかも、パーツの違いやソフトのアップデートの状況によって、様々なトラブルが発生して、中断することもある。

しかし、できてしまえば、これほど便利なものはないので、挑戦する価値は十分にある。

構築ポイント:録画サーバーのパーツ

  • 2018年版 Chinachu γ + Plex サーバーのハードウェア(2)
    上記の情報を参考に、パーツを集めてほしい。
    2018年10月現在集められるパーツで組み立て、コストパフォーマンスを最適化した結果は、以下を参照。
    2018年版最適化 CentOS 7.4 「chinachu + plex + PLEX社製TVチューナー」
  • CPUは、i3-6100かi5-6500
    qsvでおよそ8倍速を実現するために、第6世代4スレッドのCPUが必要。
    i3-6100は、2コア4スレッド。
    i5-6500は、4コア4スレッド。
    Pentium G4500は、2コア2スレッドのため、およそ4倍速6倍速になる。
  • マザーは、ASUS H170M-PLUS
    Windows以外で使う場合、ASUSが無難で間違いない。BIOSは、2018/6/1リリースのversion 3805にアップデートした方が良い。
  • メモリは、DDR4-2133MHz以上の4GBが2枚で十分。
  • PT3を使えば問題なし。
    PX-W3PE4、PX-Q3PE4は、問題あり。(BSジャパンが録画できない。CPU負荷が高いとき、BS録画にブロックノイズ発生。)

構築ポイント:CentOS 7.4のインストール

  • CentOS 7.4のインストールは、DVDドライブより、SDメモリーカードを使うのがおすすめ。以下を参考にインストールできる。
    2018年版 CentOS 7.4 SDメモリーカードを使ってインストール
  • Gnome Desktopのインストールがおすすめ
    オプションも「カードリーダー」以外全部選択で良い。エディタgeditが使えるのが便利。特にrootで端末からgeditを使えば簡単に編集できる。
  • CentOS 7.4インストール後、Intel Media Server Studio 2018 R1をインストールするまでは、「yum update」などは絶対にしないこと。

構築ポイント:Intel Media Server Studio 2018 R1のインストール

  • Intel Media Server Studio 2018 R1 と FFmpegと Linux (CentOS 7.4 1708) で QSV (Quick Sync Video)
    上記のサイトの通りにインストールすれば、問題ない。
  • インストール後、画面の解像度が1024×768になることがある。
    ブート時のメニューを観ると、2つある。選択しないと一番上で起動する。下で起動して問題がなければ、自動的に下で起動するように変更することは可能である。

    以下のコマンドを実行する。

    $ sudo grub2-set-default 1

    元に戻すときは、以下のコマンドで、一番上のメニューを実行に戻せる。

    $ sudo grub2-set-default 0
  • Intel Media Server Studio 2018 R1インストール後に、qsv対応ffmpegでトランスコードを行った。
    以下は、i5-6500でトランスコードした結果で、speed=8.71xとなっている。

    frame= 102 fps=0.0 q=-0.0 size= 0kB time=00:00:04.37 bitrate= 0.1kbits/
    frame= 201 fps=200 q=-0.0 size= 768kB time=00:00:08.49 bitrate= 741.0kbits/
    frame= 312 fps=207 q=-0.0 size= 1280kB time=00:00:13.09 bitrate= 800.6kbits/
    frame= 419 fps=209 q=-0.0 size= 2048kB time=00:00:17.60 bitrate= 953.3kbits/
    frame= 528 fps=211 q=-0.0 size= 2560kB time=00:00:22.14 bitrate= 947.1kbits/
    frame= 631 fps=210 q=-0.0 size= 3328kB time=00:00:26.38 bitrate=1033.1kbits/
    frame= 732 fps=209 q=-0.0 size= 3840kB time=00:00:30.59 bitrate=1028.3kbits/
    frame= 834 fps=208 q=-0.0 size= 4352kB time=00:00:34.85 bitrate=1022.8kbits/
    frame= 937 fps=208 q=-0.0 size= 4864kB time=00:00:39.14 bitrate=1017.9kbits/
    frame= 1048 fps=209 q=-0.0 size= 5632kB time=00:00:43.77 bitrate=1054.0kbits/
    frame= 1168 fps=212 q=-0.0 size= 6144kB time=00:00:48.78 bitrate=1031.6kbits/
    frame= 1253 fps=209 q=-0.0 Lsize= 6969kB time=00:00:52.12 bitrate=1095.3kbits/s
    speed=8.71x
    video:6119kB audio:817kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.479437%

    以下は、i3-6100でトランスコードした結果で、speed=7.83xとなっている。

    frame=   84 fps=0.0 q=-0.0 size= 0kB time=00:00:03.60 bitrate= 0.1kbits/
    frame=  170 fps=169 q=-0.0 size=   512kB time=00:00:07.18 bitrate= 583.5kbits/
    frame=  269 fps=178 q=-0.0 size= 1280kB time=00:00:11.32 bitrate= 925.7kbits/
    frame=  363 fps=180 q=-0.0 size= 1536kB time=00:00:15.23 bitrate= 826.1kbits/
    frame=  459 fps=183 q=-0.0 size= 2304kB time=00:00:19.24 bitrate= 980.9kbits/
    frame=  554 fps=184 q=-0.0 size= 2816kB time=00:00:23.18 bitrate= 994.8kbits/
    frame=  645 fps=183 q=-0.0 size= 3328kB time=00:00:26.96 bitrate=1011.1kbits/
    frame=  742 fps=184 q=-0.0 size= 3840kB time=00:00:31.04 bitrate=1013.5kbits/
    frame=  839 fps=185 q=-0.0 size= 4352kB time=00:00:35.05 bitrate=1017.2kbits/
    frame=  928 fps=185 q=-0.0 size= 4864kB time=00:00:38.80 bitrate=1026.8kbits/
    frame= 1026 fps=186 q=-0.0 size= 5376kB time=00:00:42.85 bitrate=1027.6kbits/
    frame= 1135 fps=188 q=-0.0 size= 6144kB time=00:00:47.38 bitrate=1062.3kbits/
    frame= 1252 fps=192 q=-0.0 size= 6656kB time=00:00:51.90 bitrate=1050.5kbits/
    frame= 1253 fps=188 q=-0.0 Lsize= 6969kB time=00:00:52.12 bitrate=1095.3kbits/s
    speed=7.83x    
    video:6119kB audio:817kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.479437%

 

構築ポイント:録画サーバー構築の前準備

  • 録画サーバ構築の前準備(CentOS 7編)、Chinachu・epgrec UNA対応
    上記のサイトに従ってインストールすれば問題ない。
    カードリーダー、PT3のドライバがインストールできる。
  • PT3は現在販売されていないので、今後はPLEX社製TVチューナーを使うことになる。
    PLEX社製TVチューナーをLinuxで使用する方法(Ubuntu・Debian・CentOS)
    私がインストールして1つだけ解消しない問題がある。「BSテレ東」だけ受信できない。
  • 大きなトラブルが一つ発生。PT3のドライバがインストールできないという問題。
    これは、BIOSで「セキュアブート」の設定が違うと、インストールできないので要注意。

    「非UEFIモード」に設定しないと、PT3ドライバはインストールされません。

構築ポイント:録画実行用Mirakurunのインストール

  • Mirakurunのインストール手順(Ubuntu・Debian・CentOS)
    上記のサイトに従ってインストールすれば問題ない。
  • pm2のバージョン制限がある。
    pm2のバージョンが3以上だとインストールが完了しない。
    以下のコマンドで2.10.4をインストールすればいいようだ。

    $ sudo npm install pm2@2.10.4
  • channelsは、BSジャパン(BS01_2)、NHKBSプレミアム(BS03_1)は、変わっているので再度チェック。

構築ポイント:録画予約用Chinachu γインストール

  • Chinachu γ(ガンマ) インストール手順(CentOS 7編)
    上記サイトに従ってインストールすれば問題ない。
  • 最近githubが遅い。気長に待つ必要がある。
  • エラーでインストールが中断することがある。
    nodemailer@2.7.2は、インストールできないというメッセージがでる。

    npm install nodemailer@4.0.1

    上記を実行して、再度メニューの途中からインストールすれば、なんとか完了する。

  • 2018年版 CentOS 7.4「Chinachu γ + Plex」 用シェルスクリプト
    最後に上記の内容を参考に、トランスコード用のスクリプトを設置する。
    トランスコードした結果のログは以下のとおり。

    ----------------------エンコードコマンド------------------
    ./usr/bin/ffmpeg-qsv -y -i "./tv/BS世界のドキュメンタリー「ダグマ~自爆テロへのボタン~」[二][字][180802-0000][BS15_0].ts" -vcodec h264_qsv -b:v 4M -maxrate 8M -init_hw_device qsv:hw -acodec aac -loglevel error "./documentary/BS世界のドキュメンタリー「ダグマ~自爆テロへのボタン~」[二][字][180802-0000][BS15_0].mp4"
    
    ----------------------エンコード開始----------------------
    [mpeg2video @ 0x28d0120] Invalid frame dimensions 0x0.
        Last message repeated 13 times
    [mpeg2video @ 0x29389a0] ac-tex damaged at 57 13
    [aac @ 0x28b3560] decode_band_types: Input buffer exhausted before END element found
    Error while decoding stream #0:1: Invalid data found when processing input
    
    ----------------------エンコード情報-----------------------
    処理時間 =  323 秒 0時間5分23秒
    録画時間 =  3004 秒 0時間50分4秒
    エンコード速度 = 9.30 倍
    入力ファイル = 6911104848 bytes
    出力ファイル = 1531504689 bytes
    圧縮率 = 22.1600 %
    ----------------------エンコード終了------------------------

    9.3倍速で、22.16%に圧縮できた。i5-6500は、とても効果がある。

    以下は、i3-6100の例。

    ----------------------エンコードコマンド------------------
    ./usr/bin/ffmpeg-qsv -y -i "./tv/美しい日本に出会う旅▼瀬戸康史が旅する金沢・能登~加賀百万石アートとキリコ祭り[181003-2100][BS01_1].ts" -vcodec h264_qsv -b:v 4M -maxrate 8M -init_hw_device qsv:hw  -acodec aac -loglevel error "./travel/美しい日本に出会う旅▼瀬戸康史が旅する金沢・能登~加賀百万石アートとキリコ祭り[181003-2100][BS01_1].mp4"
    
    ----------------------エンコード開始----------------------
    [mpeg2video @ 0x2246240] Invalid frame dimensions 0x0.
        Last message repeated 1 times
    
    ----------------------エンコード情報-----------------------
    処理時間 =  413 秒 0時間6分53秒
    録画時間 =  3241 秒 0時間54分1秒
    エンコード速度 = 7.84 倍
    入力ファイル = 6426002620 bytes
    出力ファイル = 1676695899 bytes
    圧縮率 = 26.0900 %
    ----------------------エンコード終了------------------------
    

    i3-6100で、7.84倍、26.09%でした。i5-6500よりは劣りますが、価格が半額でこの性能ならば、コストパフォーマンスは、i3-6100の方がいいかもしれません。

構築ポイント:録画再生用plex media serverのインストール

  • 以下のサイトから「CentOS 64bit」を選択してダウンロード。
    https://www.plex.tv/media-server-downloads/
  • 以下のコマンドでインストール。
    $ sudo rpm -ivh plexmediaserver-xxxxx.rpm
  • インストール後、自動起動の設定。
    $ sudo systemctl enable plexmediaserver
  • サーバーを起動する。
    $ sudo systemctl start plexmediaserver
  • ブラウザで以下ににアクセスする。
    http://localhost:32400/web/index.html#
  • ブラウザに表示された画面の指示に従って、共有するフォルダを設定する。

構築ポイント:サーバー監視用munin-nodeのインストール

munin-nodeをインストールすると、サーバーのCPU負荷、メモリ使用状況、HDDの温度などを監視して、ブラウザ上でグラフ表示することができる。

munin-nodeは、監視対象サーバーにインストールする。

$ sudo yum --enablerepo epel install munin-node

次にmunin-nodeの設定を行う。

$ sudo gedit /etc/munin/munin-node.conf

修正箇所は、2点。

host_name localhost.localdomain

allow ^127\.0\.0\.1$

例えば、監視対象サーバーの名前をtvserver、監視サーバーのIPアドレスが192.168.0.100だとすれば、以下のように変更する。

host_name tvserver

allow ^192\.168\.0\.100$

munin-nodeを実行して、自動起動の設定をする。

sudo systemctl start munin-node
sudo systemctl enable munin-node

これで、監視対象サーバーの作業は完了。

後は、監視サーバー側に監視対象サーバーを登録すれば、ブラウザに監視対象サーバーの情報が表示される。
監視サーバーのインストールに関しては、以下を参照。
muninインストール

実際の表示例を以下に示す。

HDD温度の変化

CPU負荷の例

メモリの利用例

構築ポイント:リモートデスクトップのインストール

qsvが使えることが確認できたら、リモートデスクトップをインストールして、Windows 10のPCからリモートで作業を進める。

リモートデスクトップのインストールは、以下の通り簡単。

$ sudo yum install -y epel-release
$ sudo yum install -y xrdp tigervnc-server
$ sudo systemctl enable xrdp 
$ sudo systemctl start xrdp

ファイヤーウォールを無効にするか、リモートデスクトップのポートを開けないとリモートデスクトップは使えません。
録画サーバーを自宅内で運用する場合は、ファイヤーウォールを無効にしても問題ないでしょう。

$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld

windows10のPCからは、「Windowsアクセサリ」-「リモートデスクトップ接続」を利用する。

2018年07月31日 | Posted in 電脳:録画サーバー | タグ: , , , No Comments » 

関連記事

コメントを残す

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

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