gpt4 book ai didi

c++ - 如何将视频数据馈送到 DirectShow 过滤器以压缩/编码并保存到文件?

转载 作者:行者123 更新时间:2023-11-30 05:48:20 25 4
gpt4 key购买 nike

首先,这是我要完成的工作:我们想为我们的商业应用程序添加生成视频文件以可视化数据的功能。它应该以合理压缩的格式保存。编码库/编解码器获得许可非常重要,这样我们就可以不受限制地使用和销售我们的软件。客户可以轻松播放媒体格式也很重要,即无需安装编解码器包即可通过 Windows Media Player 播放。

我正在尝试通过使用一个生成视频的输出引脚创建源过滤器来在 C++ 中使用 DirectShow。我密切关注名为 Bouncing Ball 和 Push Source 的 DirectShow 示例。在 GraphEdit 中,我可以成功连接到视频渲染器并观看视频播放。我还设法连接到 AVI Mux,然后连接到文件编写器以编写未压缩的 AVI 文件。唯一的问题是巨大的文件大小。但是,我无法以压缩格式保存视频。 Ball 和 Push Source 示例也会出现此问题。

我可以将输出引脚连接到 WM ASF Writer,但是当我点击播放时,我得到“此图无法播放。未指定的错误(返回代码:0x80004005)”。我什至不知道如何连接到 WMVideo9 编码器 DMO(“这些过滤器无法就连接达成一致”)。我可以成功地保存到 mjpeg,但压缩不是很大。

如果我在 GraphEdit 中做错了什么或者我的源过滤器代码是否需要修改,请告诉我。或者,如果有另一个(非 DirectShow)选项适合我,我愿意接受建议。谢谢。

最佳答案

您没有提供详细信息来帮助您修改过滤器,但是 Ball 示例会生成可以写入文件的输出。

您选择的 WM ASF Writer 过滤器没问题 - 它是常用过滤器,或多或少易于处理。但是有一个警告:您需要先在过滤器上选择仅视频配置文件,然后连接视频输入。 WM ASF Writer 不会在未连接的输入引脚下运行,并且在默认状态下它还有一个音频输入。当然,这也可以通过编程方式完成。

图表可以这么简单,可以运行,生成可播放的文件。

关于c++ - 如何将视频数据馈送到 DirectShow 过滤器以压缩/编码并保存到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28244489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com