gpt4 book ai didi

c++ - 在 DirectShow 过滤图中使用 Async_reader 和 Wave Parser 会导致视频搜索问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:19 25 4
gpt4 key购买 nike

一些背景:

我正在尝试根据 DirectShow SDK 中的 pushsource 示例创建 DirectShow 源过滤器。这实质上是将一组位图输出到视频中,每个位图都可以持续很长时间(例如 30 秒)。我已经设置了一个过滤器图,它使用 Async_reader 和一个用于音频的 Wave Parser 以及我的新过滤器来推送视频(过滤器是一个 CSourceStream 并且我在 FillBuffer 函数中填充我的帧)。它们都连接到 WMASFWriter 以输出 WMV。

问题:

当我尝试搜索生成的视频时,我必须等到位图的开始时间出现后才能显示。例如,如果我当前正在查看位图 4 并跳回到显示位图 2 的时间,则视频输出将不会更改,直到第三个位图开始。最初我想知道我是否允许 FillBuffer 被调用得足够多(因为目前每个位图只有一次)但是我后来注意到当音轨很短时(也许只有一秒钟长),我可以通过视频符合预期。还有另一种方法可以将音频引入过滤器图中吗?在呈现 WMV 后,我是否需要执行某种索引?我有点不知所措......

最佳答案

您可能需要将索引作为后处理步骤。尝试使用 Windows Media Encoder SDK 中的 Windows Media 文件编辑器对其进行索引看看这是否改善了寻找。

减少编码器配置文件中的关键帧间隔可能会改善搜索。这可以在 SDK 的 Windows Media 配置文件编辑器中完成。请注意,这会导致文件大小增加。

关于c++ - 在 DirectShow 过滤图中使用 Async_reader 和 Wave Parser 会导致视频搜索问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883549/

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