0

我正在尝试基于 DirectShow SDK 中的 pushsource 示例创建 DirectShow 源过滤器。我的源过滤器基本上输出一组位图,每个位图通常持续约 600 毫秒,到视频。我已经设置了一个过滤器图,它使用 Async_reader 和 Wave Parser 用于音频和我的新过滤器来推送视频(过滤器是 CSourceStream,我在 FillBuffer 函数中填充我的帧)。它们都连接到 WMASFWriter 以输出 WMV。

我发现有时与关键帧间隔相对应,视频会暂停一两秒。这在高清分辨率下似乎更糟,认为这可能是一个红鲱鱼。什么样的事情可能会导致这种情况?这是否与我允许调用 FillBuffer 的频率有关(我的帧速率是 30fps,所以我最终会得到相同的位图重复几帧)?

4

1 回答 1

2

常识(与所讨论的效果的特定经验相反)表明关键帧的编码消耗了太多带宽,而其余的不足以编码紧随关键帧的片段的移动。我假设这是 CBR 模式,也许 VBR 模式可以提供更好的编码。

于 2012-01-31T11:42:25.853 回答