2011-08-31 70 views
0

我正在为每个引脚基于CSource和CSourceStream的自定义Windows DirectShow源过滤器。有两个引脚 - 视频输出和音频输出。当使用正确的时间戳,帧速率和声音进行Graphedit和类似工具(如Graph Studio)中的单独渲染时,两个引脚都可以正常工作。我将视频呈现给视频混合呈现器(VMR7或VMR9)。音频引脚渲染数据时,DirectShow视频播放速度过快

但是,当我渲染两个引脚时,视频播放过快而音频仍然听起来正确。视频播放速度大约快50%,但我认为这受解码速度的限制。

样品上的时间戳在两种情况下都是相同的。如果我将音频流渲染到null渲染器(qedit.dll中的渲染器),则视频流将以正确的帧速率播放。该过滤器是一个运行在Win7 x64系统上的32位过滤器。

当我加入对IMediaSeeking的支持时,我发现音频流的搜索栏表现得相当奇怪。但是,如果没有IMediaSeeking支持,问题就会发生。

任何可能导致此问题的建议或进一步调查的建议?

从音频和视频端子输出类型被粘贴下面:

Mediatyp:视频子类型:RGB24格式:类型VideoInfo视频大小:1024×576像素,24位图像尺寸:1769472个字节压缩:RGB源:宽度0,高度0目标:宽度0,高度0比特率:0比特/秒。错误率:0比特/秒。平均。显示时间:41708微秒。

Mediatyp:视频子类型:RGB32格式:类型VideoInfo视频大小:1024 x 576像素,32位图像大小:2359296字节压缩:RGB源:宽度0,高度0目标:宽度0,高度0比特率:0比特/秒。错误率:0比特/秒。平均。显示时间:41708微秒。

Majortyp:音频 子类型:PCM音频 试样尺寸:3 类型WAVEFORMATEX 波形格式:未知 通道:1 样本/秒:48000 魅力。字节/秒:144000 块对齐:3 位/样本:24

回答

1

我发现问题后直接发现问题。通过正确构建问题进行调试的情况。

音频流具有完全伪造的时间戳。音频和视频流独立播放,但在一起播放时完全不同步。