1

使用 DirectShow 处理 H.264 视频流时如何设置视频播放速率?

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

另外,我注意到一个名为 Frame Rate Converter 的 DMO。你认为它在这种情况下会有所帮助吗?

谢谢你。

4

1 回答 1

1

我这样做的一种方法是使用带有 H.264 视频和 AAC 音频的 MPEG-2 传输流容器。我正在从 HD-PVR 进行实时捕捉,并将捕捉的输出馈送到 MPEG-2 解复用器。然后,我用单独的引脚将音频和视频分开,让音频直接进入 Streaming Buffer Engine 接收器。我将视频输入 MPEG-2 视频分析器过滤器,然后输入 SBE 接收器。

在一个单独的图表中,我从 SBE 源开始,然后将视频输入到 Microsoft DTV-DVD 解码器,然后再输入到 VMR9。我发送到 Microsoft 音频解码器的音频(我现在不记得确切的那个),然后发送到 DirectSound 设备。

完成所有这些后,我可以根据需要使用 SBE 源上的 IStreamBufferMediaSeeking 和 IStreamBufferMediaSeeking2 接口来设置更快或更慢的速率。

如果您使用的是实时流(例如实时捕获),我希望您必须做同样的事情才能为流提供适当的缓冲区。

于 2011-03-09T04:34:41.743 回答