masahirorの気まま記録簿

個人的な出来事や意見、生活などの記録を思うままにブログに記録

TVサーバー構築記 第5回「運用してみての良い点・気になった点」

先日構築した「TVサーバー」。

自宅で元気に動いている。結局気に入ってしまい、レジストして普通に使用している。
1ヶ月ほど使ってみて、気に入った点や気になった点など色々感じたので、一度まとめてみることにします。

※気になった点に関しては、作者様に何の恨みもございません。一利用者としての感想として他に構築検討されてる方などの情報のため、素直に書かせていただきます。また、もし作者様が読まれることがありましたら、今後のバージョンアップの参考意見として受け止めていただけたら幸いです。

【良い点】

TVの見逃しがなくなった

HDDレコーダーは持ってるのだが、メールでの予約には対応していない。欲しいんだけど、まだまだ高い。
という訳でTVサーバーが大活躍。会社や携帯から自宅サーバにアクセスし、番組名で検索すればそのまま予約が出来る。クライアントに専用ソフトを入れれば、iPEG対応のテレビ番組表*1から直接予約が出来る。
しかもキーワードによる自動予約機能があるので、毎週見たい番組はキーワード設定していればわざわざ予約操作をしなくても、勝手にガンガン予約してくれる。しかも、好きなタレント等で出演するのを知らなかったレギュラー以外の番組とかも予約してくれる。
これは非常に便利。どんどん取りだめして、暇な日、特に深夜に見ればいい感じに暇が潰れる。たまたま構築時VGAボードが無く、安い玄人志向の「RD925-LA64C」を買ったが、これにはS端子出力があり、WindowsMediaPlayerで全画面再生すればTVでも十分視聴できる。
とにかく、出先で簡単に追加予約ができ、自動予約もでき、TVで視聴出来るので、TVをほとんど見逃すことが無くなった。
悔やまれるのは、TVキャプチャボードに「SAA7130-TVPCI/B」を選んだこと。録画の形式であるWindowsMediaVideoで、TVサーバー側が標準で用意しているプロファイルの中から、エンコード負荷とネットワーク速度やファイルサイズ・視聴画質の許容範囲など、色々試した上で個人的に総合で納得のいく「320x240 512kbps」を選択しているが、このプロファイルは一応ステレオで録画している。しかし、ボードがモノラルなのでモノラルでしか録画されない。どうせならステレオで音が出てくれれば、せっかくのステレオ録音が無駄にならないのに、失敗。やはり音楽番組等はステレオで聴きたいものだ。(設定でモノラル録音にもできるが、ファイルサイズの変化は微々たる物)

「1分前から録画開始」というオプションがある

これは嬉しい機能。HDDレコーダーにもメーカーによってはついてる機能だが。
上記の自動録画でも、自動的に開始1分前から録画開始してくれるオプションがある。
このソフトとWindowsには、定期的にタイムサーバーに接続して時計合わせしてくれる機能があるが、エンコードの関係でどうしてもジャスト00秒からは録画されない(数秒遅れる)。なので、1分前から録画してくれると確実。

ファイルサイズが小さい

WindowsMediaVideo形式の為、VHSの3倍録画程度の画質*2である「320x240 512kbps」でエンコードすると、1時間録画で200MB程度。
「とりあえず見たい」番組をこれで録画するだけで、残したいやつは別途DVDレコーダーで保存するので、容量の大きいDVD画質にする必要はまったくない。それだったらこれぐらいファイルサイズが小さいと、80GB程度のハードディスクにガンガン録画できるし、出先からダウンロードしたい場合もそれほど苦とならない(DVD画質で撮って1GBとかに比べたら)。

【気になった点】

録画済のファイルでスキップが出来ない

TVサーバーで作成されるWindowsMediaVideoは、インデックスが作成されてないせいかWeb上で閲覧すると、スキップが出来ない。録画完了した番組をネット上から見るとき、CMが始まってもじっと終わるまで我慢するしかない。
ダウンロードして再生や、共有で再生する時はスキップできるのだが、ダウンロードは1時間番組で200MBもあるのでADSLの上りでは1時間近くかかる。共有は基本的にローカルだけだし、ストリーム再生でもスキップできれば最高。
普通のサイトのWMVでは、ストリーム再生でもスキップできるものもあるので、要はTVサーバーソフト側のプログラム作成方法次第だと思う(リアルタイムWMVエンコードの制約かもしれないが)。

サービスではない

レジストリの「RUN」の項目に設定されるのみで、サービスとしては動かない。つまり、ログインしないとソフトが立ち上がらない。
このため、異常によってWindowsが自動で再起動したときに自動で動いてくれない。TV「サーバー」というぐらいだから、せめてサービスとして動いて欲しいところ(ソフトが異常終了した時にそのままエラーの画面で止まってしまうため、知らずにほっとくと録画されない)。
窓の手などで自動ログインするよう設定はしているが、出来れば元からサービスとして動いて欲しいところ。
ちなみに、普通のソフトを「サービス化」してくれるソフトも試したが、サービスで動かすと
「クラスが登録されてない云々(詳しく控えてませんでした)」
というメッセージが表示され終了されてしまう、動いてくれない。

メイン画面が画面外に行きやすい

メンテで直接Windowsの画面をいじってると、マウスのちょっとした操作でメイン画面のフォームが画面の外に動いてしまう。勝手にドラッグした状態にされてしまう感じ。
まあこれはマウスが原因かもしれないが、問題なのはその後の挙動。とりあえずタスクバーのTVサーバーをクリックするとタスクトレイに収まるのだが、その状態で再度タスクトレイをクリックして元のサイズに戻すと、
「実行時エラー '384':最大化または最小化されているフォームは、移動またはサイズ変更することはできません。」
というVBの実行エラーが表示され、アプリが終了してしまう。
簡単な実現方法としては、解像度を高い状態で画面右端に持っていき、解像度を落とし上記作業を行うとなる。
VB独自の例外エラーはこれ以外にもあり、例えばWindowsMediaエンコーダ7だけを入れ9を入れてない状態で、「キャプチャ設定」画面を開こうとすると「実行時エラー '430':クラスはオートメーションまたは予測したインターフェースをサポートしていません。」というエラーが表示され、終了されてしまう。このエラーの場合は、最初キャプチャドライバの問題かと思い、エンコーダ9の入れ忘れに気付くまでしばらくかかった。
他にも、設定画面を開いた時にフォーカスが取れず、仕方なくメイン画面をクリックすると

「モーダルでないなんちゃら(控えてませんでした)」
というVBエラーで落ちたりした。
こんな感じで、例外処理に対して少し甘い気がする。
また、例外は出ないもののプレビュー画面を出した状態で、「プレビュー画面を右クリック→メイン画面を右クリック」とすると勝手に移動し、時にはものすごい速さでメイン画面が画面の外に移動してしまう。
プレビューが出ている状態だと、メイン画面がどこかへいっても
「実行時エラー '384':最大化または最小化されているフォームは、移動またはサイズ変更することはできません。」
は出てこない。

予約できない番組がある

Webサーバ上で「iEPG自動検索予約」で録画予約をするとき、時々予約できない番組がある。検索をして、結果からチェックを入れ予約すると、VBスクリプトエラーでASPがエラーとなり、何度表示させてもその番組は予約できない。
仕方なく、TVサーバーの入ったPCを直接操作して予約する。

リモートデスクトップでの問題

管理のため屋外からWindowsXPについているリモートデスクトップで接続する場合、まずリモートデスクトップの接続設定で「ローカルソース」→「リモート コンピュータのサウンド」をデフォルトの「このコンピュータで開く」にしたままだと、録画時に音が録音されない(まあサウンドデバイスとして書き換えるから仕方ないが)ので「リモート コンピュータで再生する」に変更するといった注意が必要。さらに、この状態で「デバイス設定」を開いてしまうと、次の録画開始時にTVサーバー側のエラーが出てしまう。もしこの状態に陥ってしまえば、PCに戻って再起動かけるか、リモートで再起動かけないといけない。
また、接続前のローカルでの解像度と、リモートデスクトップで接続するPCの解像度が違う場合、Windowsが自動的にリモート側の解像度に変更してくれるが、その接続開始時に録画処理をしていた場合、解像度が変わった時点でエンコードが止まってしまう。画面上&Web管理画面上は「エンコード中」となるが、WMVファイルはその時点で途切れてしまい、それ以上その番組の続きは録画されなくなる。ただ、その録画が終了し次の録画が開始されるときは問題なくエンコードされる。
つまり、「録画中に解像度を変えると録画が強制終了してしまうが、画面は処理中と出る」ってことで、録画中の解像度の変更には注意が必要。おそらくDirectX側の問題だと考えられる。
早い話、リモートデスクトップの管理にはあまり向いてない・どうしてもする場合は、デバイス系の設定は開かないようし、録画処理中には接続しないといった心配りが必要。

「AutoiEPG_S.exe」の挙動

おそらく自動検索予約のキーワードから番組を検索して見つかったら予約を入れるプロセスだと思われる。
TVサーバー起動時と一定周期(毎日0時か20時間毎等、詳細は不明)で稼動するが、検索キーワードが多くなると、CPU負荷90%前後で数十分動く。それによる録画の遅延や欠落は発生しないが、時々「AutoiEPG_S.exe」自体が異常終了してしまう。(その場合、一定周期後にTVサーバー側から再度立ち上げてくれるが)
また、TVサーバー自体が上のほうで書いたような異常終了で終了した時に、まだ「AutoiEPG_S.exe」が検索中で負荷が大きい状態だったら、次立ち上げた時にどういう処理をしてるかは不明だが、同じ番組の録画項目が重複してしまうことがある。例えば、「いいとも」を自動キーワードに設定してた場合、上記のエラー&再立ち上げ後に「8/1 12:00〜13:00 笑っていいとも」の時間とタイトルがまったく同じものが2つ予約録画されている状態となる。これがすでに複数の予約があった場合、ほぼ全て2つずつになってしまい、手動で片方を消していかないといけないので不便。しかもこの作業は、TVサーバー本体側から行わないといけない。Web管理画面から重複分の片方を消していくと、他の予約までなぜか消されてしまう。
ただ、これはあくまで「異常終了」した場合の話で、まったく異常終了が発生せず、順調に稼動できていれば問題ない。

【後日補足】
原因はマザーボードコンデンサの膨張でした。Windowsとソフト全般で挙動がおかしかったようです。

まあ、思い切って体験したものほとんどを書いてみました。
ただ、リアルタイムのストリーム再生は、うちのADSLで3接続までは問題なく再生されることは確認しています。
また、TVサーバー+WindowsXPで1週間は立ち上げっぱなしで問題ないことも確認しました。残念ながらメンテのため1週間ぐらいで再起動させるので、それ以上は試してません。
不具合もまだまだ多いのか、僕の使い方が荒いのか分かりませんが、他に専用ハード以外でのこういうソフトは無く、エラーパターンさえ把握して素直に利用していればまったく問題無いし、TVの録画の利便さとネットワークでの視聴の利点を考えると、非常に便利で、唯一無二の素晴しいソフトだと思う。

TVサーバー構築記 第6回「ダブルチューナー対応版に挑戦!」
http://d.hatena.ne.jp/masahiror/20050726/p1
TVサーバー構築記 第1回「下調べ&スペック検討」
http://d.hatena.ne.jp/masahiror/20050618/p1
TVサーバー構築記 第2回「仮組み立て&部品不適合」
http://d.hatena.ne.jp/masahiror/20050619/p1
TVサーバー構築記 第3回「パーツ買い足し&いよいよ起動」
http://d.hatena.ne.jp/masahiror/20050621/p1
TVサーバー構築記 第4回「ツール設定難航&サーバ・ルーター設定」
http://d.hatena.ne.jp/masahiror/20050622/p1

*1:インターネットTVガイド・Yahoo!テレビ・インフォシーク番組表など

*2:個人的見解