【发布时间】:2015-01-30 20:57:10
【问题描述】:
首先,这是我想要完成的任务: 我们想为我们的商业应用程序添加生成视频文件以可视化数据的功能。它应该以合理的压缩格式保存。重要的是,编码库/编解码器已获得许可,这样我们就可以不受限制地使用和销售我们的软件。客户可以轻松播放媒体格式也很重要,即无需安装编解码器包即可由 Windows Media Player 播放。
我正在尝试通过创建一个带有一个生成视频的输出引脚的源过滤器来在 C++ 中使用 DirectShow。我正在密切关注名为 Bouncing Ball 和 Push Source 的 DirectShow 示例。在 GraphEdit 中,我可以成功连接到视频渲染器并查看视频播放。我还设法连接到 AVI Mux,然后文件编写器写入未压缩的 AVI 文件。唯一的问题是巨大的文件大小。但是,我无法以压缩格式保存视频。 Ball 和 Push Source 示例也会出现此问题。
我可以将输出引脚连接到 WM ASF 写入器,但是当我单击播放时,我得到“此图无法播放。未指定的错误(返回代码:0x80004005)。” 我什至无法弄清楚如何连接到 WMVideo9 编码器 DMO(“这些过滤器无法就连接达成一致”)。我可以成功保存到 mjpeg,但压缩不是很大。
如果我在 GraphEdit 中做错了什么或者我的源过滤器代码需要修改,请告诉我。或者,如果有另一个(非 DirectShow)选项对我有用,我愿意接受建议。谢谢。
【问题讨论】:
标签: c++ winapi video directshow