windows屏幕录像
————————2012/4
时光荏苒,一年过去了,今日重拾那已故的记忆,写此随笔,来祭奠那未完结的项目。
经历:
2012年4月,大二下学期,平静的课堂上老师通知了一个比赛。。。第一届大学生软件设计大赛!然后我选了第六题:windows屏幕录像。就这样我就开始了我的vc开发生涯。
之前学了c/c++作为基础,自认为当时的自己学的还算不错(当然,现在看起来很可笑),然后就天天逃课,和同学一起查阅资料,学习win32、MFC。差不多用了两周的时间了解了一下在windows平台下有哪些屏幕录像的方法,GDI、DX、mirror driver 等等,最后由于题目要求的性能比较高(超级烂的硬件下还要求cpu消耗低于10%,内存使用小于20M),然后就选择了mirror driver,也是难度最大的一个。
由于比较心急,而且第一次做项目,啥经验也没有,连win32、mfc编程的知识也没有,所以就开始乱七八糟的学vc,经过了漫长、痛苦、挣扎、纠结的一个月之后,做这个题目的也只有我一个人还在继续了。虽然项目很难,努力了那么久,我实在不甘心放弃,况且我当时是那么的爱vc。
真是皇天不负有心人,经过了两周的时间,我把vnc官网上下载的源码,mirror driver录像的部分仔细的研究了一遍,终于明白了录像的流程。(话说现在想起来真的还是很佩服当时的自己,连vc都不清楚,居然把当时对于自己来说如此庞大的源码研究明白了)
时间已经很紧迫,快接近尾声了,故开始一个人昼夜赶代码,当时还没有一点软件工程的概念,所以啥也没在纸上画,直接凭着感觉写,写得累,但很有激情。
在还有两周就要交稿的时候,录像的功能基本实现了。通过镜像驱动将屏幕变化的矩形区域信息放到一个temp共享文件中,然后读取出来用xvid压缩成flv文件。在xp系统上(硬件:CPU 2.2GHz;内存2G)测试cpu消耗20%,内存消耗40M。是题目性能要求的2倍了,当时判断是使用xvid压缩的原因。
此时,题目要求的其它部分:网络传输,帧编号,记录矩形日志.......都还没做,况且录像部分不能直接压缩为视频文件,需要优化有进行网络传输。现在看来这些东西很简单,但当时对于自己来说又是空白的,学的时间也不够了。本来之前是分配给另外两个组员做的,但是......,然后还被强行安排了一个不懂编程的指导老师。。。。。。想想时间也不够了,一阵心酸之后,决定放弃吧!假期的时候认真学一下vc。。。然后我的第一个vc项目就这样终结了,很遗憾,它没能被完成,现在自己的发展方向也不是vc了,所以就没有继续,只能将它扔到一边,写此文祭奠一下。。。。。。。
now,2013年初,该程序已经完成,留着明年做毕业答辩用,
想要看源码的朋友,可以联系我,我这里以前的很多资料和源码都还保留着的。
源码已经上传,现在不做pc开发了,有需要的朋友自己慢慢研究吧http://download.csdn.net/download/scf821416394/5787977
//----2015
本以为没有朋友会再研究这个了,没想到到现在都还有朋友在要源码,改天空了我把积分下载删了,上传一份免费的上去。(在上学时经常下载东西,缺积分、所以才弄了个积分下载勒索点积分用用,哈哈)
http://pan.baidu.com/s/1hqRqCio
//----
总结:
1. 编程没有绝度的困难,面临一个不懂的问题时,只要认真的去查阅资料,认真的去看别人写的代码,一定时间后便能拨开迷雾见晴天。
2. 组建一个团队很重要,若团队中有人懈气了,那么这种情况很可能蔓延下去,队长应该及时与他沟通,给予鼓励。如团队中每个人都充满激情,信心百倍,那么再难的项目只要动手去做,都会成功的。