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
“`
となっております.
以上,問題解決の糸口等をご教示いただけますと幸いです.よろしくお願いいたします.