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