一种视频录制方法及装置的制作方法

文档序号:7852047阅读:192来源:国知局
专利名称:一种视频录制方法及装置的制作方法
技术领域
本发明涉及计算机领域,尤其涉及一种视频录制方法及装置。
背景技术
随着互联网的发展,越来越多的视频信息在网络上传播,越来越多的用户通过计算机终端从网络观看视频。对于一些重要的、日后可能需要再次观看的视频,或者出于传播的需要,用户需要将某些视频录制下来,作为视频文件保存到本地,以避免该视频信息被淹没在网络上飞速增加的信息中。现在的用户在本地通过计算机终端录制视频文件是通过在本地计算机的显示屏或播放窗口上进行屏幕抓图的方法实现的,即按照一定的频率将本地显示的视频画面抓取出来,再组合为视频。但是,由于用户在录制视频时往往同时需要在计算机上进行其它的操作,一旦播放器播放的视频窗口区域被其它的程序窗口或界面遮挡,就不能录制到视频源,或者录制时会将其它的程序窗口或界面一起录制到视频文件中。申请号为200910108441. 2的专利,公开了一种无干扰屏幕录制方法和系统,该专利公开的技术方案是通过虚拟显示器进行视频录制,需要进入到系统的驱动层,把播放器和虚拟的显示器进行绑定,该技术方案实现复杂、难度较大、成本较高。基于上述问题,本发明人希望利用钩子程序帮助用户无干扰的获取到视频播放器的视频。钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理消息之前处理它。钩子机制允许应用程序截获处理Windows消息或特定事件。钩子程序实际上是一个处理消息的程序段,通过系统调用,把它注入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,这时钩子程序即可以加 工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。钩子程序也可以理解为Windows留给我们的后门,比如用户想控制键盘,在DOS时代很简单通过INT即可,而Windows时代不允许我们直接操作硬件;由于Windows是消息驱动,所以我们可以通过拦截键盘消息以达到控制键盘的目的。但是,程序控制自己进程的消息固然很简单,要控制所有程序进程的消息要利用钩子程序了。将钩子程序放在DLL中,这样所有的有关键盘的消息都必须经过钩子程序过滤了。

发明内容
本发明实施例所要解决的技术问题在于,提供一种视频录制方法及装置,可实现无干扰的获取到视频播放器的视频,并在本地保存为视频文件,即使视频播放器被其他窗口或界面遮挡,也不会影响或反映在录制的视频文件中。同时,该视频录制方法及装置实现简单、难度小、成本低。
为了解决上述技术问题,本发明实施例提供了一种视频录制方法,包括
启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序;
所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据;
对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放。其中,所述启动视频播放器应用程序的步骤之前,还包括
向所述视频播放器应用程序所在的系统中加载虚拟声卡设备,并将所述虚拟声卡设备设置为当前系统声卡。 其中,所述启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序的步骤中,还包括
通过发送窗口消息,隐藏所述视频播放器应用程序的视频播放窗口。其中,所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据之后,对所述拷贝视频数据进行编码之前,还包括
按照制定的、用户所需的视频文件的格式,加载对应的编码器。其中,所述对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放,包括按照制定的、用户所需的视频文件的格式对所述拷贝视频数据进行编码,将虚拟声卡设备捕获的音频数据进行编码;
将编码后的拷贝视频数据和音频数据保存为视频文件;将源视频数据发送至所述视频播放器应用程序,由所述视频播放器应用程序的视频播放窗口进行播放。相应的,本发明实施例还提供一种视频录制装置,包括
钩子程序注入模块,用于启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序;
视频数据拷贝模块,用于通过所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据;
视频文件生成模块,用于对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放。其中,所述视频录制装置还包括
虚拟声卡加载模块,用于向所述视频录制装置所在的系统中加载虚拟声卡设备,并将所述虚拟声卡设备设置为当前系统声卡。其中,所述视频录制装置还包括
视频窗口控制模块,用于通过发送窗口消息,控制所述视频播放器应用程序的视频播 放窗口进行隐藏或显示。其中,所述视频录制装置还包括
编码器加载模块,用于向用户提供可选的编码器,并按照用户选定的,其所需的视频文件的格式,加载对应的编码器。其中,所述视频文件生成模块包括
编码控制单元,用于控制已加载的编码器对所述拷贝视频数据进行编码,以及对虚拟声卡设备捕获的音频数据进行编码;
文件存储单元,用于将编码后的拷贝视频数据和音频数据保存为视频文件;
数据转发单元,用于将源视频数据发送至所述视频播放器应用程序,由所述视频播放器应用程序的视频播放窗口进行播放。实施本发明实施例提供的视频录制方法及装置,可实现无干扰的获取到视频播放器的视频,并在本地保存为视频文件,即使视频播放器被其他窗口或界面遮挡,也不会影响或反映在录制的视频文件中。同时,实施本发明实施例提供的视频录制方法及装置在实现无干扰的录制到播放器的视频时,能很好地获取到播放器播放的声音。本发明实施例提供的视频录制方法及装置实现简单、难度小、成本低。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明提供的视频录制方法第一实施例流程示意 图2为本发明提供的视频录制方法第二实施例流程示意 图3为本发明提供的视频录制装置第一实施例结构示意 图4为本发明提供的视频录制装置第二实施例结构示意图。
具体实施例方式实施本发明实施例提供的视频录制方法及装置,可实现无干扰的获取到视频播放器的视频,并在本地保存为视频文件,即使视频播放器被其他窗口或界面遮挡,也不会影响或反映在录制的视频文件中。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,为本发明提供的视频录制方法第一实施例流程示意图,如图I所示,该视频录制方法包括
步骤S100,启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序。步骤S101,所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据。步骤S102,对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放。有上述流程可知,本发明实施例提供的视频录制方法,通过钩子程序在后台直接截取并复制源视频数据达到录制视频文件的目的,而不是通过对视频播放器的窗口画面进行截屏,故即使视频播放器被其他窗口或界面遮挡,也不会影响或反映在录制的视频文件中,避免因为用户的操作或其它程序的截面遮挡,影响本视频文件的录制。
参见图2,为本发明提供的视频录制方法第二实施例流程示意图。在本实施例中,将更为详细的描述该视频录制方法的流程,同时加入音频的录制方法。该视频录制方法如图2所示,包括
步骤S200,向所述视频播放器应用程序所在的系统中加载虚拟声卡设备,并将所述虚拟声卡设备设置为当前系统声卡。更为具体的,在播放待录制视频的计算机系统中加载虚拟声卡设备,并将该虚拟声卡设备设置为当前系统声卡,后续播放视频时,系统会将音频数据发送至该虚拟声卡设备,即通过虚拟声卡设备获取到被录制的视频的音频数据。步骤S201,启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序。更为具体的,用windows钩子注入视频播放器应用程序中。该钩子程序实际上是一个处理消息的程序段,通过系统调用,把它注入视频播放器应用程序中的进程中。每当视频播放器应用程序有数据包发出或接收,钩子程序就先捕获该数据包。这时钩子程序即可以加工处理(改变)该请求数据包,也可以不作处理而继续传递该请求数据包,还可以强制结束请求数据包的传递。在本发明实施例中,钩子程序对视频播放器应用程序发送的请求数据包不作处理而继续传递。步骤S202,钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据,更为具体的,在本步骤中,钩子程序不会对源视频数据的数据包进行任何处理,只是复制一个完全相同的拷贝视频数据的数据包,即拷贝视频数据与源视频数据是完全一致的。发往所述视频播放器应用程序的源视频数据可能是由网络中的服务器发送的,也可以是由其它终端发送的,钩子程序并不关注源视频数据的来源,只要是发送视频播放器应用程序的数据都予以监控,判断发往所述视频播放器应用程序的数据包中携带的Content-Type是否为音/视频类型;若判断为是,则该数据就是源视频数据。进一步的,音 / 视频类型包括 audio, video, flv, mp4, mp3, audio/x-mpeg, audio/x-wav,audio/χ-ms-wma, video/χ-msvideo, video/mpeg, video/quicktime, video/χ-flv,video/mp4, video/χ-ms-asf, video/x-ms-wmv, application/χ-octet-stream, binary/octet-stream, application/octet-stream, application/χ-shockwave-flash, text/plain, application/x-rhapsodycontent, f lv-application/octet-stream 等。
步骤S203,按照制定的、用户所需的视频文件的格式,加载对应的编码器。更为具体的,系统可以向用户提供可选的视频文件的格式,然后根据用户选定的视频文件的格式,加载对应的编码器。优选的,本步骤可以在步骤S200至步骤S202的任意步骤之前或同时实施。步骤S204,通过步骤S203中已加载的编码器,对拷贝视频数据进行编码,转化为用户所需的视频文件的格式,同时将虚拟声卡设备捕获的音频数据也进行编码。步骤S205,将编码后的拷贝视频数据和音频数据保存为视频文件,该视频文件保存在本地,可供用户随时调用。步骤S206,对于已经被复制过的源视频数据,则将其发送至所述视频播放器应用程序,由所述视频播放器应用程序的视频播放窗口进行播放。更为具体的,由于源视频数据被钩子程序截获后只是被复制了一份,自身并没有被进行任何修改,所以视频播放器应用程序收到源视频数据后,依然可以通过视频播放窗口正常的进行播放。对用户的直接观影体验并无影响。进一步的,在视频录制的过程中,用户可以通过发送窗口消息,选择隐藏或显示所述视频播放器应用程序的视频播放窗口。由于录制的视频文件是采用的拷贝视频数据,并不是对视频播放器应用程序的视频播放窗口进行抓屏获取的,所以视频播放窗口是否显示、是否被遮挡都不会影响视频文件的录制质量。同时,用户完全可以在视频文件的录制过程中在计算机上进行其它的操作。有上述流程可知,本发明实施例提供的视频录制方法,通过钩子程序在后台直接截取并复制源视频数据达到录制视频文件的目的,而不是通过对视频播放器的窗口画面进行截屏,故即使视频播放器被其他窗口或界面遮挡,也不会影响或反映在录制的视频文件中,避免因为用户的操作或其它程序的截面遮挡,影响本视频文件的录制。同时,实施本发明实施例提供的视频录制方法在实现无干扰的录制到播放器的视频时,能很好地获取到播放器播放的声音。本发明实施例提供的视频录制方法实现简单、难度小、成本低。

参见图3,为本发明提供的视频录制装置第一实施例结构示意图,如图3所示,该视频录制装置,包括
钩子程序注入模块2,用于启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序。视频数据拷贝模块3,用于通过所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据。视频文件生成模块4,用于对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放。有上述流程可知,本发明实施例提供的视频录制装置,通过钩子程序,在后台直接截取并复制源视频数据达到录制视频文件的目的,而不是通过对视频播放器的窗口画面进行截屏,故即使视频播放器被其他窗口或界面遮挡,也不会影响或反映在录制的视频文件中,避免因为用户的操作或其它程序的截面遮挡,影响本视频文件的录制。参见图4,为本发明提供的视频录制装置第二实施例结构示意图,在本实施例中,将更为详细的描述该视频录制装置的结构和各部件的功能。该视频录制装置如图4所示,包括
虚拟声卡加载模块1,用于向所述视频录制装置所在的系统中加载虚拟声卡设备,并将所述虚拟声卡设备设置为当前系统声卡。更为具体的,虚拟声卡加载模块I在播放待录制视频的计算机系统中加载虚拟声卡设备,并将该虚拟声卡设备设置为当前系统声卡,后续播放视频时,系统会将音频数据发送至该虚拟声卡设备,即视频录制装置通过虚拟声卡加载模块I所加载的虚拟声卡设备获取到被录制的视频的音频数据。钩子程序注入模块2,用于启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序。更为具体的,钩子程序注入模块2用windows钩子注入视频播放器应用程序中。该钩子程序实际上是一个处理消息的程序段,钩子程序注入模块2通过系统调用,把它注入视频播放器应用程序中的进程中。每当视频播放器应用程序有数据包发出或接收,钩子程序就先捕获该数据包。这时钩子程序即可以加工处理(改变)该请求数据包,也可以不作处理而继续传递该请求数据包,还可以强制结束请求数据包的传递。在本发明实施例中,钩子程序对视频播放器应用程序发送的请求数据包不作处理而继续传递。
视频数据拷贝模块3,用于通过所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据。更为具体的,在视频数据拷贝模块3的控制下钩子程序不会对源视频数据的数据包进行任何处理,只是复制一个完全相同的拷贝视频数据的数据包,即视频数据拷贝模块3所拷贝的视频数据与源视频数据是完
全一致的。发往所述视频播放器应用程序的源视频数据可能是由网络中的服务器发送的,也可以是由其它终端发送的,视频数据拷贝模块3并不关注源视频数据的来源,只要是发送视频播放器应用程序的数据都予以监控,判断发往所述视频播放器应用程序的数据包中携带的Content-Type是否为音/视频类型;若是,则视频数据拷贝模块3判定为是源视频数据。编码器加载模块5,用于向用户提供可选的编码器,并按照用户选定的,其所需的 视频文件的格式,加载对应的编码器。视频文件生成模块4,用于对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放。更为具体的,该视频文件生成模块4包括
编码控制单元41,用于控制编码器加载模块5已加载的编码器对所述拷贝视频数据进行编码,以及对虚拟声卡设备捕获的音频数据进行编码。文件存储单元42,用于将编码后的拷贝视频数据和音频数据保存为视频文件。文件存储单元42将该视频文件保存在本地,可供用户随时调用。数据转发单元43,用于将源视频数据发送至所述视频播放器应用程序,由所述视频播放器应用程序的视频播放窗口进行播放。更为具体的,数据转发单元43对于已经被复制过的源视频数据,将其发送至所述视频播放器应用程序,由所述视频播放器应用程序的视频播放窗口进行播放。由于源视频数据被钩子程序截获后只是被复制了一份,自身并没有被进行任何修改,所以视频播放器应用程序收到源视频数据后,依然可以通过视频播放窗口正常的进行播放。对用户的直接观影体验并无影响。进一步的,本发明实施例提供的视频录制装置还包括
视频窗口控制模块6,用于通过发送窗口消息,控制所述视频播放器应用程序的视频播放窗口进行隐藏或显示。更为具体的,在视频录制的过程中,视频窗口控制模块6根据用户的操作,可以通过发送窗口消息,选择隐藏或显示所述视频播放器应用程序的视频播放窗口。由于本发明实施例提供的视频录制装置录制的视频文件是采用的拷贝视频数据,并不是对视频播放器应用程序的视频播放窗口进行抓屏获取的,所以视频播放窗口是否显示、是否被遮挡都不会影响视频文件的录制质量。同时,用户完全可以在视频文件的录制过程中在计算机上进行其它的操作。有上述流程可知,本发明实施例提供的视频录制装置,通过钩子程序在后台直接截取并复制源视频数据达到录制视频文件的目的,而不是通过对视频播放器的窗口画面进行截屏,故即使视频播放器被其他窗口或界面遮挡,也不会影响或反映在录制的视频文件中,避免因为用户的操作或其它程序的截面遮挡,影响本视频文件的录制。同时,实施本发明实施例提供的视频录制装置在实现无干扰的录制到播放器的视频时,能很好地获取到播放器播放的声音。本发明实施例提供的视频录制装置实现简单、难度小、成本低。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。·
权利要求
1.一种视频录制方法,其特征在于,包括 启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序; 所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据; 对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放。
2.如权利要求I所述的视频录制方法,其特征在于,所述启动视频播放器应用程序的步骤之前,还包括 向所述视频播放器应用程序所在的系统中加载虚拟声卡设备,并将所述虚拟声卡设备设置为当前系统声卡。
3.如权利要求I所述的视频录制方法,其特征在于,所述启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序的步骤中,还包括 通过发送窗口消息,隐藏所述视频播放器应用程序的视频播放窗口。
4.如权利要求I所述的视频录制方法,其特征在于,所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据之后,对所述拷贝视频数据进行编码之前,还包括 按照制定的、用户所需的视频文件的格式,加载对应的编码器。
5.如权利要求2至4中任一项所述的视频录制方法,其特征在于,所述对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放,包括 按照制定的、用户所需的视频文件的格式对所述拷贝视频数据进行编码,将虚拟声卡设备捕获的音频数据进行编码; 将编码后的拷贝视频数据和音频数据保存为视频文件;将源视频数据发送至所述视频播放器应用程序,由所述视频播放器应用程序的视频播放窗口进行播放。
6.一种视频录制装置,其特征在于,包括 钩子程序注入模块,用于启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序; 视频数据拷贝模块,用于通过所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据; 视频文件生成模块,用于对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放。
7.如权利要求6所述的视频录制装置,其特征在于,所述视频录制装置还包括 虚拟声卡加载模块,用于向所述视频录制装置所在的系统中加载虚拟声卡设备,并将所述虚拟声卡设备设置为当前系统声卡。
8.如权利要求6所述的视频录制装置,其特征在于,所述视频录制装置还包括 视频窗口控制模块,用于通过发送窗口消息,控制所述视频播放器应用程序的视频播放窗口进行隐藏或显示。
9.如权利要求6所述的视频录制装置,其特征在于,所述视频录制装置还包括 编码器加载模块,用于向用户提供可选的编码器,并按照用户选定的,其所需的视频文件的格式,加载对应的编码器。
10.如权利要求7至9中任一项所述的视频录制装置,其特征在于,所述视频文件生成模块包括 编码控制单元,用于控制已加载的编码器对所述拷贝视频数据进行编码,以及对虚拟声卡设备捕获的音频数据进行编码; 文件存储单元,用于将编码后的拷贝视频数据和音频数据保存为视频文件; 数据转发单元,用于将源视频数据发送至所述视频播放器应用程序,由所述视频播放器应用程序的视频播放窗口进行播放。·
全文摘要
本发明实施例公开了一种视频录制方法及装置,该方法包括启动视频播放器应用程序,并向所述视频播放器应用程序中注入钩子程序;所述钩子程序截获发往所述视频播放器应用程序的源视频数据,并复制所述源视频数据,生成拷贝视频数据;对所述拷贝视频数据进行编码,并保存为视频文件;将所述源视频数据转发至所述视频播放器应用程序,由所述视频播放器应用程序进行播放。本发明实施例所提供的视频录制方法及装置,可实现无干扰的获取到视频播放器的视频,并在本地保存为视频文件,即使视频播放器被其他窗口或界面遮挡,也不会影响或反映在录制的视频文件中。同时,该视频录制方法及装置实现简单、难度小、成本低。
文档编号H04N5/76GK102724466SQ201210165960
公开日2012年10月10日 申请日期2012年5月25日 优先权日2012年5月25日
发明者韦松 申请人:深圳市万兴软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1