録画サーバ構築 PX-Q3PE + Mirakurun 検証編

コンセプトが非常に素晴らしいMirakurunサーバ、自分の想定している使い方に合わせていくには多少の改造は必要そうだけど、チューナーサーバと録画サーバを分離してくれたことは非常にありがたい。若干、Chinachuで使うことを前提とした構造に思えるので、もっと汎用的な位置付けのものになってくれると尚嬉しい。それでもPX-Q3PEについて言えば、OSを限定するが故に仮想化したいチューナー側と、仮想サーバが苦手とする録画処理を分離できるのだから、最強のソリューションと言っても過言ではない。

前回、チューナーサーバ側にMirakurunの設定は終わった。今回は物理サーバ側で録画が行えるようにクライアント環境を構築する。チューナーサーバはPX-Q3PEのドライバの関係でCentOS6.8を使っているが、録画サーバはCentOS7.2で構築された物理サーバを使う。ちなみに物理サーバの中に仮想サーバとしてチューナーサーバがいる構造。厳密にはネットワーク越しとはいえ、仮想ブリッジ内で折り返すことになるはず。rivarunコマンドを使用してMirakurunからエンコードされたままの放送波を受け取り、その放送波をデコードしてからディスクに記録するので、そのデコード用のライブラリをインストールする。

yum install -y pcsc-lite-devel
cd /usr/local/src
wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
unzip c44e16dbb0e2.zip
cd pt1-c44e16dbb0e2/arib25
make
make install
echo /usr/local/lib >> /etc/ld.so.conf
ldconfig

続いて、rivarunのインストール。こちらは録画処理のみなので、Mirakurunやpm2をインストールする必要がない。パッケージの依存関係の問題でnodejsは入ってしまうかもしれないけど、rivarunとarib-b25-stream-testさえ入っていれば録画できるはず。もちろんサーバ側でデコードしておくことも可能だが、チューナーサーバ複数台を想定すると、サーバ側でデコードを行うのが望ましい。任意のB-CASにロックされるような有料放送も、こう方法ならバックエンドにある複数のチューナーサーバを生かすことができるからだ。セットアップは以下のような感じで簡単。

yum install -y npm
npm install rivarun -g
npm install arib-b25-stream-test -g --unsafe

これで準備は整った。Mirakurunサーバのホスト名はpx1としておく。rivarunコマンドでリモートのMirakurunサーバに繋ぐには、以下のようなコマンドオプションになる。

rivarun --ch GR/24 --mirakurun px1:40772 10 test.ts
    :
status: 200
headers: {"server":"Mirakurun/2.0.0-rc.13","content-type":"video/MP2T","date":"Fri, 24 Feb 2017 12:07:54 GMT","connection":"close","transfer-encoding":"chunked"}

うまく動作すれば、標準出力に『status: 200』が返ってくる。statusに404が返ってくるような場合は、チャネルの設定がうまくいっていない可能性が高い。チューナーサーバ側で『mirakurun config channels』を打ってチャネル設定を見直してみよう。以上で動作確認はあっさり済んで、何の問題もなくチューナーサーバと録画サーバを分離できた。あとは簡単なスクリプトで地上波+BSを8並列で記録してみる。PX-Q3PEのデバイス・パススルーがディスクI/Oを苦手とするなら、これできれいに録画できるはず!

結果は・・・淡い期待はあっさり裏切られ、以前同様のノイズが眼前に現れる。録画サーバ側にもMirakurunを立てて、Mirakurun同士に通信させるような多段構成も試してみるが、変わる訳ない。Mirakurunではなく、sshを使ってリモート越しにrecpt1を直接叩いてみたりもしたが、それだって変わる訳がない。以前も試したようなBIOSの設定変更、例えばEISTを停止するとか、PCIEの設定をGen2に変えてみたりとかも意味なし。仮想サーバのネットワークドライバをVirtIOからrtl8139やe1000に変えてみたりもしたが、むしろ悪化。他にやっていないことは。。。

わかっていたんだよね、本当は。だって、録画先をリモートのGlusterFSにしてもノイズは消えなかったし。それでもわずかな希望を胸に頑張ってきたんだけど、そろそろ限界かな。誤解のないように言っておくけど、PX-Q3PEを物理サーバで使う分には問題ないはず。8つのチューナーを使い切るにはアッテネータが必要で、それでも稀にノイズが入る気がするけど。それでも仮想サーバで使うことに比べれば遥かに安定している。自分の環境ではどうしても仮想で使いたかったので、今までいろいろな方法を試してきたんだけど、遂にあらゆるI/Oが苦手とわかってしまったので、今回をもってPX-Q3PEを卒業!

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)