1

我构建了一个 DirectShow 图表,其中包含我的视频捕获过滤器(抓取屏幕)、默认音频输入过滤器,它们都通过分离器连接到 WM Asf Writter 输出过滤器和 VMR9 渲染器。这意味着我希望将实时音频/视频编码与预览一起保存到磁盘。问题是无论我选择什么 WM 配置文件(即使是非常低的分辨率配置文件),输出视频文件总是“抖动”——每隔几帧就会有一个延迟。音频没问题 - 音频中没有抖动。CPU 使用率低于 10%,所以我认为这不是 CPU 资源不足的问题。我想我正确地给我的帧加了时间戳。可能是什么原因?

以下是解释问题的录像机视频的链接:

http://www.youtube.com/watch?v=b71iK-wG0zU

谢谢多米尼克·汤姆恰克

4

2 回答 2

1

我过去遇到过这个问题。您的问题是写入磁盘的数据量。写入更快的驱动器是解决此问题的一个很好且简单的解决方案。我所做的另一件事是将视频压缩器放入图表中。您需要确保两个输入流都使用相同的参考时钟。使用此压缩器方案并保持良好的预览时,我遇到了很多问题。即使我使用无限 Tee 而不是 Smart Tee,我的预览帧速率也会下降,但写入磁盘的结果很好。还值得注意的是,我运行它的机器越多,问题就越小,所以如果你需要在机器上安装一个新的更快的硬盘,它实际上可能不会带来太多的胜利。

于 2009-09-15T18:16:59.120 回答
0

我不认为这是一个问题。写入的数据量小于1MB/s(编码时的平均压缩率)。我找到了原因 - 当我在没有音频输入的情况下构建图形时(WM ASF 编写器只有视频输入品脱)并且我的视频捕获引脚通过 Smart Tree 连接到预览引脚和 WM ASF 编写器输入视频引脚,那么就没有故障了输出影片。我认为这是我图表中音频到视频同步的问题。当我在 GraphEdit 中构建图形时也会发生同样的情况。没有音频,就没有故障。对于音频,每 1 秒就会出现一个持续的故障。我想知道我是否错误地标记了我的帧,但我认为我做得正确。DirectShow 图表中音频到视频同步的一般解决方案如何?

于 2009-09-17T10:05:25.013 回答