请教
1:我现在在用Directshow做视频点播,服务器打过来的是MEPG-2 的TS流,所以就用了微软提供的MPEG-2 Demultiplexer解复用,解过之后就deliver数据,graph可以构建起来,并且能播放数据,但是出现音视频不同步,我查了一下,意思是说MPEG-2 Demultiplexer默认情况下会扮演filter graph的参考时钟的角色,最好设置filter graph的参考时钟为Audio Renderer,我就不知道用setsynsource 如何将参考时钟设置为Audio Renderer,传入什么样的参数呢?(graph从解复用之后是智能连接)
2:看Directshow开发指南上有写到在接受一些流式的压缩数据之后,时间戳很难打,在经过解码filter之后到大render filter之前一般都要打时间戳,那如果是这样的话,该解码filter是不是要自己写?
3:对于sample打时间戳,那在render之前要不要自己去处理这个时间戳,还是render filter自己就会定位?
------解决方案--------------------------------------------------------
1.枚举Graph中的FILTER, 获取Audio Renderer Filter,然后从Audio Renderer Filter中
获取参考时钟接口,调用setsynsource即可。
2.流式压缩数据一般都是在解复用后,打时间戳。解码filter一般和时间戳没有直接的关系。
3.一般不用。
------解决方案--------------------------------------------------------
1.是的,如果能直接创建audio renderer filter也可以,但要保证graph使用直接创建的
AUDIO RENDER FILTER.创建graph后,运行之前,设置clock.
2.一般都是解复用时获取到时间戳相关信息,然后设置时间戳。