DirectShow:从MP4容器中选择源视频流

时间:2010-06-25 11:42:18

标签: streaming directshow smooth

我正在构建一个需要从MP4容器读取H264和AC3流的应用程序,并将它们复用到一个ISMV文件中。源MP4文件包含许多不同比特率的视频流和许多不同语言的音频流。

当我为我的源文件调用IGraphBuilder::AddSourceFilter时,我得到一个只有两个输出引脚的过滤器:“Video”和“Audio”。如何选择用于“视频”和“音频”的特定流(例如:视频流的比特率)?

我是否必须实例化多个源过滤器以读取该文件并将它们复制到ISMV中,或者我是否遗漏了某些内容?

1 个答案:

答案 0 :(得分:4)

这取决于您用于MP4的demux。我不认为有一个库存MP4 demux,所以你可能有一个作为解码器包的一部分,这既作为源和demux。

您可以在www.gdcl.co.uk/mpeg4上试用免费的开源MP4 demux。您将需要AddSourceFilter(获取具有单个输出的文件源),然后将源输出显式连接到demux输入。然后,您将拥有与demux理解的所有已启用流相对应的输出引脚,您可以选择所需的输出引脚。