4

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

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

我是否必须实例化多个源过滤器才能读取该文件并将它们混合到 ISMV 中,还是我遗漏了什么?

4

1 回答 1

3

这取决于您用于 MP4 的解复用器。我认为没有库存 MP4 解复用器,因此您可能已经将一个作为解码器包的一部分,它既充当源又充当解复用器。

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

G

于 2010-06-25T12:51:55.633 回答