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

标签 streaming directshow smooth

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

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

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

最佳答案

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

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

G

关于streaming - DirectShow:从 MP4 容器中选择源视频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3117663/

相关文章:

r - R图,x轴和y轴接触

c# - 需要在 C# 应用程序中从摄像头捕获视频流

node.js - 从 Golang 后端流式传输文件到 Node 前端

c++ - 捕获预览到增强型视频渲染器

streaming - Netflix 和 Hulu 使用哪个 CDN,他们如何以每月 10 美元的价格提供无限制的流媒体服务?

r - 如何推断超出传递给 `ksmooth` 的 x 点?

streaming - GStreamer rtp 流到 vlc

flash - Flash 使用哪种编解码器将视频从网络摄像头流式传输到 RTMP、RTMFP 服务器?

ffmpeg - 使用 FFmpeg 和 DirectShow(dshow 输入)捕获 48 kHz 音频

c++ - 如何将 win32 应用程序迁移到 x64 应用程序?