2011-03-02 55 views
1

如何在使用DirectShow处理H.264视频流时设置视频播放速率?DirectShow:IMediaSeeking :: SetRate不支持H.264流

它看起来像IMediaSeeking :: SetRate不适用于H.264视频解码器。到目前为止,我尝试了以下解码器:Microsoft DTV-DVD解码器(附带Windows 7),FFDShow视频解码器和Axis H.264解码器。

此外,我注意到一个名为帧速率转换器的DMO。你认为这可以帮助在这种情况下?

谢谢。

回答

1

我这样做的一个方法是从具有H.264视频和AAC音频的MPEG-2传输流容器。我正在从HD-PVR进行实况捕捉,并将捕获的输出提供给MPEG-2解复用器。然后我用分离的引脚分离出音频和视频,让音频直接进入流缓冲引擎接收器。我将视频送入MPEG-2视频分析器滤波器,然后进入SBE接收器。

在一张单独的图表中,我开始使用SBE Source,然后将视频提供给Microsoft DTV-DVD解码器,然后再传送到VMR9。我发送给Microsoft音频解码器的音频(我现在不记得确切的音频),然后进入DirectSound设备。

一旦我完成了所有这一切,我可以使用SBE Source上的IStreamBufferMediaSeeking和IStreamBufferMediaSeeking2接口根据需要设置速度更快或更慢。

如果您使用的是实时流(例如实时捕捉),我希望您必须执行相同的操作来为流提供适当的缓冲区。