directshow采集到的音频和视频播放时不同步问题!播放时音频比视频超前了

雷格 2012-11-15 07:29:46


大致是安装上面这个图建立的graph,可能视频预览不同,是智能处理的。

采集到的视频文件,用potplayer播放器播放时,视频比音频超前
后来我又在mux上把音频流设为主流,发现捕获到的文件,音频比视频超前。就是不能同步。

于是查看了directshow文档后,想到主动设置一下参考时钟,可是我在音频捕获filter和视频捕获filter上查询IReferenceClock都失败了。难道捕获filter上不支持参考时钟吗?捕获filter不是实时源吗?实时源不是可以作为参考时钟吗?

文档上说Live sources can be synchronized through the IAMPushSource interface。这个我也试了。
IAMGraphStreams *pIAMGStream = NULL;
hr = pGraph->QueryInterface(IID_IAMGraphStreams,(void**)&pIAMGStream);
assert(SUCCEEDED(hr));
pIAMGStream->SyncUsingStreamOffset(TRUE);
assert(SUCCEEDED(hr));
pIAMGStream->Release();
return S_OK;

还是没什么作用?

怎样才能同步呢?
...全文
181 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ensue 2012-11-17
  • 打赏
  • 举报
回复
应该是音频帧长短的问题.如果音频一秒采集一帧的话,那么视频采集了1秒之后,才会收到一帧音频.能把音频帧率设置大一些,比如1秒10帧.估计同步性能就好了

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧