用directshow抽帧遇到问题

nbnitboy 2013-08-06 03:21:50
m_pMediaPlayer->Pause();
for(LONGLONG llFrameNum=0; llFrameNum<m_iTotalTime; llFrameNum=llFrameNum+2)
{
cout<<"llFrameNum: "<<llFrameNum<<endl;
rtNow = llFrameNum * m_llavgtimeperframe;
hRes = m_pSeeking->SetPositions(&rtNow, AM_SEEKING_AbsolutePositioning,
NULL, AM_SEEKING_NoPositioning);

hRes = m_pMedia->GetState(100, &fState) ;//刷新

}

其中,m_iTotalTime和m_llavgtimeperframe表示总的帧数和每一帧平均时间;

问题是:
1. 这样做会显示的视频表现出很卡!!SetPositions处;
2. 如何GetState没有的话,视频出不来,感觉起到了刷新的作用。
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ArcRain 2013-08-09
  • 打赏
  • 举报
回复
SourceFilter没做过优化的话,SetPositions是会影响性能...关键看Filter怎么来实现SetPositions了...
ArcRain 2013-08-09
  • 打赏
  • 举报
回复
引用 4 楼 nbnitboy 的回复:
[quote=引用 3 楼 dream238 的回复:] SourceFilter没做过优化的话,SetPositions是会影响性能...关键看Filter怎么来实现SetPositions了...
setPosition应该是分离器上做的;但这个spliter不是自己写的![/quote] 有些SourceFilter也会实现spliter的功能,其实主要的意思就是,要去优化这个函数,不是自己写的就没办法了...
nbnitboy 2013-08-09
  • 打赏
  • 举报
回复
引用 3 楼 dream238 的回复:
SourceFilter没做过优化的话,SetPositions是会影响性能...关键看Filter怎么来实现SetPositions了...
SourceFilter做啥优化?
nbnitboy 2013-08-09
  • 打赏
  • 举报
回复
引用 3 楼 dream238 的回复:
SourceFilter没做过优化的话,SetPositions是会影响性能...关键看Filter怎么来实现SetPositions了...
setPosition应该是分离器上做的;但这个spliter不是自己写的!
nbnitboy 2013-08-07
  • 打赏
  • 举报
回复
还真没有人,!!!
nbnitboy 2013-08-06
  • 打赏
  • 举报
回复
顶,没有人!!?

2,554

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧