none
关于DirectShow RRS feed

  • 问题

  • 不知道关于DirectShow之类的问题在这里提出是否合适,请斑竹见谅

    我是DirectShow新手 现在接手一个用来编辑字幕的应用程序,主要用DirectShow9搭建一个简单的播放器播放wm9文件,其中用到OverLayMixer过滤器用来过滤掉字幕编辑层的底色(所以用的VideoRender)和IMediaSeeking接口用来做精确位置查找及帧前进后退。
     程序在Windows Media Player 9 或 10环境里运行正常, 但如果安装了11, 再用IMediaSeeking.SetPositions 的时候,第一次会跳到一个之前比较远的帧,然后再调用画面就不动了,给人的感觉是IMediaSeeking无法找到每一帧的精确位置,但是用capabilities测试没有问题,并且跟踪Position好像也没有问题,是不是VideoRender的问题??
    因为wm11同时安装了format 11 runtime不知道其中做了什么改变??
    请指教!!!!
    • 已移动 Sheng Jiang 蒋晟Moderator 2009年3月7日 0:51 Windows API问题 (从 Visual Studio 相关讨论 移动到 Windows Vista 开发相关讨论)
    • 已移动 小鱼儿 2009年5月19日 9:31 ([Loc]From:Windows Vista 开发相关讨论)
    2009年3月6日 20:32

答案

全部回复

  • 写入I帧的间隔正确么?写入帧的时候是否正确设置了关键帧属性?编码解码器是否正确处理I帧?
    如果可能的话,把图像导出来重新编码一遍,编码时改变关键帧的频率,这样可以查出很多和关键帧编码不当相关的问题。

    MSMVP VC++
    2009年3月7日 1:00
    版主
  • 谢谢回复 ,不过正如我说,我真的刚刚接触DS真的是新手,所以你说的我一点也看不懂,
    什么是I帧,什么又是关键帧???什么时候叫做写入帧??我没有做capture,只是播放文件  
    怎样设置关键帧的属性????

    这些和安装了wm11有密切关系??

    谢谢回复
    2009年3月7日 23:39
  • 呃,不是一个帖子可以说完的,先下载Windows Media Format SDK看看吧……
    MSMVP VC++
    2009年3月8日 0:38
    版主
  • 没有进行编码。所以没有用到windowsMediaFormat SDK, 我觉得这个问题更可能是DirectShow层面上的不是么??微软不可能做一个format11不全面兼容9,我还是觉得问题出在搭建播放器的时候过滤器的设置可能有问题,某些flags没有准确的设置,或者在11的时候有所改变??或者11为了更好的应用VMR9改变了对普通VideoRender的一些支持?? 或者是OverlayMixer的问题??

    因为试了在SetPositions的时候音频部分貌似可以改变,唯独视频部分不动

    不过还是感谢回复,我已经下载了format11的SDK这两天学习学习,有不懂的再请教
    2009年3月8日 17:39