2

私は IMediaDet を使用してストリームの長さを取得するアプリで作業しています。現在、MP4 コンテナーの使用を開始しています。問題は、MP4 ファイルで IMediaDet::put_fileName() を実行しようとすると、HRESULT = -2147024770 (ERROR_MOD_NOT_FOUND) が返されることです。市販の mp4 デマルチプレクサを使用すると、ビデオ ストリームが mpg2 エンコーディングを使用していることがわかります。

私の質問: MP4 コンテナー内のストリームのストリーム長を取得するにはどうすればよいですか? これらのファイルを IMediaDet に受け入れさせる方法はありますか? IMediaDet が使用すべきデマルチプレクサを指定する方法はありますか?

どんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

1

残念ながら、DirectShow には Windows 7 でも MP4 パーサーが含まれていません。Win7 では、MP4 機能がメディア ファンデーションに追加されました。

したがって、いくつかのオプションがあります。MP4 demux を実装する directshow フィルタを購入または構築し、それを「mp4」ファイル拡張子に関連付けることができます。これにより、IMediaDet がファイルを適切に demux できるようになります。または、この情報を返すことができる Media Foundation を使用することもできます。または、 MP4v2のように、MP4 ファイル用に完全に別のライブラリを使用することもできます。(MP4v2 の代わりに DirectShow を直接使用する場合は、MP4v2 で MP4 demux フィルターを実装することもできます)

于 2010-09-17T00:28:31.667 に答える