我在一个应用程序中工作,我们使用IMediaDet来获取流的长度。现在我们开始使用MP4容器。问题是,当我对MP4文件尝试IMediaDet::put_fileName()时,我得到HRESULT = -2147024770 (ERROR_MOD_NOT_FOUND)。使用商业mp4多路分解器,我看到视频流使用mpg2编码。
我的问题:如何在MP4容器中获取流的流长度?有没有办法让IMediaDet接受这些文件?有没有办法指出IMediaDet应该使用什么解复用器?
任何帮助都将不胜感激。
谢谢。
发布于 2010-09-17 08:28:32
不幸的是DirectShow does not contain an MP4 parser, even in Windows 7。在Win7中,media foundation增加了MP4功能。
所以你有几个选择。您可以购买或构建一个实现MP4解复用器和associate it with the "mp4" file extension的directshow过滤器,这应该允许IMediaDet正确地解复用器文件。或者您可以使用Media Foundation,它应该能够返回此信息。或者,您可以完全为MP4文件使用一个单独的库like MP4v2。(请注意,如果您想直接使用MP4v2而不是MP4v2,您也可以使用DirectShow实现MP4解复用器过滤器)
https://stackoverflow.com/questions/3458881
复制相似问题