前回の流れからQSVのffmpegセットアップを続けようかと思ってたんだけど、よくよく思い返すとmirakurunやEPGStationの設定でも多少のはまりがあったので、その辺りを先にまとめておく。QSVのffmpegやcomskip等は、録画サーバにおいてオプション的な位置付けで、あってもなくても録画サーバそのものは動作する訳だし。mirakurunとEPGStationのインストールが終わった段階で、両者の設定を済ませて、軽く録画処理を動かしておく方が切り分け的にも安全。
早速mirakurunの設定からだが、私は以前からmirakurunを多段で使用している。PT3を複数のサーバに分けておけば、何らかの事情でサーバが落ちても他のサーバでmirakurunを動かせば録画可能となる。以前はrivarunを中継する形で多段を実現していたんだけど、いつの間にか正式に多段対応してくれたので、今回はその設定を使ってみる。1号機をepg1というサーバ、2号機をepg2として、2号機はとりあえずmirakurunさえ動いていればよい。設定ファイルは/usr/local/etc/mirakurun配下のymlファイルたち。2号機のtuners.ymlは以下。
- name: PT3-S1
types:
- BS
- CS
command: recpt1 --device /dev/pt3video0 --lnb 15 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-S2
types:
- BS
- CS
command: recpt1 --device /dev/pt3video1 --lnb 15 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-T1
types:
- GR
command: recpt1 --device /dev/pt3video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-T2
types:
- GR
command: recpt1 --device /dev/pt3video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
ごくごく普通の設定ですね。2機の地上波チューナーと2機のBSチューナーをそれぞれ記述しておくだけ。続いて1号機のtuners.ymlを用意する。こちらも同様に2機の地上波チューナーと2機のBSチューナーに加えて、2機のリモート地上波チューナーと2機のリモートBSチューナーを設定しておく。ポイントはremoteMirakurunPortを明記することで、これを忘れるとまったく動作しない。How Toページでは省略されているため、パラメータの存在にすら気付かず、かなりの期間悩むことになった。
- name: PT3-S1
types:
- BS
- CS
command: recpt1 --device /dev/pt3video0 --lnb 15 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-S2
types:
- BS
- CS
command: recpt1 --device /dev/pt3video1 --lnb 15 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-S3
types:
- BS
- CS
remoteMirakurunHost: epg2
remoteMirakurunPort: 40772
remoteMirakurunDecoder: true
isDisabled: false
- name: PT3-S4
types:
- BS
- CS
remoteMirakurunHost: epg2
remoteMirakurunPort: 40772
remoteMirakurunDecoder: true
isDisabled: false
- name: PT3-T1
types:
- GR
command: recpt1 --device /dev/pt3video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-T2
types:
- GR
command: recpt1 --device /dev/pt3video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-T3
types:
- GR
remoteMirakurunHost: epg2
remoteMirakurunPort: 40772
remoteMirakurunDecoder: true
isDisabled: false
- name: PT3-T4
types:
- GR
remoteMirakurunHost: epg2
remoteMirakurunPort: 40772
remoteMirakurunDecoder: true
isDisabled: false
続いてchannels.ymlの修正。経緯はよくわからないんだけど、地上波のMXがchannel: 16となっているのを20に直さないと動かない。あとはBSのチャンネル再編に合わせた修正。詳しいことはよくわかっていないけど、BSプレミアムやBSジャパン辺りがうまく動作していなかったので、ぐぐりながら直してみた。最後にBS12やディズニーのDLifeなど、もともと設定のなかったチャンネルを追加する。DLifeチャンネルとか子供が喜びそうな番組多そうだしw 具体的には以下を参考にして下さい。
- name: MX
type: GR
channel: '20'
:
- name: NHK BS Premium
type: BS
channel: BS03_1
serviceId: 103
- name: NHK BS Premium (Sub)
type: BS
channel: BS03_1
serviceId: 104
:
- name: BS JAPAN
type: BS
channel: BS01_2
serviceId: 171
:
- name: BS12
type: BS
channel: BS09_2
serviceId: 222
- name: DLife
type: BS
channel: BS23_2
serviceId: 258
これでmirakurunが動き出したので、いよいよEPGStationを動かしてみる。うちは既にMySQLサーバが動いているので、そこにEPGStation用のDBを用意した。もし、ローカルでDBを動かす場合は以下のように準備する。個人的な好みでmariadb-serverになっているけど、別にMySQLサーバでも問題はないです。
apt install -y mariadb-server
mysql -uroot
create database epgstation;
create user epgstation@localhost identified by 'epgstation';
grant all on epgstation.* to epgstation@localhost;
quit
EPGStation側はMySQLの設定さえ正しく入れておけば、とりあえずは動くはず。上記の通りにDBを設定したのならMySQL向けの変更すら不要。あとでいじることになるのは、recorded変数による録画先ディレクトリやencode配列中のコマンドなど。圧縮処理をQSV化したり、comskipでチャプター付けたりするなら、事後処理をスクリプト化する必要がある。次回はffmpegとcomskipを設定して録画後の事後処理も設定に加えていく。リアルタイムエンコードまで行けるかな。