我正在处理从 directshow 音频/视频捕获源(带麦克风的网络摄像头)捕获音频/视频。我想问你们是否有人真正深刻地了解应该如何进行同步。
到目前为止,我能够使用参考时钟找到该图,它应该同步图中的所有过滤器,并且音频捕获设备确实有一个默认缓冲区 500 毫秒,我可以将其设置为更低。
基于这篇文章 http://blogs.msdn.com/b/medmedia/archive/2007/03/05/basics-of-av-synchronization-in-directshow.aspx
我发现音频渲染器被设置为 ReferenceClock 的默认值。所以我像这样构建:
Audio Capture -> Infinite Pin Tee Filter -> Default DirectSound Device
-> WM ASF WRITER
Video Capture -> Infinite Pin Tee Filter -> Color space converter -> Video Render
-> WM ASF WRITER
如果图中的所有过滤器都通过参考时钟同步,并且 WM ASF WRITER deos 处理时间戳。我希望因为默认 DirectSound 设备已设置参考时钟 WM ASF WRITER 应该同步。但事实并非如此。我可以在捕获过程中看到音频/视频渲染是同步的。但最终的 WMV 文件不是,我不明白为什么。
我要处理的第二个问题是音频捕获设备立即准备就绪,但视频捕获设备需要 2-3 秒。有没有办法处理这个问题,所以我没有前 2-3 秒没有视频的 wmv?
非常感谢您提供的任何链接、帮助或建议问候 Teamol