两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

視頻合成方法及裝置與流程

文檔序號:12136295閱讀:410來源:國知局
視頻合成方法及裝置與流程

本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種視頻合成方法及裝置。



背景技術(shù):

隨著4G時(shí)代的到來,互聯(lián)網(wǎng)領(lǐng)域已從文字時(shí)代、圖片時(shí)代、短視頻時(shí)代進(jìn)入到了直播時(shí)代,移動(dòng)視頻直播已經(jīng)成為當(dāng)前互聯(lián)網(wǎng)表現(xiàn)最搶眼的領(lǐng)域之一。為了增加視頻的趣味性,美化視頻效果,主播通常會在錄制時(shí)增加一些美顏、趣味貼圖或者動(dòng)畫等裝飾效果,但通常存在錄制端與播放端設(shè)備不同而不能播放合成視頻或是裝飾效果與錄制視頻不能同步播放的問題,導(dǎo)致用戶體驗(yàn)較差。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的主要目的在于提供一種視頻合成方法及裝置,旨在解決錄制端與播放端設(shè)備不同而不能播放合成視頻或是裝飾效果與錄制視頻不能同步播放的技術(shù)問題。

為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種視頻合成方法包括以下步驟:

獲取相機(jī)的原始視頻幀,將原始視頻幀轉(zhuǎn)換成原始視頻幀紋理并緩存于系統(tǒng)編碼庫生成的繪圖層;

創(chuàng)建繪圖窗口,并建立繪圖窗口與所述繪圖層的對應(yīng)關(guān)系,以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口;

將繪圖窗口的原始視頻幀紋理與本地系統(tǒng)的效果數(shù)據(jù)混合編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

優(yōu)選地,所述獲取相機(jī)的原始視頻幀,將原始視頻幀轉(zhuǎn)換成原始視頻幀紋理并緩存于系統(tǒng)編碼庫生成的繪圖層的步驟包括:

創(chuàng)建相機(jī)預(yù)覽窗口以獲取相機(jī)的原始視頻幀,并為所述相機(jī)預(yù)覽窗口設(shè)置渲染器;

獲取所述渲染器基于各個(gè)原始視頻幀創(chuàng)建的表面紋理和對應(yīng)的紋理編號,并將獲取的所述原始視頻幀通過表面紋理和紋理編號轉(zhuǎn)換成原始視頻幀紋理;

將原始視頻幀紋理緩存于系統(tǒng)編碼庫生成的繪圖層。

優(yōu)選地,所述創(chuàng)建繪圖窗口,并建立繪圖窗口與所述繪圖層的對應(yīng)關(guān)系,以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口的步驟包括:

創(chuàng)建繪圖窗口,根據(jù)系統(tǒng)函數(shù)接收繪圖層緩存的原始視頻幀紋理,以建立繪圖窗口與繪圖層的對應(yīng)關(guān)系;

根據(jù)系統(tǒng)編碼線程窗口切換規(guī)則,完成繪圖層與繪圖窗口之間的切換,并根據(jù)預(yù)設(shè)的繪圖參數(shù)和繪圖流程,將繪圖層的原始視頻幀紋理繪制于繪圖窗口中。

優(yōu)選地,所述將繪圖窗口的原始視頻幀紋理與本地系統(tǒng)的效果數(shù)據(jù)混合編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻的步驟包括:

根據(jù)接收的輸入指令,從本地系統(tǒng)中獲取對應(yīng)的效果數(shù)據(jù);

基于系統(tǒng)開放圖形庫將效果數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的效果紋理,并將效果紋理繪制于繪圖窗口中;

對繪圖窗口中的原始視頻幀紋理和效果紋理進(jìn)行混合和編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

優(yōu)選地,所述對繪圖窗口中的原始視頻幀紋理和效果紋理進(jìn)行混合和編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻的步驟包括:

將繪圖窗口中的原始視頻幀紋理和效果紋理混合成新的視頻幀,并輸出至與繪圖窗口對應(yīng)的繪圖層;

基于系統(tǒng)編碼庫將繪圖層上當(dāng)前的新的視頻幀按照預(yù)設(shè)格式編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種視頻合成裝置,包括:

獲取模塊,用以獲取相機(jī)的原始視頻幀,將原始視頻幀轉(zhuǎn)換成原始視頻幀紋理并緩存于系統(tǒng)編碼庫生成的繪圖層;

繪制模塊,用以創(chuàng)建繪圖窗口,并建立繪圖窗口與所述繪圖層的對應(yīng)關(guān)系,以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口;

編碼模塊,用以將繪圖窗口的原始視頻幀紋理與本地系統(tǒng)的效果數(shù)據(jù)混合編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

優(yōu)選地,所述獲取模塊包括:

獲取單元,用以創(chuàng)建相機(jī)預(yù)覽窗口以獲取相機(jī)的原始視頻幀,并為所述相機(jī)預(yù)覽窗口設(shè)置渲染器;

轉(zhuǎn)換單元,用以獲取所述渲染器基于各個(gè)原始視頻幀創(chuàng)建的表面紋理和對應(yīng)的紋理編號,并將獲取的所述原始視頻幀通過表面紋理和紋理編號轉(zhuǎn)換成原始視頻幀紋理;

緩存單元,用以將原始視頻幀紋理緩存于系統(tǒng)編碼庫生成的繪圖層。

優(yōu)選地,所述繪制模塊包括:

繪圖窗口創(chuàng)建單元,用以創(chuàng)建繪圖窗口,根據(jù)系統(tǒng)函數(shù)接收繪圖層緩存的原始視頻幀紋理,以建立繪圖窗口與繪圖層的對應(yīng)關(guān)系;

繪制單元,用以根據(jù)系統(tǒng)編碼線程窗口切換規(guī)則,完成繪圖層與繪圖窗口之間的切換,并根據(jù)預(yù)設(shè)的繪圖參數(shù)和繪圖流程,將繪圖層的原始視頻幀紋理繪制于繪圖窗口中。

優(yōu)選地,所述編碼模塊包括:

效果圖片獲取單元,用以根據(jù)接收的輸入指令,從本地系統(tǒng)中獲取對應(yīng)的效果數(shù)據(jù);

效果紋理繪制單元,用以基于系統(tǒng)開放圖形庫將效果數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的效果紋理,并將效果紋理繪制于繪圖窗口中;

編碼單元,用以對繪圖窗口中的原始視頻幀紋理和效果紋理進(jìn)行混合和編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

優(yōu)選地,所述編碼單元包括:

混合單元,用以將繪圖窗口中的原始視頻幀紋理和效果紋理混合成新的視頻幀,并輸出至與繪圖窗口對應(yīng)的繪圖層;

輸出單元,用以基于系統(tǒng)編碼庫將繪圖層上當(dāng)前的新的視頻幀按照預(yù)設(shè)格式編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

本發(fā)明提供的技術(shù)方案中,獲取相機(jī)的原始視頻幀,將原始視頻幀轉(zhuǎn)換成原始視頻幀紋理并緩存于系統(tǒng)編碼庫生成的繪圖層,再創(chuàng)建繪圖窗口,并建立繪圖窗口與所述繪圖層的對應(yīng)關(guān)系,以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口,最后將繪圖窗口的原始視頻幀紋理與本地系統(tǒng)的效果數(shù)據(jù)混合編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻,從而基于繪圖層在視頻發(fā)送端將效果數(shù)據(jù)合成至待發(fā)送視頻中,合成視頻為通用格式,使得不管接收端是何種類型設(shè)備,都能對接收的編碼視頻解碼播放,也解決了現(xiàn)有技術(shù)中錄制視頻與增加的裝飾效果數(shù)據(jù)單獨(dú)發(fā)送而造成的不能同步播放的技術(shù)問題,提高了用戶體驗(yàn)。

附圖說明

圖1為本發(fā)明視頻合成方法第一實(shí)施例的流程示意圖;

圖2為本發(fā)明視頻合成方法第二實(shí)施例中獲取原始視頻幀步驟的細(xì)化流程示意圖;

圖3為本發(fā)明視頻合成方法第三實(shí)施例中創(chuàng)建繪圖窗口步驟的細(xì)化流程示意圖;

圖4為本發(fā)明視頻合成方法第四實(shí)施例中將原始視頻幀紋理與效果數(shù)據(jù)編碼步驟的細(xì)化流程示意圖;

圖5為本發(fā)明視頻合成方法第五實(shí)施例中實(shí)現(xiàn)視頻合成步驟的細(xì)化流程示意圖;

圖6為本發(fā)明視頻合成裝置第一實(shí)施例的功能模塊示意圖;

圖7為本發(fā)明視頻合成裝置第二實(shí)施例中獲取模塊的細(xì)化功能模塊示意圖;

圖8為本發(fā)明視頻合成裝置第三實(shí)施例中繪制模塊的細(xì)化功能模塊示意圖;

圖9為本發(fā)明視頻合成裝置第四實(shí)施例中編碼模塊的細(xì)化功能模塊示意圖;

圖10為本發(fā)明視頻合成裝置第五實(shí)施例中編碼單元的細(xì)化功能模塊示意圖。

本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。

具體實(shí)施方式

應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明提供一種視頻合成方法,參照圖1,在一實(shí)施例中,該視頻合成方法包括:

步驟S10,獲取相機(jī)的原始視頻幀,將原始視頻幀轉(zhuǎn)換成原始視頻幀紋理并緩存于系統(tǒng)編碼庫生成的繪圖層;

可以理解地,視頻錄制端可以通過多種方式獲取相機(jī)的原始視頻幀;例如,當(dāng)視頻錄制端為手機(jī)時(shí),可以通過手機(jī)自帶的相機(jī)獲取原始視頻幀,當(dāng)視頻錄制端為電腦時(shí),可以通過電腦外接攝像頭來獲取原始視頻幀。本實(shí)施例中,視頻錄制端為自帶有相機(jī)的視頻錄制端,且操作系統(tǒng)為Android系統(tǒng)。

具體地,通過Android系統(tǒng)打開視頻錄制端的相機(jī),并設(shè)置相機(jī)參數(shù),例如光圈值、曝光控制、感光度、對焦距離等參數(shù)的設(shè)置;打開攝像頭預(yù)覽,并創(chuàng)建相機(jī)預(yù)覽窗口(GL Surface View),同時(shí)為相機(jī)預(yù)覽窗口設(shè)置渲染器(Render),上述步驟均是基于Android系統(tǒng)中開放圖形庫(Open GL)實(shí)現(xiàn)。

所述相機(jī)預(yù)覽窗口用以獲取相機(jī)的原始視頻幀,也就是說,相機(jī)每更新一幀數(shù)據(jù),系統(tǒng)就會調(diào)用一次渲染器的on Draw Frame(GL10)方法為相機(jī)預(yù)覽窗口繪制圖像,根據(jù)獲取的相機(jī)每一幀的原始視頻幀數(shù)據(jù)生成開放圖形庫的原始視頻幀紋理。

需要說明的是,紋理就是一個(gè)圖像或照片,用于在基本圖形的表面加入額外的細(xì)節(jié)。每個(gè)二位的紋理都有其自己的坐標(biāo)空間,其范圍是從一個(gè)拐角的(0,0)到另一個(gè)拐角的(1,1)。當(dāng)需要把一個(gè)紋理應(yīng)用于一個(gè)矩形的時(shí)候,因此需要為每個(gè)頂點(diǎn)指定一個(gè)紋理坐標(biāo),以便Open GL知道需要用那個(gè)紋理的哪個(gè)部分畫到矩形上。Android系統(tǒng)中,將以原始的視頻幀和貼圖作為紋理,使用(0,0)、(1,0)、(0,1)、(1,1)作為四個(gè)頂點(diǎn)的紋理坐標(biāo),其效果就是將整個(gè)圖像縮放后,完整地繪制在頂點(diǎn)坐標(biāo)指定的矩形區(qū)域上。

具體地,所述渲染器基于獲取的每一原始視屏幀創(chuàng)建表面紋理和對應(yīng)的紋理編號,這樣,在渲染器的on Draw Frame中就可以通過創(chuàng)建的表面紋理(Surface Texure)和紋理編號(Texureld)獲取紋理數(shù)據(jù)和操作紋理了。也就是說,獲取所述原始視頻幀通過渲染器on Draw Frame轉(zhuǎn)換為對應(yīng)的原始視頻幀紋理。并通過Android系統(tǒng)編碼庫(Mediacodec)生成一個(gè)繪圖層(surface),用以緩存所述原始視頻幀紋理,所述編碼庫將從該繪圖層獲取待編碼的視頻流。

步驟S20,創(chuàng)建繪圖窗口,并建立繪圖窗口與所述繪圖層的對應(yīng)關(guān)系,以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口;

基于Android系統(tǒng)創(chuàng)建繪圖窗口,用以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口;可以理解地,需要建立繪圖窗口與繪圖層的對應(yīng)關(guān)系。

具體地,為了使用繪圖窗口繪圖,通過系統(tǒng)函數(shù)egl Create Window Surface創(chuàng)建一個(gè)EGL Surface,該函數(shù)接收編碼庫生成的繪圖層(surface)作為參數(shù),這樣就建立了繪圖窗口和繪圖層的對應(yīng)關(guān)系。

進(jìn)一步地,Android系統(tǒng)編碼線程通過修改“current”來設(shè)置EGL Surface,為了使Open GL能夠在創(chuàng)建的繪圖窗口上繪圖,還需要通過系統(tǒng)編碼線程調(diào)用EGL Surface.make Current方法完成繪圖層與繪圖窗口之間的切換,并根據(jù)預(yù)設(shè)的繪圖參數(shù)和繪圖流程將繪圖層的原始視頻幀紋理繪制于繪圖窗口。可以理解地,所述繪圖參數(shù)可以為預(yù)設(shè)的頂點(diǎn)坐標(biāo)、紋理坐標(biāo)和頂點(diǎn)著色器、片段著色器等,根據(jù)Open GL的繪圖流程,將所述原始視頻幀紋理繪制在繪圖窗口上。

需要說明的是,所述頂點(diǎn)坐標(biāo)指的是歸一化坐標(biāo),用于指定矩形的繪制區(qū)域。在Open GL里,需要渲染的一切物體都要映射到x軸和y軸上的[-1,1]的范圍內(nèi),這個(gè)范圍內(nèi)的坐標(biāo)被稱為歸一化設(shè)備坐標(biāo),其獨(dú)立于屏幕實(shí)際的尺寸或形狀。Android系統(tǒng)中Open GL占用整個(gè)顯示屏,因此x軸、y軸的[-1,1]的范圍分別映射為屏幕的像素寬和像素高。

可以理解地,圖像在繪制之前,需要在Open GL的管道中傳遞,這就需要稱為著色器的子例程,這些著色器會告訴GPU如何繪制數(shù)據(jù),有頂點(diǎn)著色器和片段著色器,在繪制任何內(nèi)容到屏幕之前,需要先定義頂點(diǎn)著色器和片段著色器。

具體地,首先讀取原始視頻幀的頂點(diǎn)數(shù)據(jù),執(zhí)行頂點(diǎn)著色器,進(jìn)而可以控制每個(gè)頂點(diǎn),實(shí)現(xiàn)渲染、確定頂點(diǎn)位置紋理坐標(biāo)變換等指令;當(dāng)頂點(diǎn)的全部屬性都被確定后,將頂點(diǎn)組裝成圖元,然后光柵化圖元,負(fù)責(zé)接收一個(gè)圖元經(jīng)過處理的電,并把它轉(zhuǎn)換為片段,每個(gè)片段對應(yīng)屏幕的一個(gè)像素;執(zhí)行片段著色器,進(jìn)行紋理查找,確定紋理坐標(biāo);而后將原始視頻幀寫入幀緩沖區(qū),即繪圖層(surface),最后顯示在屏幕上。

步驟S30,將繪圖窗口的原始視頻幀紋理與本地系統(tǒng)的效果數(shù)據(jù)混合編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

可以理解地,效果數(shù)據(jù)可以是美顏、濾鏡、趣味貼圖、動(dòng)畫效果等。所述效果數(shù)據(jù)可以是預(yù)存于系統(tǒng)中的數(shù)據(jù),也可以是用戶基于系統(tǒng)程序而產(chǎn)生的當(dāng)前數(shù)據(jù)并緩存于系統(tǒng)內(nèi)存中。

具體地,基于用戶輸入的控制指令獲取系統(tǒng)內(nèi)存中的效果數(shù)據(jù),并與繪圖窗口的原始視頻幀紋理混合和編碼,合成新的視頻,并輸出到網(wǎng)絡(luò)推流模塊,以供接收端解碼播放。

本發(fā)明提供的技術(shù)方案中,通過獲取相機(jī)的原始視頻幀,將原始視頻幀轉(zhuǎn)換成原始視頻幀紋理并緩存于系統(tǒng)編碼庫生成的繪圖層,再創(chuàng)建繪圖窗口,并建立繪圖窗口與所述繪圖層的對應(yīng)關(guān)系,以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口,最后將繪圖窗口的原始視頻幀紋理與本地系統(tǒng)的效果數(shù)據(jù)混合編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻,從而基于繪圖層在視頻發(fā)送端將效果數(shù)據(jù)合成至待發(fā)送視頻中(即合成視頻),合成視頻為通用格式,使得不管接收端是何種類型設(shè)備,都能對接收的編碼視頻解碼播放,也解決了現(xiàn)有技術(shù)中錄制視頻與增加的裝飾效果數(shù)據(jù)單獨(dú)發(fā)送而造成的不能同步播放的技術(shù)問題,提高了用戶體驗(yàn)。

進(jìn)一步地,請參照圖2,基于上述實(shí)施例一,在本實(shí)施例中,上述步驟S10包括:

步驟S11,創(chuàng)建相機(jī)預(yù)覽窗口以獲取相機(jī)的原始視頻幀,并為所述相機(jī)預(yù)覽窗口設(shè)置渲染器;

步驟S12,獲取所述渲染器基于各個(gè)原始視頻幀創(chuàng)建的表面紋理和對應(yīng)的紋理編號,并將獲取的所述原始視頻幀通過表面紋理和紋理編號轉(zhuǎn)換成原始視頻幀紋理;

步驟S13,將原始視頻幀紋理緩存于系統(tǒng)編碼庫生成的繪圖層。

具體地,基于Android系統(tǒng)的開放圖形庫(Open GL),通過Android系統(tǒng)的Camera類,設(shè)置相機(jī)參數(shù),打開攝像頭預(yù)覽,并創(chuàng)建相機(jī)預(yù)覽窗口(GL Surface View),并為所述相機(jī)預(yù)覽窗口設(shè)置渲染器。所述相機(jī)預(yù)覽窗口的創(chuàng)建,能獲取相機(jī)的原始視頻幀。

進(jìn)一步地,為了獲取紋理數(shù)據(jù),首先在渲染器中使用開放圖形庫(Open GL)基于原始視頻幀創(chuàng)建表面紋理(Surface Texure)和對應(yīng)的紋理編號(Texureld),然后通過Camera的set Preview Texture接口傳入紋理;這樣,通過渲染器的on Draw Frame方法,將獲取的所述原始視頻幀通過表面紋理和紋理編號轉(zhuǎn)換成原始視頻幀紋理,并緩存于系統(tǒng)編碼庫生成的繪圖層。

在本實(shí)施例提供的技術(shù)方案中,進(jìn)一步提出了通過創(chuàng)建相機(jī)預(yù)覽窗口以獲取相機(jī)的原始視頻幀,并為所述相機(jī)預(yù)覽窗口設(shè)置渲染器;獲取所述渲染器基于各個(gè)原始視頻幀創(chuàng)建的表面紋理和對應(yīng)的紋理編號,并將獲取的所述原始視頻幀通過表面紋理和紋理編號轉(zhuǎn)換成原始視頻幀紋理,并緩存于系統(tǒng)編碼庫生成的繪圖層。借助Android系統(tǒng)中獨(dú)立于窗口系統(tǒng)、獨(dú)立于硬件的開放圖形庫來實(shí)現(xiàn)相機(jī)預(yù)覽窗口的創(chuàng)建,在運(yùn)行各種操作系統(tǒng)的各種計(jì)算機(jī)上都可以用,優(yōu)化視頻直播體驗(yàn)和效率。

進(jìn)一步地,請參照圖3,基于上述實(shí)施例二,在本實(shí)施例中,上述步驟S20包括:

步驟S21,創(chuàng)建繪圖窗口,根據(jù)系統(tǒng)函數(shù)接收繪圖層緩存的原始視頻幀紋理,以建立繪圖窗口與繪圖層的對應(yīng)關(guān)系;

步驟S22,根據(jù)系統(tǒng)編碼線程中的窗口切換規(guī)則,完成繪圖層與繪圖窗口之間的切換,并根據(jù)預(yù)設(shè)的繪圖參數(shù)和繪圖流程,將繪圖層的原始視頻幀紋理繪制于繪圖窗口中。

本發(fā)明提供的技術(shù)方案中,為了完成錄制視頻和效果數(shù)據(jù)的合成,需要?jiǎng)?chuàng)建一個(gè)繪圖窗口,以完成原始視頻幀的繪制和效果數(shù)據(jù)的繪制。

具體地,為了使用繪圖窗口繪圖,需要?jiǎng)?chuàng)建一個(gè)EGL Context和一個(gè)EGL Surface;EGL Context就是當(dāng)前渲染代碼所在的線程,EGL Surface是通過系統(tǒng)函數(shù)egl Create Window Surface創(chuàng)建的,該函數(shù)接收系統(tǒng)編碼庫生成的繪圖層作為參數(shù),以建立繪圖窗口和繪圖層的對應(yīng)關(guān)系。

進(jìn)一步地,當(dāng)建立了繪圖窗口與繪圖層之間的對應(yīng)關(guān)系,需要將緩存于繪圖層的原始視頻幀紋理繪制于繪圖窗口。通過系統(tǒng)編碼線程調(diào)用EGL Surface.make Current方法完成繪圖層與繪圖窗口之間的切換,基于開放圖形庫的繪圖流程,將原始視頻幀紋理繪制在繪圖窗口上。

本實(shí)施例中,通過創(chuàng)建繪圖窗口,以完成原始視頻幀紋理的繪制,進(jìn)而能在繪圖窗口對獲取的所述原始視頻幀進(jìn)行紋理繪制,并能將本地系統(tǒng)中的效果數(shù)據(jù)也繪制于繪圖窗口,以實(shí)現(xiàn)錄制視頻與效果數(shù)據(jù)的合成;所述繪圖窗口的創(chuàng)建,獨(dú)立于相機(jī)預(yù)覽窗口,進(jìn)而能避免相機(jī)預(yù)覽窗口卡頓等現(xiàn)象的發(fā)生,提高系統(tǒng)的處理效率。

進(jìn)一步地,請參照圖4,基于上述實(shí)施例三,在本實(shí)施例中,上述步驟S30包括:

步驟S31,根據(jù)接收的輸入指令,從本地系統(tǒng)中獲取對應(yīng)的效果數(shù)據(jù);

步驟S32,基于系統(tǒng)開放圖形庫將效果數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的效果紋理,并將效果紋理繪制于繪圖窗口中;

步驟S33,對繪圖窗口中的原始視頻幀紋理和效果紋理進(jìn)行混合和編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

可以理解地,為了美化視頻效果,需要在錄制的視頻中添加效果數(shù)據(jù),且需要將效果數(shù)據(jù)轉(zhuǎn)換成與原始視頻幀紋理相同的格式,以實(shí)現(xiàn)將效果數(shù)據(jù)與原始視頻幀紋理的混合。需要說明的是,所述效果數(shù)據(jù)可以是預(yù)存于系統(tǒng)中的數(shù)據(jù),例如貼圖、動(dòng)畫等,也可以是用戶基于系統(tǒng)程序而產(chǎn)生的當(dāng)前數(shù)據(jù)并緩存于系統(tǒng)內(nèi)存中,例如濾鏡、美顏圖片等。

具體地,根據(jù)接收的輸入指令,首先讀取系統(tǒng)磁盤中png或者jpg格式的圖片,并生成bitmap位圖數(shù)據(jù)到內(nèi)存中,然后基于開放圖形庫的glTexImage2D函數(shù)生成二位圖像的效果紋理,并使用相應(yīng)的坐標(biāo)和著色器將所述效果紋理繪制于繪圖窗口上。繪制完成后,將繪圖窗口上的原始視頻幀紋理和效果紋理混合編碼,生成新的合成視頻并輸出至網(wǎng)絡(luò)推流模塊,以供接收端解碼播放。

本實(shí)施例提供的技術(shù)方案中,進(jìn)一步細(xì)化了效果數(shù)據(jù)的處理步驟,將錄制的原始視頻幀與效果數(shù)據(jù)在視頻錄制端合成編碼,實(shí)現(xiàn)了視頻合成的實(shí)時(shí)傳輸,播放端只需解碼播放即可,減少了播放端的處理流程,優(yōu)化了直播效率,提高了用戶體驗(yàn)。

進(jìn)一步地,請參照圖5,基于上述實(shí)施例四,在本實(shí)施例中,上述步驟S33包括:

步驟S331,將繪圖窗口中的原始視頻幀紋理和效果紋理混合成新的視頻幀,并輸出至與繪圖窗口對應(yīng)的繪圖層;

步驟S332,基于系統(tǒng)編碼庫將繪圖層上當(dāng)前的新的視頻幀按照預(yù)設(shè)格式編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

具體地,當(dāng)完成將效果紋理繪制于繪圖窗口的步驟后,將繪圖窗口上的原始視頻幀紋理和效果紋理混合成新的視頻幀,并調(diào)用系統(tǒng)中的egl Swap Buffer函數(shù)來提交繪制在繪圖窗口的當(dāng)前新的視頻幀,輸出至與當(dāng)前繪圖窗口對應(yīng)的繪圖層中,系統(tǒng)編碼庫將以該繪圖層作為輸出對象,并將繪圖層上的當(dāng)前新的視頻幀按照預(yù)設(shè)的格式編碼,輸出至網(wǎng)絡(luò)推流模塊,接收端只需解碼播放即可。

需要說明的是,本實(shí)施例中,通過如下設(shè)置以完成將繪圖窗口上的原始視頻幀紋理和效果紋理的混合:

glEnbale(GL_BLEND);//啟用混合

glBlendFunc(GL_SRC_ALPHA,GL_ONE_M(jìn)INUS_SRC_ALPHA);//混合函數(shù)。

其中GL_SRC_ALPHA是源混合因子sfactor,GL_ONE_M(jìn)INUS_SRC_ALPHA是目標(biāo)混合因子dfactor。使用這個(gè)設(shè)置,實(shí)現(xiàn)了由遠(yuǎn)及近的繪圖,在效果紋理的繪制區(qū)域,透明部分將顯示原始幀,有像素的部分將顯示效果紋理。

本實(shí)施例提供的技術(shù)方案中,通過將繪圖窗口中的原始視頻幀紋理和效果紋理混合成新的視頻幀,并輸出至與繪圖窗口對應(yīng)的繪圖層;基于系統(tǒng)編碼庫將繪圖層上當(dāng)前的新的視頻幀按照預(yù)設(shè)格式編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。進(jìn)一步優(yōu)化了效果紋理與原始視頻幀紋理的處理步驟,以實(shí)現(xiàn)錄制視頻與效果數(shù)據(jù)的高效同步播放的效果。

本發(fā)明還提供一種視頻合成裝置,參照圖6,在一實(shí)施例中,本發(fā)明提供的視頻合成裝置包括:

獲取模塊10,用以獲取相機(jī)的原始視頻幀,將原始視頻幀轉(zhuǎn)換成原始視頻幀紋理并緩存于系統(tǒng)編碼庫生成的繪圖層;

可以理解地,視頻錄制端可以通過多種方式獲取相機(jī)的原始視頻幀;例如,當(dāng)視頻錄制端為手機(jī)時(shí),可以通過手機(jī)自帶的相機(jī)獲取原始視頻幀,當(dāng)視頻錄制端為電腦時(shí),可以通過電腦外接攝像頭來獲取原始視頻幀。本實(shí)施例中,視頻錄制端為自帶有相機(jī)的視頻錄制端,且操作系統(tǒng)為Android系統(tǒng)。

具體地,通過Android系統(tǒng)打開視頻錄制端的相機(jī),并設(shè)置相機(jī)參數(shù),例如光圈值、曝光控制、感光度、對焦距離等參數(shù)的設(shè)置;打開攝像頭預(yù)覽,并創(chuàng)建相機(jī)預(yù)覽窗口(GL Surface View),同時(shí)為相機(jī)預(yù)覽窗口設(shè)置渲染器(Render),上述步驟均是基于Android系統(tǒng)中開放圖形庫(Open GL)實(shí)現(xiàn)。

所述相機(jī)預(yù)覽窗口用以獲取相機(jī)的原始視頻幀,也就是說,相機(jī)每更新一幀數(shù)據(jù),系統(tǒng)就會調(diào)用一次渲染器的on Draw Frame(GL10)方法為相機(jī)預(yù)覽窗口繪制圖像,根據(jù)獲取的相機(jī)每一幀的原始視頻幀數(shù)據(jù)生成開放圖形庫的原始視頻幀紋理。

需要說明的是,紋理就是一個(gè)圖像或照片,用于在基本圖形的表面加入額外的細(xì)節(jié)。每個(gè)二位的紋理都有其自己的坐標(biāo)空間,其范圍是從一個(gè)拐角的(0,0)到另一個(gè)拐角的(1,1)。當(dāng)需要把一個(gè)紋理應(yīng)用于一個(gè)矩形的時(shí)候,因此需要為每個(gè)頂點(diǎn)指定一個(gè)紋理坐標(biāo),以便Open GL知道需要用那個(gè)紋理的哪個(gè)部分畫到矩形上。Android系統(tǒng)中,將以原始的視頻幀和貼圖作為紋理,使用(0,0)、(1,0)、(0,1)、(1,1)作為四個(gè)頂點(diǎn)的紋理坐標(biāo),其效果就是將整個(gè)圖像縮放后,完整地繪制在頂點(diǎn)坐標(biāo)指定的矩形區(qū)域上。

具體地,所述渲染器基于獲取的每一原始視屏幀創(chuàng)建表面紋理和對應(yīng)的紋理編號,這樣,在渲染器的on Draw Frame中就可以通過創(chuàng)建的表面紋理(Surface Texure)和紋理編號(Texureld)獲取紋理數(shù)據(jù)和操作紋理了。也就是說,獲取的相機(jī)的所述原始視頻幀通過渲染器on Draw Frame轉(zhuǎn)換為對應(yīng)的原始視頻幀紋理。并通過Android系統(tǒng)編碼庫(Mediacodec)生成一個(gè)繪圖層(surface),用以緩存所述原始視頻幀紋理,所述編碼庫將從該繪圖層獲取待編碼的視頻流。

繪制模塊20,用以創(chuàng)建繪圖窗口,并建立繪圖窗口與所述繪圖層的對應(yīng)關(guān)系,以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口;

基于Android系統(tǒng)創(chuàng)建繪圖窗口,用以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口;可以理解地,需要建立繪圖窗口與繪圖層的對應(yīng)關(guān)系。

具體地,為了使用繪圖窗口繪圖,通過系統(tǒng)函數(shù)egl Create Window Surface創(chuàng)建一個(gè)EGL Surface,該函數(shù)接收編碼庫生成的繪圖層(surface)作為參數(shù),這樣就建立了繪圖窗口和繪圖層的對應(yīng)關(guān)系。

進(jìn)一步地,Android系統(tǒng)編碼線程通過修改“current”來設(shè)置EGL Surface,為了使Open GL能夠在創(chuàng)建的繪圖窗口上繪圖,還需要通過系統(tǒng)編碼線程調(diào)用EGL Surface.make Current方法完成繪圖層與繪圖窗口之間的切換,并根據(jù)預(yù)設(shè)的繪圖參數(shù)和繪圖流程將繪圖層的原始視頻幀紋理繪制于繪圖窗口。可以理解地,所述繪圖參數(shù)可以為預(yù)設(shè)的頂點(diǎn)坐標(biāo)、紋理坐標(biāo)和頂點(diǎn)著色器、片段著色器等,根據(jù)Open GL的繪圖流程,將所述原始視頻幀紋理繪制在繪圖窗口上。

需要說明的是,所述頂點(diǎn)坐標(biāo)指的是歸一化坐標(biāo),用于指定矩形的繪制區(qū)域。在Open GL里,需要渲染的一切物體都要映射到x軸和y軸上的[-1,1]的范圍內(nèi),這個(gè)范圍內(nèi)的坐標(biāo)被稱為歸一化設(shè)備坐標(biāo),其獨(dú)立于屏幕實(shí)際的尺寸或形狀。Android系統(tǒng)中Open GL占用整個(gè)顯示屏,因此x軸、y軸的[-1,1]的范圍分別映射為屏幕的像素寬和像素高。

可以理解地,圖像在繪制之前,需要在Open GL的管道中傳遞,這就需要稱為著色器的子例程,這些著色器會告訴GPU如何繪制數(shù)據(jù),有頂點(diǎn)著色器和片段著色器,在繪制任何內(nèi)容到屏幕之前,需要先定義頂點(diǎn)著色器和片段著色器。

具體地,首先讀取原始視頻幀的頂點(diǎn)數(shù)據(jù),執(zhí)行頂點(diǎn)著色器,進(jìn)而可以控制每個(gè)頂點(diǎn),實(shí)現(xiàn)渲染、確定頂點(diǎn)位置紋理坐標(biāo)變換等指令;當(dāng)頂點(diǎn)的全部屬性都被確定后,將頂點(diǎn)組裝成圖元,然后光柵化圖元,負(fù)責(zé)接收一個(gè)圖元經(jīng)過處理的電,并把它轉(zhuǎn)換為片段,每個(gè)片段對應(yīng)屏幕的一個(gè)像素;執(zhí)行片段著色器,進(jìn)行紋理查找,確定紋理坐標(biāo);而后將原始視頻幀寫入幀緩沖區(qū),即繪圖層(surface),最后顯示在屏幕上。

編碼模塊30,用以將繪圖窗口的原始視頻幀紋理與本地系統(tǒng)的效果數(shù)據(jù)混合編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

可以理解地,效果數(shù)據(jù)可以是美顏、濾鏡、趣味貼圖、動(dòng)畫效果等。所述效果數(shù)據(jù)可以是預(yù)存于系統(tǒng)中的數(shù)據(jù),也可以是用戶基于系統(tǒng)程序而產(chǎn)生的當(dāng)前數(shù)據(jù)并緩存于系統(tǒng)內(nèi)存中。

具體地,基于用戶輸入的控制指令獲取系統(tǒng)內(nèi)存中的效果數(shù)據(jù),并與繪圖窗口的原始視頻幀紋理混合和編碼,合成新的視頻,并輸出到網(wǎng)絡(luò)推流模塊,以供接收端解碼播放。

本發(fā)明提供的技術(shù)方案中,通過獲取模塊10獲取相機(jī)的原始視頻幀,將原始視頻幀轉(zhuǎn)換成原始視頻幀紋理并緩存于系統(tǒng)編碼庫生成的繪圖層,繪制模塊20再創(chuàng)建繪圖窗口,并建立繪圖窗口與所述繪圖層的對應(yīng)關(guān)系,以將所述繪圖層緩存的原始視頻幀紋理繪制于所述繪圖窗口,最后編碼模塊30將繪圖窗口的原始視頻幀紋理與本地系統(tǒng)的效果數(shù)據(jù)混合編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻,從而基于繪圖層在視頻發(fā)送端將效果數(shù)據(jù)合成至待發(fā)送視頻中(即合成視頻),合成視頻為通用格式,使得不管接收端是何種類型設(shè)備,都能對接收的編碼視頻解碼播放,也解決了現(xiàn)有技術(shù)中錄制視頻與增加的裝飾效果數(shù)據(jù)單獨(dú)發(fā)送而造成的不能同步播放的技術(shù)問題,提高了用戶體驗(yàn)。

進(jìn)一步地,請參照圖7,基于上述實(shí)施例一,在本實(shí)施例中,所述獲取模塊10包括:

獲取單元11,用以創(chuàng)建相機(jī)預(yù)覽窗口以獲取相機(jī)的原始視頻幀,并為所述相機(jī)預(yù)覽窗口設(shè)置渲染器;

轉(zhuǎn)換單元12,用以獲取所述渲染器基于各個(gè)原始視頻幀創(chuàng)建的表面紋理和對應(yīng)的紋理編號,并將獲取的所述原始視頻幀通過表面紋理和紋理編號轉(zhuǎn)換成原始視頻幀紋理;

緩存單元13,用以將原始視頻幀紋理緩存于系統(tǒng)編碼庫生成的繪圖層。

具體地,基于Android系統(tǒng)的開放圖形庫(Open GL),通過Android系統(tǒng)的Camera類,設(shè)置相機(jī)參數(shù),打開攝像頭預(yù)覽,并創(chuàng)建相機(jī)預(yù)覽窗口(GL Surface View),并為所述相機(jī)預(yù)覽窗口設(shè)置渲染器。所述相機(jī)預(yù)覽窗口的創(chuàng)建,能獲取相機(jī)的原始視頻幀。

進(jìn)一步地,為了獲取紋理數(shù)據(jù),首先在渲染器中使用開放圖形庫(Open GL)基于原始視頻幀創(chuàng)建表面紋理(Surface Texure)和對應(yīng)的紋理編號(Texureld),然后通過Camera的set Preview Texture接口傳入紋理;這樣,通過渲染器的on Draw Frame方法,將獲取的所述原始視頻幀通過表面紋理和紋理編號轉(zhuǎn)換成原始視頻幀紋理,并緩存于系統(tǒng)編碼庫生成的繪圖層。

在本實(shí)施例提供的技術(shù)方案中,獲取單元11通過創(chuàng)建相機(jī)預(yù)覽窗口以獲取相機(jī)的原始視頻幀,并為所述相機(jī)預(yù)覽窗口設(shè)置渲染器;轉(zhuǎn)換單元12將獲取的所述原始視頻幀通過渲染器創(chuàng)建的表面紋理和紋理編號轉(zhuǎn)換成原始視頻幀紋理,并通過緩存單元13緩存于系統(tǒng)編碼庫生成的繪圖層。借助Android系統(tǒng)中獨(dú)立于窗口系統(tǒng)、獨(dú)立于硬件的開放圖形庫來實(shí)現(xiàn)相機(jī)預(yù)覽窗口的創(chuàng)建,在運(yùn)行各種操作系統(tǒng)的各種計(jì)算機(jī)上都可以用,優(yōu)化視頻直播體驗(yàn)和效率。

進(jìn)一步地,請參照圖8,基于上述實(shí)施例二,在本實(shí)施例中,所述繪制模塊20包括:

繪圖窗口創(chuàng)建單元21,用以創(chuàng)建繪圖窗口,根據(jù)系統(tǒng)函數(shù)接收繪圖層緩存的原始視頻幀紋理,以建立繪圖窗口與繪圖層的對應(yīng)關(guān)系;

繪制單元22,用以根據(jù)系統(tǒng)編碼線程窗口切換規(guī)則,完成繪圖層與繪圖窗口之間的切換,并根據(jù)預(yù)設(shè)的繪圖參數(shù)和繪圖流程,將繪圖層的原始視頻幀紋理繪制于繪圖窗口中。

本發(fā)明提供的技術(shù)方案中,為了完成錄制視頻和效果數(shù)據(jù)的合成,需要?jiǎng)?chuàng)建一個(gè)繪圖窗口,以完成原始視頻幀的繪制和效果數(shù)據(jù)的繪制。

具體地,為了使用繪圖窗口繪圖,需要?jiǎng)?chuàng)建一個(gè)EGL Context和一個(gè)EGL Surface;EGL Context就是當(dāng)前渲染代碼所在的線程,EGL Surface是通過系統(tǒng)函數(shù)egl Create Window Surface創(chuàng)建的,該函數(shù)接收系統(tǒng)編碼庫生成的繪圖層作為參數(shù),以建立繪圖窗口和繪圖層的對應(yīng)關(guān)系。

進(jìn)一步地,當(dāng)建立了繪圖窗口與繪圖層之間的對應(yīng)關(guān)系,需要將緩存于繪圖層的原始視頻幀紋理繪制于繪圖窗口。通過系統(tǒng)編碼線程調(diào)用EGL Surface.make Current方法完成繪圖層與繪圖窗口之間的切換,基于開放圖形庫的繪圖流程,將原始視頻幀紋理繪制在繪圖窗口上。

本實(shí)施例中,通過創(chuàng)建繪圖窗口,以完成原始視頻幀紋理的繪制,進(jìn)而能在繪圖窗口對獲取的所述原始視頻幀進(jìn)行紋理繪制,并能將本地系統(tǒng)中的效果數(shù)據(jù)也繪制于繪圖窗口,以實(shí)現(xiàn)錄制視頻與效果數(shù)據(jù)的合成;所述繪圖窗口的創(chuàng)建,獨(dú)立于相機(jī)預(yù)覽窗口,進(jìn)而能避免相機(jī)預(yù)覽窗口卡頓等現(xiàn)象的發(fā)生,提高系統(tǒng)的處理效率。

進(jìn)一步地,請參照圖9,基于上述實(shí)施例三,在本實(shí)施例中,所述編碼模塊30包括:

效果圖片獲取單元31,用以根據(jù)接收的輸入指令,從本地系統(tǒng)中獲取對應(yīng)的效果數(shù)據(jù);

效果紋理繪制單元32,用以基于系統(tǒng)開放圖形庫將效果數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的效果紋理,并將效果紋理繪制于繪圖窗口中;

編碼單元33,用以對繪圖窗口中的原始視頻幀紋理和效果紋理進(jìn)行混合和編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

可以理解地,為了美化視頻效果,需要在錄制的視頻中添加效果數(shù)據(jù),且需要將效果數(shù)據(jù)轉(zhuǎn)換成與原始視頻幀紋理相同的格式,以實(shí)現(xiàn)將效果數(shù)據(jù)與原始視頻幀紋理的混合。需要說明的是,所述效果數(shù)據(jù)可以是預(yù)存于系統(tǒng)中的數(shù)據(jù),例如貼圖、動(dòng)畫等,也可以是用戶基于系統(tǒng)程序而產(chǎn)生的當(dāng)前數(shù)據(jù)并緩存于系統(tǒng)內(nèi)存中,例如濾鏡、美顏圖片等。

具體地,所述效果圖片獲取單元31首先獲取系統(tǒng)磁盤png或者jpg格式的圖片,并生成bitmap位圖數(shù)據(jù)到內(nèi)存中,然后基于開放圖形庫的glTexImage2D函數(shù)生成二位圖像的紋理數(shù)據(jù),并使用相應(yīng)的坐標(biāo)和著色器將所述效果紋理繪制于繪圖窗口上。繪制完成后,將繪圖窗口上的原始視頻幀紋理和效果紋理混合編碼,生成新的合成視頻并輸出至網(wǎng)絡(luò)推流模塊,以供接收端解碼播放。

本實(shí)施例提供的技術(shù)方案中,進(jìn)一步細(xì)化了效果數(shù)據(jù)的處理步驟,將錄制的原始視頻幀與效果數(shù)據(jù)在視頻錄制端合成編碼,實(shí)現(xiàn)了視頻合成的實(shí)時(shí)傳輸,播放端只需解碼播放即可,減少了播放端的處理流程,優(yōu)化了直播效率,提高了用戶體驗(yàn)。

進(jìn)一步地,請參照圖10,基于上述實(shí)施例四,在本實(shí)施例中,所述編碼單元33包括:

混合單元331,用以將繪圖窗口中的原始視頻幀紋理和效果紋理混合成新的視頻幀,并輸出至與繪圖窗口對應(yīng)的繪圖層;

輸出單元332,用以基于系統(tǒng)編碼庫將繪圖層上當(dāng)前的新的視頻幀按照預(yù)設(shè)格式編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。

具體地,當(dāng)完成將效果紋理繪制于繪圖窗口的步驟后,將繪圖窗口上的原始視頻幀紋理和效果紋理混合成新的視頻幀,并調(diào)用系統(tǒng)中的egl Swap Buffer函數(shù)來提交繪制在繪圖窗口的當(dāng)前新的視頻幀,輸出至與當(dāng)前繪圖窗口對應(yīng)的繪圖層中,系統(tǒng)編碼庫將以該繪圖層作為輸出對象,并將繪圖層上的當(dāng)前新的視頻幀按照預(yù)設(shè)的格式編碼,輸出至網(wǎng)絡(luò)推流模塊,接收端只需解碼播放即可。

需要說明的是,本實(shí)施例中,通過如下設(shè)置以完成將繪圖窗口上的原始視頻幀紋理和效果紋理的混合:

glEnbale(GL_BLEND);//啟用混合

glBlendFunc(GL_SRC_ALPHA,GL_ONE_M(jìn)INUS_SRC_ALPHA);//混合函數(shù)。

其中GL_SRC_ALPHA是源混合因子sfactor,GL_ONE_M(jìn)INUS_SRC_ALPHA是目標(biāo)混合因子dfactor。使用這個(gè)設(shè)置,實(shí)現(xiàn)了由遠(yuǎn)及近的繪圖,在效果紋理的繪制區(qū)域,透明部分將顯示原始幀,有像素的部分將顯示效果紋理。

本實(shí)施例提供的技術(shù)方案中,通過混合單元331將繪圖窗口中的原始視頻幀紋理和效果紋理混合成新的視頻幀,并輸出至與繪圖窗口對應(yīng)的繪圖層;輸出單元332通過系統(tǒng)編碼庫將繪圖層上當(dāng)前的新的視頻幀按照預(yù)設(shè)格式編碼,生成并輸出合成視頻,以供接收端解碼播放所述合成視頻。進(jìn)一步優(yōu)化了效果紋理與原始視頻幀紋理的處理步驟,以實(shí)現(xiàn)錄制視頻與裝飾效果的高效同步的效果。

以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
国产精品免费一区二区三区在线| 国产精品伦人一区二区| 少妇裸体淫交视频免费看高清| 91久久精品电影网| 国产成人a区在线观看| 国产淫片久久久久久久久| 亚洲av熟女| 十八禁网站免费在线| 悠悠久久av| 精品久久久久久久人妻蜜臀av| 国产麻豆成人av免费视频| 免费观看人在逋| 婷婷六月久久综合丁香| 三级国产精品欧美在线观看| 日韩一区二区视频免费看| 成人二区视频| 国模一区二区三区四区视频| 久久久久久久久大av| 日韩欧美 国产精品| 在线观看舔阴道视频| 乱码一卡2卡4卡精品| 干丝袜人妻中文字幕| 国产精品久久久久久av不卡| 国产男人的电影天堂91| 草草在线视频免费看| 夜夜看夜夜爽夜夜摸| 在线国产一区二区在线| 中文字幕免费在线视频6| 麻豆国产av国片精品| 亚洲熟妇熟女久久| 色在线成人网| 成人特级黄色片久久久久久久| 日韩欧美在线乱码| 别揉我奶头 嗯啊视频| 亚洲最大成人手机在线| 淫秽高清视频在线观看| 久久99热这里只有精品18| 免费av不卡在线播放| 欧美日韩国产亚洲二区| 免费av观看视频| 日本三级黄在线观看| 久久午夜亚洲精品久久| 18禁在线播放成人免费| 黄色女人牲交| 午夜福利在线在线| 99视频精品全部免费 在线| 中文资源天堂在线| 欧美中文日本在线观看视频| 18禁黄网站禁片午夜丰满| 嫁个100分男人电影在线观看| 欧美性感艳星| 天堂√8在线中文| 欧美又色又爽又黄视频| 欧美最新免费一区二区三区| 中文字幕高清在线视频| 久久久久精品国产欧美久久久| 亚洲av不卡在线观看| 热99re8久久精品国产| 国产伦人伦偷精品视频| 草草在线视频免费看| 大型黄色视频在线免费观看| 婷婷亚洲欧美| 成年版毛片免费区| h日本视频在线播放| 九九爱精品视频在线观看| 男插女下体视频免费在线播放| 日韩欧美免费精品| 长腿黑丝高跟| 一区福利在线观看| 国产三级中文精品| 波野结衣二区三区在线| netflix在线观看网站| 国产aⅴ精品一区二区三区波| 成年免费大片在线观看| 亚洲最大成人手机在线| 色播亚洲综合网| 狂野欧美激情性xxxx在线观看| 丰满的人妻完整版| 午夜影院日韩av| 1000部很黄的大片| 麻豆成人av在线观看| 免费av不卡在线播放| 中国美白少妇内射xxxbb| 国内精品久久久久精免费| 亚洲欧美精品综合久久99| 亚洲人成网站在线播| 久久久国产成人免费| 亚洲五月天丁香| 国产精品精品国产色婷婷| 国产精品人妻久久久影院| 亚洲精品亚洲一区二区| 午夜精品久久久久久毛片777| 丰满人妻一区二区三区视频av| 欧美日韩精品成人综合77777| 久久精品人妻少妇| h日本视频在线播放| 国产伦在线观看视频一区| 黄色欧美视频在线观看| 日韩欧美在线二视频| 成人鲁丝片一二三区免费| 能在线免费观看的黄片| 性色avwww在线观看| 亚洲av熟女| 乱人视频在线观看| 国产成人福利小说| 日本精品一区二区三区蜜桃| 色综合亚洲欧美另类图片| 搡老岳熟女国产| 2021天堂中文幕一二区在线观| 国产免费一级a男人的天堂| 悠悠久久av| 国产午夜福利久久久久久| 波野结衣二区三区在线| 欧美激情久久久久久爽电影| 黄色日韩在线| 日韩欧美在线乱码| 看片在线看免费视频| 亚洲av中文字字幕乱码综合| 成人欧美大片| 国产大屁股一区二区在线视频| 老师上课跳d突然被开到最大视频| 尤物成人国产欧美一区二区三区| 两人在一起打扑克的视频| 日韩 亚洲 欧美在线| 亚洲va在线va天堂va国产| 国产精品久久久久久av不卡| 国模一区二区三区四区视频| 欧美黑人巨大hd| 嫩草影院新地址| 综合色av麻豆| 免费高清视频大片| 亚洲一级一片aⅴ在线观看| 色综合亚洲欧美另类图片| 男人舔女人下体高潮全视频| 又粗又爽又猛毛片免费看| 欧美日韩黄片免| 一区二区三区激情视频| 熟女电影av网| 变态另类成人亚洲欧美熟女| 日韩精品中文字幕看吧| 欧美日韩瑟瑟在线播放| 久久久久久久久中文| 精品久久久久久久久久久久久| 亚洲av电影不卡..在线观看| 色av中文字幕| 亚洲美女搞黄在线观看 | 色哟哟哟哟哟哟| 日本熟妇午夜| av在线亚洲专区| 免费一级毛片在线播放高清视频| 黄色欧美视频在线观看| 成人美女网站在线观看视频| 观看免费一级毛片| 亚洲天堂国产精品一区在线| 麻豆一二三区av精品| 黄色配什么色好看| 少妇人妻一区二区三区视频| 亚洲av美国av| 亚洲精品色激情综合| 超碰av人人做人人爽久久| 欧美精品国产亚洲| 琪琪午夜伦伦电影理论片6080| 国产亚洲91精品色在线| 亚洲内射少妇av| 99在线人妻在线中文字幕| 有码 亚洲区| 国产一区二区亚洲精品在线观看| 天堂动漫精品| 五月玫瑰六月丁香| 天堂动漫精品| 国产欧美日韩精品亚洲av| 国产国拍精品亚洲av在线观看| 91久久精品国产一区二区三区| 极品教师在线免费播放| 亚洲狠狠婷婷综合久久图片| 最近中文字幕高清免费大全6 | 久久九九热精品免费| 国产真实乱freesex| 午夜精品久久久久久毛片777| 久久久国产成人免费| 99热这里只有是精品在线观看| 免费黄网站久久成人精品| 欧美高清性xxxxhd video| 九九爱精品视频在线观看| 日本一本二区三区精品| 在线播放无遮挡| 亚洲成av人片在线播放无| 夜夜爽天天搞| 国模一区二区三区四区视频| 给我免费播放毛片高清在线观看| 欧美色视频一区免费| 能在线免费观看的黄片| 午夜激情福利司机影院| 免费在线观看成人毛片| 国产精品久久久久久久久免| 亚洲国产精品久久男人天堂| 观看免费一级毛片| 99精品在免费线老司机午夜| 日韩欧美在线乱码| 成人高潮视频无遮挡免费网站| 国语自产精品视频在线第100页| av福利片在线观看| 久久精品91蜜桃| 我的老师免费观看完整版| 午夜福利在线在线| 午夜福利欧美成人| 香蕉av资源在线| 国产黄a三级三级三级人| 欧美性感艳星| 日本一二三区视频观看| 三级毛片av免费| 精品久久久久久成人av| 日本在线视频免费播放| 日韩欧美在线乱码| 人妻制服诱惑在线中文字幕| 麻豆成人av在线观看| 在线观看av片永久免费下载| 国产爱豆传媒在线观看| 色噜噜av男人的天堂激情| 搡女人真爽免费视频火全软件 | 联通29元200g的流量卡| 日韩欧美在线乱码| 国产精品一区二区三区四区免费观看 | 黄片wwwwww| 国产免费av片在线观看野外av| 色哟哟·www| 桃红色精品国产亚洲av| 精品久久久久久久末码| 亚洲四区av| 成年免费大片在线观看| 国产大屁股一区二区在线视频| 人人妻人人看人人澡| 波野结衣二区三区在线| 欧美+亚洲+日韩+国产| 草草在线视频免费看| 天堂√8在线中文| 嫩草影院精品99| 97热精品久久久久久| 99久久精品国产国产毛片| 少妇人妻精品综合一区二区 | 色尼玛亚洲综合影院| 啦啦啦观看免费观看视频高清| 亚洲最大成人中文| 亚洲第一区二区三区不卡| 欧美一区二区精品小视频在线| 成人国产麻豆网| 国产精品爽爽va在线观看网站| 91在线精品国自产拍蜜月| 最后的刺客免费高清国语| 熟女人妻精品中文字幕| 91精品国产九色| 国产高清三级在线| 韩国av一区二区三区四区| 欧美不卡视频在线免费观看| 波多野结衣高清无吗| 久久久成人免费电影| 69av精品久久久久久| 午夜福利视频1000在线观看| 最近在线观看免费完整版| 国产精品久久电影中文字幕| 国产精品人妻久久久久久| 999久久久精品免费观看国产| 日本五十路高清| 深夜精品福利| 日本免费a在线| 国内精品宾馆在线| 久久久久精品国产欧美久久久| 欧美高清成人免费视频www| 黄色配什么色好看| 又紧又爽又黄一区二区| av中文乱码字幕在线| 国产精品免费一区二区三区在线| 国产精品精品国产色婷婷| 国产成人影院久久av| 桃色一区二区三区在线观看| 久久国产精品人妻蜜桃| 亚洲午夜理论影院| 日韩中文字幕欧美一区二区| 97人妻精品一区二区三区麻豆| 国产一区二区在线观看日韩| 亚州av有码| 嫩草影院入口| 九九爱精品视频在线观看| 亚洲av中文字字幕乱码综合| 中文字幕av成人在线电影| 女人十人毛片免费观看3o分钟| 美女高潮的动态| 成人一区二区视频在线观看| 日本黄色视频三级网站网址| 国产蜜桃级精品一区二区三区| 偷拍熟女少妇极品色| 国产淫片久久久久久久久| 午夜久久久久精精品| 日日摸夜夜添夜夜添小说| 婷婷亚洲欧美| 亚洲乱码一区二区免费版| 有码 亚洲区| 男人的好看免费观看在线视频| 国产精品久久久久久久久免| 国产在线男女| 欧美一区二区精品小视频在线| 搡老岳熟女国产| 欧美性猛交黑人性爽| 高清毛片免费观看视频网站| 国产精品伦人一区二区| 国产欧美日韩精品一区二区| 波野结衣二区三区在线| 国产精品福利在线免费观看| 国产精品一区二区三区四区久久| 免费搜索国产男女视频| 在线免费观看不下载黄p国产 | 久久欧美精品欧美久久欧美| 免费不卡的大黄色大毛片视频在线观看 | 在线观看一区二区三区| 精品午夜福利在线看| 亚洲熟妇熟女久久| 国产亚洲av嫩草精品影院| 午夜精品一区二区三区免费看| 国产精品亚洲一级av第二区| 日本 av在线| 俺也久久电影网| 国内精品久久久久精免费| 99国产极品粉嫩在线观看| 我要看日韩黄色一级片| 亚洲成a人片在线一区二区| 真人做人爱边吃奶动态| 亚洲精品亚洲一区二区| 国产av不卡久久| 国模一区二区三区四区视频| 特大巨黑吊av在线直播| 欧美日本视频| 国产爱豆传媒在线观看| 精品午夜福利在线看| 国产亚洲av嫩草精品影院| 国产aⅴ精品一区二区三区波| 亚洲精品一卡2卡三卡4卡5卡| 亚洲成人中文字幕在线播放| 亚洲七黄色美女视频| 亚洲精品456在线播放app | 亚洲美女视频黄频| 日日干狠狠操夜夜爽| 久久精品国产99精品国产亚洲性色| 精品国内亚洲2022精品成人| 亚洲一区二区三区色噜噜| 久久婷婷人人爽人人干人人爱| 观看美女的网站| xxxwww97欧美| 少妇的逼水好多| 一进一出抽搐gif免费好疼| 97超视频在线观看视频| 日本 欧美在线| 老司机福利观看| 久久精品国产亚洲av涩爱 | 久99久视频精品免费| 乱码一卡2卡4卡精品| 三级男女做爰猛烈吃奶摸视频| 午夜a级毛片| 一夜夜www| 国产精品久久久久久久久免| 亚洲性久久影院| 色在线成人网| 俄罗斯特黄特色一大片| 韩国av在线不卡| 国产亚洲精品av在线| 国产高清视频在线播放一区| 99在线人妻在线中文字幕| 日本欧美国产在线视频| 国产又黄又爽又无遮挡在线| 麻豆成人av在线观看| 免费av毛片视频| 久9热在线精品视频| 中文资源天堂在线| 一级a爱片免费观看的视频| 听说在线观看完整版免费高清| 亚洲欧美清纯卡通| 欧洲精品卡2卡3卡4卡5卡区| 日本熟妇午夜| 亚洲欧美日韩无卡精品| 久久6这里有精品| 欧洲精品卡2卡3卡4卡5卡区| 女同久久另类99精品国产91| 99热网站在线观看| 一区二区三区免费毛片| 老女人水多毛片| 99久久久亚洲精品蜜臀av| 男女边吃奶边做爰视频| 午夜激情福利司机影院| 欧美激情国产日韩精品一区| 男女下面进入的视频免费午夜| 久久久久国内视频| 欧美一级a爱片免费观看看| 97碰自拍视频| 观看美女的网站| 亚洲精品456在线播放app | 麻豆国产97在线/欧美| 国产亚洲欧美98| 看免费成人av毛片| 日韩欧美一区二区三区在线观看| 女人十人毛片免费观看3o分钟| 尤物成人国产欧美一区二区三区| 我的老师免费观看完整版| 国产一区二区三区在线臀色熟女| 国产单亲对白刺激| 老司机深夜福利视频在线观看| 搡老岳熟女国产| 亚洲国产精品成人综合色| 国产av一区在线观看免费| 亚洲专区国产一区二区| 亚州av有码| 可以在线观看的亚洲视频| netflix在线观看网站| 自拍偷自拍亚洲精品老妇| а√天堂www在线а√下载| 校园春色视频在线观看| 香蕉av资源在线| 午夜老司机福利剧场| 啦啦啦观看免费观看视频高清| 神马国产精品三级电影在线观看| 少妇猛男粗大的猛烈进出视频 | 欧美成人免费av一区二区三区| 熟妇人妻久久中文字幕3abv| 日韩中字成人| 给我免费播放毛片高清在线观看| 天堂网av新在线| 精品人妻1区二区| 欧美激情在线99| 国产在线精品亚洲第一网站| 日韩人妻高清精品专区| 偷拍熟女少妇极品色| 亚洲久久久久久中文字幕| 在线观看免费视频日本深夜| 久久人人爽人人爽人人片va| 久久精品国产亚洲网站| 国内精品一区二区在线观看| 国产不卡一卡二| 春色校园在线视频观看| 国产伦精品一区二区三区四那| 午夜免费成人在线视频| 久久6这里有精品| 国产高清三级在线| 欧美+亚洲+日韩+国产| 狠狠狠狠99中文字幕| 乱码一卡2卡4卡精品| 日韩一本色道免费dvd| 亚洲七黄色美女视频| 老女人水多毛片| 亚洲av中文av极速乱 | a级一级毛片免费在线观看| 亚洲国产精品sss在线观看| 日韩高清综合在线| 少妇的逼水好多| 午夜a级毛片| 1024手机看黄色片| 日日摸夜夜添夜夜添av毛片 | 国产亚洲欧美98| 日本-黄色视频高清免费观看| 最近视频中文字幕2019在线8| 久久久久久久久久久丰满 | 久久久久久久久大av| 很黄的视频免费| 五月玫瑰六月丁香| 日韩 亚洲 欧美在线| h日本视频在线播放| 久久精品综合一区二区三区| 国产精品久久电影中文字幕| 成人毛片a级毛片在线播放| 亚洲av熟女| 欧美最黄视频在线播放免费| 午夜福利18| 一本一本综合久久| 久久久久免费精品人妻一区二区| 国产免费av片在线观看野外av| 国产淫片久久久久久久久| 天天一区二区日本电影三级| 美女黄网站色视频| x7x7x7水蜜桃| 全区人妻精品视频| 狠狠狠狠99中文字幕| 国产欧美日韩精品一区二区| 日本 av在线| 国产成人aa在线观看| 黄色配什么色好看| 亚洲熟妇中文字幕五十中出| 男人狂女人下面高潮的视频| 久久精品91蜜桃| 极品教师在线免费播放| 国产在视频线在精品| 国产三级在线视频| 桃红色精品国产亚洲av| 国产午夜精品论理片| 日本精品一区二区三区蜜桃| 免费看av在线观看网站| 91午夜精品亚洲一区二区三区 | 亚洲中文日韩欧美视频| 91麻豆精品激情在线观看国产| 男人狂女人下面高潮的视频| av中文乱码字幕在线| 熟女人妻精品中文字幕| 在线a可以看的网站| 亚洲av熟女| 小蜜桃在线观看免费完整版高清| 国产主播在线观看一区二区| 国产成人av教育| 欧美三级亚洲精品| 狠狠狠狠99中文字幕| 天堂av国产一区二区熟女人妻| 香蕉av资源在线| 免费看日本二区| 免费在线观看影片大全网站| 色精品久久人妻99蜜桃| 国产探花在线观看一区二区| 欧美bdsm另类| 在线免费观看不下载黄p国产 | 国产精品女同一区二区软件 | www.色视频.com| 桃色一区二区三区在线观看| 999久久久精品免费观看国产| av视频在线观看入口| 国产伦精品一区二区三区四那| 精品一区二区免费观看| 女人被狂操c到高潮| 国产女主播在线喷水免费视频网站 | 亚洲成a人片在线一区二区| 日本-黄色视频高清免费观看| 欧美激情在线99| 特级一级黄色大片| 亚洲精品国产成人久久av| 真实男女啪啪啪动态图| 久久这里只有精品中国| 欧美极品一区二区三区四区| 国产三级在线视频| 国产成人av教育| 日韩欧美 国产精品| 嫁个100分男人电影在线观看| 波野结衣二区三区在线| 嫩草影院新地址| 午夜日韩欧美国产| 麻豆国产97在线/欧美| 九九爱精品视频在线观看| 美女大奶头视频| 久99久视频精品免费| 国产精品自产拍在线观看55亚洲| 中文在线观看免费www的网站| 丰满的人妻完整版| 免费黄网站久久成人精品| 国产一区二区三区av在线 | 变态另类成人亚洲欧美熟女| 嫩草影院新地址| 久久久久免费精品人妻一区二区| 国产黄a三级三级三级人| 十八禁国产超污无遮挡网站| 一区福利在线观看| 婷婷丁香在线五月| 日韩欧美精品v在线| 在线看三级毛片| 日韩精品青青久久久久久| 午夜免费激情av| 亚洲精品一卡2卡三卡4卡5卡| 嫩草影院新地址| 欧美日韩国产亚洲二区| 亚洲狠狠婷婷综合久久图片| 国产av麻豆久久久久久久| 亚洲自偷自拍三级| 国产aⅴ精品一区二区三区波| 亚洲美女视频黄频| 午夜福利成人在线免费观看| 久久人人精品亚洲av| 很黄的视频免费| 在线观看av片永久免费下载| 日本欧美国产在线视频| 国产亚洲精品久久久久久毛片| 色播亚洲综合网| 黄色配什么色好看| 91在线精品国自产拍蜜月| 欧美激情国产日韩精品一区| 舔av片在线| 日韩在线高清观看一区二区三区 | 欧美黑人欧美精品刺激| 亚洲不卡免费看| 精品久久久久久,| 桃红色精品国产亚洲av| 欧美日韩瑟瑟在线播放| 欧美一区二区亚洲| 久久久久免费精品人妻一区二区| 91久久精品国产一区二区三区| 国产激情偷乱视频一区二区| 精品久久久久久久久av| 成人综合一区亚洲| 天堂√8在线中文| 免费人成在线观看视频色| 精品久久国产蜜桃| 国产在线男女| 亚洲最大成人av| 亚洲国产日韩欧美精品在线观看| 嫩草影院精品99| av在线亚洲专区| 国产伦人伦偷精品视频| 少妇的逼水好多| 亚洲最大成人av| 国产成人一区二区在线| 嫩草影院新地址| 亚洲精品一卡2卡三卡4卡5卡| 最近最新免费中文字幕在线| 欧美日韩综合久久久久久 | 久久草成人影院| 一a级毛片在线观看| 亚洲av不卡在线观看| 精品国产三级普通话版| 欧美国产日韩亚洲一区| 久久久久久伊人网av| 精品久久久久久久久久久久久| 一进一出好大好爽视频| 国产色爽女视频免费观看| 亚洲国产欧洲综合997久久,| 欧美最黄视频在线播放免费|