|
|
DirectX SDKを使用した変換
WindowsMediaテクノロジーは現在DirectXに含まれるDirectShowを使用しています。このDirectXの開発キット、SDKに含まれるGraphEditを使用することでWMV、ASFなどをAVI化することが出来ます。
DirectXとDirectShow
- WindowsMediaとDirectX
- WindowsMediaテクノロジーはDirectShowを使った技術ですが現在このDirectShowはDirectXに統合されました。ご存じのようにDirectXは沢山のAPIの集まりであり他にも様々なマルチメディア機能の実現に利用されています。
- SDK、開発キットには様々なサンプル、ツールが含まれており結構面白いものもあります。興味のある方はぜひ入手して活用してみてください(^^)
- ダウンロードはDirectXデベロップセンターから、サイズが大きいので雑誌の付録CDからのインストールをお薦めします。一緒に日本語ヘルプも入手するとより理解が深まります。
作業の流れ
- 仕組みを知ると判りやすいかも
- GraphEditはDirectShowに対応したコンテンツを調べるのに役に立ちます。さらにフィルターの役割を知ることで理解しやすくなります。そこで簡単なフィルターの説明を紹介します。
- Splitter
- AVI SplitterやMPEG-ⅠStream Splitterなどのフィルターがあります。これは一つのファイル内に含まれる映像や音声、字幕といったものを分離させるためのものです
- Decoder
- 映像や音声をデコード、つまり圧縮を解除します。対応しているコーデック用のデコーダーが存在します。
- ACM Wapper
- Mux
- AVI Muxなどがあり多重化(映像と音声を一つにすること)するためのフィルターです。
- FileWriter
- ファイルを生成するためのフィルターです。拡張子を付けて保存します。
- Compressors
- Audio、Videoがあり多数のコーデックがあります。組み合わせによっては使用出来ません。
- 作業の流れはSplitterで分離、Decoderで特定のコーデックによる圧縮解除、Compressorsでコーデックによるエンコード、Muxによる多重化、FileWriterによるファイル生成となります。
GraphEdit
- GraphEditを使う
- WMV、ASFの変換にはGraphEditというツールを使います。この方法はヤスユキさんに教えてもらいました。ありがとうございます(^^)。
- GraphEditを起動し変換したいWMV、ASFファイルをドラッグ&ドロップします。すると図のようなフローチャートが表示されます。
- ここには再生時に必要なフィルター類が表示されます。

- 図の一番右側、上下にならぶ二つのフィルターDefault DirectSound DeviceとVideoRendereを削除します。
- これは再生時に必要なフィルターであり変換時には必要が無いためです。

- 次にVideoとAudioを多重化させるためのフィルターAVI Muxを追加します。Graph
-> Insert Filters -> DirectShow Filters -> AVI Muxと辿っていってください。
- AVI Muxを選択すると画面上に表示されますのでこれにWindows Media Audio DecoderとWindows Media Video Decoderを接続させます。
- それぞれのOutとInputを接続します。
- 次にファイルに書き込むためのフィルター、File writereを選択します。Graph
-> Insert Filters -> DirectShow Filters -> File writer この際
作成する AVI データの名前を記述します。
- フィルターの追加はAVI Muxのときと同じです。
- 選択したFile writeを画面に設置しAVI Muxと接続します。
- AVI Muxのプロパティを開きInterleavingの設定の部分、Fullにチェックをいれます。これは動画と音声の同期を取るためのものです。
- 最後に画面上に出ている三角形の形をした再生ボタンを押して作業が始ります。作業中は進行状況は表示されません。再生ボタンがアクティブになった時点でエンコードは終了しています。
- 出来上がったAVIは非圧縮形式ですが元になったWMA、ASFファイルによっては問題のあるものもあるようです。うちでは動画がスローでエンコードされたり音声が出ないといった症状もありました。只今詳細に調べていますが大抵は問題なく変換出来ているようですね(^^)
コーデックを使うには?
- DirectShowフィルター
- DirectShowはフィルターを使って機能の追加をすることが出来ます。よくフィルターのリストを見ていると見慣れたコーデックが列挙されていることがわかります。これもフィルターとして機能しているわけですね。
- そこでこのコーデックを使用することにより変換されるAVIサイズを小さくすることも出来ます。具体的にはWindows
Media Video Decoderの次にコーデックのフィルターを適用します。
- コーデックの組み合わせによってはエラーが出るものもありますので注意が必要です。
- コーデックのIndeoR5.11を適用しているところ
只今学習中、GraphEdit
- 多機能なGraphEdit
- GraphEditには非常に沢山のフィルター類が備わっておりこれらの組み合わせによりファイルの変換だけでは無く複雑な作業を行なうことも可能です。但しそれぞれのフィルターの役割や組み合わせ等のドキュメント類が少なく具体的な使い方がよくわかりません。いろいろいじっている最中ですがまだまだ学習中といったところです。
最終更新日:2004-01-30 11:14:08 |
BACK ストリーミングデータの保存と変換
ストリーミ
ング保存ソフトMPX Gyao、DMMなど主要サイトに対応
|