2019年版自宅録画サーバーのソフトウェア(2)

(2020年07月12日追記)

2020年初夏版 『自宅全録サーバー』の作り方について紹介。

6チャンネル全録サーバーの作り方を公開しました。

PLEX社製TVチューナーの非公式ドライバー

この内容に関しては、以下のサイトで詳しく紹介されている。

PLEX社製TVチューナーの非公式Linuxドライバインストール方法

非公式ドライバだけでなく、録画コマンドrecpt1_px4や録画制御サービスmirakurunまでのインストール手順が含まれている。

私のところでは、非公式ドライバでPX-Q3PE4、PX-Q3U4の2機種で動作確認をしている。

録画用ディスクの設定

録画用ディスクの設定に関して、具体的な例で説明をする。

  • ディスク名:data1
  • 録画フォルダ:tv
  • mp4保存フォルダ:cinema、drama、anime、temp

録画用ディスクを接続して、「ディスク」アプリを開く。

ディスクアプリの中から、録画ディスクを選択し、メニューを表示する。

メニューから「ファイルシステムを編集」を選ぶ。

ラベルを「data1」として、「変更」ボタンをクリックする。

次に、メニューから「マウントオプションを編集」を選ぶ。

識別名で、「LABEL=data1」を選び、「OK」ボタンをクリックする。

この設定により、録画ディスクは「/mnt/data1」としてアクセスできる。

録画用フォルダ、mp4用フォルダのアクセス権の設定を行う。

sudo mkdir /mnt/data1/tv
sudo mkdir /mnt/data1/anime
sudo mkdir /mnt/data1/drama
sudo mkdir /mnt/data1/cinema
sudo mkdir /mnt/data1/temp
sudo chmod -R 777 /mnt/data1
sudo chown -R nobody:nobody /mnt/data1

Mirakurun

Mirakurunをインストールする。

詳細は、以下のサイトを参照。

Mirakurunのインストール手順

EPGStation

EPGStationをインストールする前に、mysqlをインストールする。
EPGStationのルール記述で、正規表現を使いたい場合mysqlが必要となる。
現在mysqlのオリジナルコードの作成者が開発しているmysql派生が、mariaDBである。

sudo yum -y install mariadb mariadb-server
sh -c "echo character-set-server=utf8 >> /etc/my.cnf"
systemctl enable mariadb.service
systemctl start mariadb.service

mariaDBが起動したら、初期設定を行う。

mysql_secure_installation
mysql -u root -p

初期設定では、パスワードを2回入力したら、後はリターンキーを押すだけで問題ない。
その後は、以下のように設定する。

MariaDB [(none)]> CREATE DATABASE epgstation CHARACTER SET utf8;
MariaDB [(none)]> GRANT ALL ON epgstation.* TO epgstation@localhost IDENTIFIED BY 'mirakurun';
MariaDB [(none)]> exit

DB名・ユーザー名がepgstation、パスワードがmirakurunに設定された。これで、EPGStationをインストールする準備が完了。

EPGStationのインストールは以下のサイトを参照。

Linux / macOS 用 セットアップマニュアル

インストールが完了したら、設定ファイルを編集する。

cd ~/EPGStation/config
gedit config.json

ファイルの先頭部分を以下のように書き換える。

{
    "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": "qsv",
            "cmd": "/bin/bash %ROOT%/config/enc-qsv.sh",
            "suffix": ".mp4",
            "default": true
        },
 
            "name": "qsv-main",
            "cmd": "/bin/bash %ROOT%/config/enc-qsv-main.sh",
            "suffix": "-main.mp4"
        },
        
            "name": "qsv-sub",
            "cmd": "/bin/bash %ROOT%/config/enc-qsv-sub.sh",
            "suffix": "-sub.mp4"
        
    ],

修正は、”encode”まで、それ以下修正する必要はない。
さらに同じ「config」フォルダに、以下の3つのファイルを追加する。
enc-qsv.sh
enc-qsv-main.sh
enc-qsv-sub.sh
以下に示す。
enc-qsv.sh

#!/bin/bash
# epgstation-qsv
export LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64
export LIBVA_DRIVER_NAME=iHD
export MFX_HOME=/opt/intel/mediasdk
export PKG_CONFIG_PATH=/opt/intel/opencl:

$FFMPEG -y -i "$INPUT" -init_hw_device qsv=hw -filter_hw_device hw -c:v h264_qsv -vf hwupload=extra_hw_frames=64,format=qsv -b:v 4M -maxrate 8M  -acodec aac  -loglevel error "$OUTPUT"

enc-qsv-main.sh

#!/bin/bash
# epgstation-qsv-main
export LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64
export LIBVA_DRIVER_NAME=iHD
export MFX_HOME=/opt/intel/mediasdk
export PKG_CONFIG_PATH=/opt/intel/opencl:

$FFMPEG -dual_mono_mode main -y -i "$INPUT" -init_hw_device qsv=hw -filter_hw_device hw -c:v h264_qsv -vf hwupload=extra_hw_frames=64,format=qsv -b:v 4M -maxrate 8M  -acodec aac  -loglevel error "$OUTPUT"

enc-qsv-sub.sh

#!/bin/bash
# epgstation-qsv-sub
export LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64
export LIBVA_DRIVER_NAME=iHD
export MFX_HOME=/opt/intel/mediasdk
export PKG_CONFIG_PATH=/opt/intel/opencl:

$FFMPEG -dual_mono_mode sub -y -i "$INPUT" -init_hw_device qsv=hw -filter_hw_device hw -c:v h264_qsv -vf hwupload=extra_hw_frames=64,format=qsv -b:v 4M -maxrate 8M  -acodec aac  -loglevel error "$OUTPUT"

ファイルのプロパティで、実行可能にする。

ここまで設定を行った後、EPGStationの自動起動の設定を行い、起動する。
まず、EPGStationのフォルダに移動する。

cd ~/EPGStation

次に、自動で起動するための設定を行う。

sudo npm install pm2 -g
pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u euser --hp /home/euser

CentOSの場合、例えばユーザーがeuserとすると、上記の実行結果になる。
そこで、指示通りにコマンドを実行する。

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u euser --hp /home/euser

これで、自動起動の準備は完了である。EPGStationを起動して、自動起動を設定する。

pm2 start dist/server/index.js --name "epgstation"
pm2 save

EPGStationの起動は、ブラウザで「http://localhost:8888」を確認する。

munin

CPUの負荷やHDDの温度・容量を管理するために、muninをインストールする。

sudo yum -y install httpd
sudo yum -y --enablerepo epel install munin

サーバーに名前をつけて認識するために、以下の設定をする。

gedit /etc/munin/munin-node.conf

例えば、サーバーの名前をtvserverとするならば、以下のように変更する。

(修正前)#host_name localhost.localdomain
(修正後)host_name tvserver

muninの自動起動を設定し、起動する。

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

muninを確認するために、ブラウザで「http://localhost/munin/」を確認する。

上記の表示で、HDDの温度を常時確認できる。

samba

WindowsやLinuxから、簡単にファイルをコピー・削除するために、sambaをインストールする。

sudo yum -y install samba

sambaの設定をする。

sudo gedit /etc/samba/smb.conf

smb.confを以下のように書き換える。

[global]
	workgroup = workgroup
	security = user

	passdb backend = tdbsam

	printing = cups
	printcap name = cups
	load printers = no
	disable spoolss = yes

[tv]
  comment = tv folder
  path = /mnt/data1/tv
  guest ok = yes
  guest only = yes
  writable = yes
  create mode = 0777
  directory mode = 0777

[anime]
  comment = anime folder
  path = /mnt/data1/anime
  guest ok = yes
  guest only = yes
  writable = yes
  create mode = 0777
  directory mode = 0777

[cinema]
  comment = cinema folder
  path = /mnt/data1/cinema
  guest ok = yes
  guest only = yes
  writable = yes
  create mode = 0777

[drama]
  comment = drama folder
  path = /mnt/data1/drama
  guest ok = yes
  guest only = yes
  writable = yes
  create mode = 0777

[temp]
  comment = temp folder
  path = /mnt/data1/temp
  guest ok = yes
  guest only = yes
  writable = yes
  create mode = 0777

以下のコマンドを実行し、設定を確認する。

sudo testparm

ユーザ(例としてeuser)を登録して、自動起動を設定し、sambaを起動する。

sudo pdbedit -a euser
sudo systemctl enable smb nmb
sudo systemctl start smb nmb

別のWindowsやLinuxのファイル管理ツールでアクセスして、ファイルのコピー・削除を確認する。

xrdp

Windows10のPCからリモートデスクトップを使うために、インストールする。

sudo yum -y --enablerepo=epel install  xrdp tigervnc-server
sudo systemctl enable xrdp 
sudo systemctl start xrdp

WindowsのPCから、「Windowアクセサリ>リモートデスクトップ接続」を使って確認する。

Plex Media Server

録画を視聴するために、Plex Media Serverをインストールする。

以下のサイトから「Fedora/CentOS/SUSE – Intel/AMD 64-bit」を選択してダウンロードする。

Plex Media Serverのダウンロードサイト

Plex Media Serverをインストールし、自動起動を設定し、起動する。

sudo rpm -ivh plexmediaserver-xxxxx.rpm
sudo systemctl enable plexmediaserver
sudo systemctl start plexmediaserver

確認をするために、ブラウザで「http://localhost:32400/web/index.html#」にアクセスする。

以上で完成。

2019年06月27日 | Posted in 電脳:録画サーバー | タグ: , , 4 Comments » 

関連記事

コメント4件

  • presidio239 より:

    いつも楽しく拝見しております.
    早速,素人な質問で恐縮ですが,非公式ドライバーのインストールで苦戦しております.
    用意した環境は下記の通りです.

    OS: CentOS 7.4.1708
    CPU: Intel Core i3-8100
    チューナー: PX-Q3PE4

    SELinux, firewalld については無効化しております.

    Git リポジトリをクローンし,it930x-firmware.bin を /lib/firmware/ に配置を済ませ,記事通りに dkms.install を用意し,
    sudo bash dkms.install
    を実行したのですが,

    “`
    Creating symlink /var/lib/dkms/px4_drv/0.2.1/source ->
    /usr/src/px4_drv-0.2.1

    DKMS: add completed.

    Kernel preparation unnecessary for this kernel. Skipping…

    Building module:
    cleaning build area…
    cd ./driver; make KVER=3.10.0-693.el7.x86_64 px4_drv.ko…(bad exit status: 2)
    Error! Bad return status for module build on kernel: 3.10.0-693.el7.x86_64 (x86_64)
    Consult /var/lib/dkms/px4_drv/0.2.1/build/make.log for more information.

    Kernel preparation unnecessary for this kernel. Skipping…

    Building module:
    cleaning build area…
    cd ./driver; make KVER=3.10.0-693.el7.x86_64 px4_drv.ko…(bad exit status: 2)
    Error! Bad return status for module build on kernel: 3.10.0-693.el7.x86_64 (x86_64)
    Consult /var/lib/dkms/px4_drv/0.2.1/build/make.log for more information.
    “`
    という状況となってしまいました.
    /var/lib/dkms/px4_drv/0.2.1/build/make.log については,

    “`
    DKMS make.log for px4_drv-0.2.1 for kernel 3.10.0-693.el7.x86_64 (x86_64)
    2019年 11月 24日 日曜日 16:52:23 JST
    ‘revision.h’ was updated.
    make[1]: ディレクトリ `/usr/src/kernels/3.10.0-693.21.1.el7.x86_64′ に入ります
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/driver.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/module_param.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/px4.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/isdb2056.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/it930x-bus.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/it930x.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/tc90522.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/rt710.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/r850.o
    CC [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/ringbuffer.o
    LD [M] /var/lib/dkms/px4_drv/0.2.1/build/driver/px4_drv.o
    /var/lib/dkms/px4_drv/0.2.1/build/driver/isdb2056.o:(.rodata+0x160): `__mod_usb_device_table’ が重複して定義 されています
    /var/lib/dkms/px4_drv/0.2.1/build/driver/px4.o:(.rodata+0x100): ここで最初に定義されています
    ld: 警告: シンボル `__mod_usb_device_table’ のサイズが 160 (/var/lib/dkms/px4_drv/0.2.1/build/driver/px4.o 内) から 64 (/var/lib/dkms/px4_drv/0.2.1/build/driver/isdb2056.o 内) に変更されました
    make[2]: *** [/var/lib/dkms/px4_drv/0.2.1/build/driver/px4_drv.o] エラー 1
    make[1]: *** [_module_/var/lib/dkms/px4_drv/0.2.1/build/driver] エラー 2
    make[1]: ディレクトリ `/usr/src/kernels/3.10.0-693.21.1.el7.x86_64′ から出ます
    make: *** [px4_drv.ko] エラー 2
    “`

    となっております.
    以上,問題解決の糸口等をご教示いただけますと幸いです.よろしくお願いいたします.

  • simplelife0530 より:

    presidio239さん、こんばんは。

    ドライバに関することは、githubにあげている非公式ドライバの作者か、非公式ドライバのインストール記事を書いている「自分に負けない」さんに聞いた方がいいと思います。

  • aaa より:

    develop ブランチから master ブランチに切り替えて driverディレクトリの下で make すると成功するようです。

  • simplelife0530 より:

    情報ありがとうございます。

  • コメントを残す

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

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