パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

HDR-HC1 つづき18

テープへ書き戻すための苦難の道のり。

なんとなく、書き戻しに使っている TSP2SP.ax が怪しいかと思われてきた。なぜなら、CapDVHS の WrtDVHS でも同じ現象が起こったからである。これも内部で DVHSTools の TSP2SP.ax を使っているはず。で、色々 Google 様のお世話になってみると、TSP2SP.ax は、188 Bytes/packet を 192 Bytes/packet に変換しているらしい。また、不具合のある古いバージョンも存在するようだが、自分のPCには新しい方がインストールされているようだ。

ここで、CapDVHS で 192 Bytes/packet のまま吸い出したものでテストしてみた。問題なく長時間(5分以上)の書き戻しが MurdocController でできた。おぉ、なんとなく光がみえてきたぞ。しかし、もう一度全部 192 でキャプチャし直して、更に、カット編集までやり直すのは現実的でない。さて、TSP2SP.ax を使わずに 188→192 変換はできないものか。

そこで、自分はプロのプログラマであることを思い出し、簡単なプログラムを作ってみた(とは言うものの簡単な GUI を付けるだけでも結構四苦八苦したが。日頃 GUI なんて作らないので..MFC のダイアログ形式で作成。)。入力ファイルを 188 バイトずつ読み出し、頭に4バイトくっつけて保存するだけ。とりあえず4バイトは 0 にしてみる。

さぁ、188 のファイルを変換して、HDR-HC1 へ書き戻してみた。HC1 君は無反応。データが流れてきてさえいないふりをする。駄目か。で、先のここのTCヘッダの説明を読んで、なんとなくカウントが増えていくようなヘッダを付加するようにしてみた。が、状況は変わらず。バイナリエディタで色々観察してみるが、HC 君が反応するファイルとしないファイルの違いがわからず。MurdocMP 等では普通に再生できたりするが、最初の4バイトは単に無視しているからなのだろう。

で、またネットの海でリサーチ。今度は、DirectX SDK に付いてくる GraphEdit というコマンドで、DVHS からキャプチャする記事を色々読んだ。その中で、例の TSP2SP.ax を使ってテープへ書き戻す話もあった。ただし、そのままでは、途中でPCが再起動する状況と変わりが無い。が、DirectShow の枠組みは良くできていて、テープへ書き戻す代わりに、ファイルに出力を落とすことも簡単にできるのだ。

ところが、GraphEdit.exe は最新の DirectX9.0 SDK には含まれていないのだ。実は Extra という別ファイルに移動してしまっているのだが、それは Microsoft の日本語のページからはダウンロードできない。英語のダウンロードページから探す必要がある。この辺もなかなか分からずかなり時間を費やした。陰険な事に、DirectX9.0SDK には、なぜか GraphEdit.exe のサムネール画像だけが含まれていたり。なぜ?

とりあえず、GraphEdit で、File Source と TSP2SP.ax と dump の三つのフィルタを繋げば、188→192 変換はできた。タイミング?によってはエラーが出ることもあったが、一度うまく動き出すと、7GB余りのファイルも無事変換できた。

ということで、長い苦難の道のりであったが、無事30分余りの HDV 映像をテープに書き戻すことができた。めでたし、めでたし。

なのだが、色々疑問点がある。どういうファイルなら、HC1 がちゃんと反応してくれるのか。GraphEdit で、TSP2SP.ax の出力を確認することができる。もう少し調査してみよう。各パケットのチェックサムとかあるのかなぁ。