当前位置: 代码迷 >> 多媒体/流媒体开发 >> directshow 播放视频怎么快进和慢放
  详细解决方案

directshow 播放视频怎么快进和慢放

热度:6352   发布时间:2013-02-26 00:00:00.0
directshow 播放视频如何快进和慢放
调用IMediaSeeking.SetRate(2.0)
IMediaSeeking.SetRate(0.5)都返回错误
错误代码是0x80004001

怎么快进和慢放啊?

------解决方案--------------------------------------------------------
貌似有的视频不支持快进、慢放吧
------解决方案--------------------------------------------------------
graph中用到的filter不支持的话是没有办法支持的
------解决方案--------------------------------------------------------
你播放的是什么视频,很多es流没有timestamp概念的,不可以改变速度和拖放。

还有就是IMediaSeeking.SetRate还有别的函数需要配合使用的,只有这个是不行的。

一个可能的原因是改变速度后没有flush掉原来的数据块,SetRate后要对每个数据包重新打时间戳,所以要将已经解析还没有被解码或者播放的数据包重新打上时间戳。

至于那个错误代码没有遇到过,不知道具体是什么问题。

------解决方案--------------------------------------------------------
要不弄个假的快进快放
手动setPosition
------解决方案--------------------------------------------------------
ts不可以
------解决方案--------------------------------------------------------
貌似和时间戳有关系
  相关解决方案