録画環境一覧

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

どうもネットを検索すると、KVMでデバイスパススルーを設定し、
仮想環境(ゲストOS)で録画出来ている、なんていう記事を見かけます。手元の環境では、録画できているけど常用できない、という状態なので、
他の人のうまくいっている環境は常用できるという点に着目して、
真偽を確かめてみたいなと思います。

うまくいく環境とは?

うまくいっている人の多くは、Fedoraを使用している。
CentOSでの報告もあるけど、Fedoraが多い傾向にある。

また、GUIでの設定で終わりという記載はあまりみない。
できた~という人はGUIで設定して終わっているようだが、きちんと記事にしている人は、コマンドラインでKVMのゲストを起動しているようにみえる。

デバイスはPT2を使用している。
他のPT1やPX-W3PEでうまくいっているという話を見ない・・・。
入手性の問題なのだろうか。あるいは、うまく動作するのがこれだけなのか。

調査方針

うまく行く率が高いFedoraをインストールしてみる。
KVMはOSインストール時には入れずに、後から導入する感じで。

デバイスパススルーできるKVMにもうまくいくバージョンがありそうなので。


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

KVMでデバイスパススルー

Scientific Linux 6を用いて、KVMによる仮想マシンを試してみました。
さすがRHEL6クローンなだけあって、KVM関連のツールが充実していました。

Fedora14のときと比較してGoodだったのは以下の点

  • 物理デバイスのパススルー設定がGUI(仮想マシンマネージャ)から設定できる
  • 初期状態でもWindowsXPインストール時に強制再起動しない

というわけで、仮想マシンを設定してデバイスのパススルー設定までは案外楽に出来ました。
以前は、GUIから設定できずqemu-kvmコマンドの引数設定で行う必要がありました。

今回デバイスパススルーするボードは、PX-W3PEです。
このデバイスは、仮想マシンマネージャから名称が表示されませんでした。
lspciコマンドで、割り当ての番号を確認して、それが一応列挙されていることを確認した上で、GUIから割り当てを行いました。一覧表示されるけど、名称が空欄だったので。

このデバイスの設定の前に、仮想マシンには以下の手順を施してあります。

  • ゲストOSをインストールし、一通りのデバイス認識は完了させている
  • virtioドライバを使用できるようにしている
    • ネットワークと仮想ディスク

virtioを適用していないと、まず確実に受信データをDROPしてしまいました。

これらを行った後で、PX-W3PE関連のインストールを行いました。
試しに使ったのは、EpgDataCap_Bonです。

しかしながらかろうじて動作はするものの、数秒間に1回はDROPしてしまうという状況で、普段問題なく使用できるか、というとそうではなさそうです。

追記(5/29)

どうやらFedora14でも、Physical Host Deviceとしてデバイスパススルーを設定できるらしいです。
特に、ScientificLinuxだからというメリットもそんなになかったみたいですね

安定性だけ、若干優位かな??


oggコンテナやめてmp4

録画したデータは最近はx264+aacで、mp4コンテナに格納している状況です。

昔は、aviコンテナにx264+mp3なんてことをやっていましたが、
多くの環境で、なるべく標準で再生できるということを考えるとmp4に統一していこうかと思ったわけです。

さて、ここまで流れ着くまでにも色々と試したことがありました。
音声データにOggVorbisを使ってみたり、映像部分ではXvidやDivx使ったりとか。
また、コンテナもogm(ogg)を使ってみたりとか。

そうこうしているうちに、aviの拡張子を持つけどoggコンテナであるなんていうデータも作ってしまったようです。
こうなるといざ再生しようとして失敗し、その理由がなぜだろうと思うことがあります(ありました)。
またmp4に統一するために変換しようとして、aviを開くツールで開こうとすると失敗するなど。

そういう場合には真空波動研SuperLiteを使ってコーデック確認したりするのですが、コンテナ情報までは出してくれなかったりするので、意外と原因究明に手間取ったりしました。

こういうときにバイナリエディタを使うと一発だったりします。
ヘッダ情報を見て、あぁ通常のAVIファイルじゃないなと分かるわけです。

Oggコンテナ(ogm)から変換

Oggコンテナから映像、音声を取り出してmp4へ変換ということをやりました。
いざoggコンテナを処理しようとすると多くのツールがaviの対応のため出来なかったりします。
そうして何か方法は無いかと探していたら、oggコンテナから映像と音声等を取り出すツールを発見しました。
それは、OGMDemuxer というツールです。

これは、oggコンテナ内の各ストリーム(映像や音声)を別々のファイルに書き出してくれます。
結果、書き出されたファイルを別ツールで処理することにより目的の形式へ再変換することが出来ました。

今回の場合だと、映像がaviとして保存されたのでAVIUtlで処理をおこないました。

古いファイルはaviのコンテナ、最近のものはmp4という感じでおおよそ統一を取れそうです。


仮想マシンでTV録画

KTV-FSUSB2を仮想マシンに接続するようにして、
録画環境を作ってみました。今回も例によって ESXi の中の仮想マシンに、
USBデバイスのパススルー機能を使って、チューナーを接続させました。

KTV-FSUSB2をamazonでも購入してしまったので、
この製品を2つ、同一の仮想マシンへ接続です。
そもそも、BonDriverのほうがFSUSB2デバイスの同時2つに対応しているか、
不安ではありましたが、チャンネル設定等いじっていたらうまくいきました。
最初から2つ取り付けて、tvrockのセットアップをやれば、
問題なく動くのでしょう。
今回は、1つずつ順番にやってしまったためのトラブルだと思われます。

TIPS

  • 仮想マシン CPUのシェアを高、予約を1GHz程度は与えておくこと。

意外とこれ重要です。
怠るとDROPが結構発生します。設定後は軽減されました!

感想

PX-W3PEよりは安定した録画品質を維持できました。
W3PEのほうでは割と頻繁にDROPがでたり、
1チューナーで何とか使える(小DROP)という稼働状況でした。

しかし今回の構成だと DROPが出ることもありますが、
W3PEよりは少なめでした。
また、W録画が使用に耐えられることもメリットです。
(たまにW録画でDROPが多めに出る、うちでは50ドロップ以下に収まるが・・・)
シングル録画ではDROPが出ても数個でした。

仮想マシンのなかでの動作という点で、
色々と難しいのですが、安定して使えそうな環境が出来てきたことは嬉しく思います。


ESXiでPX-W3PEを使う(まとめ)

今までの経緯をまとめてみました。
若干不安定ですが、1チューナー運用でしばらく使っていけそうな感じです。

ハードウェア情報

VT-dが使えるESXi環境を準備します。
自分の環境では以下のハードウェア構成で行いました。
*1

録画仮想マシン以外は QNAPのNASに格納してあります。
録画仮想マシンはローカルのSATA HDDに仮想ディスクを格納するようにしてあります。

そのほか必要なもの

  • PX-W3PE
  • BCAS用カードリーダ
    • SCR3310-NTTCom 定番ですね

*1 : ハードウェアについてはきちんと公開している情報もないので、誰かの参考になれば

ESXi側環境準備

vSphere Clientを用いて、PX-W3PEのデバイスのパススルー構成を設定しておきます。
また、録画用仮想マシンに対して、PCIデバイスの追加を行っておきます。
このPCIデバイスの追加でPX-W3PEのデバイスを接続する形となります。
そして、メモリは比較的多めに割り当てを行っておきます。(2GBほど割り当てています)

なお、後述するようにBonCasLinkのために別の仮想環境にUSBデバイスパススルーも
この段階で準備しておくとよいかもしれません。

環境準備

録画仮想マシンとしては Windows7 Ultimate x86版を用いました。
一応Vistaでも録画してtsファイルがなんとなく出来るところまでは確認しました。

一方でうまく動作させることが出来なかったのがWindowsXPです。
どうも ksproxy.ax 関連で失敗する模様です。

今回PT1の録画環境が別に存在し、BCASカードは1つしかないため、
全ての環境で使えるようにするため、別の仮想マシンでBonCasLinkを動かすことにしました。

これらのことからPX-W3PEの録画環境に導入するソフト群は以下のようになります。

  • BonCasLink のクライアント
  • tvrock
    • tvtest, rectest等含む環境一式
  • PX-W3PE公式ドライバ 1.01
  • BonDriver PX-W3PE用
    • BonDriver_W3PE(up0537.zip)
    • up0550の中から、Interface_W3PE.dllを取り出しておく

手順

  1. PX-W3PE公式ドライバをインストールし、仮想マシンを再起動する。
  2. tvrockのインストール
    1. 詳しい手順は割愛。必要なデータを適当なフォルダに正しく配置していく。
    2. 自分は ここをみながら導入しました。
  3. tvrockを配置した場所のtvtestと同じ場所にBonDriverの必要なファイルを配置

tvrockの設定 補足

安定動作のためにはデータの書き出しをtvrockによる書き出しを選択すると良いようです。
手元の環境では、128MBほどのバッファを持つように設定してあります。

仮想マシンとはいえ、録画用となるとそこそこ潤沢なリソースを割り当ててあげる
必要がありそうで、今のところメモリを2G割り当てています。

ESXiの設定

tvrockによる録画ということで、ある程度のリアルタイム性が要求されます。
他の仮想マシンとは違いESXiでのリソース割り当て設定を変更してあげる必要がありそうです。

今回以下のような設定を行っています。

仮想マシン リソース
録画用 CPUリソース 1.5GHzほど予約。シェアは高
録画用 メモリリソース 2GB予約。シェアは高
録画用 ディスク シェアは高
BonCasLinkのサーバー CPUリソース 700MHzほど予約.

まとめ

ESXiのうえでは、仮想マシンが8個ほど動作させています。
このうちの2つが今回説明した録画用の仮想マシンです。

仮想マシンで録画をさせるとなると、
システムトータルでのパフォーマンスを考え、リソースを割り当てる必要があります。
また仮想マシンのどれかの負荷が高まることで、正常な録画を維持できなくことが
よくおこります。

安定した録画を行うためには、物理マシンを用意した方が遥かに楽です。
仮想マシンは今回のような目的のためにはあまり使えないような気がします。

今後の課題

物理的に4コア以上持つような状況で、
録画に関しては、コアを占有させる形にしてみたら改善するかもしれません。
また、チューナーの記録先を仮想ディスクではなく、ネットワークや、ドライブを分散させるなどの方法も試してみる価値はあるのかもしれないです。

今回のネタは割と長期的にがんばった感じでした。
途中、諦めそうになりましたが、何とか1チューナーを運用できていけそうなのが救いです。
保存を考えなければ、単純視聴を考えるなら2チューナーでドロップを気にしないという運用はありだろうなと思っています。


色々と試してみて分かったこと。

どうやら実験に使っていたアンテナ端子が悪い模様。
W3PEでもMTVHDUSFでも同じようにドロップが発生。
試しにMTVHDUSFを別の部屋のアンテナ端子に指してみて録画実験してみたところ、
正常にドロップもなく完了した。そしてこの悪環境の中で、PX-W3PEを試してみて分かったことがある。
どうも2チューナーめが感度が弱い・・・。
そして1つめもまた、その2つめの影響を受けて受信データをドロップする傾向にある(ようだ)。

Wチューナーでまともに使おうと思ったらPCの場所変えないと…。

そんな中、色々と試してみたら、
EpgTimerCap_Bonで録画する方が tvrock(rectest.exe)で録画するよりも
ドロップする確率が低いようだ。
機能を絞ってコンパクトにしているrectestより正常成功率が高いことが不思議。

MTVHDUSFについて

比較のためにHDUS環境を構築してみた(ただし借り物)。
これで分かったことは、内蔵のカードリーダは使えない模様。
外付けのカードリーダーを用意すれば、正常に使うことが出来た。
(うちの環境ではBonCasLinkで外付けの代わりにした)

みると”HDUSFではカードリーダとして使えない”とのこと。
せっかく内蔵を持っているのに使えないってのはちょっと残念。

PX-W3PEについて

ドロップ関連を調べていたら色々と分かった。
アンテナのゲインコントロールがどうやら悪さをすることがあるらしい。
そのためにもまずこれをオフにすることところから始めるといい。

レジストリの HKEY_LOCAL_MACHINESOFTWAREASICENLNASettingB06_0001_PEを開く。
すると以下の項目があるので、これらを書き換えて調節する。

  • External_LNA_ON 0を設定することでOFF
  • Internal_LNA_Level 0-0x17の値を設定可能。内蔵レベルのブースター設定値?
  • LNA_AUTO_CTRL 0を設定することで自動ゲインコントロールをOFFに。

PX-W3PE続報-不具合中-

現在作業中のため、メモ日記です

どうもPX-W3PEの録画で若干失敗することが多い。
ここでいう失敗とは、録画の真っ最中にドロップが発生してしまうことを指す。

検索してみて、ドロップする可能性として以下のものがあげられる。

  • PCの処理能力不足
    • CPUの処理、HDDの記録能力
  • アンテナ系の問題

とりあえず改善すべく以下のことをやってみた。
それでも解決できてなかったりするけど。

  1. ドライバ(BonDriver)の変更
    1. 1月末の Interface_W3PE.dllを用い、kuma版のBonDriverを使用中
    2. ドロップ発生
  2. BIOSでC1Eステートを無効化した
    1. 相変わらずDROP出る

他に処理能力奪われてるのか?と思い、
B25のデコードを行わないようにしてみた。

→ ドロップ発生。

うーん、謎だ・・・。さてどうするか。

その他

TBSがチャンネルスキャンしても出てこない。
そういうこと(一部チャンネルが未検出)はよくあることらしいので
検索すると解決方法が簡単に見つかった。

EpgDataCap_Bonの設定で、
受信レベルを考慮するってチェックを外すことでうまくいくとのこと。
これを試してみたところ、あっさり解決できた。

そうやって検出した状態でも、録画も出来ているし問題もなさそう。


PX-W3PEを買った(買えた)

最近話題になっている PX-W3PE を購入できた。
じっくり調査してからと思っていたところ、通販で完売しましたとの表示を見て
「やばい!」と思って、即別のところで購入しました。
(Faithの通販で購入。でも 1/20現在では既に在庫無しの模様)

そして、到着して即、動作確認ということで軽く試してみました。
そのときの記録を以下にメモしておきます。

セットアップ

今回我が家の環境ではBS関連は使えないので、地デジのみ確認です。

ドライバ

http://www.plexshop.jp/html/newpage.html?code=7
から、ドライバをダウンロードしてきます。
動作確認に使った環境が Windows7 Ultimate(x64)なので
“Windows32bit/64bit ドライバ ver1.01” をダウンロードしてきます。

そして、ダウンロードしたzipを展開するとインストール用のバッチが入っています。
Install_Driver.batを実行してドライバをインストールします。
ドライバは自分の環境にあったビットのものをインストールしましょう。

ドライバが入った後は、一度PCを再起動しておきます。

ソフトの環境設定

BonDriver_W3PE(up0537.zip)と、EpgDataCap_Bon(人柱版9.46)をダウンロードしてきます。
まずEpgDataCap_Bonを適当な場所に展開します。
その後に、展開先に含まれるBonDriverに BonDriver_W3PEのdll群を配置します。

続いて、EpgDataCap_Bonを”管理者として実行”で実行します。
これを忘れると、BonDriverが正しくロードできなかったりします。
私はこの部分でそこそこの時間ロスをしてしまいました。(いくつかプログラムを入れ替えたりとかしてた)


ここまで出来た後は、アンテナ線を接続してチャンネルスキャンをおこないます。
問題がなければ、Signal等に色々と数値が出てくるはず。
十数分放置して、チャンネル情報がとれてくればそれで完了です。

また”B25Decoder.dllの読み込みに失敗しました”と出ても、
PX-W3PEにBCASを挿入してある状態ならば、生tsを記録できるのでそのあたりは気にしなくても良さそうでした。

そのファイル記録確認のためには、即時録画ボタンを押してしばらく録画し、キャンセルで停止、
できあがったtsファイルをメディアプレイヤーで再生、として確認作業を行いました。

終わりに

無事に動作確認もできたので、
録画用の本番環境を作ってそちらへ設定を適用していこうと思います。

課題

Wチューナーなのにその試験が抜けていました。
数日以内にはこれもチェックしておかなくては・・・。


MonsterXメモ

MonsterX on Vista

あまり記述を見かけませんが、MonsterXをVista上で動かしています。
ドライバ: 8月版
ソフト: hunuaa + huffyuv + lameMP3 + MxCapture

これで今のところ、キャプチャもうまくいっています。
C2D : E6300
Mem : 2GB

ただし、MxCaptureのAVI Muxの部分ではふぬああのものを使用しています。
標準のものでは、かなりのドロップフレームが発生してしまいちょっとまずいです。
また、hunuaaのmuxをインストールするところでも Vistaはやっかいでした。

ふつうに、regsvr32 huavimux.axでは失敗します。

いろいろと調査してみると、UACの関係らしいので、そこをクリアできれば正常に登録完了できました。

  1. コマンドプロンプトを”管理者として実行”
  2. 登録コマンドと実行

わかればたったこれだけなんですが、あまりにも検索で引っかからないのでここに書いておきます。

ちなみに、うちの環境では標準とhunuaaCap Muxでの違いはドロップフレームが一桁違うという結果が出ました。
hunuaa使用版で音声も無圧縮にしたらもう少し減る感じがしますが。

CPU使用率100%なので、不安定さが結構あるかも・・・。


Monster-X買った

Monster-X買ってきました。

PV4欲しい!!といっていましたが、見つけたのはMonster-X。

友人からは、高嶺の花を狙うよりも今見つけた同等のモノを手に入れた方が幸せになれるよ、との助言もあり買っちゃいました。
まだ数枚は在庫あるみたいでしたし、ネット情報でもそこそこ色々な店で在庫があるみたいだし、急ぐ必要はなかったのかもですが。
ただ、これすでに生産終了らしいんです。

問題は手持ちの環境でD4以上出力できる機器がないので動作未チェック。
別PCからコンポーネント経由で注入しようとしたら、色々とトラブルでて、起動不能に。そんなわけで、偽テスト環境まで奪われてしまった。

会社の後輩から、近日WiiでテストしてOKもらったのでまずはそれで。
360/PS3とか無いとハイビジョンの入力テストは難しいですねぇ。
さっさと、HDDレコーダを買えばいいんですけどね