使用DirectShow处理H.264视频流时,如何设置视频播放速率?
看起来IMediaSeeking :: SetRate不适用于H.264视频解码器。到目前为止,我尝试了以下解码器:Microsoft DTV-DVD解码器(Windows 7附带),FFDShow视频解码器和Axis H.264解码器。
另外,我注意到一个称为帧速率转换器的DMO。你认为在这种情况下它会有所帮助吗?
谢谢。
答案 0 :(得分: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接口来更快或更慢地设置速率。
如果您正在使用实时流(例如实时捕获),我希望您必须为流提供适当的缓冲区。