2010-08-11 134 views
2

我正在使用IMediaDet獲取碼流長度的應用程序中工作。現在我們開始使用MP4容器。問題是,當我用MP4文件嘗試IMediaDet :: put_fileName()時,我得到HRESULT = -2147024770(ERROR_MOD_NOT_FOUND)。使用商業mp4分路器,我看到視頻流使用mpg2編碼。獲取MP4碼流長度

我的問題:如何獲得MP4容器內流的流長度?有沒有辦法讓IMediaDet接受這些文件?有沒有辦法指出demuxer的IMediaDet應該使用什麼?

任何幫助將不勝感激。

謝謝。

+0

http://www.fourcc.org/可能會幫助... – rogerdpack 2010-08-11 22:03:31

回答

1

不幸的是,DirectShow does not contain an MP4 parser, even in Windows 7。在Win7中,MP4功能已添加到媒體基礎。

所以你有幾個選擇。您可以購買或構建實現MP4 demux和associate it with the "mp4" file extension的directshow過濾器,這應該允許IMediaDet正確解複用文件。或者你可以使用Media Foundation,它應該能夠返回這個信息。或者,您可以使用完全用於MP4文件的單獨庫,like MP4v2。 (注意,如果您想直接使用DirectShow而不是MP4v2,也可以使用MP4v2實現MP4解複用過濾器)