録画環境一覧

CentOS (on Hyper-V) に Chinachu をセットアップ

Windows10 の Hyper-V の中に Chinachu をセットアップしてみました。
基本的には CentOS 7 (1708) へ Chinachu のインストール手順と変わらないです。以前に構築した Mirakurun の環境と接続するため、実行環境が別、 OS も別、という条件下になります。
同一の OS に Mirakurun, Chinachu をインストールして使う場合には今回のような手順にはならない点には注意してください

仮想マシンの準備

Hyper-V の第2世代の仮想マシンとして作成しました。以下のような構成にしています。ポイントになるのはネットワークアクセスが必要なので、仮想スイッチを作成、外に出られるようにしておくことです。

仮想スイッチマネージャでインターネットへアクセスできるように仮想スイッチを作成します。
種類は “外部ネットワーク” を選択して、実際に搭載しているネットワークアダプタをコンボボックスで選べばよいと思います。複数のネットワークアダプタを搭載している場合には、ここでインターネットに出られるアダプタを選択する必要があります。ここで作成した仮想スイッチを使うように仮想マシンを設定します。

続いて CentOS は 最小インストールで構築したためいくつかのパッケージが不足している状態です。
そのため以下のパッケージをインストールしておきます。

定番の作業ではありますが、 SELinux も無効にしておきます。
/etc/sysconfig/selinux ファイルを編集して、 SELINUX=disabled としておきます。その後再起動を行います。

時刻合わせのために chrony のセットアップをしておきます。

/etc/chrony.conf を開いて、 server の項目を変更しておきます。

この部分は、各自の NTP サーバーとして近いところを記述しておくのが理想的です。

続きを読む


Windows で Mirakurun

録画PC環境のリプレース計画を進めていました。ギリギリまで現役だったのは Atom 330 で組んだ PT1 機でした。しかしながら、非力さも目立ってきて録画以外のことは安心してやらせられない状態でした。この環境がとうとう電源周りから異音を発するようになってしまい、急遽計画を前倒しして進めることにしました。

今回の機材は予備としていた PX-W3PE rev1.3 を使用します。このボードもまた十分に古いものですが、 PT3 が今は手に入りにくいことと、後継の PX-W3PE4 はまだ怪しい状態なので仕方なくです。

PX-W3PE のドライバが CentOS 6.x の環境でしか動かないということも足かせになって、 Linux で組むのを諦めました。そんな中、 Windows 環境で Mirakurun を動かした話を見かけたのでこれでやってみることにしました。

参考にさせてもらったのがこちらのサイトです。
さわっても熱くない花火 / Windows10で作るMirakurun + Chinachu Gammaな録画サーバー ~VagrantとPT3(BonDriver)を添えて~

今回はこの中の Windows10 で Mirakurun の動作を確認するまでをまとめました。
続きを読む


Docker で epgrecUNA 構築

CentOS の環境で Docker を用いた epgrecUNA の構築にチャレンジしてみました。 PT3 など PTx シリーズを使用している場合には、既に Docker で環境を作る例があるようです。
今回は手持ちの USB チューナーを用いて作るという点で異なります。使用するのは、昔から持っている KTV-FSUSB2 というものです。

Dockerの準備

以下のようにして、新しい Docker を入れるようにします。

Docker Compose 準備

続いて Docker Compose のインストールを行います。

epgrecUNAインストール

Github から DockerEpgrecUNA を clone しておきます。

続いて、必要になる以下のファイルらを入手し、 epgrec_centos のフォルダ内に配置しておきます。

  • epgdumpUNA160127.tar.gz
  • epgrecUNA_151114.tar.gz
  • epgrecUNA151114Fix1.tar.gz
  • epgrecUNA151114Fix2.tar.gz

Docker Compose により環境を構築、稼働させます。

一応、 usb デバイスを Docker コンテナの中に渡して録画などはそちらで行うようになっています。このとき録画するユーザーのグループの違いによりうまく動かないことがありました。
録画ファイルの置き場や、ユーザー&パスワード等、デフォルトで困る部分は docker-compose 前に編集しておきましょう。

まとめ

今回の Dockerfile らについては、 docker-epgrecUNAを参考にさせてもらいました。

実は Ubuntu の環境でもトライしたのでそちらのコンテナも置いてあります。 Ubuntu でやる場合には、 Docker-compose.yml の該当箇所を変更する必要があります。
また、この docker-compose.yml や Dockerfile らについても自分のところではこれでうまくいったというだけなので、全ての環境で自動でうまく動く保証はありませんし、サポートは致しません。

色々といじってみて、 前回の Samba の件に続いて、 Docker の環境を構築するいい練習にはなったと思います。

補足

最近は KTV-FSUSB2 は生産終わっているようですね。後継の機種は、 KTV-FSMINI というものになっているようです。この KTV-FSMINI もまた Linux で動作させられるとのことです。地上デジタル放送に限れば、まだ USB でのチューナー選びはいくつかの候補が残されているようですね。


Linux で BonCasLink のクライアント側を実現

前回は BonCasLink のサーバー側の話だったので、今回は逆のクライアントをLinuxでやるお話です。Linuxで録画用のプログラムは recpt1 が標準的なようなのでこれについては既に使えている前提でここでは話を進めていきます。

必要なもの

  • PT3などLinuxでの録画環境が構築された環境
  • BonCasLinkのサーバーが動作している他PC

インストール

BCASに関しての部分をフックするようなプログラムを作成してくれた方がいるのでその成果物である b25-remote を使わせてもらいます。これは Rec10 というプロジェクトのサブプロジェクトという位置づけのようです。

まずはこの Rec10 のコードを取得してきます。こちらは現在 bitbucket 上にあるようです。

取得してきたコードの中に b25-remote というフォルダがあり、この中にソースコードが収められているのでライブラリを以下のようにして作成します。

これでインストールまで完了です。ここで出来る成果物のうち使うのは b25-client.so がキーとなります。

使い方

以下の環境変数を設定します。

  • LD_PRELOAD=”b25-client.so のフルパス”
  • B25_SERVER_IP=BonCasLinkのサーバーが動いているPCのアドレス
  • B25_SERVER_PORT=BonCasLinkのサーバーが動いているPCのポート番号

これらを設定した状態で、 recpt1 を –b25 オプション付きで動かして、うまく動作すれば(映像が見れるようであれば)OKだと思います。

参考

https://osdn.jp/projects/rec10/scm/svn/blobs/head/b25-remote/Readme.txt
のドキュメントを参考にしました。


Proxmox上の仮想マシンにKTV-FSUSB2をパススルー

せっかくなので Proxmox 上に構築した仮想マシンに KTV-FSUSB2 をUSBデバイスのパススルーを使って接続してみました。これらがうまく動いてくれるか見ていきたいと思います。

各仮想マシンに USB デバイスを接続する過程は省略させていただきます。

Windows7 の場合

接続したところちゃんと認識してデバイスマネージャーに出現します。
proxmox-ktvfsusb2n-2
proxmox-ktvfsusb2n-3

しかしながらドライバのインストール後にどうしてもうまくいかず。!が付いたままとなりました。ドライバの署名関連でもなさそうなので Windows についてはひとまずコレで終了

proxmox-ktvfsusb2n-5

CentOS の場合

必要なものは GitHub(https://github.com/sh0/recfsusb2n)からダウンロードしてきました。

早速コンパイルしてみます。

これではエラーが出てしまったので、以下のようにして em2874-core.cpp を開いてコンパイルできない点を修正.

正常にmakeが完了すると recfsusb2n という実行体があるのでこれを適当な場所へコピーしておきます。

それでは早速テストしてみます。適当に 30秒ほど録画してみました。このファイルを Windows7 などの環境へ持って行って確認してみます。

一見ちゃんと動いていそうなのですが、残念なことに、相当なドロップが発生してしまっており、正常な再生が出来る状況ではありませんでした。Windows に比べればここまで出来ましたのですこし惜しい感じです。

まとめ

USBデバイスのパススルーではうまく録画環境はつくれませんでした。もしかすると USB ボードごとをデバイスパススルーするとまた違った結果となるかもしれません。 未検証ですので、 VT-d 対応の Proxmox 環境作ってどなたかやってみてほしいと思います。


Proxmox上のlinuxで BonCasLink のサーバーを実現する

先日 Proxmox 上の仮想マシンで BCAS のカードリーダーを使えるように説明しました。今回はそれを活用したいと思います。 Windows では BonCasLink というソフトウェアがありました。LAN内でBCASを共有してしまおうというやつです。これのサーバー側を Linux で実現するプログラムで bcs-perl というものがあるのでこれを使ってみようと思います。

準備

  • 以前に構築した仮想マシン
  • 仮想マシンにスマートカードリーダーを接続
  • 動作確認のための Windows PCなど

インストール

GitHub(https://github.com/walkure/bcs-perl) にあるので git を使ってローカルに落としてきます。

gitがインストールされていないと思うので準備します。

ここからは専用の一般ユーザー(bcasuser)を作成してこちらで作業しました。Perlスクリプトで実現されているため、clone したら即使えそうだったのですが、改行コードの問題から一度変換してやる必要があります。

まずは実行してカードリーダーの情報を確認します。以下のような感じで出てくると思います。出てこないようであれば、うまくリーダーが接続できていないのでそこから確認してみてください。

この文字列を bcs-perl.pl 内に記載する必要があります。ソースコード中に以下の文字列があるのでこの中に上記で得られた文字列を記入します。

設定したら今度は普通に実行します。
”>>Begin Listening(0.0.0.0:6900)…..”
なる文字列が出てくればうまくうごいていると思います。

動作検証

Windowsなどの環境で BonCasLink のクライアントを動作させて、この仮想マシンに接続させてみます。うまくいかない場合には、仮想マシンのファイアウォールを見直しするとかSELinuxが切れているかを確認してみましょう。

最後に

ここではやりませんが、あとはスクリプトをログアウトしても動くように nohup 付きで起動するとか、自動起動するようにスクリプトを書くとか、体裁を整えるのまでやればより完璧でしょう。


BCAS用スマートカードリーダーをパススルーする

Proxmox を少しでも認知度上げるために今回は BCAS のICカードリーダーを仮想マシンに接続してみることにします。なお、自分の Proxmox が動いている環境では vt-d をサポートしない状態のため録画環境としては使えません。CPU が vt-d をサポートすれば PT3 などをゲストに接続してみて試してみるのですが、それは Proxmox を使ってやってみよう!という人のために残しておきますね。

CentOS のインストール

Proxmox で CentOS を仮想マシンにインストールします。最低限度のスペックで適当に作成しました。

  • CentOS 6.5 (x64)
  • 512MBメモリ
  • HDD 32GB (VirtIO)
  • Network (VirtIO)

ちなみにベースはこんな感じです。

  • Proxmox 4.0 VE
  • メモリ 8GB
  • HDD 1TB
  • N3150Mマザーボード(BraswellCPU)
  • NTT Com の SCR3310

このスペックだと CentOS はコンソールでインストール作業が進み、Minimal な構成でインストールされます。そこでカードリーダーの処理が出来るまでを設定していこうと思います。
proxmox-centos-bcas-1

proxmox-centos-bcas-2

設定手順 その1

インストール直後ではネットワーク接続して ssh が使えないので、まずはこれらを復旧するところから作業します。 続きを読む


記事の削除

そういえば10月になってガード解除系は違反になったんだったなと思い出して、
過去の録画環境構築ネタでやっていた ktv-fsusb2の改造記事を削除しました。

ソフトの簡単な組み合わせで実現できるようなネタは残してありますが、さすがに電子工作じみたこととファーム書き換えなどまで行ってTS抜きするような話はまずいだろうという判断です。


KVMでデバイスパススルー その4

PT2で実験中

PX-W3PEで仮想マシン内録画でさんざんな結果でしたが、
PT2ではどうなんだろうとおもってテストしてみました。
今までの環境構築テストで、録画自体はスクランブル解除なしでうまくいっていたというところまで確認は出来ていました。

結果

PT2の場合は、CPU使用率は低く抑えられた。
ピークで20%も使わないくらい。
W録画時にもこのような状況で、パケットのドロップは発生しなかった。

こういう状況なので、この仮想マシンにBCASカードリーダーを接続させ、
スクランブル解除までやらせてみた。
その結果もまた優秀でW録画時かつデコードありで、
CPU使用率は相変わらず低いままであった。

まとめるとPT2のほうが機器として良くできているということじゃないかと思う。
仮想マシンで録画ということを考えると、PT2は使える!ということになると思う。


KVMでデバイスパススルー その3

途中報告

確かにFedora14の環境下でKVM(0.13)を使うと、
デバイスパススルーの機能を用いて仮想マシン内で録画を行うことが出来た。

  • PT2
  • PX-W3PE

上記の2ボードで試してみたが、どちらでもひとまず録画が出来ることが確認できた。
すばらしい・・・。

ただ現時点では安定動作出来るかどうかは確認できていない

実験中1 (PX-W3PE)

PX-W3PEのほうが情報が少ないので、ネットに晒してみます。
どうも仮想マシン内で録画の際にCPU使用率が高い。
シングル録画時で30~50%ほど。W録画中では75~80%ほど。

しかもこれはスクランブルのデコードをしない状態でである。

スクランブルのデコードをした場合にはまず確実にドロップが発生する。

一応PX-W3PEのドライバ設定で、レジストリを変更しています。
・自動ゲインコントロール(ブースタ)
・内部ブースターの値は適当に0x0aあたり

このような状況のため、このボードの仮想マシン内録画は
デコードなし、シングル録画限定、
という制限を設けて使うのが精一杯かもしれない。

BonCasLink

別環境に用意したBCasLinkServiceに接続して、デコード処理をやらせる感じにしたらブルースクリーンが出たり、ドロップ多発したり色々発生した。

現時点の状態では、使用しない方が賢明。

W録画

どうにも安定して長時間録画できない。
シングル録画のみの使用に限定した方がいいかも。