本發(fā)明涉及視頻處理技術(shù),尤其涉及一種視頻處理方法及裝置。
背景技術(shù):
隨著智能電子設(shè)備的飛速發(fā)展,視頻錄制功能已成為主流智能電子設(shè)備的必備功能。根據(jù)用戶的使用需求,很多情況下需要在視頻錄制過程中給錄制的視頻添加一些額外信息。并在將錄制的原始視頻和額外信息合成為一個完整的視頻文件,以供后期使用。例如:在記錄汽車行駛數(shù)據(jù)時,為了方便后續(xù)觀看錄制視頻時了解汽車在行駛過程對應(yīng)的行駛時間、所在位置以及行駛速度,需要在錄制的視頻中添加時間、經(jīng)緯度或者速度等信息,將原始的錄制視頻與所述錄制時間信息、經(jīng)緯度信息或者速度信息合成為一個視頻文件。
現(xiàn)有技術(shù)中,對錄制視頻添加額外信息的方式是:獲取終端硬件層錄制的原始圖像幀,將原始圖像幀與需要添加的額外信息數(shù)據(jù)幀進行合成后進行編碼,形成合成后的視頻文件。
但是,由于現(xiàn)有技術(shù)中,是直接對終端硬件層錄制的原始圖像幀數(shù)據(jù)進行處理,硬件層的數(shù)據(jù)合成過程中需要計算所述額外信息數(shù)據(jù)幀添加到所述原始圖像幀中的像素點位置,數(shù)據(jù)合成過程比較復(fù)雜,降低了錄制的視頻與額外信息進行合成時的效率。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種視頻處理方法及裝置,用于解決現(xiàn)有技術(shù)中將錄制的視頻與需要添加的額外信息進行合成時的效率較低的問題。
第一方面,本發(fā)明實施例提供一種視頻處理方法,包括:
獲取錄制中視頻的當前圖像幀;
對所述當前圖像幀進行封裝,得到所述當前圖像幀的圖層數(shù)據(jù);
根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù);
將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,得到合成圖層數(shù)據(jù);
對所述合成圖層數(shù)據(jù)進行編碼,得到待輸出圖像數(shù)據(jù)。
可選地,所述根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)之前,還包括:
接收用戶輸入的模板圖層選項,其中,所述模板圖層選項用于指示錄制時間信息與模板圖層數(shù)據(jù)的映射關(guān)系。
可選地,所述根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù),包括:
根據(jù)所述當前圖像幀的錄制時間信息、以及所述模板圖層選項,繪制所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)。
可選地,所述將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,包括:
將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行時間同步,得到同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù);
將所述同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
可選地,所述將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,包括:
創(chuàng)建虛擬顯示器;
在所述虛擬顯示器內(nèi)將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
第二方面,本發(fā)明實施例提供一種視頻處理裝置,包括:
獲取模塊,用于獲取錄制中視頻的當前圖像幀;
封裝模塊,用于對所述當前圖像幀進行封裝,得到所述當前圖像幀的圖層數(shù)據(jù);
所述獲取模塊,還用于根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù);
數(shù)據(jù)處理模塊,用于將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,得到合成圖層數(shù)據(jù);
編碼模塊,用于對所述合成圖層數(shù)據(jù)進行編碼,得到待輸出圖像數(shù)據(jù)。
可選地,所述方法還包括:
接收模塊,用于在所述獲取模塊根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)之前,接收用戶輸入的模板圖層選項,其中,所述模板圖層選項用于指示錄制時間信息與模板圖層數(shù)據(jù)映射關(guān)系。
可選地,所述獲取模塊,具體用于:
根據(jù)所述當前圖像幀的錄制時間信息、以及所述模板圖層選項,繪制所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)。
可選地,所述數(shù)據(jù)處理模塊,具體用于:
將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行時間同步,得到同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù);
將所述同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
可選地,所述數(shù)據(jù)處理模塊,具體用于:
創(chuàng)建虛擬顯示器;
在所述虛擬顯示器內(nèi)將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
本發(fā)明實施例提供的視頻處理方法即裝置,通過將獲取到的視頻圖像幀封裝為圖層數(shù)據(jù),并與應(yīng)用程序通過調(diào)用所述電子設(shè)備系統(tǒng)的標準接口繪制得到的模板圖層數(shù)據(jù)進行疊加,可以提高錄制中視頻數(shù)據(jù)與額外添加的模板圖層數(shù)據(jù)的合成效率,并且,由于直接通過調(diào)用電子設(shè)備系統(tǒng)的標準接口繪制所述模板圖層數(shù)據(jù),所述模板圖層數(shù)據(jù)的類型可以根據(jù)需求定制,能夠滿足視頻合成的多樣化需求。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例視頻處理方法的流程示意圖;
圖2為本發(fā)明實施例視頻處理方法的另一種流程示意圖;
圖3為本發(fā)明實施例繪制模板圖層數(shù)據(jù)的過程示意圖;
圖4為本發(fā)明實施例視頻處理裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
現(xiàn)有技術(shù)中通過獲取硬件層的原始視頻圖像幀與添加的額外信息的數(shù)據(jù)幀進行合成的過程中,需要計算額外信息的數(shù)據(jù)幀添加到所述原始視頻圖像幀的像素點位置,過程復(fù)雜,視頻數(shù)據(jù)合成效率較低;并且,由于現(xiàn)有技術(shù)是通過在硬件層實施視頻數(shù)據(jù)與額外信息的合成,而只有特定的某些類型的額外信息才能實現(xiàn)在硬件層與所述原始視頻圖像幀進行合成,例如用于顯示錄制時間信息的數(shù)字數(shù)據(jù)。因此,所述原始視頻圖像幀能夠添加的額外信息的類型比較單一,難以滿足視頻合成的多樣化需求。
針對現(xiàn)有技術(shù)的上述問題,本發(fā)明實施例提供一種視頻處理方法及裝置,用以提供一種提高視頻錄制過程中對原始視頻圖像幀與額外信息數(shù)據(jù)幀進行合成時的合成效率。
下面以具體地實施例對本發(fā)明的技術(shù)方案進行詳細說明。下面這幾個具體的實施例可以相互結(jié)合,對于相同或相似的概念或過程可能在某些實施例中不再贅述。
圖1為本發(fā)明實施例視頻處理方法的流程示意圖。圖2為本發(fā)明實施例視頻處理方法的另一種流程示意圖。本實施例的執(zhí)行主體可以是具有攝像功能的電子設(shè)備,例如照相機、攝像機、智能手機、行車記錄儀等。本發(fā)明實施例涉及的是具有攝像功能的電子設(shè)備在錄制視頻的過程中對錄制的原始視頻數(shù)據(jù)及額外信息數(shù)據(jù)進行疊加的過程。如圖1及圖2所示,本發(fā)明實施例提供的視頻處理方法,可以包括:
S101:獲取錄制中視頻的當前圖像幀;
具體地,當用戶通過所述具有攝像功能的電子設(shè)備錄制視頻時,通過所述電子設(shè)備的視頻數(shù)據(jù)采集模塊獲取錄制的視頻的當前圖像幀。所述圖像幀為所述電子設(shè)備的攝像元件直接輸出的顏色編碼YUV(其中“Y”表示明亮度,即灰階值,“U”和“V”表示色度)幀。獲取所述圖像幀的方式為本領(lǐng)域的技術(shù)人員所熟知的,在此不再贅述。
S102:對所述當前圖像幀進行封裝,得到所述當前圖像幀的圖層數(shù)據(jù);
具體地,將獲取到的所述當前圖像幀進行封裝,將所述圖像幀封裝為所述電子設(shè)備的顯示元件(例如顯卡)可以識別的數(shù)據(jù)形式,得到所述當前圖像幀的圖層數(shù)據(jù)。
S103:根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)。
具體地,所述模板圖層數(shù)據(jù)是由所述電子設(shè)備上的模板繪制模塊調(diào)用所述電子設(shè)備系統(tǒng)的標準繪圖接口繪制得到的。所述電子設(shè)備系統(tǒng)可以為安卓系統(tǒng)。針對不同應(yīng)用的視頻錄制合成需求,需要添加的模板圖層數(shù)據(jù)不同,需要調(diào)用的標準繪圖接口也不同。具體需要調(diào)用的標準繪圖接口可以根據(jù)用戶的使用需求進行選擇。例如:用戶可以選擇通過應(yīng)用程序“美拍”實現(xiàn)視頻錄制,并在視頻錄制過程中添加預(yù)設(shè)模板。則所述模板圖層數(shù)據(jù)即可調(diào)用所述預(yù)設(shè)模板對應(yīng)的標準繪圖接口,繪制與所述預(yù)設(shè)模板對應(yīng)的所述模板圖層數(shù)據(jù)。
所述根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)之前,還包括:
接收用戶輸入的模板圖層選項,其中,所述模板圖層選項用于指示錄制時間信息與模板圖層數(shù)據(jù)的映射關(guān)系。
具體地,用戶可以提前對所述模板圖層選項進行設(shè)置。例如,可以設(shè)置所述模板圖層選項為“5s-花”,表示當所述電子設(shè)備錄制到第5秒鐘時,需要在所述當前圖像幀的圖層數(shù)據(jù)上添加的模板圖層數(shù)據(jù)為一朵花。通過設(shè)置不同的模板圖層選項,并調(diào)用對應(yīng)的所述模板圖層數(shù)據(jù),即可以為所述當前圖像幀的圖層數(shù)據(jù)添加預(yù)期的水印效果。
所述根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù),包括:
根據(jù)所述當前圖像幀的錄制時間信息、以及所述模板圖層選項,繪制所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)。
S104:將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,得到合成圖層數(shù)據(jù);
具體地,所述將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,包括:
將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行時間同步,得到同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù);
將所述同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
具體地,所述將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,包括:
創(chuàng)建虛擬顯示器;
在所述虛擬顯示器內(nèi)將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
圖3為本發(fā)明實施例繪制模板圖層數(shù)據(jù)的過程示意圖。
請參閱圖3,具體地,在所述虛擬顯示器內(nèi)將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加的實現(xiàn)方式如下:
首先創(chuàng)建一個圖層,并利用窗口管理服務(wù)(windowmanagerservice)原理在所述圖層上創(chuàng)建所述虛擬顯示器,所述模板繪制模塊通過調(diào)用安卓系統(tǒng)的標準繪圖接口在所述虛擬顯示器上實現(xiàn)應(yīng)用界面UI的繪制,從而得到所述模板圖層數(shù)據(jù)。所述虛擬顯示器只在程序中進行虛擬創(chuàng)建和維護,并不顯示到所述電子設(shè)備上。將獲取到的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)同時顯示到所述虛擬顯示器上,由數(shù)據(jù)混合模塊對所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,得到所述合成圖層數(shù)據(jù)。
具體地,所述將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,是通過以下方式實現(xiàn)的:
將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行時間同步,得到同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù);
將所述同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
通過將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行時間同步,可以保證輸出的所述模板圖層數(shù)據(jù)在預(yù)設(shè)的錄制時間與所述當前圖像幀的圖層數(shù)據(jù)進行疊加,得到預(yù)期的疊加效果。
在此需要說明的是,攝像元件輸出的所述錄制中視頻的前圖像幀的幀率通常小于等于30幀/秒,由于所述電子設(shè)備通過所述系統(tǒng)標準接口繪制的所述模板圖層數(shù)據(jù)的輸出速率大于所述攝影元件錄制的所述當前圖像幀的圖層數(shù)據(jù)的輸出速率,為了保證數(shù)據(jù)輸出的同步性,保證得到預(yù)期的視頻數(shù)據(jù)疊加效果,可以設(shè)置所述攝像元件輸出一幀數(shù)據(jù)后,再調(diào)用所述系統(tǒng)的標準接口繪制所述模板圖層數(shù)據(jù)。
另外,由于攝像元件輸出的所述錄制中視頻的前圖像幀的幀率小于等于30幀/秒,對所述當前圖像幀的圖層數(shù)據(jù)和所述模板圖層數(shù)據(jù)進行疊加的時間需要設(shè)置為小于等于330毫秒,以避免后續(xù)輸入的數(shù)據(jù)積壓,導(dǎo)致無法按時提供用于編碼的所述合成圖層數(shù)據(jù)。
S105:對所述合成圖層數(shù)據(jù)進行編碼,得到待輸出圖像數(shù)據(jù)。
完成對所述當前圖像幀的圖層數(shù)據(jù)和所述模板圖層數(shù)據(jù)的疊加過程后,將所述合成圖層數(shù)據(jù)傳送給所述電子設(shè)備的編碼器,所述編碼器對所述合成圖層數(shù)據(jù)進行編碼后得到所述待輸出圖像數(shù)據(jù)。
具體地,所述方法還包括,獲取音頻數(shù)據(jù)采集模塊采集到的音頻數(shù)據(jù),并通過所述編碼器對所述音頻數(shù)據(jù)進行編碼,得到待輸出音頻數(shù)據(jù)。
通過多媒體混合接口將所述待輸出圖像數(shù)據(jù)與所述待輸出音頻數(shù)據(jù)進行混合封裝,輸出最終的視頻文件。
需要說明的是,所述音頻數(shù)據(jù)采集模塊采集音頻數(shù)據(jù)時,可以與所述視頻數(shù)據(jù)采集模塊同時啟動,也可以根據(jù)所述攝像元件的幀率,晚一幀時間啟動。
本發(fā)明實施例提供的視頻處理方法,通過獲取錄制中視頻的當前圖像幀,對所述當前圖像幀進行封裝,得到所述當前圖像幀的圖層數(shù)據(jù),根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù),將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,得到合成圖層數(shù)據(jù),對所述合成圖層數(shù)據(jù)進行編碼,得到待輸出圖像數(shù)據(jù)。采用本發(fā)明實施例提供的視頻處理方法,通過將獲取到的視頻圖像幀封裝為圖層數(shù)據(jù),并與應(yīng)用程序通過調(diào)用所述電子設(shè)備系統(tǒng)的標準接口繪制得到的模板圖層數(shù)據(jù)進行疊加,可以提高錄制中視頻數(shù)據(jù)與額外添加的模板圖層數(shù)據(jù)的合成效率,并且,由于直接通過調(diào)用電子設(shè)備系統(tǒng)的標準接口繪制所述模板圖層數(shù)據(jù),所述模板圖層數(shù)據(jù)的類型可以根據(jù)需求定制,能夠滿足視頻合成的多樣化需求。
實施例二
圖4為本發(fā)明實施例視頻處理裝置的結(jié)構(gòu)示意圖。
請參閱圖4,本發(fā)明實施例還提供一種視頻處理裝置,包括:
獲取模塊410,用于獲取錄制中視頻的當前圖像幀;
封裝模塊420,用于對所述當前圖像幀進行封裝,得到所述當前圖像幀的圖層數(shù)據(jù);
所述獲取模塊410,還用于根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù);
數(shù)據(jù)處理模塊430,用于將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,得到待輸出圖像幀。
編碼模塊440,用于對所述合成圖層數(shù)據(jù)進行編碼,得到待輸出圖像數(shù)據(jù)。
在上述實施例的基礎(chǔ)上,進一步地,所述裝置還包括:
接收模塊450,用于在所述獲取模塊根據(jù)所述當前圖像幀的錄制時間信息,獲取所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)之前,接收用戶輸入的模板圖層選項,其中,所述模板圖層選項用于指示錄制時間信息與模板圖層數(shù)據(jù)映射關(guān)系。
在上述實施例的基礎(chǔ)上,進一步地,所述獲取模塊410,具體用于:
根據(jù)所述當前圖像幀的錄制時間信息、以及所述模板圖層選項,繪制所述錄制時間信息對應(yīng)的模板圖層數(shù)據(jù)。
在上述實施例的基礎(chǔ)上,進一步地,所述數(shù)據(jù)處理模塊430,具體用于:
將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加,包括:
將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行時間同步,得到同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù);
將所述同步后的所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
在上述實施例的基礎(chǔ)上,進一步地,所述數(shù)據(jù)處理模塊430,具體用于:
創(chuàng)建虛擬顯示器;
在所述虛擬顯示器內(nèi)將所述當前圖像幀的圖層數(shù)據(jù)與所述模板圖層數(shù)據(jù)進行疊加。
本發(fā)明實施例二提供的圖像處理裝置,用于執(zhí)行實施例一提供的圖像處理方法,其具體實現(xiàn)原理及技術(shù)效果與方法實施例類似,在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。