初版:2002/01/22 改訂:2003/05/06
|
ANGIE WORKSHOP > 人柱実験工房 > D-VHSからのデジタルキャプチャ
D-VHSからのデジタルキャプチャ
これまでD-VHSビデオデッキからi.LINK経由でデジタルデータをPCにキャプチャすることは不可能とされていました。しかしWindows XPで導入された新機能によってこれが可能になったことが判明しましたので,その詳細をレポートします。
なお,この手順は日頃から指導を仰いでいる
tomtia師匠から教えていただいた情報を整理したものです。さらに2chの関連スレッドや偉大な先駆者の方々のサイトで公表されている情報を付け加えています。私自身は魔法使いの弟子にすぎませんので,細かい技術的な話では間違いがあるかもしれません。もし何か問題がありましたらご指摘いただけますとありがたいです。
それから以下の説明は,ある程度PCの操作とビデオキャプチャに関するスキルがある人を読者として想定しています。この説明で理解できない人はあきらめてください。
率直に言えば,実験レベルでキャプチャできることが実証されたというだけの話です。DVで使われているような
実用的なビデオ編集環境が構築できるという話ではありません。過度な期待はしないでください。
できること
- D-VHSからi.LINK経由でデジタル映像/音声をキャプチャすること。
HDTV/SDTVの両方が可能。ただしコピーワンスの番組は不可。
- キャプチャした映像/音声をPC上で再生すること。
できないこと
- キャプチャした映像/音声をD-VHSに書き戻すこと。
- BSデジタルチューナー/CSデジタルチューナーからの直接キャプチャ。
現状ではD-VHSに書き戻す方法が見つかっていません。世の中にはD-VHSにPCからデータを出力する製品も存在していますが,これらを使っても実現は難しいようです。この種の製品としては松下の
Motion DV STUDIOとアイ・オー・データの
GV-DVC3/PCIがあり,いずれもSDTVのMPEG2データに限ってD-VHSに出力することが可能です。ただし実際には細かい制約があるため,今回見つかった方法でキャプチャしたデータをそのまま書き戻すことができるわけではないようです。
必要なハードウエアとソフトウエアは以下の通りです。
表1.必要なハードウエア
ハードウエア |
製品の例(私の使ったもの) |
ある程度速いPC |
Pentium III/850MHz dualの自作PC互換機 |
OHCI準拠のIEEE1394 I/F |
メルコ IFC-IL3 |
D-VHSデッキ |
松下 NV-DH1,東芝 A-HD2000 |
もちろん私の使ったもの以外のハードウエアでも可能だと思います(保証はしませんが)。なお,IEEE1394 I/FはWindows XPでIEEE1394デバイスとして認識されるもの(
OHCI準拠)が必要です。カノープスのDVキャプチャボード(DVRaptor等)はOHCI準拠ではないので使えません。D-VHSデッキは当たり前ですがi.LINK端子付きのものが必要です。すべての機種で可能かどうかはわかりません。
表2.必要なソフトウエア
ソフトウエア |
製品名 |
入手方法 |
OS |
Windows XP |
市販(Professional/Home Editionのどららでも可) |
キャプチャに使うツール |
GraphEdit (GraphEdt.exe) |
DirectX 8.1 SDK(無料)をインストール |
キャプチャに使うDirectShowフィルタ |
Dump.ax (File Dump Filter) |
DirectX 8.1 SDKに含まれるサンプルソースをVisual C++でコンパイル |
MPEG2デコーダ |
Elecard MPEG2 Video Decoder 1.40 alpha Demo |
ダウンロード(α版なので無料) |
まずOSですが,Windows XPにしか搭載されていない新機能(D-VHSデッキのデバイスドライバ)を使うため,
Windows XP以外は全て不可です。Dump.axは正規に入手する方法は上記の通りですが,インターネット上を検索すると
あちこちに転がっていたりします(もちろんライセンス違反です)。
MPEG2デコーダはキャプチャそのものには使いませんが,キャプチャした映像をPC上で再生するために必要です。これはMPEG2-TSに対応したものが必要で,BSデジタルのHDTV映像を再生するにはMP@HL対応でもなければなりません。現時点で両方に対応しているのは上記のElecard製品のα版しかないようです。
- Windows XPでIEEE1394ボードが正しく認識されている状態を作る
- DirectX 8.1 SDKをインストール(Utilitiesのみ選択で可)
- Dump.axをC:\WINDOWS\System32にコピーし,コマンドプロンプトからregsvr32 dump.axで登録。
- Elecardデコーダのアーカイブを解凍し,中身をC:\WINDOWS\System32にコピー(regsvr32.exeはコピー不要)する。register.batで各フィルタを登録する。
Elecardデコーダを入れたら,適当なMPEG2ファイルを用意してMedia Playerで再生できることを確認してください。デコーダがα版であるため,画面右上コーナーにElecard社のロゴマークが表示されます。
環境が構築できたら実際にキャプチャしてみましょう。PCにi.LINKケーブルでD-VHSデッキを1台だけつなぎます。BSデジタルチューナーなどの他のi.LINKデバイスはD-VHSデッキからすべて外してください。あっても一応動くみたいですが,最初はシンプルな構成から試すのが余計なトラブルを避けるコツです。
|
写真1.NV-DH1のデバイス
|
i.LINKでD-VHSデッキをつなぐと,Plug and Playで自動認識して
写真1のようなデバイスがデバイスマネージャ画面に現れます(松下NV-DH1の場合)。
「
Panasonic Tape Device」がNV-DH1です。「Panasonic Vendor Unique Subunit」も2つ認識されていますが,これらはNV-DH1に内蔵している何かが別デバイスとして認識されているものと考えられます。
東芝A-HD2000(ビクターHM-DH30000のOEM機)の場合は自動認識に任せると失敗しますので,手動でドライバをインストールする必要があります。Plug and Playで「AV/C Tape Recoder/Player」を認識したら,手動でデバイスを指定します。「サウンド、ビデオ、およびゲームコントローラ」のカテゴリーからメーカーを「JVC」と指定して「JVC Tape Device」を登録してください。もう一つ「AV/C Tuner」というデバイスも検出しますが,これはA-HD2000内部の何かが別デバイスとして認識されているもので,今回の目的には必要ありませんのでキャンセルしてください。
ちなみに,ビクターHM-DH30000の場合は自動認識ですんなり行くらしいです。まさかOEM機にこのようなハンデがあるとは思いもしませんでした(笑)。日立DT-DR20000などの場合も同様に手動で「JVC Tape Device」を指定するとうまくいくそうです。
キャプチャツールとしてはDirectX 8.1 SDKに含まれるGraphEditを使います。このツールは元々ソフトウエア開発者向けの汎用のテストツールなので,そのまますぐにキャプチャができるわけではありません。このGraphEditをベースにキャプチャツールを組み立てる必要があります。GraphEditを起動し,フィルタの追加ボタン
を押してVideo Capture Sourcesの配下にあるMicrosoft AV/C Tape Subunit Deviceを追加します(
写真2)。
写真2.Microsoft AV/C Tape Subunit Deviceの追加
|
さらにDirectShow Filtersの配下にあるMPEG-2 DemultiplexerとDumpも追加します。Dumpを追加するとファイル名を聞いてきますので適当なファイル名を入力します。このファイルにキャプチャデータが格納されます。
各フィルタには入力Pinと出力Pinがあり,それらをつないでやることでキャプチャツールのグラフを組み立てます。最終的には
写真3のようにつないだグラフを作ります。
写真3.組み立てたキャプチャツールのグラフ
|
まずMicrosoft AV/C Tape Subunit Deviceの出力をMPEG-2 Demultiplexerにつなぎます。MPEG-2 Demultiplexerには標準では出力Pinがありませんので,追加してやる必要があります。
MPEG-2 Demultiplexerのプロパティを開き,Output PinsタブでVideoという名前でPinを追加(Create)します。Media TypeはMPEG2 Program Videoを指定します(
写真4)。
写真4.出力Pinの追加
|
PID Mappingsタブで,Elementary Streamを指定してPID 0x0111をVideoにマッピングします。このPIDの値は入力ソースによって異なるようです。0x0111はBSフジやBS-iのHDTV映像で使われているPIDです。ここでは入力としてBSフジの「水着でハイビジョ
ン」を録画したものを使いました(笑)。NHK BS hiの映像を使う場合は0x0100を指定してください。その他の場合のPIDについては後述します。
写真5.PIDのマッピング
|
|
※先にMicrosoft AV/C Tape Subunit Deviceの出力をMPEG-2 Demultiplexerの入力につないでおかないと,この「PID Mappings」タブは現れないようです。
|
[OK]を押してプロパティを閉じ,
「View」メニューから「Refresh」を実行すると追加した出力Pinが現れます。後は
写真3のように出力をDumpフィルタにつなぎます。これでキャプチャツールのグラフの出来上がりです。
準備ができたらキャプチャを実行します。GraphEditのPLAYボタン
を押し,D-VHSデッキ側も再生します。成功したらDumpで指定したファイルがどんどん大きくなるはずです。適当な所でSTOPボタン
を押して止めてください。キャプチャしたファイルをMedia Playerで再生して映像が再生されることを確認します。
次に音声もキャプチャするように変更してみます。MPEG-2 Demultiplexerのプロパティで音声出力用のAudio Pinを同様の手順で追加します。PID MappingsタブでPID 0x112(BSフジの場合)をAudioにマッピングします。これでAudio出力Pinができますので,Dumpフィルタをもう一つ追加してつなぎます。映像とは別のファイル名を指定してください(
写真6)。
写真6.映像と音声の両方をキャプチャする
|
再びキャプチャを実行すると今度は映像と音声のファイルが同時に出力されます。しかし残念ながら私の所ではこのAAC音声ファイルの再生はまだ成功していません。
BSデジタル放送ではなくアナログ入力をD-VHS録画したものを使った場合は,音声はMP2(MPEG1 Layer2)形式なのでMedia Playerで再生可能なものができます。
キャプチャしたMPEG2映像から静止画を保存するのは,Media Player 6.4を使えば可能です。Media Player 6.4はスタートメニューには登録されていませんが,「C:\Program Files\Windows Media Player\mplayer2.exe」として入っています。これでMPEG2映像を再生し,保存したい所でポーズします。「ファイル」メニューから「プロパティ/詳細設定/Video Renderer/プロパティ」で表示されるダイアログに「Snapshot」というボタンがありますので,これを押せば静止画が保存されます。保存先のフォルダは「My Pictures」で,ファイル名はランダムに決められるようです。
上記の手順でGraphEdit上にキャプチャツールのグラフを組み立てることで,他のBSデジタル放送やアナログ入力などをD-VHS録画したものもキャプチャ可能です。ただし
入力ソースによってPIDの値が違うため,MPEG-2 Demultiplexerの出力Pinの設定を変更する必要があります。
PIDは「
パケット識別子」と呼ばれる情報です。D-VHSでは映像や音声をはじめ,データ放送などさまざまなデジタルデータを混在させて記録しています。これらのデジタルデータはそれぞれパケットに格納されており,PIDはこのパケットの種類を示すラベルのようなものです。上記のキャプチャツールのグラフでは,MPEG-2 DemultiplexerでPIDを参照して映像と音声のパケットだけを取り出し,それぞれファイルに出力しているわけです。
各入力ソースに対応するPIDの値を
表3と
表4に示します。2chの関連スレッドなどで報告されていた情報を整理したものです。
表3.BSデジタル放送のPID
チャンネル |
解像度 |
映像PID |
音声PID(AAC) |
NHK BS1 |
SDTV 720×480 |
0x0100 |
0x0110 |
NHK BS2 |
SDTV 720×480 |
0x0200 |
0x0210 |
NHK BS hi |
HDTV 1920×1080 |
0x0100 |
0x0110 |
BS日テレ |
HDTV 1920×1080 |
0x0140 |
0x0141 |
BS朝日 |
HDTV 1920×1080 |
0x0140 |
0x0141 |
BS-i |
HDTV 1440×1080 |
0x0111 |
0x0112 |
BSジャパン |
HDTV 1920×1080 |
0x0140 |
0x0141 |
BSフジ |
HDTV 1440×1080 |
0x0111 |
0x0112 |
WOWOW |
HDTV 1920×1080 |
0x0140 |
0x0141 |
SDTV 720×480 |
0x0160 |
0x0161 |
BSデジタル放送の場合,PIDは放送局ごとに異なっているようです。WOWOWはコピーワンスの番組はキャプチャできませんが,コピーフリーの番組はキャプチャできました。HDTVの解像度は1920×1080の16:9と1440×1080の4:3の2種類があることが知られていますが,興味深いことにBS-iとBSフジは16:9の画面も1440×1080で放送しています。
表4.アナログ入力をD-VHS録画した場合のPID
録画機 |
映像PID |
音声PID(MP2) |
音声PID(PCM) |
ビクター各機,東芝A-HD2000 |
0x1000 |
0x1001 |
0x1011 |
日立DT-DR20000 |
0x1020 |
0x1040 |
− |
日立DT-DRX100,DT-DR1,DM-HS1 |
0x0102 |
0x0104 |
0x0105 |
松下NV-DHE10 |
0x0102 |
0x0104 |
− |
アナログ入力をD-VHS録画した場合は,録画に使ったD-VHSデッキによってPIDが異なるようです。日立
DT-DR1のようにi.LINKを持たない機種で録画したテープも,i.LINK付きの機種に持っていけばキャプチャ可能です。また日立
DM-HS1はD-VHSではなくHDDレコーダですが,キャプチャできたという報告があります。この機種はD-VHSと相互にダビングできる互換性を持っているため,PC側からはD-VHSデッキの一種として扱えるということなのでしょう。
CSデジタル放送(
SKY PerfecTV!)の各チャンネルのPIDについては下記のサイトに情報があります。
LyngSat Digital Packages Sky PerfecTV on JCSAT 3
LyngSat Digital Packages Sky PerfecTV on JCSAT 4
編集して書き戻す手段が無いため今のところ実用性はあまりありませんが,D-VHSのキャプチャは技術的には非常に面白いものです。特にハイビジョンのキャプチャについては絶望的と思われていただけに,実際にPC上で再生された映像を見た時は感動しました。BSデジタル放送に関しては今後キャプチャできなくなる可能性が高いと言われていますが,アナログ入力をD-VHS録画したものに関しては今後もキャプチャ可能な状態が続くと思われます。
現在,先駆者の方々の間ではキャプチャしたMPEG2-TS形式のファイルをMPEG2-PS形式に変換して一般的なMPEG対応ソフトウエアで扱えるようにする試みが行われています。いずれはGraphEditを使わずにもっと簡単にキャプチャできるようになるかもしれません。
またキャプチャしてみて初めて分かったのですが,BS-iやBSフジでは16:9のHDTV映像を1440×1080で放送しているという事実には驚きました。1440×1080という解像度は正方ピクセルだと4:3の画面になります。これに16:9の映像を乗せているわけですから,ちょうどNTSCのスクイーズのような方式だと言えます。何故このような方式が取られているのかはわかりませんが,4:3映像と作成機材を共通化できるといった利点があるのかもしれません。
参考文献 (先駆者の方々による情報)
更新履歴
2002/01/22 |
初版 |
2003/05/06 |
「注意」を追記 |