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をインストールする。
詳細は、以下のサイトを参照。
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のインストールは以下のサイトを参照。
インストールが完了したら、設定ファイルを編集する。
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をインストールし、自動起動を設定し、起動する。
sudo rpm -ivh plexmediaserver-xxxxx.rpm sudo systemctl enable plexmediaserver sudo systemctl start plexmediaserver
確認をするために、ブラウザで「http://localhost:32400/web/index.html#」にアクセスする。

以上で完成。
関連記事
コメント4件
presidio239さん、こんばんは。
ドライバに関することは、githubにあげている非公式ドライバの作者か、非公式ドライバのインストール記事を書いている「自分に負けない」さんに聞いた方がいいと思います。
develop ブランチから master ブランチに切り替えて driverディレクトリの下で make すると成功するようです。
情報ありがとうございます。











いつも楽しく拝見しております.
早速,素人な質問で恐縮ですが,非公式ドライバーのインストールで苦戦しております.
用意した環境は下記の通りです.
—
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
“`
となっております.
以上,問題解決の糸口等をご教示いただけますと幸いです.よろしくお願いいたします.