專利名稱:一種視頻錄制方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種視頻錄制方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的視頻信息在網(wǎng)絡(luò)上傳播,越來(lái)越多的用戶通過(guò)計(jì)算機(jī)終端從網(wǎng)絡(luò)觀看視頻。對(duì)于一些重要的、日后可能需要再次觀看的視頻,或者出于傳播的需要,用戶需要將某些視頻錄制下來(lái),作為視頻文件保存到本地,以避免該視頻信息被淹沒(méi)在網(wǎng)絡(luò)上飛速增加的信息中。現(xiàn)在的用戶在本地通過(guò)計(jì)算機(jī)終端錄制視頻文件是通過(guò)在本地計(jì)算機(jī)的顯示屏或播放窗口上進(jìn)行屏幕抓圖的方法實(shí)現(xiàn)的,即按照一定的頻率將本地顯示的視頻畫(huà)面抓取出來(lái),再組合為視頻。但是,由于用戶在錄制視頻時(shí)往往同時(shí)需要在計(jì)算機(jī)上進(jìn)行其它的操作,一旦播放器播放的視頻窗口區(qū)域被其它的程序窗口或界面遮擋,就不能錄制到視頻源,或者錄制時(shí)會(huì)將其它的程序窗口或界面一起錄制到視頻文件中。申請(qǐng)?zhí)枮?00910108441. 2的專利,公開(kāi)了一種無(wú)干擾屏幕錄制方法和系統(tǒng),該專利公開(kāi)的技術(shù)方案是通過(guò)虛擬顯示器進(jìn)行視頻錄制,需要進(jìn)入到系統(tǒng)的驅(qū)動(dòng)層,把播放器和虛擬的顯示器進(jìn)行綁定,該技術(shù)方案實(shí)現(xiàn)復(fù)雜、難度較大、成本較高?;谏鲜鰡?wèn)題,本發(fā)明人希望利用鉤子程序幫助用戶無(wú)干擾的獲取到視頻播放器的視頻。鉤子(Hook),是Windows消息處理機(jī)制的一個(gè)平臺(tái),應(yīng)用程序可以在上面設(shè)置子程以監(jiān)視指定窗口的某種消息,而且所監(jiān)視的窗口可以是其他進(jìn)程所創(chuàng)建的。當(dāng)消息到達(dá)后,在目標(biāo)窗口處理消息之前處理它。鉤子機(jī)制允許應(yīng)用程序截獲處理Windows消息或特定事件。鉤子程序?qū)嶋H上是一個(gè)處理消息的程序段,通過(guò)系統(tǒng)調(diào)用,把它注入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒(méi)有到達(dá)目的窗口前,鉤子程序就先捕獲該消息,這時(shí)鉤子程序即可以加 工處理(改變)該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。鉤子程序也可以理解為Windows留給我們的后門,比如用戶想控制鍵盤,在DOS時(shí)代很簡(jiǎn)單通過(guò)INT即可,而Windows時(shí)代不允許我們直接操作硬件;由于Windows是消息驅(qū)動(dòng),所以我們可以通過(guò)攔截鍵盤消息以達(dá)到控制鍵盤的目的。但是,程序控制自己進(jìn)程的消息固然很簡(jiǎn)單,要控制所有程序進(jìn)程的消息要利用鉤子程序了。將鉤子程序放在DLL中,這樣所有的有關(guān)鍵盤的消息都必須經(jīng)過(guò)鉤子程序過(guò)濾了。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種視頻錄制方法及裝置,可實(shí)現(xiàn)無(wú)干擾的獲取到視頻播放器的視頻,并在本地保存為視頻文件,即使視頻播放器被其他窗口或界面遮擋,也不會(huì)影響或反映在錄制的視頻文件中。同時(shí),該視頻錄制方法及裝置實(shí)現(xiàn)簡(jiǎn)單、難度小、成本低。
為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種視頻錄制方法,包括
啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序;
所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù);
對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放。其中,所述啟動(dòng)視頻播放器應(yīng)用程序的步驟之前,還包括
向所述視頻播放器應(yīng)用程序所在的系統(tǒng)中加載虛擬聲卡設(shè)備,并將所述虛擬聲卡設(shè)備設(shè)置為當(dāng)前系統(tǒng)聲卡。 其中,所述啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序的步驟中,還包括
通過(guò)發(fā)送窗口消息,隱藏所述視頻播放器應(yīng)用程序的視頻播放窗口。其中,所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù)之后,對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼之前,還包括
按照制定的、用戶所需的視頻文件的格式,加載對(duì)應(yīng)的編碼器。其中,所述對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放,包括按照制定的、用戶所需的視頻文件的格式對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,將虛擬聲卡設(shè)備捕獲的音頻數(shù)據(jù)進(jìn)行編碼;
將編碼后的拷貝視頻數(shù)據(jù)和音頻數(shù)據(jù)保存為視頻文件;將源視頻數(shù)據(jù)發(fā)送至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行播放。相應(yīng)的,本發(fā)明實(shí)施例還提供一種視頻錄制裝置,包括
鉤子程序注入模塊,用于啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序;
視頻數(shù)據(jù)拷貝模塊,用于通過(guò)所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù);
視頻文件生成模塊,用于對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放。其中,所述視頻錄制裝置還包括
虛擬聲卡加載模塊,用于向所述視頻錄制裝置所在的系統(tǒng)中加載虛擬聲卡設(shè)備,并將所述虛擬聲卡設(shè)備設(shè)置為當(dāng)前系統(tǒng)聲卡。其中,所述視頻錄制裝置還包括
視頻窗口控制模塊,用于通過(guò)發(fā)送窗口消息,控制所述視頻播放器應(yīng)用程序的視頻播 放窗口進(jìn)行隱藏或顯示。其中,所述視頻錄制裝置還包括
編碼器加載模塊,用于向用戶提供可選的編碼器,并按照用戶選定的,其所需的視頻文件的格式,加載對(duì)應(yīng)的編碼器。其中,所述視頻文件生成模塊包括
編碼控制單元,用于控制已加載的編碼器對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,以及對(duì)虛擬聲卡設(shè)備捕獲的音頻數(shù)據(jù)進(jìn)行編碼;
文件存儲(chǔ)單元,用于將編碼后的拷貝視頻數(shù)據(jù)和音頻數(shù)據(jù)保存為視頻文件;
數(shù)據(jù)轉(zhuǎn)發(fā)單元,用于將源視頻數(shù)據(jù)發(fā)送至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行播放。實(shí)施本發(fā)明實(shí)施例提供的視頻錄制方法及裝置,可實(shí)現(xiàn)無(wú)干擾的獲取到視頻播放器的視頻,并在本地保存為視頻文件,即使視頻播放器被其他窗口或界面遮擋,也不會(huì)影響或反映在錄制的視頻文件中。同時(shí),實(shí)施本發(fā)明實(shí)施例提供的視頻錄制方法及裝置在實(shí)現(xiàn)無(wú)干擾的錄制到播放器的視頻時(shí),能很好地獲取到播放器播放的聲音。本發(fā)明實(shí)施例提供的視頻錄制方法及裝置實(shí)現(xiàn)簡(jiǎn)單、難度小、成本低。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明提供的視頻錄制方法第一實(shí)施例流程示意 圖2為本發(fā)明提供的視頻錄制方法第二實(shí)施例流程示意 圖3為本發(fā)明提供的視頻錄制裝置第一實(shí)施例結(jié)構(gòu)示意 圖4為本發(fā)明提供的視頻錄制裝置第二實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施例方式實(shí)施本發(fā)明實(shí)施例提供的視頻錄制方法及裝置,可實(shí)現(xiàn)無(wú)干擾的獲取到視頻播放器的視頻,并在本地保存為視頻文件,即使視頻播放器被其他窗口或界面遮擋,也不會(huì)影響或反映在錄制的視頻文件中。下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。參見(jiàn)圖1,為本發(fā)明提供的視頻錄制方法第一實(shí)施例流程示意圖,如圖I所示,該視頻錄制方法包括
步驟S100,啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序。步驟S101,所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù)。步驟S102,對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放。有上述流程可知,本發(fā)明實(shí)施例提供的視頻錄制方法,通過(guò)鉤子程序在后臺(tái)直接截取并復(fù)制源視頻數(shù)據(jù)達(dá)到錄制視頻文件的目的,而不是通過(guò)對(duì)視頻播放器的窗口畫(huà)面進(jìn)行截屏,故即使視頻播放器被其他窗口或界面遮擋,也不會(huì)影響或反映在錄制的視頻文件中,避免因?yàn)橛脩舻牟僮骰蚱渌绦虻慕孛嬲趽?,影響本視頻文件的錄制。
參見(jiàn)圖2,為本發(fā)明提供的視頻錄制方法第二實(shí)施例流程示意圖。在本實(shí)施例中,將更為詳細(xì)的描述該視頻錄制方法的流程,同時(shí)加入音頻的錄制方法。該視頻錄制方法如圖2所示,包括
步驟S200,向所述視頻播放器應(yīng)用程序所在的系統(tǒng)中加載虛擬聲卡設(shè)備,并將所述虛擬聲卡設(shè)備設(shè)置為當(dāng)前系統(tǒng)聲卡。更為具體的,在播放待錄制視頻的計(jì)算機(jī)系統(tǒng)中加載虛擬聲卡設(shè)備,并將該虛擬聲卡設(shè)備設(shè)置為當(dāng)前系統(tǒng)聲卡,后續(xù)播放視頻時(shí),系統(tǒng)會(huì)將音頻數(shù)據(jù)發(fā)送至該虛擬聲卡設(shè)備,即通過(guò)虛擬聲卡設(shè)備獲取到被錄制的視頻的音頻數(shù)據(jù)。步驟S201,啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序。更為具體的,用windows鉤子注入視頻播放器應(yīng)用程序中。該鉤子程序?qū)嶋H上是一個(gè)處理消息的程序段,通過(guò)系統(tǒng)調(diào)用,把它注入視頻播放器應(yīng)用程序中的進(jìn)程中。每當(dāng)視頻播放器應(yīng)用程序有數(shù)據(jù)包發(fā)出或接收,鉤子程序就先捕獲該數(shù)據(jù)包。這時(shí)鉤子程序即可以加工處理(改變)該請(qǐng)求數(shù)據(jù)包,也可以不作處理而繼續(xù)傳遞該請(qǐng)求數(shù)據(jù)包,還可以強(qiáng)制結(jié)束請(qǐng)求數(shù)據(jù)包的傳遞。在本發(fā)明實(shí)施例中,鉤子程序?qū)σ曨l播放器應(yīng)用程序發(fā)送的請(qǐng)求數(shù)據(jù)包不作處理而繼續(xù)傳遞。步驟S202,鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù),更為具體的,在本步驟中,鉤子程序不會(huì)對(duì)源視頻數(shù)據(jù)的數(shù)據(jù)包進(jìn)行任何處理,只是復(fù)制一個(gè)完全相同的拷貝視頻數(shù)據(jù)的數(shù)據(jù)包,即拷貝視頻數(shù)據(jù)與源視頻數(shù)據(jù)是完全一致的。發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù)可能是由網(wǎng)絡(luò)中的服務(wù)器發(fā)送的,也可以是由其它終端發(fā)送的,鉤子程序并不關(guān)注源視頻數(shù)據(jù)的來(lái)源,只要是發(fā)送視頻播放器應(yīng)用程序的數(shù)據(jù)都予以監(jiān)控,判斷發(fā)往所述視頻播放器應(yīng)用程序的數(shù)據(jù)包中攜帶的Content-Type是否為音/視頻類型;若判斷為是,則該數(shù)據(jù)就是源視頻數(shù)據(jù)。進(jìn)一步的,音 / 視頻類型包括 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,按照制定的、用戶所需的視頻文件的格式,加載對(duì)應(yīng)的編碼器。更為具體的,系統(tǒng)可以向用戶提供可選的視頻文件的格式,然后根據(jù)用戶選定的視頻文件的格式,加載對(duì)應(yīng)的編碼器。優(yōu)選的,本步驟可以在步驟S200至步驟S202的任意步驟之前或同時(shí)實(shí)施。步驟S204,通過(guò)步驟S203中已加載的編碼器,對(duì)拷貝視頻數(shù)據(jù)進(jìn)行編碼,轉(zhuǎn)化為用戶所需的視頻文件的格式,同時(shí)將虛擬聲卡設(shè)備捕獲的音頻數(shù)據(jù)也進(jìn)行編碼。步驟S205,將編碼后的拷貝視頻數(shù)據(jù)和音頻數(shù)據(jù)保存為視頻文件,該視頻文件保存在本地,可供用戶隨時(shí)調(diào)用。步驟S206,對(duì)于已經(jīng)被復(fù)制過(guò)的源視頻數(shù)據(jù),則將其發(fā)送至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行播放。更為具體的,由于源視頻數(shù)據(jù)被鉤子程序截獲后只是被復(fù)制了一份,自身并沒(méi)有被進(jìn)行任何修改,所以視頻播放器應(yīng)用程序收到源視頻數(shù)據(jù)后,依然可以通過(guò)視頻播放窗口正常的進(jìn)行播放。對(duì)用戶的直接觀影體驗(yàn)并無(wú)影響。進(jìn)一步的,在視頻錄制的過(guò)程中,用戶可以通過(guò)發(fā)送窗口消息,選擇隱藏或顯示所述視頻播放器應(yīng)用程序的視頻播放窗口。由于錄制的視頻文件是采用的拷貝視頻數(shù)據(jù),并不是對(duì)視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行抓屏獲取的,所以視頻播放窗口是否顯示、是否被遮擋都不會(huì)影響視頻文件的錄制質(zhì)量。同時(shí),用戶完全可以在視頻文件的錄制過(guò)程中在計(jì)算機(jī)上進(jìn)行其它的操作。有上述流程可知,本發(fā)明實(shí)施例提供的視頻錄制方法,通過(guò)鉤子程序在后臺(tái)直接截取并復(fù)制源視頻數(shù)據(jù)達(dá)到錄制視頻文件的目的,而不是通過(guò)對(duì)視頻播放器的窗口畫(huà)面進(jìn)行截屏,故即使視頻播放器被其他窗口或界面遮擋,也不會(huì)影響或反映在錄制的視頻文件中,避免因?yàn)橛脩舻牟僮骰蚱渌绦虻慕孛嬲趽?,影響本視頻文件的錄制。同時(shí),實(shí)施本發(fā)明實(shí)施例提供的視頻錄制方法在實(shí)現(xiàn)無(wú)干擾的錄制到播放器的視頻時(shí),能很好地獲取到播放器播放的聲音。本發(fā)明實(shí)施例提供的視頻錄制方法實(shí)現(xiàn)簡(jiǎn)單、難度小、成本低。
參見(jiàn)圖3,為本發(fā)明提供的視頻錄制裝置第一實(shí)施例結(jié)構(gòu)示意圖,如圖3所示,該視頻錄制裝置,包括
鉤子程序注入模塊2,用于啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序。視頻數(shù)據(jù)拷貝模塊3,用于通過(guò)所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù)。視頻文件生成模塊4,用于對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放。有上述流程可知,本發(fā)明實(shí)施例提供的視頻錄制裝置,通過(guò)鉤子程序,在后臺(tái)直接截取并復(fù)制源視頻數(shù)據(jù)達(dá)到錄制視頻文件的目的,而不是通過(guò)對(duì)視頻播放器的窗口畫(huà)面進(jìn)行截屏,故即使視頻播放器被其他窗口或界面遮擋,也不會(huì)影響或反映在錄制的視頻文件中,避免因?yàn)橛脩舻牟僮骰蚱渌绦虻慕孛嬲趽?,影響本視頻文件的錄制。參見(jiàn)圖4,為本發(fā)明提供的視頻錄制裝置第二實(shí)施例結(jié)構(gòu)示意圖,在本實(shí)施例中,將更為詳細(xì)的描述該視頻錄制裝置的結(jié)構(gòu)和各部件的功能。該視頻錄制裝置如圖4所示,包括
虛擬聲卡加載模塊1,用于向所述視頻錄制裝置所在的系統(tǒng)中加載虛擬聲卡設(shè)備,并將所述虛擬聲卡設(shè)備設(shè)置為當(dāng)前系統(tǒng)聲卡。更為具體的,虛擬聲卡加載模塊I在播放待錄制視頻的計(jì)算機(jī)系統(tǒng)中加載虛擬聲卡設(shè)備,并將該虛擬聲卡設(shè)備設(shè)置為當(dāng)前系統(tǒng)聲卡,后續(xù)播放視頻時(shí),系統(tǒng)會(huì)將音頻數(shù)據(jù)發(fā)送至該虛擬聲卡設(shè)備,即視頻錄制裝置通過(guò)虛擬聲卡加載模塊I所加載的虛擬聲卡設(shè)備獲取到被錄制的視頻的音頻數(shù)據(jù)。鉤子程序注入模塊2,用于啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序。更為具體的,鉤子程序注入模塊2用windows鉤子注入視頻播放器應(yīng)用程序中。該鉤子程序?qū)嶋H上是一個(gè)處理消息的程序段,鉤子程序注入模塊2通過(guò)系統(tǒng)調(diào)用,把它注入視頻播放器應(yīng)用程序中的進(jìn)程中。每當(dāng)視頻播放器應(yīng)用程序有數(shù)據(jù)包發(fā)出或接收,鉤子程序就先捕獲該數(shù)據(jù)包。這時(shí)鉤子程序即可以加工處理(改變)該請(qǐng)求數(shù)據(jù)包,也可以不作處理而繼續(xù)傳遞該請(qǐng)求數(shù)據(jù)包,還可以強(qiáng)制結(jié)束請(qǐng)求數(shù)據(jù)包的傳遞。在本發(fā)明實(shí)施例中,鉤子程序?qū)σ曨l播放器應(yīng)用程序發(fā)送的請(qǐng)求數(shù)據(jù)包不作處理而繼續(xù)傳遞。
視頻數(shù)據(jù)拷貝模塊3,用于通過(guò)所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù)。更為具體的,在視頻數(shù)據(jù)拷貝模塊3的控制下鉤子程序不會(huì)對(duì)源視頻數(shù)據(jù)的數(shù)據(jù)包進(jìn)行任何處理,只是復(fù)制一個(gè)完全相同的拷貝視頻數(shù)據(jù)的數(shù)據(jù)包,即視頻數(shù)據(jù)拷貝模塊3所拷貝的視頻數(shù)據(jù)與源視頻數(shù)據(jù)是完
全一致的。發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù)可能是由網(wǎng)絡(luò)中的服務(wù)器發(fā)送的,也可以是由其它終端發(fā)送的,視頻數(shù)據(jù)拷貝模塊3并不關(guān)注源視頻數(shù)據(jù)的來(lái)源,只要是發(fā)送視頻播放器應(yīng)用程序的數(shù)據(jù)都予以監(jiān)控,判斷發(fā)往所述視頻播放器應(yīng)用程序的數(shù)據(jù)包中攜帶的Content-Type是否為音/視頻類型;若是,則視頻數(shù)據(jù)拷貝模塊3判定為是源視頻數(shù)據(jù)。編碼器加載模塊5,用于向用戶提供可選的編碼器,并按照用戶選定的,其所需的 視頻文件的格式,加載對(duì)應(yīng)的編碼器。視頻文件生成模塊4,用于對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放。更為具體的,該視頻文件生成模塊4包括
編碼控制單元41,用于控制編碼器加載模塊5已加載的編碼器對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,以及對(duì)虛擬聲卡設(shè)備捕獲的音頻數(shù)據(jù)進(jìn)行編碼。文件存儲(chǔ)單元42,用于將編碼后的拷貝視頻數(shù)據(jù)和音頻數(shù)據(jù)保存為視頻文件。文件存儲(chǔ)單元42將該視頻文件保存在本地,可供用戶隨時(shí)調(diào)用。數(shù)據(jù)轉(zhuǎn)發(fā)單元43,用于將源視頻數(shù)據(jù)發(fā)送至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行播放。更為具體的,數(shù)據(jù)轉(zhuǎn)發(fā)單元43對(duì)于已經(jīng)被復(fù)制過(guò)的源視頻數(shù)據(jù),將其發(fā)送至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行播放。由于源視頻數(shù)據(jù)被鉤子程序截獲后只是被復(fù)制了一份,自身并沒(méi)有被進(jìn)行任何修改,所以視頻播放器應(yīng)用程序收到源視頻數(shù)據(jù)后,依然可以通過(guò)視頻播放窗口正常的進(jìn)行播放。對(duì)用戶的直接觀影體驗(yàn)并無(wú)影響。進(jìn)一步的,本發(fā)明實(shí)施例提供的視頻錄制裝置還包括
視頻窗口控制模塊6,用于通過(guò)發(fā)送窗口消息,控制所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行隱藏或顯示。更為具體的,在視頻錄制的過(guò)程中,視頻窗口控制模塊6根據(jù)用戶的操作,可以通過(guò)發(fā)送窗口消息,選擇隱藏或顯示所述視頻播放器應(yīng)用程序的視頻播放窗口。由于本發(fā)明實(shí)施例提供的視頻錄制裝置錄制的視頻文件是采用的拷貝視頻數(shù)據(jù),并不是對(duì)視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行抓屏獲取的,所以視頻播放窗口是否顯示、是否被遮擋都不會(huì)影響視頻文件的錄制質(zhì)量。同時(shí),用戶完全可以在視頻文件的錄制過(guò)程中在計(jì)算機(jī)上進(jìn)行其它的操作。有上述流程可知,本發(fā)明實(shí)施例提供的視頻錄制裝置,通過(guò)鉤子程序在后臺(tái)直接截取并復(fù)制源視頻數(shù)據(jù)達(dá)到錄制視頻文件的目的,而不是通過(guò)對(duì)視頻播放器的窗口畫(huà)面進(jìn)行截屏,故即使視頻播放器被其他窗口或界面遮擋,也不會(huì)影響或反映在錄制的視頻文件中,避免因?yàn)橛脩舻牟僮骰蚱渌绦虻慕孛嬲趽?,影響本視頻文件的錄制。同時(shí),實(shí)施本發(fā)明實(shí)施例提供的視頻錄制裝置在實(shí)現(xiàn)無(wú)干擾的錄制到播放器的視頻時(shí),能很好地獲取到播放器播放的聲音。本發(fā)明實(shí)施例提供的視頻錄制裝置實(shí)現(xiàn)簡(jiǎn)單、難度小、成本低。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍?!?br>
權(quán)利要求
1.一種視頻錄制方法,其特征在于,包括 啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序; 所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù); 對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放。
2.如權(quán)利要求I所述的視頻錄制方法,其特征在于,所述啟動(dòng)視頻播放器應(yīng)用程序的步驟之前,還包括 向所述視頻播放器應(yīng)用程序所在的系統(tǒng)中加載虛擬聲卡設(shè)備,并將所述虛擬聲卡設(shè)備設(shè)置為當(dāng)前系統(tǒng)聲卡。
3.如權(quán)利要求I所述的視頻錄制方法,其特征在于,所述啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序的步驟中,還包括 通過(guò)發(fā)送窗口消息,隱藏所述視頻播放器應(yīng)用程序的視頻播放窗口。
4.如權(quán)利要求I所述的視頻錄制方法,其特征在于,所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù)之后,對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼之前,還包括 按照制定的、用戶所需的視頻文件的格式,加載對(duì)應(yīng)的編碼器。
5.如權(quán)利要求2至4中任一項(xiàng)所述的視頻錄制方法,其特征在于,所述對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放,包括 按照制定的、用戶所需的視頻文件的格式對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,將虛擬聲卡設(shè)備捕獲的音頻數(shù)據(jù)進(jìn)行編碼; 將編碼后的拷貝視頻數(shù)據(jù)和音頻數(shù)據(jù)保存為視頻文件;將源視頻數(shù)據(jù)發(fā)送至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行播放。
6.一種視頻錄制裝置,其特征在于,包括 鉤子程序注入模塊,用于啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序; 視頻數(shù)據(jù)拷貝模塊,用于通過(guò)所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù); 視頻文件生成模塊,用于對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放。
7.如權(quán)利要求6所述的視頻錄制裝置,其特征在于,所述視頻錄制裝置還包括 虛擬聲卡加載模塊,用于向所述視頻錄制裝置所在的系統(tǒng)中加載虛擬聲卡設(shè)備,并將所述虛擬聲卡設(shè)備設(shè)置為當(dāng)前系統(tǒng)聲卡。
8.如權(quán)利要求6所述的視頻錄制裝置,其特征在于,所述視頻錄制裝置還包括 視頻窗口控制模塊,用于通過(guò)發(fā)送窗口消息,控制所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行隱藏或顯示。
9.如權(quán)利要求6所述的視頻錄制裝置,其特征在于,所述視頻錄制裝置還包括 編碼器加載模塊,用于向用戶提供可選的編碼器,并按照用戶選定的,其所需的視頻文件的格式,加載對(duì)應(yīng)的編碼器。
10.如權(quán)利要求7至9中任一項(xiàng)所述的視頻錄制裝置,其特征在于,所述視頻文件生成模塊包括 編碼控制單元,用于控制已加載的編碼器對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,以及對(duì)虛擬聲卡設(shè)備捕獲的音頻數(shù)據(jù)進(jìn)行編碼; 文件存儲(chǔ)單元,用于將編碼后的拷貝視頻數(shù)據(jù)和音頻數(shù)據(jù)保存為視頻文件; 數(shù)據(jù)轉(zhuǎn)發(fā)單元,用于將源視頻數(shù)據(jù)發(fā)送至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序的視頻播放窗口進(jìn)行播放。·
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種視頻錄制方法及裝置,該方法包括啟動(dòng)視頻播放器應(yīng)用程序,并向所述視頻播放器應(yīng)用程序中注入鉤子程序;所述鉤子程序截獲發(fā)往所述視頻播放器應(yīng)用程序的源視頻數(shù)據(jù),并復(fù)制所述源視頻數(shù)據(jù),生成拷貝視頻數(shù)據(jù);對(duì)所述拷貝視頻數(shù)據(jù)進(jìn)行編碼,并保存為視頻文件;將所述源視頻數(shù)據(jù)轉(zhuǎn)發(fā)至所述視頻播放器應(yīng)用程序,由所述視頻播放器應(yīng)用程序進(jìn)行播放。本發(fā)明實(shí)施例所提供的視頻錄制方法及裝置,可實(shí)現(xiàn)無(wú)干擾的獲取到視頻播放器的視頻,并在本地保存為視頻文件,即使視頻播放器被其他窗口或界面遮擋,也不會(huì)影響或反映在錄制的視頻文件中。同時(shí),該視頻錄制方法及裝置實(shí)現(xiàn)簡(jiǎn)單、難度小、成本低。
文檔編號(hào)H04N5/76GK102724466SQ201210165960
公開(kāi)日2012年10月10日 申請(qǐng)日期2012年5月25日 優(yōu)先權(quán)日2012年5月25日
發(fā)明者韋松 申請(qǐng)人:深圳市萬(wàn)興軟件有限公司