我已经在 DirectShow.NET 的论坛上开始了一个线程,这里是链接http://sourceforge.net/projects/directshownet/forums/forum/460697/topic/5194414/index/page/1 但不幸的是问题仍然存在...
我有一个应用程序,它从网络摄像头捕获视频并从麦克风捕获音频并将其保存到文件中,由于某种原因,音频和视频永远不会同步,我尝试了以下方法: 1. 从 ffdshow 编码器开始并更改为 AVI多路复用器 - 问题仍然存在,音频延迟,在视频结束时图片保持冻结,音频继续 2. 从 AVI 多路复用器更改为 WM ASF 写入器 - 视频在开始时冻结(2 秒),其余视频在-sync(但前两秒不可用) 3. 创建打印音频和视频时间戳的 SampleGrabber - 看到音频时间戳早于 500 毫秒,但我不知道如何处理这个事实...... 4。尝试手动将 ReferenceClock 设置为捕获过滤器之一(音频/视频),但两者都不会转换为 IReferenceClock 5。创建了一个 SystemClock 并设置它具有 ReferenceClock - 没有区别 6. 在 grap 上设置 SyncUsingStreamOffset(true) - 时间戳现在更接近但最终结果相同 7. 尝试将音频和视频保存到两个不同的文件并使用VirtualDub 看看他们是否匹配,他们仍然不...
哦,我忘了提到我也尝试在 GraphEditPlus 中构建图表,但问题仍然存在,这是图表的链接:http ://www2.picturepush.com/photo/a/8030745/img/8030745.png
目前我正在测试我对 DirectShow.NET 样本中 CapWMV 样本的所有更改。
请任何建议将不胜感激,我很绝望:/
谢谢,
伊兰。
更新:
音频和视频之间似乎有一个恒定的 500ms 间隙,如果我使用 virtualDub 将音频延迟 500ms 看起来很好,如何在图表中设置它?