初版:2002/01/22
改訂:2003/05/06
ANGIE WORKSHOP > 人柱実験工房 > D-VHSからのデジタルキャプチャ

D-VHSからのデジタルキャプチャ

これまでD-VHSビデオデッキからi.LINK経由でデジタルデータをPCにキャプチャすることは不可能とされていました。しかしWindows XPで導入された新機能によってこれが可能になったことが判明しましたので,その詳細をレポートします。

なお,この手順は日頃から指導を仰いでいるtomtia師匠から教えていただいた情報を整理したものです。さらに2chの関連スレッドや偉大な先駆者の方々のサイトで公表されている情報を付け加えています。私自身は魔法使いの弟子にすぎませんので,細かい技術的な話では間違いがあるかもしれません。もし何か問題がありましたらご指摘いただけますとありがたいです。

それから以下の説明は,ある程度PCの操作とビデオキャプチャに関するスキルがある人を読者として想定しています。この説明で理解できない人はあきらめてください。

★注意 (2003/05/06追記)
このレポートで報告している内容はあくまで当時の知識に基づいた実験に過ぎません。現在はこんなことをしなくても CapDVHS という優れたフリーソフトウエアにより簡単にキャプチャができるようになっています。GraphEditやElecard社のMPEG2デコーダは必要ありません。

実験を追試する目的なら構いませんが,実用的なキャプチャ環境を構築するのが目的であるなら,このレポートの手順には従わないでください。特にElecard社のMPEG2デコーダはインストールするとトラブルの元になることが多いようです。

nextprev 1.何ができるのか?

率直に言えば,実験レベルでキャプチャできることが実証されたというだけの話です。DVで使われているような実用的なビデオ編集環境が構築できるという話ではありません。過度な期待はしないでください。

できること

できないこと


現状ではD-VHSに書き戻す方法が見つかっていません。世の中にはD-VHSにPCからデータを出力する製品も存在していますが,これらを使っても実現は難しいようです。この種の製品としては松下のMotion DV STUDIOとアイ・オー・データのGV-DVC3/PCIがあり,いずれもSDTVのMPEG2データに限ってD-VHSに出力することが可能です。ただし実際には細かい制約があるため,今回見つかった方法でキャプチャしたデータをそのまま書き戻すことができるわけではないようです。

nextprev 2.キャプチャ環境の構築

必要なハードウエアとソフトウエアは以下の通りです。

表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製品のα版しかないようです。

環境構築の手順

Elecardデコーダを入れたら,適当なMPEG2ファイルを用意してMedia Playerで再生できることを確認してください。デコーダがα版であるため,画面右上コーナーにElecard社のロゴマークが表示されます。

nextprev 3.キャプチャの手順

環境が構築できたら実際にキャプチャしてみましょう。PCにi.LINKケーブルでD-VHSデッキを1台だけつなぎます。BSデジタルチューナーなどの他のi.LINKデバイスはD-VHSデッキからすべて外してください。あっても一応動くみたいですが,最初はシンプルな構成から試すのが余計なトラブルを避けるコツです。

写真1.NV-DH1のデバイス
写真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の追加
写真2.Microsoft AV/C Tape Subunit Deviceの追加

さらにDirectShow Filtersの配下にあるMPEG-2 DemultiplexerとDumpも追加します。Dumpを追加するとファイル名を聞いてきますので適当なファイル名を入力します。このファイルにキャプチャデータが格納されます。

各フィルタには入力Pinと出力Pinがあり,それらをつないでやることでキャプチャツールのグラフを組み立てます。最終的には写真3のようにつないだグラフを作ります。

写真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の追加
写真4.出力Pinの追加

PID Mappingsタブで,Elementary Streamを指定してPID 0x0111をVideoにマッピングします。このPIDの値は入力ソースによって異なるようです。0x0111はBSフジやBS-iのHDTV映像で使われているPIDです。ここでは入力としてBSフジの「水着でハイビジョ」を録画したものを使いました(笑)。NHK BS hiの映像を使う場合は0x0100を指定してください。その他の場合のPIDについては後述します。

写真5.PIDのマッピング
写真5.PIDのマッピング
※先にMicrosoft AV/C Tape Subunit Deviceの出力をMPEG-2 Demultiplexerの入力につないでおかないと,この「PID Mappings」タブは現れないようです。

[OK]を押してプロパティを閉じ,「View」メニューから「Refresh」を実行すると追加した出力Pinが現れます。後は写真3のように出力をDumpフィルタにつなぎます。これでキャプチャツールのグラフの出来上がりです。

キャプチャの実行

準備ができたらキャプチャを実行します。GraphEditのPLAYボタンPLAYボタンを押し,D-VHSデッキ側も再生します。成功したらDumpで指定したファイルがどんどん大きくなるはずです。適当な所でSTOPボタンSTOPボタンを押して止めてください。キャプチャしたファイルをMedia Playerで再生して映像が再生されることを確認します。

音声もキャプチャする

次に音声もキャプチャするように変更してみます。MPEG-2 Demultiplexerのプロパティで音声出力用のAudio Pinを同様の手順で追加します。PID MappingsタブでPID 0x112(BSフジの場合)をAudioにマッピングします。これでAudio出力Pinができますので,Dumpフィルタをもう一つ追加してつなぎます。映像とは別のファイル名を指定してください(写真6)。

写真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」で,ファイル名はランダムに決められるようです。

nextprev 4.PIDについて

上記の手順で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

nextprev 5.まとめ

編集して書き戻す手段が無いため今のところ実用性はあまりありませんが,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 「注意」を追記

top access