亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種音視頻剪輯方法及裝置與流程

文檔序號(hào):12136436閱讀:243來(lái)源:國(guó)知局
一種音視頻剪輯方法及裝置與流程

本發(fā)明涉及音視頻處理技術(shù),尤其涉及一種音視頻剪輯方法及裝置。



背景技術(shù):

音視頻處理中常見的一種處理方式為將多個(gè)視頻片段拼接生成新視頻,在視頻片段之間增加濾鏡效果,如淡入淡出效果,提高用戶的觀看體驗(yàn)。

傳統(tǒng)的視頻剪輯添加濾鏡效果時(shí),一般采用ffmpeg命令,但是采用該命令通常需要對(duì)視頻源全部進(jìn)行二次編碼,使之轉(zhuǎn)碼成統(tǒng)一的編碼格式再加濾鏡效果進(jìn)行拼接后生成新視頻。

而在設(shè)備CPU(central processing unit,中央處理器)資源受限的情況下,這種對(duì)整段視頻進(jìn)行二次編碼的做法會(huì)消耗大量時(shí)間,導(dǎo)致很差的用戶體檢。



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

有鑒于此,本發(fā)明實(shí)施例希望提供一種音視頻剪輯方法,至少解決了現(xiàn)有技術(shù)存在的問題。

本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:

一種音視頻剪輯方法,包括:

獲取待剪輯拼接的兩個(gè)音視頻片段,所述兩個(gè)音視頻片段的編碼格式相同;

在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的圖像群組GOP組,所述GOP組包含至少一個(gè)GOP;

分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

一種音視頻剪輯裝置,包括:

獲取單元,用于獲取待剪輯拼接的兩個(gè)音視頻片段,所述兩個(gè)音視頻片段的編碼格式相同;

分析單元,用于在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的圖像群組GOP組,所述GOP組包含至少一個(gè)GOP;

處理單元,用于分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

拼接單元,用于將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

與現(xiàn)有技術(shù)相比,本申請(qǐng)的有益效果為:

在本申請(qǐng)中,在對(duì)音視頻剪輯添加濾鏡處理的過程中,僅需要對(duì)待剪輯連接的每個(gè)音視頻片段中處于濾鏡處理范圍內(nèi)的幾個(gè)GOP中對(duì)應(yīng)的圖像幀做過渡效果,相應(yīng)的,只需要做過渡效果的圖像幀所在GOP做一次解編碼,無(wú)需對(duì)整段視頻進(jìn)行二次編碼,設(shè)備CPU的只需對(duì)較少的視頻進(jìn)行二次編碼,降低CPU負(fù)載和生成視頻的時(shí)間。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例1的流程圖;

圖2為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例2的流程圖;

圖3為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例2中游戲設(shè)置頁(yè)面示意圖;

圖4為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例2中開始游戲頁(yè)面示意圖;

圖5為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例2中游戲結(jié)束頁(yè)面的一示意圖;

圖6為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例2中游戲結(jié)束頁(yè)面的另一示意圖;

圖7為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例3的流程圖;

圖8為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例4的流程圖;

圖9為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例4中視頻流剪輯示意圖;

圖10為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例5的流程圖;

圖11為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例6的流程圖;

圖12為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例6中音視頻片段的一種GOP組示意圖;

圖13為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例6中音視頻片段的另一種GOP組示意圖;

圖14為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例7的流程圖;

圖15為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例7中音視頻片段的GOP組示意圖;

圖16為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例8的流程圖;

圖17為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例9的流程圖;

圖18為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例10的流程圖;

圖19為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯裝置實(shí)施例1的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

對(duì)本申請(qǐng)中涉及的專業(yè)名稱進(jìn)行解釋:

視頻剪輯:對(duì)視頻源進(jìn)行非線性編輯的軟件,屬多媒體制作軟件范疇。軟件通過對(duì)加入的圖片、背景音樂、特效、場(chǎng)景等素材與視頻進(jìn)行重混合,對(duì)視頻源進(jìn)行切割、合并,通過二次編碼,生成具有不同表現(xiàn)力的新視頻。

剪輯過渡:在視頻剪輯時(shí),對(duì)2個(gè)視頻片段之間增加例如淡出淡入的濾鏡效果,使2個(gè)視頻片段的銜接不至過于突兀。

GOP(Group of Pictures,圖像群組),一個(gè)GOP就是一組連續(xù)的圖像,表示I-Frame(幀)與I-Frame之間的圖像排列。

I幀(intra picture,幀內(nèi)編碼幀),I幀通常是每個(gè)GOP的第一個(gè)幀,也稱關(guān)鍵幀,經(jīng)過適度地壓縮,作為隨機(jī)訪問的參考點(diǎn),可以當(dāng)成圖象。I幀可以看成是一個(gè)圖像經(jīng)過壓縮后的產(chǎn)物。

B幀(bi-directional interpolated prediction frame,雙向預(yù)測(cè)內(nèi)插編碼幀),既考慮與源圖像序列前面已編碼幀,也顧及源圖像序列后面已編碼幀之間的時(shí)間冗余信息來(lái)壓縮傳輸數(shù)據(jù)量的編碼圖像,也叫雙向預(yù)測(cè)幀。

如圖1所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例1的流程圖,該方法可以應(yīng)用于各種電子設(shè)備中,該電子設(shè)備可以采用臺(tái)式機(jī)、智能電視、移動(dòng)終端(手機(jī)、筆記本、平板電腦等)、計(jì)算機(jī)等。該方法可以包括以下步驟:

步驟S101:獲取待剪輯拼接的兩個(gè)音視頻片段;

其中,所述兩個(gè)音視頻片段的編碼格式相同。

需要說明的是,由于本申請(qǐng)中涉及的音視頻剪輯方法中,只對(duì)該音視頻片段中的一部分GOP進(jìn)行二次編碼以及濾鏡處理,不對(duì)其他部分進(jìn)行二次編碼,為保證兩個(gè)音視頻片段能夠采用相同的編碼方式進(jìn)行解碼編碼,則需要該兩個(gè)待剪輯拼接的音視頻片段具有相同的編碼格式。

這里,這兩個(gè)音視頻片段可以是從一個(gè)視頻流中依次獲取得到,也可以為從不同的視頻流中分別獲取得到。

需要說明的是,本實(shí)施例中僅是針對(duì)兩個(gè)需要相鄰拼接的音視頻片段進(jìn)行的說明,具體實(shí)施總,可以為多個(gè)音視頻片段依次進(jìn)行拼接。

步驟S102:在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的GOP組;

其中,所述GOP組包含至少一個(gè)GOP。

需要說明的是,音視頻片段是由若干個(gè)GOP依次排列組成的,本方案中對(duì)音視頻片段進(jìn)行二次編碼過程中采用的最小劃分單位是GOP。

本步驟中,針對(duì)每一個(gè)音視頻片段確定對(duì)需要進(jìn)行濾鏡處理的GOP組。

由于本申請(qǐng)中,必然需要對(duì)進(jìn)行拼接的音視頻片段進(jìn)行濾鏡處理,則每個(gè)音視頻片段均需要進(jìn)行濾鏡處理,相應(yīng)的,每個(gè)音視頻片段中必然有至少一個(gè)GOP需要進(jìn)行濾鏡處理。

步驟S103:分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

本實(shí)施例中,在確定了待進(jìn)行濾鏡處理的GOP組后,只需對(duì)該音視頻片段中的該GOP組進(jìn)行相應(yīng)的解碼、濾鏡處理以及編碼,實(shí)現(xiàn)對(duì)該音視頻片段相應(yīng)的部分進(jìn)行二次編碼以及濾鏡處理的過程。

在本步驟中,當(dāng)該音視頻片段在拼接時(shí)位于較前位置時(shí),則對(duì)該音視頻片段的末尾位置進(jìn)行濾鏡處理;當(dāng)該音視頻片段在拼接時(shí)位于較后位置時(shí),則對(duì)該音視頻片段的開始位置進(jìn)行濾鏡處理。

步驟S104:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

具體的,按照預(yù)先設(shè)定的先后順序,將該完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,使其處于同一時(shí)間軸中,使得在該時(shí)間軸中,兩個(gè)音視頻片段連續(xù)。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,包括:獲取待剪輯拼接的兩個(gè)音視頻片段,所述兩個(gè)音視頻片段的編碼格式相同;在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的圖像群組GOP組,所述GOP組包含至少一個(gè)GOP;分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。在該方法中,在對(duì)音視頻剪輯添加濾鏡處理的過程中,僅需要對(duì)待剪輯連接的每個(gè)音視頻片段中處于濾鏡處理范圍內(nèi)的幾個(gè)圖像群組GOP中對(duì)應(yīng)的圖像幀做過渡效果,相應(yīng)的,只需要做過渡效果的圖像幀所在GOP做一次解編碼,無(wú)需對(duì)整段視頻進(jìn)行二次編碼,設(shè)備CPU的只需對(duì)較少的視頻進(jìn)行二次編碼,降低CPU負(fù)載和生成視頻的時(shí)間。

其中,該兩個(gè)音視頻片段屬于同一視頻流,能夠從同一視頻流中依次獲取得到。

如圖2所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例2的流程圖,該方法可以包括以下步驟:

步驟S201:依據(jù)接收的與所述視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置;

其中,該剪輯時(shí)戳可以為電子設(shè)備的系統(tǒng)中自動(dòng)生成,也可為用戶通過輸入裝置輸入該電子設(shè)備中得到。

具體實(shí)施中,在接收到該剪輯時(shí)戳后,從該視頻流中選擇相應(yīng)的剪切位置。

具體的,該剪輯時(shí)戳包含兩個(gè)音視頻片段的起止點(diǎn)分別對(duì)應(yīng)的時(shí)戳,則當(dāng)從該視頻流中剪輯音視頻片段,至少需要四個(gè)時(shí)戳,即剪輯兩個(gè)音視頻片段。

在本實(shí)施例中,由于對(duì)音視頻片段進(jìn)行二次編碼過程中采用的最小劃分單位是GOP,則相應(yīng)的,從視頻流中剪切音視頻片段時(shí),也是以該GOP為單位進(jìn)行確定剪切位置以實(shí)現(xiàn)剪切的過程。

需要說明的是,由于該剪輯時(shí)戳具體可以對(duì)應(yīng)該視頻流中的具體某個(gè)時(shí)間點(diǎn),該時(shí)間點(diǎn)可以對(duì)應(yīng)一幀圖像,而GOP中包含有多幀圖像,則該剪輯時(shí)戳可以對(duì)應(yīng)的為某一GOP的起始一幀(即I幀),也可以對(duì)應(yīng)該GOP的其他幀。

步驟S202:以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段;

在確定了剪切位置后,從在視頻流中基于該剪切位置進(jìn)行剪切,相應(yīng)的獲取得到該兩個(gè)音視頻片段。

需要說明的是,具體實(shí)施中,可以為依據(jù)剪輯時(shí)戳在視頻流的時(shí)間軸的先后順序,依次從視頻流中進(jìn)行剪切,并在剪切后,直接對(duì)該剪切位置處是否屬于待進(jìn)行濾鏡處理的GOP組進(jìn)行判斷,執(zhí)行步驟的步驟S203-204,然后,對(duì)視頻流進(jìn)行下一剪切位置的剪切,循環(huán)執(zhí)行步驟S203-204。

如下圖3-6所示的為,本實(shí)施例的具體使用場(chǎng)景示意圖,以游戲《王者榮耀》為例進(jìn)行說明,該場(chǎng)景中,用于《王者榮耀》的游戲錄制功能,并將錄制的視頻用于生成王者時(shí)刻視頻。

其中,圖3所示的為游戲設(shè)置頁(yè)面示意圖,在游戲的錄像設(shè)置頁(yè)面301中打開王者時(shí)刻開關(guān)302,該圖3中,王者時(shí)刻開關(guān)302處于“開”的狀態(tài)時(shí),在游戲開始后,開始對(duì)該《王者榮耀》的游戲過程進(jìn)行錄制。

其中,圖4所示的為開始游戲頁(yè)面示意圖,用戶可以通過開始游戲頁(yè)面401從中選擇“對(duì)戰(zhàn)模式”、“冒險(xiǎn)模式”和“排位賽”等對(duì)局模式,如圖4中所示,選中的“排位賽”402對(duì)局模式,開始游戲。

其中,圖5所示的為游戲結(jié)束頁(yè)面的一示意圖,該游戲結(jié)束頁(yè)面501中生成對(duì)話框502,該對(duì)話框中顯示“是否生成王者時(shí)刻視頻?”以及相應(yīng)的選項(xiàng)“放棄”和“生成”,用戶通過選擇“生成”選項(xiàng),確定生成王者時(shí)刻,以將用戶在游戲過程中的擊殺片段進(jìn)行合并剪輯成一個(gè)新視頻,并在片段的交接處加入淡入淡出濾鏡效果。

其中,圖6所示的為游戲結(jié)束頁(yè)面的另一示意圖,該游戲結(jié)束頁(yè)面601中生成提示框602,該提示框中顯示選項(xiàng)“分享我的精彩視頻”以及右上角關(guān)閉提示框的“×”,還有本次視頻的具體長(zhǎng)度為01:06、具體內(nèi)容為“【王者榮耀】王者峽谷MVP后羿雙…”,用戶通過點(diǎn)擊該提示框中的“分享我的精彩視頻”實(shí)現(xiàn)分享過程。

步驟S203:在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的GOP組;

步驟S204:分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

步驟S205:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S203-205與實(shí)施例1中的步驟S102-104一致,本實(shí)施例中不再贅述。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,該兩個(gè)音視頻片段屬于同一視頻流,所述獲取待剪輯拼接的兩個(gè)音視頻片段,包括:依據(jù)接收的與所述視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置;以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段。采用該方法,通過基于以GOP為單位結(jié)合接收的剪輯時(shí)戳,從視頻流中剪切與該剪輯時(shí)戳匹配的位置,保證了從視頻流中剪切的音視頻片段的開始和結(jié)束位置均是完整的GOP。

其中,該兩個(gè)音視頻片段屬于不同視頻流,分別從該不同視頻流中獲取得到。

如圖7所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例3的流程圖,該方法可以包括以下步驟:

步驟S701:依據(jù)接收的與第一視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從第一視頻流中選擇與第一視頻流對(duì)應(yīng)的剪輯時(shí)戳匹配的位置作為剪切位置,從所述第一視頻流中獲取第一音視頻片段;

其中,該剪輯時(shí)戳可以為電子設(shè)備的系統(tǒng)中自動(dòng)生成,也可為用戶通過輸入裝置輸入該電子設(shè)備中得到。

具體實(shí)施中,在接收到該剪輯時(shí)戳后,分別從兩個(gè)視頻流中選擇相應(yīng)的剪切位置。

具體的,該剪輯時(shí)戳包含其待剪切的第一音視頻片段的起止點(diǎn)分別對(duì)應(yīng)的時(shí)戳,則當(dāng)從該第一視頻流中剪輯音視頻片段,至少需要兩個(gè)時(shí)戳,即該第一音視頻片段的開始時(shí)戳和結(jié)束時(shí)戳。

步驟S702:依據(jù)接收的與第二視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從第二視頻流中選擇與第二視頻流對(duì)應(yīng)的剪輯時(shí)戳匹配的位置作為剪切位置,從所述第二視頻流中獲取第二音視頻片段;

相應(yīng)的,該剪輯時(shí)戳可以為電子設(shè)備的系統(tǒng)中自動(dòng)生成,也可為用戶通過輸入裝置輸入該電子設(shè)備中得到。

具體的,該剪輯時(shí)戳包含其待剪切的第二音視頻片段的起止點(diǎn)分別對(duì)應(yīng)的時(shí)戳,則當(dāng)從該第二視頻流中剪輯音視頻片段,至少需要兩個(gè)時(shí)戳,即該第二音視頻片段的開始時(shí)戳和結(jié)束時(shí)戳。

在本實(shí)施例中,由于對(duì)音視頻片段進(jìn)行二次編碼過程中采用的最小劃分單位是GOP,則相應(yīng)的,從視頻流中剪切音視頻片段時(shí),也是以該GOP為單位進(jìn)行確定剪切位置以實(shí)現(xiàn)剪切的過程。

具體使用場(chǎng)景中,該第一視頻流可以為某一局對(duì)戰(zhàn)中錄制的視頻,第二視頻流可以為另一局對(duì)戰(zhàn)中錄制的視頻。

步驟S703:在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的GOP組;

步驟S704:分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

步驟S705:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S703-705與實(shí)施例1中的步驟S102-104一致,本實(shí)施例中不再贅述。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,該兩個(gè)音視頻片段屬于不同視頻流,則獲取待剪輯拼接的兩個(gè)音視頻片段,包括:依據(jù)接收的與第一視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從第一視頻流中選擇與第一視頻流對(duì)應(yīng)的剪輯時(shí)戳匹配的位置作為剪切位置,從所述第一視頻流中獲取第一音視頻片段;依據(jù)接收的與第二視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從第二視頻流中選擇與第二視頻流對(duì)應(yīng)的剪輯時(shí)戳匹配的位置作為剪切位置,從所述第二視頻流中獲取第二音視頻片段。采用該方法,通過基于以GOP為單位結(jié)合接收的剪輯時(shí)戳,分別從兩個(gè)視頻流中剪切與該剪輯時(shí)戳匹配的位置,保證了從不同的視頻流中剪切的兩個(gè)音視頻片段的開始和結(jié)束位置均是完整的GOP。

如圖8所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例4的流程圖,該方法可以包括以下步驟:

步驟S801:依次讀取所述視頻流中的圖像幀,在所述視頻流中選擇與所述剪輯時(shí)戳中的起始時(shí)戳相應(yīng)的第一圖像幀,在所述視頻流中選擇與所述剪輯時(shí)戳中的結(jié)束時(shí)戳相應(yīng)的第二圖像幀;

具體的,視頻流中包含一幀一幀連續(xù)的圖像幀,依次對(duì)該圖像幀進(jìn)行讀取,而每一圖像幀有其對(duì)應(yīng)的時(shí)間戳。

相應(yīng)的,依據(jù)該剪輯時(shí)戳中的起始時(shí)戳,在該視頻流中確定與該起始時(shí)戳對(duì)應(yīng)的第一圖像幀,該第一圖像幀為剪切的音視頻片段起始位置對(duì)應(yīng)的圖像幀;

相應(yīng)的,依據(jù)該剪輯時(shí)戳中的結(jié)束時(shí)戳,在該視頻流中確定與該結(jié)束時(shí)戳對(duì)應(yīng)的第二圖像幀,該第二圖像幀為剪切的音視頻片段結(jié)束位置對(duì)應(yīng)的圖像幀。

步驟S802:將所述第一圖像幀所屬的GOP作為所述音視頻片段剪輯對(duì)應(yīng)的起始GOP、將所述第二圖像幀所屬的GOP作為所述音視頻片段剪輯對(duì)應(yīng)的結(jié)束GOP;

需要說明的是,GOP是由一幀I幀、多幀P幀(Predicted Frame,前向預(yù)測(cè)幀)以及B幀組成,由于I幀中包含的為一幀圖像的全部信息,而P幀則是對(duì)于前一幀圖像的變量,則對(duì)GOP進(jìn)行解碼時(shí),必須為從GOP的第一幀I幀開始進(jìn)行解碼。

因此,將該第一圖像幀所屬的GOP為剪輯開始的起始GOP,將該第二圖像幀所屬的GOP作為剪輯結(jié)束的結(jié)束GOP。

如圖9所示的,是視頻流剪輯示意圖,圖中從視頻流901中剪切兩個(gè)音視頻片段902和903,其中,第一音視頻片段902的長(zhǎng)度為T1,其對(duì)應(yīng)的剪輯時(shí)戳為t0和t1,第二音視頻片段903的長(zhǎng)度為T2,其對(duì)應(yīng)的剪輯時(shí)戳為t2和t3。其中,該剪輯時(shí)戳t0對(duì)應(yīng)的為I幀,則該I幀對(duì)應(yīng)的GOP作為該第一音視頻片段的起始GOP,該剪輯時(shí)戳t1對(duì)應(yīng)的為P幀,則該P(yáng)幀對(duì)應(yīng)的GOP作為該第一音視頻片段的結(jié)束GOP;其中,該剪輯時(shí)戳t2對(duì)應(yīng)的為P幀,則該P(yáng)幀對(duì)應(yīng)的GOP作為該第二音視頻片段的起始GOP,該剪輯時(shí)戳t3對(duì)應(yīng)的為P幀,則該P(yáng)幀對(duì)應(yīng)的GOP作為該第二音視頻片段的結(jié)束GOP,以使得最終實(shí)現(xiàn)剪輯的時(shí)戳是與GOP對(duì)齊的。

需要說明的是,具體實(shí)施中,該剪輯時(shí)戳對(duì)應(yīng)的GOP中I幀和P幀方式并不限定于此,具體實(shí)施中,還可以為其他組合方式,本申請(qǐng)中不做限制。

步驟S803:以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段;

步驟S804:在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的圖像群組GOP組;

步驟S805:分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

步驟S806:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S803-806與實(shí)施例2中的步驟S202-205一致,本實(shí)施例中不再贅述。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,該依據(jù)接收的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置,包括:依次讀取所述視頻流中的圖像幀,在所述視頻流中選擇與所述剪輯時(shí)戳中的起始時(shí)戳相應(yīng)的第一圖像幀,在所述視頻流中選擇與所述剪輯時(shí)戳中的結(jié)束時(shí)戳相應(yīng)的第二圖像幀;將所述第一圖像幀所屬的GOP作為所述音視頻片段剪輯對(duì)應(yīng)的起始GOP、將所述第二圖像幀所屬的GOP作為所述音視頻片段剪輯對(duì)應(yīng)的結(jié)束GOP。采用該方法,通過選擇剪輯時(shí)戳對(duì)應(yīng)的圖像幀所屬的GOP,并將該GOP作為剪輯對(duì)應(yīng)的起GOP始或者結(jié)束GOP,保證了音視頻片段的開始和結(jié)束均將該剪輯時(shí)戳包含在內(nèi),且音視頻片段的開始和結(jié)束位置均是完整的GOP。

如圖10所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例5的流程圖,該方法可以包括以下步驟:

步驟S1001:依據(jù)接收的與所述視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置;

步驟S1002:以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段;

其中,步驟S1001-1002與實(shí)施例2中的步驟S201-202一致,本實(shí)施例中不再贅述。

步驟S1003:依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng)以及一個(gè)GOP時(shí)長(zhǎng),分析得到每一所述音視頻片段中不小于所述濾鏡時(shí)長(zhǎng)所需GOP的個(gè)數(shù);

其中,該濾鏡時(shí)長(zhǎng)一般為剪輯用戶自行設(shè)定,如2S、5S等,具體數(shù)值可以根據(jù)實(shí)際情況進(jìn)行設(shè)置。

其中,該GOP時(shí)長(zhǎng)預(yù)先可知,則將該濾鏡時(shí)長(zhǎng)與一個(gè)該GOP的時(shí)長(zhǎng)進(jìn)行比對(duì),得出該濾鏡時(shí)長(zhǎng)所需的GOP個(gè)數(shù)。

具體的,GOP個(gè)數(shù)=濾鏡時(shí)長(zhǎng)/一個(gè)GOP時(shí)長(zhǎng)。

需要說明的是,當(dāng)計(jì)算得到的GOP個(gè)數(shù)為非整數(shù)時(shí),進(jìn)一位取整數(shù)值。

需要說明的是,本實(shí)施例中涉及的濾鏡時(shí)長(zhǎng),是指該一個(gè)音視頻片段中對(duì)應(yīng)的濾鏡時(shí)長(zhǎng),例如,該音視頻片段中涉及的淡入的時(shí)長(zhǎng)或者淡出的時(shí)長(zhǎng)。

具體實(shí)施中,該濾鏡時(shí)長(zhǎng)為片段交接處的整體淡入淡出時(shí)長(zhǎng)時(shí),則該GOP個(gè)數(shù)與濾鏡時(shí)長(zhǎng)的一半對(duì)應(yīng),即其對(duì)應(yīng)的淡入/淡出所屬的音視頻片段中對(duì)應(yīng)的濾鏡時(shí)長(zhǎng)。

例如,當(dāng)濾鏡時(shí)長(zhǎng)為5S,一個(gè)GOP時(shí)長(zhǎng)為3秒,則需要的GOP個(gè)數(shù)至少為2個(gè);當(dāng)濾鏡時(shí)長(zhǎng)為2S,一個(gè)GOP時(shí)長(zhǎng)為3秒,則需要的GOP個(gè)數(shù)至少為1個(gè)。

例如,視頻的GOP時(shí)長(zhǎng)為3s,幀率為15FPS,即一個(gè)GOP包含45幀圖像,淡出淡入過渡時(shí)長(zhǎng)為2s(即淡出1秒,淡入1秒),添加過渡效果就是對(duì)在前音視頻片段解碼后的最后15幀做淡出濾鏡,即最后一個(gè)GOP進(jìn)行解碼和編碼處理,,對(duì)在后音視頻片段解碼后的開頭15幀做淡入濾鏡,即對(duì)第一個(gè)GOP進(jìn)行解碼和編碼處理。

具體實(shí)施中,為降低對(duì)音視頻片段解碼、編碼的數(shù)據(jù)處理量,一般采用濾鏡時(shí)長(zhǎng)所需GOP的個(gè)數(shù)的最小值。

步驟S1004:在每一所述音視頻片段的交接處,選擇所述個(gè)數(shù)的GOP組成GOP組;

其中,在音視頻片段進(jìn)行拼接對(duì)應(yīng)的交接處,確定相應(yīng)的進(jìn)行拼接所需的解碼、編碼以及濾鏡處理對(duì)應(yīng)的GOP組。

具體的,該GOP組中包含有上述步驟S1003中確定的個(gè)數(shù)的GOP。

需要說明的是,該GOP組中的GOP按照視頻流的時(shí)間軸連續(xù)排列。

步驟S1005:分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

步驟S1006:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S1005-1006與實(shí)施例2中的步驟S204-205一致,本實(shí)施例中不再贅述。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,該在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的圖像群組GOP組,包括:依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng)以及一個(gè)GOP時(shí)長(zhǎng),分析得到每一所述音視頻片段中不小于所述濾鏡時(shí)長(zhǎng)所需GOP的個(gè)數(shù);在每一所述音視頻片段的交接處,選擇所述個(gè)數(shù)的GOP組成GOP組。采用該方法,依據(jù)預(yù)設(shè)濾鏡時(shí)長(zhǎng)以及一個(gè)GOP的時(shí)長(zhǎng),確定該濾鏡所需的GOP個(gè)數(shù),并在音視頻片段的交接處選擇相應(yīng)個(gè)數(shù)的GOP組成的GOP組,以使得在后續(xù)僅針對(duì)該GOP組進(jìn)行編碼解碼以及相應(yīng)的濾鏡處理,降低CPU負(fù)載和生成視頻的時(shí)間。

其中,該待拼接的音視頻片段在時(shí)間軸中的排序在前時(shí),在對(duì)該音視頻片段中末尾處的相應(yīng)圖像幀進(jìn)行濾鏡處理。

如圖11所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例6的流程圖,該方法可以包括以下步驟:

步驟S1101:依據(jù)接收的與所述視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置;

步驟S1102:以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段;

步驟S1103:依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng)以及一個(gè)GOP時(shí)長(zhǎng),分析得到每一所述音視頻片段中不小于所述濾鏡時(shí)長(zhǎng)所需GOP的個(gè)數(shù);

其中,步驟S1101-1103與實(shí)施例5中的步驟S1001-1003一致,本實(shí)施例中不再贅述。

步驟S1104:按照所述視頻流的時(shí)間軸順序,依次讀取所述音視頻片段的圖像幀;

步驟S1105:判斷當(dāng)前幀的時(shí)戳是否大于所述音視頻片段的結(jié)束時(shí)戳與所述個(gè)數(shù)的GOP時(shí)間總長(zhǎng)度之差,得到第一判斷結(jié)果;

步驟S1106:判斷所述當(dāng)前幀是否為其所屬的GOP的關(guān)鍵幀,得到第二判斷結(jié)果;

步驟S1107:基于所述第一判斷結(jié)果表征當(dāng)前幀的時(shí)戳大于所述音視頻片段的結(jié)束時(shí)戳與所述個(gè)數(shù)的GOP時(shí)間總長(zhǎng)度之差,且所述第二判斷結(jié)果表征當(dāng)前幀為關(guān)鍵幀,則確定所述當(dāng)前幀所屬的GOP為所述交接處的起始GOP;

具體的,對(duì)該音視頻片段中的圖像幀依次進(jìn)行讀取,每個(gè)圖像幀對(duì)應(yīng)一個(gè)時(shí)戳,當(dāng)讀取到的當(dāng)前幀的時(shí)戳與該音視頻片段的結(jié)束時(shí)戳之間的差剛好大于該GOP組的總長(zhǎng)度時(shí),并且該當(dāng)前幀為其所屬的GOP的關(guān)鍵幀,即I幀時(shí),則可以確定當(dāng)前幀開始的GOP為該音視頻片段的GOP組。

具體實(shí)施中,為保證為提高剪輯的精度,還可以采用當(dāng)前幀的時(shí)間戳>GOP組的時(shí)間長(zhǎng)度-1確定相應(yīng)的起始GOP。

需要說明的是,具體實(shí)施中,可以在剪切視頻流得到音視頻片段過程中,直接對(duì)其剪切點(diǎn)對(duì)應(yīng)的性質(zhì)進(jìn)行分析,如其剪切點(diǎn)也是拼接的交接處時(shí),則直接對(duì)其進(jìn)行濾鏡處理對(duì)應(yīng)的GOP組進(jìn)行分析,以減少因?yàn)榧羟邢乱粢曨l片段后,再重復(fù)讀取圖像幀導(dǎo)致的時(shí)間浪費(fèi)。

步驟S1108:在所述音視頻片段中從所述起始GOP開始獲取所述個(gè)數(shù)的GOP,得到所述GOP組;

其中,確定了GOP組的起始GOP后,從該起始GOP開始獲取該個(gè)數(shù)的GOP,即到達(dá)該音視頻片段的結(jié)束位置的GOP,該獲取的幾個(gè)GOP組成了GOP組。

如圖12所示的為音視頻片段的一種GOP組示意圖,其中,該音視頻片段為在前的音視頻片段,則需要對(duì)其靠近結(jié)束位置的GOP組1201進(jìn)行解碼編碼處理,在該圖12中,該GOP組為一個(gè)GOP。

如圖13所示的為音視頻片段的另一種GOP組示意圖,其中,該音視頻片段為在前的音視頻片段,則需要對(duì)其靠近結(jié)束位置的GOP組1301進(jìn)行解碼編碼處理,在該圖13中,該GOP組為2個(gè)GOP。

步驟S1109:分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

步驟S1110:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S1109-1110與實(shí)施例5中的步驟1005-1006一致,本實(shí)施例中不再贅述。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,當(dāng)所述音視頻片段在時(shí)間軸的排序在前時(shí),則在所述音視頻片段的交接處,選擇所述個(gè)數(shù)的GOP組成GOP組,包括:按照所述視頻流的時(shí)間軸順序,依次讀取所述音視頻片段的圖像幀,判斷當(dāng)前幀的時(shí)戳是否大于所述音視頻片段的結(jié)束時(shí)戳與所述個(gè)數(shù)的GOP時(shí)間總長(zhǎng)度之差,得到第一判斷結(jié)果;判斷所述當(dāng)前幀是否為其所屬的GOP的關(guān)鍵幀,得到第二判斷結(jié)果;基于所述第一判斷結(jié)果表征當(dāng)前幀的時(shí)戳大于所述音視頻片段的結(jié)束時(shí)戳與所述個(gè)數(shù)的GOP時(shí)間總長(zhǎng)度之差,且所述第二判斷結(jié)果表征當(dāng)前幀為關(guān)鍵幀,則確定所述當(dāng)前幀所屬的GOP為所述交接處的起始GOP;在所述音視頻片段中從所述起始GOP開始獲取所述個(gè)數(shù)的GOP,得到所述GOP組。采用該方法,對(duì)排序在前的音視頻片段的末尾位置的GOP組進(jìn)行分析確定,得到其進(jìn)行解碼編碼以及濾鏡處理對(duì)應(yīng)的GOP,準(zhǔn)確定位GOP組,降低CPU負(fù)載和生成視頻的時(shí)間。

其中,該待拼接的音視頻片段在時(shí)間軸中的排序在后時(shí),在對(duì)該音視頻片段中開始處的相應(yīng)圖像幀進(jìn)行濾鏡處理。

如圖14所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例7的流程圖,該方法可以包括以下步驟:

步驟S1401:依據(jù)接收的與所述視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置;

步驟S1402:以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段;

步驟S1403:依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng)以及一個(gè)GOP時(shí)長(zhǎng),分析得到每一所述音視頻片段中不小于所述濾鏡時(shí)長(zhǎng)所需GOP的個(gè)數(shù);

其中,步驟S1001-1002與實(shí)施例5中的步驟S1001-1003一致,本實(shí)施例中不再贅述。

步驟S1404:按照所述視頻流的時(shí)間軸順序,從所述音視頻片段的起始位置開始,選擇所述個(gè)數(shù)的GOP組成GOP組;

需要說明的是,由于前述步驟中,對(duì)視頻流進(jìn)行剪輯得到音視頻片段時(shí),是以GOP為單位進(jìn)行剪切的,則相應(yīng)該音視頻片段的第一幀必然為I幀,即,其起始的為一個(gè)完整的GOP。

具體實(shí)施中,當(dāng)該音視頻片段的排序在后時(shí),則其交接處在該音視頻片段的起始位置,相應(yīng)的,對(duì)該音視頻片段起始位置開始的幾個(gè)GOP組組成的GOP組進(jìn)行獲取。

如圖15所示的為音視頻片段的GOP組示意圖,其中音視頻片段為在后的音視頻片段,則需要對(duì)其開始位置的GOP組1501進(jìn)行解碼編碼處理,在該圖15中,該GOP組為1個(gè)GOP。

需要說明的是,具體實(shí)施中,該GOP組可以為多個(gè)GOP,本實(shí)施例中不做限制。

需要說明的是,具體實(shí)施中,也可以在剪切視頻流得到音視頻片段過程中,直接對(duì)其剪切點(diǎn)對(duì)應(yīng)的性質(zhì)進(jìn)行分析,如其剪切點(diǎn)也是拼接的交接處時(shí),則直接對(duì)其進(jìn)行濾鏡處理對(duì)應(yīng)的GOP組進(jìn)行分析,以減少因?yàn)榧羟邢乱粢曨l片段后,再重復(fù)讀取圖像幀導(dǎo)致的時(shí)間浪費(fèi)。

步驟S1405:分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

步驟S1406:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S1405-1406與實(shí)施例5中的步驟S1005-1006一致,本實(shí)施例中不再贅述。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,所述音視頻片段在時(shí)間軸的排序在后時(shí),則所述在所述音視頻片段的交接處,選擇所述個(gè)數(shù)的GOP組成GOP組,包括:按照所述視頻流的時(shí)間軸順序,從所述音視頻片段的起始位置開始,選擇所述個(gè)數(shù)的GOP組成GOP組。采用該方法,對(duì)排序在后的音視頻片段的開始位置的GOP組進(jìn)行分析確定,得到其進(jìn)行解碼編碼以及濾鏡處理對(duì)應(yīng)的GOP,準(zhǔn)確定位GOP組,降低CPU負(fù)載和生成視頻的時(shí)間。

如圖16所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例8的流程圖,該方法可以包括以下步驟:

步驟S1601:依據(jù)接收的與所述視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置;

步驟S1602:以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段;

步驟S1603:依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng)以及一個(gè)GOP時(shí)長(zhǎng),分析得到每一所述音視頻片段中不小于所述濾鏡時(shí)長(zhǎng)所需GOP的個(gè)數(shù);

步驟S1604:按照所述視頻流的時(shí)間軸順序,依次讀取所述音視頻片段的圖像幀;

步驟S1605:判斷當(dāng)前幀的時(shí)戳是否大于所述音視頻片段的結(jié)束時(shí)戳與所述個(gè)數(shù)的GOP時(shí)間總長(zhǎng)度之差,得到第一判斷結(jié)果;

步驟S1606:判斷所述當(dāng)前幀是否為其所屬的GOP的關(guān)鍵幀,得到第二判斷結(jié)果;

步驟S1607:基于所述第一判斷結(jié)果表征當(dāng)前幀的時(shí)戳大于所述音視頻片段的結(jié)束時(shí)戳與所述個(gè)數(shù)的GOP時(shí)間總長(zhǎng)度之差,且所述第二判斷結(jié)果表征當(dāng)前幀為關(guān)鍵幀,則確定所述當(dāng)前幀所屬的GOP為所述交接處的起始GOP;

步驟S1608:在所述音視頻片段中從所述起始GOP開始獲取所述個(gè)數(shù)的GOP,得到所述GOP組;

其中,步驟S1601-1608與實(shí)施例6中的步驟S1101-1108一致,本實(shí)施例中不再贅述。

步驟S1609:按照所述視頻流的時(shí)間軸順序,依次對(duì)所述音視頻片段的所述GOP組進(jìn)行解碼,得到第一解碼數(shù)據(jù);

具體的,按照該視頻流的時(shí)間軸順序,對(duì)該音視頻片段中的GOP組進(jìn)行解碼,將GOP組中的各個(gè)幀均解碼為具有完整圖像信息的圖像幀信息。

其中,該第一解碼數(shù)據(jù)中該GOP組中所有幀均具有完整圖像信息。

步驟S1610:在依次讀取所述音視頻片段的圖像幀過程中,依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng),判斷得到所述音視頻片段的所述GOP組中的當(dāng)前幀為過渡幀,對(duì)所述第一解碼數(shù)據(jù)中從當(dāng)前幀開始的剩余幀進(jìn)行淡出濾鏡處理;

具體的,依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng),確定該GOP組的某一幀為過渡幀,則從該過渡幀開始至該音視頻片段結(jié)束的一幀均屬于淡出濾鏡處理范圍。

相應(yīng)的,在依次讀取所述音視頻片段的圖像幀過程中,對(duì)該音視頻片段中的GOP組進(jìn)行解碼時(shí),判斷其讀取的每一幀是否為過渡幀,并在判斷得到當(dāng)前讀取的當(dāng)前幀為過渡幀時(shí),開始進(jìn)行淡出濾鏡處理,至該音視頻片段結(jié)束的最后一幀。

步驟S1611:將經(jīng)過淡出濾鏡處理的所述GOP組進(jìn)行編碼,將得到的第一編碼數(shù)據(jù)寫入所述音視頻片段對(duì)應(yīng)的視頻包中;

其中,在對(duì)音視頻片段的GOP組完成淡出濾鏡處理后,對(duì)該GOP組進(jìn)行編碼,使其編碼形式與該音視頻片段中的其他GOP的編碼方式一致,并將編碼得到的第一編碼數(shù)據(jù)寫入該音視頻片段對(duì)應(yīng)的視頻包中,完成對(duì)該音視頻片段的淡出濾鏡處理。

具體的,其中,該步驟S1611中,所述將得到的第一編碼數(shù)據(jù)寫入所述音視頻片段對(duì)應(yīng)的視頻包中,具體包括:依據(jù)預(yù)設(shè)的時(shí)戳數(shù)據(jù)對(duì)應(yīng)關(guān)系,確定編碼得到第一編碼數(shù)據(jù)對(duì)應(yīng)的時(shí)戳;按照時(shí)戳順序,將所述第一編碼數(shù)據(jù)寫入所述視頻包中。

需要說明的是,由于在對(duì)音視頻數(shù)據(jù)進(jìn)行解碼和編碼過程中存在緩存的情況,還有一些編碼格式存在B幀,導(dǎo)致輸入幀和輸出幀之間的pts(Presentation Time Stamp,顯示時(shí)間戳)和順序都是不一致,則本申請(qǐng)中相應(yīng)的提供了一種時(shí)戳數(shù)據(jù)對(duì)應(yīng)關(guān)系,相應(yīng)的,基于時(shí)戳,確定輸入幀與輸出幀之間的對(duì)應(yīng)關(guān)系,即輸入幀經(jīng)過處理后,得到輸出幀,基于該時(shí)戳,確定該輸出幀與該輸入幀對(duì)應(yīng),進(jìn)而將該輸出幀寫入該輸入幀在該視頻包中的相應(yīng)位置處,保證每個(gè)數(shù)據(jù)包二次編碼前后數(shù)據(jù)和時(shí)戳保持一致。

具體實(shí)施中,該可以通過介質(zhì)對(duì)的方式進(jìn)行存儲(chǔ),其中,鍵表示時(shí)戳,值表示數(shù)據(jù)。

具體實(shí)施中,由于該剪切以及解碼編碼的過程是在讀取該視頻流的過程中實(shí)現(xiàn)的,則相應(yīng)的,在讀取到需要進(jìn)行剪切的音視頻片段時(shí),執(zhí)行對(duì)該視頻流的剪切,并針對(duì)剪切位置是否為交接處進(jìn)行判斷,進(jìn)而在確定為交接處后,直接對(duì)該交接處的GOP組進(jìn)行判斷,并從該GOP組的起始GOP開始進(jìn)行解碼以及相應(yīng)的進(jìn)行濾鏡處理的圖像幀進(jìn)行濾鏡處理,在完成濾鏡處理后,對(duì)該GOP組相應(yīng)的進(jìn)行編碼,并寫入相應(yīng)的視頻包中,完成對(duì)一個(gè)音視頻片段的處理,并繼續(xù)對(duì)該視頻流進(jìn)行讀取,進(jìn)行后續(xù)的音視頻片段的剪切以及解碼、濾鏡處理和編碼的過程。

步驟S1612:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S1612與實(shí)施例6中的步驟1110一致,本實(shí)施例中不再贅述。

具體實(shí)施中,在完成第一解碼數(shù)據(jù)后,還要依據(jù)所述第一編碼數(shù)據(jù),更新所述視頻包的參數(shù)信息。

其中,該參數(shù)信息可以包括size(視頻數(shù)據(jù)包的大小)信息等。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,該對(duì)音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼,包括:按照所述視頻流的時(shí)間軸順序,依次對(duì)所述音視頻片段的所述GOP組進(jìn)行解碼,得到第一解碼數(shù)據(jù);在依次讀取所述音視頻片段的圖像幀過程中,依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng),判斷得到所述音視頻片段的所述GOP組中的當(dāng)前幀為過渡幀,對(duì)所述第一解碼數(shù)據(jù)中從當(dāng)前幀開始的剩余幀進(jìn)行淡出濾鏡處理;將經(jīng)過淡出濾鏡處理的所述GOP組進(jìn)行編碼,將得到的第一編碼數(shù)據(jù)寫入所述音視頻片段對(duì)應(yīng)的視頻包中。采用該方法,在確定的GOP組進(jìn)行解碼,并選擇過渡幀開始的淡出濾鏡處理,將經(jīng)過淡出濾鏡處理的GOP祖進(jìn)行編碼得到編碼數(shù)據(jù)并寫入音視頻片段對(duì)應(yīng)的視頻包中,完成解碼、濾鏡處理以及編碼過程,且只需要做過渡效果的圖像幀所在GOP組做解編碼,無(wú)需對(duì)整段視頻進(jìn)行二次編碼,設(shè)備CPU的只需對(duì)較少的視頻進(jìn)行二次編碼,降低CPU負(fù)載和生成視頻的時(shí)間。

如圖17所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例9的流程圖,該方法可以包括以下步驟:

步驟S1701:依據(jù)接收的與所述視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置;

步驟S1702:以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段;

步驟S1703:依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng)以及一個(gè)GOP時(shí)長(zhǎng),分析得到每一所述音視頻片段中不小于所述濾鏡時(shí)長(zhǎng)所需GOP的個(gè)數(shù);

步驟S1704:按照所述視頻流的時(shí)間軸順序,從所述音視頻片段的起始位置開始,選擇所述個(gè)數(shù)的GOP組成GOP組;

其中,步驟S1701-1701與實(shí)施例7中的步驟S1401-1404一致,本實(shí)施例中不再贅述。

步驟S1705:按照所述視頻流的時(shí)間軸順序,依次對(duì)所述音視頻片段的所述GOP組進(jìn)行解碼,得到第二解碼數(shù)據(jù);

體的,按照該視頻流的時(shí)間軸順序,對(duì)該音視頻片段中的GOP組進(jìn)行解碼,將GOP組中的各個(gè)幀均解碼為具有完整圖像信息的圖像幀信息。

其中,該第二解碼數(shù)據(jù)中該GOP組中所有幀均具有完整圖像信息。

步驟S1706:在依次讀取所述音視頻片段的圖像幀過程中,從所述音視頻片段第一幀開始至與預(yù)設(shè)的濾鏡時(shí)長(zhǎng)對(duì)應(yīng)時(shí)戳的圖像幀結(jié)束,對(duì)所述第二解碼數(shù)據(jù)進(jìn)行淡入濾鏡處理;

其中,該音視頻片段為淡入濾鏡處理,則從該音視頻片段的第一幀開始進(jìn)行濾鏡處理,并且該濾鏡時(shí)長(zhǎng)對(duì)應(yīng)的時(shí)戳的圖像幀為結(jié)束,完成對(duì)該第二解碼數(shù)據(jù)的淡入濾鏡處理。

步驟S1707:將經(jīng)過淡入濾鏡處理的所述GOP組進(jìn)行編碼,將得到的第二編碼數(shù)據(jù)寫入所述音視頻片段對(duì)應(yīng)的視頻包中;

其中,在對(duì)音視頻片段的GOP組完成淡入濾鏡處理后,對(duì)該GOP組進(jìn)行編碼,使其編碼形式與該音視頻片段中的其他GOP的編碼方式一致,并將編碼得到的第二編碼數(shù)據(jù)寫入該音視頻片段對(duì)應(yīng)的視頻包中,完成對(duì)該音視頻片段的淡入濾鏡處理。

具體的,其中,該步驟S1707中,所述將得到的第二編碼數(shù)據(jù)寫入所述音視頻片段對(duì)應(yīng)的視頻包中,具體的過程可以參考前述實(shí)施例8中的將第一編碼數(shù)據(jù)寫入音視頻片段對(duì)應(yīng)的視頻包的相應(yīng)內(nèi)容。

與實(shí)施例8中類似的,還要根據(jù)該第二編碼數(shù)據(jù)更新視頻包的參數(shù)信息。

步驟S1708:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S1708與實(shí)施例7中的步驟S1406一致,本實(shí)施例中不再贅述。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,所述音視頻片段在時(shí)間軸的排序在后時(shí),則對(duì)音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼,包括:按照所述視頻流的時(shí)間軸順序,依次對(duì)所述音視頻片段的所述GOP組進(jìn)行解碼,得到第二解碼數(shù)據(jù);在依次讀取所述音視頻片段的圖像幀過程中,從所述音視頻片段第一幀開始至與預(yù)設(shè)的濾鏡時(shí)長(zhǎng)對(duì)應(yīng)時(shí)戳的圖像幀結(jié)束,對(duì)所述第二解碼數(shù)據(jù)進(jìn)行淡入濾鏡處理;將經(jīng)過淡入濾鏡處理的所述GOP組進(jìn)行編碼,將得到的第二編碼數(shù)據(jù)寫入所述音視頻片段對(duì)應(yīng)的視頻包中。采用該方法,在確定的GOP組進(jìn)行解碼,并從音視頻片段的第一幀至與預(yù)設(shè)的濾鏡時(shí)長(zhǎng)對(duì)應(yīng)時(shí)戳的圖像幀結(jié)束進(jìn)行淡入濾鏡處理,將經(jīng)過淡入濾鏡處理的GOP祖進(jìn)行編碼得到編碼數(shù)據(jù)并寫入音視頻片段對(duì)應(yīng)的視頻包中,完成解碼、濾鏡處理以及編碼過程,且只需要做過渡效果的圖像幀所在GOP組做解編碼,無(wú)需對(duì)整段視頻進(jìn)行二次編碼,設(shè)備CPU的只需對(duì)較少的視頻進(jìn)行二次編碼,降低CPU負(fù)載和生成視頻的時(shí)間。

如圖18所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯方法實(shí)施例10的流程圖,該方法可以包括以下步驟:

步驟S1801:分析運(yùn)行平臺(tái)的類型;

其中,該運(yùn)行平臺(tái)的類型可以包括:android(安卓)、iOS(蘋果移動(dòng)設(shè)備操作系統(tǒng))以及其他。

具體實(shí)施中,該其他平臺(tái)采用Windows(微軟視窗)系統(tǒng)、Linux等。

本實(shí)施例中,針對(duì)不同的運(yùn)行平臺(tái)設(shè)置不同的硬件編解碼器參數(shù),以實(shí)現(xiàn)針對(duì)不同運(yùn)行平臺(tái)的接口設(shè)置相應(yīng)的參數(shù)。

步驟S1802:根據(jù)平臺(tái)類型配置相應(yīng)的硬件編解碼器參數(shù);

具體的,該硬件編解碼器包括:MediaCodec、ffmpeg、VideoToolBox等。

具體的,該Android采用MediaCodec(次選ffmpeg),該iOS采用CodecEngine,其他類型采用ffmpeg。

需要說明的是,由于硬件編解碼器在android/iOS平臺(tái)存在系統(tǒng)版本和芯片兼容性問題,例如MediaCodec要求系統(tǒng)在android4.1+,VideoToolbox要求系統(tǒng)在iOS 8.0+,必須在硬件編解碼器配置失敗后,重新配置通用編解碼器ffmpeg。

具體的,編解碼器的設(shè)置,充分考慮到跨平臺(tái)的性能以及兼容性,抽象出編解碼器的接口:CodecEngine。考慮到移動(dòng)平臺(tái)的功耗,性能開銷,CodecEngine在Android/iOS平臺(tái)上實(shí)現(xiàn)了各自系統(tǒng)上硬件編解碼接口,window/Linux等平臺(tái)實(shí)現(xiàn)基于ffmpeg+x264的通用編解碼接口。

具體實(shí)施中,該配置硬件編解碼器參數(shù)的具體過程為:解析源媒體文件,保存音視頻流格式信息,根據(jù)音視頻流格式設(shè)置編解碼器,創(chuàng)建輸出文件,并寫入媒體頭信息。

步驟S1803:獲取待剪輯拼接的兩個(gè)音視頻片段;

步驟S1804:在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的圖像群組GOP組;

步驟S1805:分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

步驟S1806:將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

其中,步驟S1803-1806與實(shí)施例1中的步驟S101-104一致,本實(shí)施例中不再贅述。

綜上,本實(shí)施例提供的一種音視頻剪輯方法中,在獲取待剪輯連接的兩個(gè)音視頻片段之前還包括:分析運(yùn)行平臺(tái)的類型;根據(jù)平臺(tái)類型配置相應(yīng)的硬件編解碼器參數(shù)。采用該方法,通過對(duì)平臺(tái)配置相應(yīng)的硬件編解碼器參數(shù),以使得解碼編碼都采用平臺(tái)的硬件編解碼器,最大程度的降低CPU負(fù)載和生成視頻的時(shí)間。

上述本發(fā)明提供的實(shí)施例中詳細(xì)描述了一種音視頻剪輯方法,對(duì)于本發(fā)明的音視頻剪輯方法可采用多種形式的裝置實(shí)現(xiàn),因此本發(fā)明還提供了一種應(yīng)用該音視頻剪輯方法的裝置,下面給出具體的實(shí)施例進(jìn)行詳細(xì)說明。

如圖19所示的為本申請(qǐng)?zhí)峁┑囊环N音視頻剪輯裝置實(shí)施例1的結(jié)構(gòu)示意圖,該電子設(shè)備可以采用臺(tái)式機(jī)、智能電視、移動(dòng)終端(手機(jī)、筆記本、平板電腦等)、計(jì)算機(jī)等。該電子設(shè)備可以包括以下結(jié)構(gòu):獲取單元1901、分析單元1902、處理單元1903和拼接單元1904;

其中,該獲取單元1901,用于獲取待剪輯拼接的兩個(gè)音視頻片段,所述兩個(gè)音視頻片段的編碼格式相同;

其中,該分析單元1902,用于在每一所述音視頻片段中,確定待進(jìn)行濾鏡處理的圖像群組GOP組,所述GOP組包含至少一個(gè)GOP;

其中,該處理單元1903,用于分別對(duì)各所述音視頻片段中確定的待進(jìn)行濾鏡處理的GOP組進(jìn)行解碼、濾鏡處理以及編碼;

其中,該拼接單元1904,用于將完成編碼的兩個(gè)音視頻片段進(jìn)行拼接,以使得所述兩個(gè)音視頻片段在時(shí)間軸中連續(xù)。

優(yōu)選的,所述兩個(gè)音視頻片段屬于同一視頻流,所述獲取單元用于:

依據(jù)接收的與所述視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從所述視頻流中選擇與所述剪輯時(shí)戳匹配的位置;

以所述位置為剪切位置,從所述視頻流中獲取所述兩個(gè)音視頻片段。

優(yōu)選的,所述兩個(gè)音視頻片段屬于不同視頻流,所述獲取單元用于:

依據(jù)接收的與第一視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從第一視頻流中選擇與第一視頻流對(duì)應(yīng)的剪輯時(shí)戳匹配的位置作為剪切位置,從所述第一視頻流中獲取第一音視頻片段;

依據(jù)接收的與第二視頻流對(duì)應(yīng)的剪輯時(shí)戳,以GOP為單位從第二視頻流中選擇與第二視頻流對(duì)應(yīng)的剪輯時(shí)戳匹配的位置作為剪切位置,從所述第二視頻流中獲取第二音視頻片段。

優(yōu)選的,所述獲取單元具體用于:

依次讀取所述視頻流中的圖像幀,在所述視頻流中選擇與所述剪輯時(shí)戳中的起始時(shí)戳相應(yīng)的第一圖像幀,在所述視頻流中選擇與所述剪輯時(shí)戳中的結(jié)束時(shí)戳相應(yīng)的第二圖像幀;

將所述第一圖像幀所屬的GOP作為所述音視頻片段剪輯對(duì)應(yīng)的起始GOP、將所述第二圖像幀所屬的GOP作為所述音視頻片段剪輯對(duì)應(yīng)的結(jié)束GOP。

優(yōu)選的,所述獲取單元具體用于:

依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng)以及一個(gè)GOP時(shí)長(zhǎng),分析得到每一所述音視頻片段中不小于所述濾鏡時(shí)長(zhǎng)所需GOP的個(gè)數(shù);

在每一所述音視頻片段的交接處,選擇所述個(gè)數(shù)的GOP組成GOP組。

優(yōu)選的,所述音視頻片段在時(shí)間軸的排序在前時(shí),所述分析單元用于:

按照所述視頻流的時(shí)間軸順序,依次讀取所述音視頻片段的圖像幀,判斷當(dāng)前幀的時(shí)戳是否大于所述音視頻片段的結(jié)束時(shí)戳與所述個(gè)數(shù)的GOP時(shí)間總長(zhǎng)度之差,得到第一判斷結(jié)果;判斷所述當(dāng)前幀是否為其所屬的GOP的關(guān)鍵幀,得到第二判斷結(jié)果;

基于所述第一判斷結(jié)果表征當(dāng)前幀的時(shí)戳大于所述音視頻片段的結(jié)束時(shí)戳與所述個(gè)數(shù)的GOP時(shí)間總長(zhǎng)度之差,且所述第二判斷結(jié)果表征當(dāng)前幀為關(guān)鍵幀,則確定所述當(dāng)前幀所屬的GOP為所述交接處的起始GOP;

在所述音視頻片段中從所述起始GOP開始獲取所述個(gè)數(shù)的GOP,得到所述GOP組。

優(yōu)選的,所述分析單元具體用于:按照所述視頻流的時(shí)間軸順序,依次對(duì)所述音視頻片段的所述GOP組進(jìn)行解碼,得到第一解碼數(shù)據(jù);

在依次讀取所述音視頻片段的圖像幀過程中,依據(jù)預(yù)設(shè)的濾鏡時(shí)長(zhǎng),判斷得到所述音視頻片段的所述GOP組中的當(dāng)前幀為過渡幀,對(duì)所述第一解碼數(shù)據(jù)中從當(dāng)前幀開始的剩余幀進(jìn)行淡出濾鏡處理;

將經(jīng)過淡出濾鏡處理的所述GOP組進(jìn)行編碼,將得到的第一編碼數(shù)據(jù)寫入所述音視頻片段對(duì)應(yīng)的視頻包中。

優(yōu)選的,還包括:更新單元,用于依據(jù)所述第一編碼數(shù)據(jù),更新所述視頻包的參數(shù)信息。

優(yōu)選的,所述處理單元,用于:

依據(jù)預(yù)設(shè)的時(shí)戳數(shù)據(jù)對(duì)應(yīng)關(guān)系,確定編碼得到第一編碼數(shù)據(jù)對(duì)應(yīng)的時(shí)戳;

按照時(shí)戳順序,將所述第一編碼數(shù)據(jù)寫入所述視頻包中。

優(yōu)選的,所述音視頻片段在時(shí)間軸的排序在后時(shí),所述分析單元用于:

按照所述視頻流的時(shí)間軸順序,從所述音視頻片段的起始位置開始,選擇所述個(gè)數(shù)的GOP組成GOP組。

優(yōu)選的,所述處理單元,用于

按照所述視頻流的時(shí)間軸順序,依次對(duì)所述音視頻片段的所述GOP組進(jìn)行解碼,得到第二解碼數(shù)據(jù);

在依次讀取所述音視頻片段的圖像幀過程中,從所述音視頻片段第一幀開始至與預(yù)設(shè)的濾鏡時(shí)長(zhǎng)對(duì)應(yīng)時(shí)戳的圖像幀結(jié)束,對(duì)所述第二解碼數(shù)據(jù)進(jìn)行淡入濾鏡處理;

將經(jīng)過淡入濾鏡處理的所述GOP組進(jìn)行編碼,將得到的第二編碼數(shù)據(jù)寫入所述音視頻片段對(duì)應(yīng)的視頻包中。

優(yōu)選的,還包括:配置單元,用于:

分析運(yùn)行平臺(tái)的類型;

根據(jù)平臺(tái)類型配置相應(yīng)的硬件編解碼器參數(shù)。

綜上,本實(shí)施例提供的一種音視頻剪輯裝置中,在對(duì)音視頻剪輯添加濾鏡處理的過程中,僅需要對(duì)待剪輯連接的每個(gè)音視頻片段中處于濾鏡處理范圍內(nèi)的幾個(gè)圖像群組GOP中對(duì)應(yīng)的圖像幀做過渡效果,相應(yīng)的,只需要做過渡效果的圖像幀所在GOP做一次解編碼,無(wú)需對(duì)整段視頻進(jìn)行二次編碼,設(shè)備CPU的只需對(duì)較少的視頻進(jìn)行二次編碼,降低CPU負(fù)載和生成視頻的時(shí)間。

需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。

最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。

以上對(duì)本申請(qǐng)所提供的一種音視頻剪輯方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1