cpu占用过高怎么办?

Glexander 2007-07-28 11:51:08
本人初学视频编程,现采用WM SDK9编一个屏幕录像的工具,采用的codec是WMMEDIASUBTYPE_MSS2,发现一旦启动之后cpu占用率很高,基本上是100%,不知道该怎么解决,WM SDK好像没有更好的codec了,不知道有没有什么第三方的codec可以用?我的录像原理不是采用定时采样的,而是每当检测到屏幕更新的时候才进行采样,每次采样写入的sample都是整个屏幕。SDK里有没有什么方式(codec)可以只往媒体文件里写入需要更新的区域,而让codec自己去处理剩下的工作?
...全文
1153 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Afile 2007-07-31
  • 打赏
  • 举报
回复
要录成流媒体的录像,就得有完整的帧了,不觉得使用这种屏幕更新的mini driver方法有什么好的,最后一样得重新在某个DC或是表面上有一帧DIB图像。

我原来试过写一个使用DirectDraw的截屏程序,直接将表面取下来后,ReScale到一个固定大小的离屏表面,似乎DirectDraw的ReScale速度优化还不错,也许会使用到显卡的硬件加速吧。一秒30帧,没有再编码而是重接再重绘到一个窗体上,在我的平台(Core Duo 1.6G,ATI X1400)上几乎没有占用,每帧截屏、ReScale、重绘使用的时间少于1ms。

主要CPU占用怕就是codec了,不过QVGA 30FPS的各类软件codec占用也不是很高(等同于视频聊天)。只是你我讨论的开发框架不一样了,我不大了解WM SDK,如果要实践编码成流媒体,我可能会考虑使用DirectShow框架。



蒋晟 2007-07-30
  • 打赏
  • 举报
回复
去看看VNC的源代码
Glexander 2007-07-30
  • 打赏
  • 举报
回复
谢谢楼上,但是我不知道这和vnc有什么关系,我知道vnc也是只更新需要更新的区域,我想知道的是怎么把这个录成视频,而且cpu占用率还不高,应该用什么样的codec

2,543

社区成员

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

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