C++ 获取MP4流长度

C++ 获取MP4流长度,c++,directshow,mp4,C++,Directshow,Mp4,我在一个应用程序中工作,我们使用IMediaDet来获取流长度。现在我们开始使用MP4容器。问题是,当我尝试将IMediaDet::put_fileName()与MP4文件一起使用时,得到的结果是HRESULT=-2147024770(错误为未找到MOD_)。使用商用mp4解复用器,我看到视频流使用mpg2编码 我的问题:如何获得MP4容器内流的流长度?有没有办法让IMediaDet接受这些文件?有没有办法指出解复用器IMediaDet应该使用什么 任何帮助都将不胜感激 谢谢。不幸的是。在Wi7

我在一个应用程序中工作,我们使用IMediaDet来获取流长度。现在我们开始使用MP4容器。问题是,当我尝试将IMediaDet::put_fileName()与MP4文件一起使用时,得到的结果是HRESULT=-2147024770(错误为未找到MOD_)。使用商用mp4解复用器,我看到视频流使用mpg2编码

我的问题:如何获得MP4容器内流的流长度?有没有办法让IMediaDet接受这些文件?有没有办法指出解复用器IMediaDet应该使用什么

任何帮助都将不胜感激

谢谢。

不幸的是。在Wi7中,MP4功能被添加到媒体基础。 所以你有几个选择。您可以购买或构建一个directshow筛选器,该筛选器实现MP4解复用和,从而允许IMediaDet正确解复用文件。或者你可以使用MediaFoundation,它应该能够返回这个信息。或者,您可以为MP4文件使用单独的库。(注意,如果您想直接使用DirectShow而不是MP4v2,也可以使用MP4v2实现MP4解复用过滤器)

可能会有帮助。。。