2017-02-05 7 views
0

私のプログラムはWindows Media Foundation WMV/WMA MFTを使用してASF形式にエンコードします(muxはffmpegで行われます)。生成されたファイルはWin10のWindows Media Playerで完全に再生できますが、GraphEdit、エラーコード== NS_E_INVALID_DATA(0xC00D002FL)でレンダリングできませんでした。ASFファイルはGraphEditでレンダリングできませんが、WMPで再生できます

IWMSyncReader-> GetNextSampleを使用してオーディオサンプルを読み込むと、同じエラーが発生します。

サンプル壊れたビデオはここにある:https://www.dropbox.com/s/x8uyaqbclq93u5d/big_buck_bunny.wmv?dl=0

誰もが、原因を確認して見てもらえますか? ありがとう

+1

壊れたビデオには、ビデオとオーディオの拡張ストリームプロパティオブジェクトが含まれていません。 MS Windows Media ASF Viewer(https://www.microsoft.com/en-us/download/details.aspx?id=12826)のようなツールを使って調べることができます。拡張ストリームのプロパティを作成するには、ASFメディアシンクを適切に設定する必要があるようです。 – VuVirt

+0

ところで、私はWin7とWin10でSimplePlayサンプルプログラムを使用しました。ビデオは両方のプラットフォームで完全に再生できます。 Windows Media APIのいくつかの制限に起因する可能性がありますか? – rhbc73

+0

Win7とWin10のWMPでも完全に再生できます。 Windows Media APIのみがオーディオの読み込みに失敗します。 – rhbc73

答えて

0

Windows Media ASF Viewerでwmvファイルを調べたところ、Lavfエンコーダ(FFMPEG)でエンコードされているとの結論に達しました。したがって、LAV directshow filtersをインストールし、Graphstudionextでwmvを再生しました。ファイルを非同期のファイルソースとして追加した後、グラフが自動的にLAVスプリッタを使用しました。 LAVスプリッタだけがこのwmvを解析できるようです。あなたのアプリでは、File source async filterを介してファイルを追加し、LAVに解析させる(インストールされている場合)ことで同じことができます。

関連する問題