发明内容
本发明要解决的技术问题在于,针对现有技术的上述录制过程易受干扰、严重依赖于计算机硬件且录制效率低的缺陷,提供一种无干扰屏幕录制方法和系统。
本发明解决其技术问题所采用的技术方案是,构造一种无干扰屏幕录制方法,包括以下步骤:
S1)加载虚拟显卡和虚拟显示器的驱动设备;
S2)虚拟显卡初始化,启动应用程序,指定应用程序在虚拟显示器上显示;
S3)虚拟显卡将应用程序的图像输出绘制到内存中;
S4)按照相应的帧率定时对内存中的图像进行编码;
S5)将编码的结果保存到视频文件中。
在上述无干扰屏幕录制方法中,步骤S2还包括:选定视频文件的格式。
在上述无干扰屏幕录制方法中,所述应用程序是PowerPoint执行程序、可播放的Flash程序、或其它具备动画输出或者视频输出的程序。
在上述无干扰屏幕录制方法中,所述视频文件的格式包括以下任一种:MPEG,AVI,MP4,WMV,ASF,FLV,MOV,3GP,3G2。
在上述无干扰屏幕录制方法中,还包括步骤:
S6)判断应用程序是否结束,若是,则关闭应用程序并且卸载虚拟显卡和虚拟显示器;若否,则进入步骤S4。
按照本发明另一方面提供一种无干扰屏幕录制系统,包括:
加载单元,用于加载虚拟显卡和虚拟显示器的驱动设备;
启动单元,用于将虚拟显卡初始化,启动应用程序,指定应用程序在虚拟显示器上显示;
存储单元:用于由虚拟显卡将应用程序的图像输出绘制到内存中;
编码单元:包括定时器和编码器,用于按照相应的帧率定时对内存中的图像进行编码;
生成单元,用于将编码的结果保存到视频文件中。
在上述无干扰屏幕录制系统中,启动单元还用于选定视频文件格式。
在上述无干扰屏幕录制系统中,启动单元所启动的应用程序包括以下任一种:PowerPoint、Flash、其它具备动画输出或者视频输出的程序。
在上述无干扰屏幕录制系统中,生成单元的视频文件的格式包括以下任一种:MPEG,AVI,MP4,WMV,ASF,FLV,MOV,3GP,3G2。
在上述无干扰屏幕录制系统中,还包括:
判断单元:用于判断应用程序是否结束,若是,则关闭应用程序并且卸载虚拟显卡和虚拟显示器;若否,则进入编码单元继续编码。
实施本发明的无干扰屏幕录制方法和系统,具有以下有益效果:充分利用了计算机的多任务处理能力和虚拟设备支持能力,对应用程序的输出内容进行录制的时候可以无干扰进行,录制过程在后台进行,不受到其它程序和用户的干扰,在录制的过程中用户可以正常的使用计算机运行其它应用软件,如浏览网页等。而且在录制过程中直接在内存中获取应用程序的图像,不依赖于计算机的硬件设备而是在计算机内存中直接进行,录制效率比较高。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是现有技术中屏幕录制过程示意图,没有采用虚拟显卡。下面对录制过程的数据流进行详细说明:
S1、应用程序绘图时需要调用操作系统的绘图接口进行绘图。
S2、操作系统将需要绘制的内容通知显卡进行绘图。
S3、显卡将根据操作系统的命令进行图像绘制,图像绘制在显存中。显卡将显存中的图像显示发送个显示器。
S4、显示器将显存中的内容转换为点阵图像进行显示。
S5、根据当前视频格式所需的帧率定时读取显卡数据到内存并且调用编码器进行编码。
S6、将显存中的数据读取到内存中,这个读取过程非常缓慢。
S7、从显卡中获得的数据(当前的图像)。
S8、编码器将当前的图像进行编码。
S9、编码器将视频保存到磁盘文件。
在图2示出了本发明优选实施例的无干扰屏幕录制过程示意图。下面对录制过程的数据流进行详细说明:
1)应用程序绘图时需要调用操作系统的绘图接口进行绘图。
2)操作系统将需要绘制的内容通知显卡进行绘图。(备注:所谓的绘图包括在显示器上看到的任何内容)。
3)显卡将根据操作系统的命令进行图像绘制,图像绘制在内存中。虚拟显卡不会将图像输出到真实的显示器,此时用户无法看到内容和进行操作,防止用户干扰。
4)虚拟显示器没有实际的功能,只是告知操作系统显卡上已经连接了显示器,因为如果显卡上没有连接显示设备的话,操作系统会停用显卡。
5)内存中保存了当前显示器上的完整图像。
6)根据当前视频格式所需的帧率定时触发编码器。
7)编码器将当前的图像进行编码。
8)编码器将编码后的视频文件保存到文件。
在图3示出了本发明优选实施例的无干扰屏幕录制方法流程图。计算机操作系统都支持虚拟设备系统,可以创建多个虚拟设备的系统,在这个虚拟的系统上安装虚拟的显示设备包括虚拟显卡和虚拟显示器,让需要截图的应用程序运行在这个虚拟的显示设备上。本发明优选实施例的无干扰屏幕录制方法的实现过程如下:
S101、加载虚拟显卡和虚拟显示器的驱动设备,将虚拟的显示器作为第二个显示设备(原来的显示设备作为主显示设备)。
S102、虚拟显卡初始化并且模拟显卡的功能将图像绘制到内存中。
S103、启动应用程序,指定应用程序在第二个显示设备上显示,选定视频文件的格式。
S104、根据用户所选择的视频格式加载编码器。
S105、根据当前视频格式的帧率等待下一帧。
S106、将当前的虚拟显示设备上的图像进行编码。
S107、保存编码结果到视频文件。本发明优选实施例支持多种视频文件格式,例如MPEG(Moving Pictures Experts Group),AVI(Audio/VideoInterleave),MP4(Moving Picture Experts Group 4),WMV(Windows MediaVideo),ASF(Advanced Streaming Format),FLV(Flash Video),MOV(Apple公司开发的一种流媒体文件格式),3GP(the 3rd Generation Partner Project),3G2(the 3rd Generation Partner Project 2)。
S108、应用程序播放是否结束,若是,则进入步骤S109;若否,则进入步骤S105。
S109、关闭应用程序并且卸载虚拟显卡和虚拟显示器,录制结束。
例如,若将PowerPoint转为Video,通过使用本发明的方法将PowerPoint演示文档运行于虚拟显示设备上,并将PowerPoint输出结果保存至一段预留的内存中,然后根据客户需要进行相应的编码操作,并保存编码结果至视频文件中(比如WMV格式),完成整个录制过程。这样可以在iPod/iPhone/PocketPC/Apple TV等等设备上欣赏,还可以在网上或blog(博客)上与他人分享。
例如,若将PowerPoint转为DVD,通过使用本发明的方法将PowerPoint演示文档运行于虚拟显示设备上,并将PowerPoint输出结果保存至一段预留的内存中,然后根据客户需要进行相应的编码操作,并保存编码结果至视频文件中,从而能够在PC(Personal Computer)或DVD播放机上播放。内置刻录引擎,能够兼容绝大多数DVD刻录机和DVD播放机。此方法在录制过程中实现了无干扰屏幕录制,不会因为用户运行其它的应用程序或者操作计算机而影响到视频文件的生成。用户可以正常进行其它操作,例如浏览网页等等,本方法操作简单且不依赖于计算机硬件,效率较高。
图4示出了本发明的无干扰屏幕录制系统的优选实施例的系统框图。该系统包括:加载单元100、启动单元200、存储单元300、编码单元400、生成单元500、判断单元600。
加载单元100,用于加载虚拟显卡和虚拟显示器的驱动设备;
启动单元200,用于将虚拟显卡初始化,启动应用程序,指定应用程序在虚拟显示器上显示;
存储单元300:用于由虚拟显卡将应用程序的图像输出绘制到内存中;
编码单元400:包括定时器和编码器,用于按照选定视频文件格式以相应的帧率定时对内存中的图像进行编码;
生成单元500,用于将编码的结果保存到视频文件中。
判断单元600:用于判断应用程序是否结束,若是,则关闭应用程序并且卸载虚拟显卡和虚拟显示器,录制结束;若否,则进入编码单元400继续编码。
本发明优选实施例系统可支持多种应用程序,如:PowerPoint、Flash、或其它具备动画输出或者视频输出的程序。本发明优选实施例系统可支持多种视频文件格式,例如MPEG,AVI,MP4,WMV,ASF,FLV,MOV,3GP,3G2等等。
本发明提出的无干扰屏幕录制方法和系统,充分利用了计算机的多任务处理能力和虚拟设备支持能力,对应用程序的输出内容进行录制的时候可以无干扰进行,录制过程在后台进行,不受到其它程序和用户的干扰,在录制的过程中用户可以正常的使用计算机运行其它应用软件,如浏览网页等。而且在录制过程中直接在内存中获取应用程序的图像,不依赖于计算机的硬件设备而是在计算机内存中直接进行,录制效率比较高。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。