はじめに
この記事はarchlinuxに録画サーバーを構築する手順紹介(備忘録)です。MirakurunとEPGStationを使って構築しました。
※元作業の関係上、基本的にルートユーザーで作業を行っています。
録画サーバー構築
必要ライブラリのインストール
pacman
でインストールするライブラリを先に一括でインストールしておきます。
pacman -S --noconfirm ffmpeg pcsc-tools cmake autoconf autoconf ccid opensc v4l-utils libdvbpsi unzip pacman-contrib fzf mysql
pacman -S --needed --noconfirm base-devel
B_CASカードの動作確認
B_CASカードをPCに接続する。
# pcscd.serviceの起動、有効化(カードリーダーを使うサービスっぽい)
systemctl enable pcscd
systemctl start pcscd
systemctl status pcscd
# B_CASカードの動作確認
pcsc_scan
一番下に以下のメッセージが出ていればOK
Japanese Chijou Digital B-CAS Card (pay TV)
(確認ができたら ctrl + cで抜ける)
mirukurunのインストール
※このタイミングでテレビTVチューナーをPCに接続しておきます。
# 必要なモジュール(pm2やmirukurun)をインストールする
npm install pm2 -g
npm install mirakurun -g --unsafe-perm --production
npm install arib-b25-stream-test -g --unsafe-perm
# 今回使った PX-S1UD/PX-Q1UD (チューナー)はLinuxの標準ドライバで動作するため、Mirakurunが自動でチューナーの認識を行うため、yamlファイルを削除する(念の為リネームにしているが、tuners.yml が存在するとうまく動かないため要注意)
# 他のチューナーを使う場合は設定が必要かも知れない
mv /usr/local/etc/mirakurun/tuners.yml /usr/local/etc/mirakurun/tuners.yml.org
# 再起動
mirakurun restart
# 接続確認(作業用PCのウェブブラウザから接続する)
http://192.168.XXX.XXX:40772
画面が表示されればOK
mysqlのセットアップ
EPGStationがMySQLを使用するためセットアップします。今回はarchlinux wikiを参考にセットアップしました。
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
systemctl enable mysql
systemctl start mysql
systemctl status mysql
データベースの作成
# EPGStationに必要なDBを作成
mysql -uroot
>>> SQL操作 >>>
# 現在のデータベース一覧
show databases;
# DB作成
create database epgstation;
# ユーザー追加
# identified by の後ろはパスワードなので、任意のものを設定する
create user 'epgstation'@'localhost' identified by 'epgstationpassword';
# ユーザーの権限確認
show grants for epgstation@localhost;
# ユーザーに権限追加
grant all on epgstation.* to epgstation@localhost;
# ユーザーの権限確認
show grants for epgstation@localhost;
# mysqlから抜ける
quit;
<<< SQL操作 <<<
# epgstationユーザーでの接続確認
# -p続文字列はパスワードなので、上で設定したものを入力する
mysql -u epgstation -pepgstationpassword
>>> SQL操作 >>>
# db確認 epgstation があるはず
show databases;
# epgstationに接続
use epgstation;
# テーブル一覧(まだ何もない)
show tables;
# mysqlから抜ける
quit;
<<< SQL操作 <<<
MysQLの設定変更(HDDを使うようにする)
今回は録画データ類は全て外付けのHDDに保存したいので、DBのストレージ領域もHDDに変更します。
# 現在の設定値を確認する
mysql -u epgstation -pepgstationpassword
>>> SQL操作 >>>
# 現在のdatadirの値を確認する
select @@datadir;
> /var/lib/mysql/
quit;
<<< SQL操作 <<<
# mysqlの停止
systemctl stop mysql
systemctl status mysql
# 起動時に読み込まれる設定ファイルを書き換える
cp -p /etc/my.cnf /etc/my.cnf.bkup
vim /etc/my.cnf
>>>
# 以下を追記
[mysqld]
datadir='/nas/mysql'
<<<
# 現在のデータをコピーする(ディレクトリごとコピー)
cp -rp /var/lib/mysql /nas/mysql
# 元のディレクトリをリネームする
mv /var/lib/mysql /var/lib/mysql_old
# mysqlの再起動
systemctl start mysql
systemctl status mysql
# 接続・動作確認
mysql -u epgstation -pepgstationpassword
>>> SQL操作 >>>
# datadirの値を確認する
select @@datadir;
> /nas/mysql/
quit;
<<< SQL操作 <<<
EPGStationのインストール
# 作業用ディレクトリの作成
mkdir -p /root/work
# gitclone
cd /root/work
git clone https://github.com/l3tnun/EPGStation.git
# ビルド作業を行う(少し時間がかかる)
cd EPGStation
npm run all-install
npm run build
# 設定ファイルのコピー
cp config/config.yml.template config/config.yml
cp config/operatorLogConfig.sample.yml config/operatorLogConfig.yml
cp config/epgUpdaterLogConfig.sample.yml config/epgUpdaterLogConfig.yml
cp config/serviceLogConfig.sample.yml config/serviceLogConfig.yml
cp config/enc.js.template config/enc.js
EPGStationの初期設定
接続URL、使用DBの設定などを行います。
# EPGStationの設定変更
vim /root/work/EPGStation/config/config.yml
>>>
# mirakurunPathを以下に変更
mirakurunPath: http://localhost:40772
# 以下をコメントアウト
dbtype: sqlite
sqlite:
extensions:
- '/hoge/regexp.dylib'
regexp: true
# 以下のコメントアウトを外し、設定する
dbtype: mysql
mysql:
host: localhost
port: 3306
user: epgstation
password: epgstationpassword
database: epgstation
charset: utf8mb4
# 以下に変更(環境で which ffmpeg 等を実行し、パスを確認する)
ffmpeg: /usr/bin/ffmpeg
ffprobe: /usr/bin/ffprobe
<<<
EPGStationの録画保存先をHDDにする
今回は録画データ類を外付けのHDDに保存したいので、そのための設定を行います。
# 録画データ類保存用のディレクトリの作成
mkdir -p /nas/nasne/recorded
mkdir -p /nas/nasne/streamfiles
mkdir -p /nas/nasne/thumbnail
# 設定の変更(再度 config.yml を編集)
vim /root/work/EPGStation/config/config.yml
<<<
# 録画データの保存先
# recorded: 配下のpathを変更する
recorded:
- name: recorded
path: '/nas/nasne/recorded'
# 一時ファイルの保存先はPCのHDDにする
# recorded: と同列に追加する
streamFilePath: '/tmp/nasne/streamfiles'
# サムネイルが画像の保存先も変更する
thumbnail: '/nas/nasne/thumbnail'
>>>
EPGStationの起動
起動して動作確認をします。うまく構築できていればテレビ番組の視聴、録画ができるはずです!
# EPGStationの起動
cd /root/work/EPGStation
pm2 startup
pm2 start dist/index.js --name "epgstation"
pm2 save
# 動作確認(作業PCのウェブブラウザから以下にアクセス)
http://192.168.XXX.XXX:8888
うまく起動できないときは、手動実行をしてPDする
# 自動起動したものを停止する場合のコマンド
pm2 stop epgstation
# 手動実行の操作
cd /root/work/EPGStation
npm start
# ログの確認
view /root/work/EPGStation/logs/Service/system.log
tail -f /root/work/EPGStation/logs/Service/system.log
以上