如何实现 DShow 过滤器来读取专门的 AVI 文件
我正在尝试编写 DirectShow 过滤器,它将读取开头包含一些 xml 数据的文件,后面包含 avi 视频。我将在过滤器中打开一个文件,跳过 xml 数据并开始播放。我在Windows SDK中找到了播放BMP文件的示例(Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\filters\pushsource)。我在哪里可以看出如何读取 avi 帧、转换帧并将其推入输出引脚? 对不起我的英语。
I'm trying to write DirectShow filter which will read file containts some xml-data at the beginning and avi video after it. I'm going open a file in the filter, skip the xml-data and begin the playback. I found in the Windows SDK the example which played BMP-file (Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\filters\pushsource). Where can I spy out how do I read avi frames, convert ones and push it in an output pin?
Sorry for my English.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在此处找到 AVI 文件规范。但有一个更简单的解决方案:使用标准 AVI Splitter 过滤器,它是 DirectShow 的一部分。只需从 SDK - Async 中获取另一个示例过滤器,让它读取您的 XML 数据,然后充当常规文件源,但从您的文件中读取带有一些偏移量的数据。这样,所有解析工作都将由 AVI Splitter 完成,并且您的过滤器需要做的就是读取 Splitter 请求的文件部分。
You can find AVI file specs here. But there is an easier solution: use standard AVI Splitter filter which is part of DirectShow. Just take another sample filter from SDK - Async and make it read your XML data and then act as a regular file source but reading data from your file with some shifted offset. This way all the parsing work will be done by AVI Splitter and all your filter needs to do is reading parts of file that Splitter requests.