2011-12-29 12 views
1

私は検索しましたが(Googleとフォーラム)、これに対する答えはまだ見つかりません。私は、このスレッドで、このサイトで親しまカスタムビデオDShowコーデックの作成

Custom File Format And Codec?

が、それは私の質問に答え、直接ではありません。

基本的に、私はDShowフィルタとして動作するカスタムビデオコーデックを作成したいと思います。私はビデオのエンコーディングとデコードの方法について質問していません。メディアプレーヤー(WMPなど)と正しくインターフェースするためにフィルタを設定する方法を知りたい/したいです。

プラットフォーム:Windows 7 64ビット

メディアプレーヤー:Any。カスタムコーデックと別のプレーヤーとのインターフェースが簡単な場合は、ぜひプレーヤーを推薦してください。

言語:C++

私の理解では、私が.axまたは.dllの形でDShowフィルタを作成した場合、私はちょうどます。regsvr32を使用してWindowsに登録する必要があるということです、とWMPが、その後のことができるようになりますそのコーデックを使用してファイルを開きます。その場合、私はAVIコンテナを使用して自分のコーデックを収容します。

私は以前にDAW用にVSTプラグインを作成しましたが、プログラムの構造に関する要件がありました。ホストプログラム(ロジック、プロツールなど)がオーディオデータを処理するために使用する特定の機能(特定の名前)を含む必要がありました。たとえば、必要なprocessとprocessReplacingメソッドがあります。

ビデオコーデックの構造を調べるために、私は標準プレーヤーと適切にインターフェイスをとることができません。

ご協力いただければ幸いです。前もって感謝します。

答えて

1

DirectShowでは、新しい/独自のビデオサブタイプ識別子(GUID)を選択すると、エンコーダとデコーダのフィルタが作成され、DirectShow Intelligent Connectで正しく登録されます。

エンコーダフィルタとデコーダフィルタは、ビデオデータの特定の変換を行うために登録されたCOMオブジェクトです。 MSDNはWriting Transform Filtersで説明していますが、これはDirectShowの概念に精通していることを前提としています。

データをAVIコンテナに保存したい場合、サブタイプ識別子は、定義済みマッピングを使用してサブタイプGUIDに変換される32ビットの「4文字コード」(FourCC)に限定されます。

DirectShowのIntelligent Connectのおかげで、DriectShow対応のアプリケーションは、データを再生するためにデコーダを自動的に見つけてマウントすることができます。 WMPはDirectShowを使用してファイルを再生するので、WMPは内部的にコーデックを使用するファイルも受け入れることができます。

また、青色からDirectShowフィルタを書き出すことは、複雑なことかもしれません。あなたはビデオエンコーダ/デコーダのメーカーにしか興味がないので、代わりにDirectX Media ObjectDMO)と書いてください。標準DMO Wrapper FilterDMOをDirectShowフィルタにラップします。あなたはATLをCOMベースとして使うことができるなど、DMOを書く方がはるかに簡単です。

+0

ワウ。このドキュメンテーションは私のGoogleの検索から逃れましたか? – boogagiga

+0

とにかく、情報をありがとう。私はそれらの記事を見て、私がそれを作ることができるものを見ていきます。 – boogagiga

+0

上記の「DMO」に関する私の更新も見てください。 @RomanR。 –

関連する問題