LoginSignup
1
0

More than 1 year has passed since last update.

archlinuxに録画サーバーを構築してみた

Posted at

はじめに

この記事は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

以上

関連記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0