iEPGのツールを作る(2)

画面


少々トラブったが、iEPGのツールは無事完成。

動作はこんな感じ。

  • VPNを接続した状況で、so-netのTV王国のページを開く
  • 録画したい番組の「iEPG」を押す
  • ウィンドウが開き、「RD-S300で録画」「Buffalo環境で録画」をボタンで選択
  • 「RD-S300で録画」を押した場合、IEのウィンドウが開き、統合認証を行った上で、予約確認画面が表示(この間5秒〜10秒ほど)
  • 「Buffalo環境で録画」を押した場合、Buffaloの録画アプリを起動し、予約確認画面が表示(この間1秒〜2秒ほど)

便利になったかはともかく、番組を探すだけで時間がかかっていたRD-S300経由の録画を早くすることと、RD-S300とBuffaloを予約時に間違えないように選択できることの目標は果たした。

iEPGのツールを作る(1)

RD-S300のIEPGは便利なのだが、実家にあるRD-S300を経由してiEPGのサイトにアクセスしているために、すごく遅い。特にVPN環境ではストレスを感じ、じれったい。
もう一つ、Bufflaloの録画環境もあるので、RD-S300とBuffaloの環境、どちらに予約するかを選択したい。
今のところ、RD-S300を経由せずにiEPGサイトに接続すると、iEPG予約ソフトであるPCastLSiEPG.exeが起動して、BuffaloのPCCastLinkの環境に通信を行い予約が完了する。

さて、やりたいことは下記のこと。

  1. RD-S300経由のiEPGは遅いので番組を探す時はIEPGサイトに直接アクセスする。
  2. 番組を選んで[iEPG]のボタンを押すと、RD-S300かBuffalo環境のどちらに予約するかを選択するメニューを表示する。
  3. 選んだ環境でそれぞれ録画。

久々のプログラミングなのだが、まず、言語を何にしようか悩む。このツールを作り終わったら、RDNLA相当のものを作るつもりなので、同じ言語が望ましい。JavaAirAdobe)、Visual C# 2005と無料環境がいくつかある。Airに興味があって、ちょっと触ってみたが、コンパイルなどちょっと面倒かも。で、結局Visual C# 2005に決定した。

動作条件は次のようにする。

  • RD-S300はIEでしか認証が通らないので、動作環境は現在のWinXP SP2+IE6にする。
  • iEPGso-netのTV王国にする。
  • 予約するPCにはHTTPサーバなどは設定しない。

さて、簡単なサンプルアプリケーションを作って、TV王国の「iEPG」ボタンを押すと何が起こるか追いかけてみる。サンプルアプリケーションはExplorerの「ツール」→「フォルダオプション」の「ファイルの種類」で拡張子「TVPI」で起動するように登録しておく。

  1. iEPG」ボタンを押す。
  2. IEiEPGファイルをローカルキャッシュにダウンロード。
  3. IEがローカルキャッシュファイル名を引数にサンプルアプリケーションを起動。

ちなみに、ローカルキャッシュファイルは「ログオン名\Local Settings\Temporary Internet Files\Content.IE5\ランダムな文字列\TVPTI_output[数字].tvpi」のようになっており、推測不可能。

まず、BuffaloのPCastLSiEPG.exeはキャッシュファイルの中身を渡してやれば起動するようだ。

PCastLSiEPG.exe キャッシュファイルの中身を引数

で起動する。よって、キャッシュファイルを読んで、PCastLSiEPG.exeを起動するだけでよい。ちなみに、キャッシュファイルの中身は下記のような感じ。

Content-type: application/x-tv-program-info; charset=shift_jis
version: 1
station: TBSテレビ
year: 2007
month: 10
date: 13
start: 05:45
end: 07:30
program-title: みのもんたのサタデーずばッと
program-subtitle:
extend: 0
performer: [出演] 小林豊 / 山内あゆ [司会] みのもんた / 堀井美香
genre: 144
subgenre: 144

福田VS小沢カネ・年金・アフガン対決の行方(中断[N])

さて、問題はRD-S300の方。こっちの起動方法は、

http://RD-S300IPアドレス/@@@@@@tv.so-net.ne.jp/guest/pc/iepg.tvpi?id=ID番号

となる。

何とか、アプリケーション側で、呼び出し元のIEコンポーネントにアクセスし、URLを取得しようとしたのだが、現在表示されているURLは取得できたものの、呼び出しの前にクリックされたURLは取得できない。

次にローカルキャッシュファイル名から元のURLを推測できないか考えてみたが、難しそうなのであきらめた。

次に考えたのは、TV王国のIDを推測すること。いくつか調べて分析してみると、IDは下記のような構造に思える。


チャンネルID(4桁数字)+地域番号(2桁)+年月日(YYYYMMDD)+開始時間(HHMM)

チャンネルIDと地域番号は2007年10月の時点では下記のような感じ。地域番号は不要なので、チャンネルIDだけわかれば良いと思う。

チャンネル東京千葉神奈川
NHK総合119013119012119014
NHK教育129013129012129014
日本テレビ140013140012149014
TBSテレビ150013150012159014
フジテレビ160013160012169014
テレビ朝日170013170012179014
テレビ東京180013180012189014

キャッシュファイルの中身に、チャンネル名、年月日、開始時間は含まれているので、IDは作成できそうだ。

これで何とか方針が決まった。後は作るだけ。ふー。

RDLNAの転送速度

先週は日本出張だったので、実家で久々、RD-S300に直接触って操作をした。
まず、ネットdeリモコンで操作できない初期設定画面で、録画時のDNRがオフになってたので、「弱」に設定した。これで少しはノイズが減ると良いのだが。

それから、出張中に泊まった都内のホテルから、RDLNAで転送速度がどの程度出るのか試してみた。

結果は、6M〜8Mbps
びっくりした。速い。
これまで、米国のComcastのネットワークでは3.5Mbpsが最高だった。
ルーターVPN張っているため、ルータの性能で制約があるかと思ってあきらめていたが、実際は問題ないようだ。
ということは、米国のネットワークも速くなれば、6Mpbs以上が期待できる。そうすれば録画した番組をその番組の実時間でダウンロードすることができる。すばらしい。

録画レートを下げれば、ファイルサイズは当然小さくなるのだが、37インチの液晶TVで見てると、画質の荒さは目立つので、現在はRD-S300のSPモードで録画している。

VerizonのFiOSという光ファイバを使ったインターネットが普及しはじめており、これだと、6Mbpsや15Mbpsが今と変わらない値段で使えるので、早くうちのアパートも対象エリアに入って欲しいのだが、アパートは難しいのかな....。

VPNは大変?

今日、会社で話をしていた時のこと。日本の実家にVPNルータを置いて、DDNSを含めて設定するのは大変ではないか?、ロケフリとかなら、設定も簡単で、PCレスじゃないか?と後輩に言われた。ロケフリねー、一瞬買おうかと思った。最近のは無線LAN専用だけど、ハイビジョンまで飛ばせるらしい。ロケフリはMPEG4-AVCでコーディングってことだから、きれいだろうな、と思うのだが。

買わなかった理由はいくつか。

  • うちのインターネット(Comcast)は不安定。調子が良ければ3Mbps近くまで出るけど、たまにブチブチ切れる時もある。ロケフリ買って、帯域が不安定だったらくやしい。
  • やっぱり落ち着いてみたいし、保存してきたいので、ローカルのPCにダウンロードしてきて、DVDに焼ける環境があった方が良い。

今は、東芝RD-S300のネットdeモニタがQuickTimeながら、まー、我慢できるくらいの画像なので、買うこともないだろうけど。ちなみに、ベイエリアでやっている土日の日本の番組は画質がすごく悪いので、たぶん、ロケフリの方がきれいではないかと思う。ネットdeモニタでもTVの日本語番組と同レベルだと思うし。

さて、VPNだけど、簡単じゃないかなーと思うのだけど...。
買ったBuffaloのVPNルータ(WZR-RS-G54)は、2年半前に2万1千円くらいで購入している。BuffaloのダイナミックDNSサービスは年間3780円。ちょっと高い気がするけど、フリーのダイナミックDNSも使えるらしいし、がんばる人は自分でフリーのダイナミックDNSにつなげば良いのでは。
細かい設定はマニュアル見れば、だけど、ダイナミックDNSを登録して、それをVPNルータの設定画面で接続し、後は、PPTP用のユーザ名とパスワードの設定、DHCPの設定くらいかな。

はてなダイアリは画像が張りにくいので、説明しづらいけども、そのうち図解で設定方法を残して置こう。

もう、一つ大切なことを。
うちは実家に全て機器を置いているので、全てをアメリカからコントロールするためにいくつか制約がある。実家のPCを使ってもいいし、PCを置いてもいいのだけど、故障したり、トラブルが発生した時にリモートで修復できるかわからないので、日本側にはPCを置かないことにする。こういう人は多いのではないかと思うけど。

基本ポリシーは下記の通り。

  • 電源のオン・オフで何とかなる機器しか置かない、困った時は実家に連絡して、電源リセット。
  • 全てこちらから直接ネットでアクセスできる機器しか置かない。

なので、家電が一番望ましいのです。

RDLNAとRD-S300のネットdeモニタ

まず、RDLNAを少し使ってみて気づいたことがいくつか。

  • 二つのファイルを同時に転送するともう少し速度が出る。実際、一つのファイルを転送する時は1.2Mbps程度しか出ないのだが、二つ落とす時は、1Mbpsx2で2Mbpsくらい出ている。調子が良いと2.5Mbpsくらい出てる時もある。
  • RDLNAが落ちるときは、転送先のPCでNWやCPUの負荷のかかる処理をしている時のようだ。DVDを焼いていたり、重たいNW認証を行うソフトでは、良く落ちる気がする。
  • iEPG経由で予約しているのだが、ファイル名に日付が入らない。もっとも、これはRDLNAではなく、RD-S300の予約の問題か。予約時に手動で日付を追加すれば良いのだろうが。面倒なので、自動で付加するオプションがあるか探してみよう。

次に、RD-S300のネットdeモニタを使って気づいたことがいくつか。

  • 結構落ちる。具体的には、「動画は映っているが、音がならない場合」、「動画がとまって、音だけなっている場合」など。
  • PCがスクリーンセーバーモードになると、動画がうまく復活しない。
  • 一回落ちたら、IEをリロードして、JavaQuickTimeプラグインを再起動するしかないが、再びメニュー画面に戻るので、ネットdeモニタを選択し直したりで面倒。特に、IEでしか動作しないので、すべてのコンポーネントをクリックしてアクティブ化しなければならないのが面倒。普段IEを使わないので、非常にイラつく瞬間。

そこそこ使えるだけに残念な気がする。
QuickTimeの問題なのかなぁ。

DVDレコーダーを使ってみて

予約とファイル転送ができるようになったので、さっそく番組をいくつか撮ってみた。RD-S300は録画レートをマニュアル設定できたりするのだが、まずは、SPモードで、ドラマや動きのあるF1などを撮ってみた。

EPGの設定でサイトを二つ登録できるので、Link de 録で使ってたso-netのテレビ王国を使う。これで予約に関しては、今までと同じようにできるようになった。

しかし、ファイル転送では問題が。

RDLNAが良く落ちる。どうやらネットワーク負荷がかかったり、PCに負荷がかかったりすると落ちやすいような気がする。0.05版だからしょうがないが、アップデートされる気配はないのかも。暇になったら自作しようかな。

あとは転送速度が遅いような気がする。Link de 録の環境はFTPでファイルを取ってくるのだが、それに比べて6割程度の通信速度しかでてない気がする。

もう少し使いこんでから考えよう。

あとは、RDLNAについてるWOLWake On LAN)の機能だが、実家は無線LANで飛ばしているので、WOLマジックパケットは飛ばない。ただ、ずっとRDの電源をつけっぱなしというのも夏場は怖い。
これについては、LANケーブルを這わすしかないかな、と思う。床下に何とか這わせそうなので、PF管とか買ってきてLAN工事をすればよい気がする。大仕事だが....。

さて、ファイルを落としてきた感想だが、「すごくきれいでもない」という微妙なところになってしまった。もちろん、Link de 録のファイルよりはきれいな気がするのだが、なんか細かいノイズがのっている気がする。これはもしかしてアンテナかも。
次の出張時にチューニングするかな。

とにかく、少し使ってみよう。

DVDレコーダーを買う

さて、何を改良しようか悩む。

不満な点を挙げれば、こんな感じになる。

  1. 画質がいまいち
  2. ネットワークでのダウンロード時間
  3. 日本側の無線LANがたまに不安定
  4. 電源のオン・オフが米国からできない

画質については、リンク de 録のようなPCベースのものより、最近の家電の方が良いのではないかと思う。そこで、以前から気になっていた、ネットワーク機能が豊富な東芝VARDIAシリーズを買うことにした。実は、もう購入して日本出張時にセットアップを行った。

購入したのは、東芝 VARDIA RD-S300。ネットで買えば良かったのだが、時間の関係で秋葉原で購入し、実家まで運ぶこととなった。重かった....。5万6千円くらいだった気がする。

うちの実家は地上波の電波が弱く、ケーブルTV経由で地上波を流してもらってるらしい。といってもケーブルモデムがあるわけではなく、隣の集合住宅から引っ張ってるのかも。宅内だけ見ると、普通にアンテナ線で引いてるようにしか見えない。

さて、RD-S300を設定して、アンテナケーブルをつなげてみたら、おっと地上波デジタルも映るではないか。パススルーで流れてるらしい。ラッキーとは思ったが、コピワンの関係で、海外にデータを移動できないので、全く意味なし。

ひとまず設定完了して、ネットにもつなげてみた。ネットdeナビは、ブラウザで予約からストリーム受信までできて便利。さて、じゃ、米国から見れるだろうか?VPNでつながってる、米国側のPCに日本からVNCで入り、操作をしてみた。ブラウザでのネットdeナビはOK。問題ない。が、ネット経由のダビングはNG。Virtual RDもLANDE-RDもダメ。よく読んだら、これらはVPN経由では使えないらしい。解決方法はSoftEtherを使うことだが、そもそも日本側にPCを置きたくないのでNG。

ウェブをあさってたら、RDNLAというDNLAを使った方法もあった。試しにインストールしたら、ばっちしだ。さすがに検出はできないが、IPアドレスを入力することで、問題なく通信できた。

これで、ひとまず、RD-S300を使っても、ネットで予約、ファイルをアメリカのPCにダウンロードはできるようになった。