] 例如,當(dāng)前處理的圖片是圖片A,該圖片A對應(yīng)的場景單元包括:第一場景單元、第 二場景單元、第三場景單元…,且時間段分別是:第一時間段、第二時間段、第三時間段…。 其中,各場景單元的類型可以相同或不同,例如,可以僅對應(yīng)動畫單元或可以對應(yīng)動畫單元 和MV效果單元等。不同類型的場景單元包括的時間段可以相同或不同,例如,動畫單元包 括的時間段可以與MV效果單元包括的時間段相同或不同,而相同類型的不同場景單元包 括的時間段是不同的,例如,兩個不同的平移動畫單元的時間段是不同的。
[0046] 為了簡化說明,假設(shè)圖片A對應(yīng)的場景單元包括:多個平移動畫單元,每個平移動 畫單元具有不同的時間段,例如,第一平移動畫單元包括的時間段是t〇-tl,第二平移動畫 單元包括的時間段是t2_t3等。假設(shè)當(dāng)前時間用tx表示,如果tx位于t0和tl之間,則由 于第一平移動畫單元的時間段包含當(dāng)前時間,則獲取第一平移動畫單元的參數(shù),根據(jù)第一 平移動畫單元的參數(shù)對圖片A進(jìn)行處理。
[0047] 每個場景單元具有的一種信息是時間段,通過時間段可以如上確定相應(yīng)的場景單 元。另外,場景單元還包括相應(yīng)類型的參數(shù),例如,對于平移動畫單元,還包括平移參數(shù),對 于旋轉(zhuǎn)動畫單元還包括旋轉(zhuǎn)參數(shù)等。每個場景單元的參數(shù)可以在對場景進(jìn)行分割時根據(jù)類 型獲取需要的參數(shù)。
[0048] 在根據(jù)場景單元的參數(shù)對圖片進(jìn)行處理之前,可以先啟動預(yù)設(shè)的用于渲染的線 程,使用該線程對圖片進(jìn)行處理。
[0049] 根據(jù)獲取的時間段包含當(dāng)前時間的場景單元的類型的不同,可以采用不同的方式 對圖片進(jìn)行處理,例如包括如下項(xiàng)中的至少一項(xiàng):
[0050] 當(dāng)所述時間段包含當(dāng)前時間的場景單元包括動畫單元時,根據(jù)動畫單元的參數(shù)計 算當(dāng)前處理的圖片在當(dāng)前時間的動畫計算結(jié)果,以及,根據(jù)動畫計算結(jié)果更新當(dāng)前處理的 圖片的場景層模型矩陣,以便對更新場景層模型矩陣的圖片進(jìn)行渲染;
[0051] 當(dāng)所述時間段包含當(dāng)前時間的場景單元包括MV效果單元時,根據(jù)MV效果單元的 參數(shù)進(jìn)行渲染,以便在當(dāng)前處理的圖片中加入渲染后的MV效果;
[0052] 當(dāng)所述時間段包含當(dāng)前時間的場景單元包括濾鏡效果單元時,根據(jù)濾鏡效果單元 的參數(shù)對當(dāng)前處理的圖片進(jìn)行濾鏡處理,以便對濾鏡處理后的圖片進(jìn)行渲染。
[0053] S13 :對不同時間的處理后的圖片進(jìn)行組合,得到視頻。
[0054] 類似上述對圖片A的處理,可以對進(jìn)行合成的其他圖片進(jìn)行相應(yīng)處理,之后組合 各處理后的圖片得到視頻。
[0055] 例如,進(jìn)行合成的圖片包括圖片A和圖片B,在當(dāng)前時間是Tl時,可以組合第一處 理后的圖片A和第一處理后的圖片B,比如,處理后的圖片可以表明位置信息,MV效果和濾 鏡效果等,則可以在相應(yīng)的位置展示對應(yīng)的具有MV效果和濾鏡效果的圖片,從而得到Tl時 刻的效果,類似的,在當(dāng)前時間是T2時,再次組合第二處理后的圖片A和第二處理后的圖片 B,得到T2時刻的效果,重復(fù)不同時刻的流程,可以得到從開始時刻到結(jié)束時刻的視頻。
[0056] 本實(shí)施例中,通過獲取每張圖片對應(yīng)的場景單元,并選擇相應(yīng)的場景單元的參數(shù) 對圖片進(jìn)行處理,以及組合處理后的圖片,實(shí)現(xiàn)基于場景單元的處理,由于是以場景單元作 為處理單位,可以靈活組合,滿足不同效果需求,并且場景單元還可以在不同效果下使用, 不需要每個效果重新開發(fā),避免重復(fù)開發(fā),從而可以降低開發(fā)成本,以及提高呈現(xiàn)效果。
[0057] 圖2是本發(fā)明另一實(shí)施例提出的圖片合成視頻的處理方法的流程示意圖,該方法 包括:
[0058] S201 :根據(jù)要合成的視頻的預(yù)設(shè)效果確定進(jìn)行合成的每張圖片的場景,以及對每 張圖片的場景進(jìn)行分割,得到至少一個場景單元。
[0059] 其中,效果是指視頻呈現(xiàn)給用戶視覺感受,在將圖片合成視頻時,即使采用相同的 多張圖片,如果用戶選擇不同的效果,則可以得到不同的視頻。
[0060] 可以通過設(shè)置進(jìn)行合成的圖片的場景,從而實(shí)現(xiàn)合成后的視頻具有需要的效果。
[0061] 圖片的場景例如包括:圖片的動畫方式、圖片的音樂短片(Music Video, MV)效 果、圖片的濾鏡效果等。
[0062] 當(dāng)指定一種效果后,相應(yīng)的每張圖片的場景是確定的,例如,在第一效果下,第一 圖片在第一時間位于第一位置,并具有黑白的濾鏡效果,同時,第二圖片在第一時間位于第 二位置,以及,同時播放第一音樂等。
[0063] 在確定出一張圖片的場景后,可以對場景進(jìn)行分割得到場景單元。
[0064] 在將場景分割為場景單元時,可以將一段連續(xù)時間內(nèi),圖片行為保持一致的一段 場景作為一個場景單元,具體的,可以將用于標(biāo)識圖片行為的參數(shù)保持不變的一段場景作 為一個場景單元。
[0065] 例如,平移動畫單元對應(yīng)的用于標(biāo)識圖片行為的參數(shù)是平移加速度,則如果一個 時間段內(nèi),圖片的平移加速度不變(為一個恒定的非零值或?yàn)榱悖?,則該段場景可以作為一 個平移動畫單元。
[0066] S202:將每個預(yù)設(shè)效果作為一個模板,并建立模板與場景單元的對應(yīng)關(guān)系。
[0067] 例如,對應(yīng)第一預(yù)設(shè)效果確定的場景包括:第一圖片的第一場景,第二圖片的第二 場景,對第一場景進(jìn)行分割后得到第一場景單元組,對第二場景進(jìn)行分割后得到第二場景 單元組,則將第一預(yù)設(shè)效果作為第一模板,建立的對應(yīng)關(guān)系包括:第一模板對應(yīng):第一圖片 的第一場景單元組和第二圖片的第二場景單元組,場景單元組由場景單元組成。
[0068] 可以理解的是,S201-S202可以離線在視頻合成之前預(yù)先完成,而在線進(jìn)行視頻合 成時,可以在確定出模板后,獲取預(yù)先保存的對應(yīng)的場景單元。
[0069] S203 :確定需要將圖片合成視頻。
[0070] 例如,用戶打開用于將圖片合成視頻的應(yīng)用程序后,在該應(yīng)用程序的頁面上包括 用于觸發(fā)圖片合成視頻的按鈕,當(dāng)檢測到用戶對該按鈕的點(diǎn)擊指令后,可以確定需要將圖 片合成視頻。
[0071] S204 :在確定需要將圖片合成視頻后,向用戶提供可供選擇的模板,并根據(jù)用戶選 擇的模板以及預(yù)先建立的模板與場景單元之間的對應(yīng)關(guān)系,獲取用戶選擇的模板對應(yīng)的場 景單元。
[0072] 由于之前建立了模板與場景單元之間的對應(yīng)關(guān)系,因此在用戶選擇模板后可以確 定對應(yīng)的場景單元。其中,每個模板對應(yīng)的場景單元包括:合成視頻的每張圖片分別對應(yīng)的 場景單元。
[0073] 本實(shí)施例中,以根據(jù)用戶選擇的模板確定場景單元為例,可以理解的是,還可以在 用戶需要合成視頻時,根據(jù)用戶設(shè)置的效果信息確定場景,并對場景分割得到場景單元。相 應(yīng)的,所述獲取進(jìn)行合成的每張圖片對應(yīng)的場景單元,包括:
[0074] 在確定需要將圖片合成視頻后,獲取用戶設(shè)置的效果信息;
[0075] 根據(jù)設(shè)置的效果信息確定進(jìn)行合成的每張圖片的場景;
[0076] 對進(jìn)行合成的每張圖片的場景進(jìn)行分割,獲取進(jìn)行合成的每張圖片對應(yīng)的場景單 J L 〇
[0077] S205:確定要進(jìn)行合成的圖片中當(dāng)前處理的圖片,在所述模板對應(yīng)的場景單元中 獲取所述當(dāng)前處理的圖片對應(yīng)的場景單元。
[0078] 例如,該應(yīng)用程序可以向用戶顯示圖片選擇按鈕,用戶點(diǎn)擊該按鈕后可以在已有 的圖片庫中選擇圖片或者拍攝圖片作為要進(jìn)行合成的圖片。
[0079] 由于獲取的模板對應(yīng)的場景單元中包括所有圖片對應(yīng)的場景單元,而后續(xù)處理時 需要對應(yīng)每張圖片進(jìn)行處理,因此,在獲取要進(jìn)行合成的圖片后,可以根據(jù)時間依次選擇圖 片,作為當(dāng)前處理的圖片,并從與模板對應(yīng)的場景單元中獲取當(dāng)前處理的圖片對應(yīng)的場景 單元。
[0080] 需要說明的是,對于某個時刻,可能需要對圖片中的一張或多張進(jìn)行處理,因此, 當(dāng)前處理的圖片可以包括一張圖片或者同時處理的多張圖片。
[0081] S206:確定當(dāng)前時間。
[0082] 其中,可以從視頻的起始時間開始,按照預(yù)設(shè)周期選擇一個時間點(diǎn)作為當(dāng)前時間, 直至視頻的結(jié)束時間。
[0083] S207 :在所述當(dāng)前處理的圖片對應(yīng)的場景單元中,確定時間段包含當(dāng)前時間的場 景單元,并獲取時間段包含當(dāng)前時間的場景單元的參數(shù)。
[0084] 例如,當(dāng)前處理的圖片是圖片A,該圖片A對應(yīng)的場景單元包括:第一場景單元、第 二場景單元、第三場景單元…,且時間段分別是:第一時間段、第二時間段、第三時間段…。 其中,各場景單元的類型可以相同或不同,例如,可以僅對應(yīng)動畫單元或可以對應(yīng)動畫單元 和MV效果單元等。不同類型的場景單元包括的時間段可以相同或不同,例如,動畫單元包 括的時間段可以與MV效果單元包括的時間段相同或不同,而相同類型的不同場景單元包 括的時間段是不同的,例如,兩個不同的平移動畫單元的時間段是不同的。
[0085] 為了簡化說明,假設(shè)圖片A對應(yīng)的場景單元包括:多個平移動畫單元,每個平移動 畫單元具有不同的時間段,例如,第一平移動畫單元包括的時間段是t〇-tl,第二平移動畫 單元包括的時間段是t2_t3等。假設(shè)當(dāng)前時間用tx表示,如果tx位于t0和tl之間,則由 于第一平移動畫單元的時間段包含當(dāng)前時間,則獲取第一平移動畫單元的參數(shù),以便根據(jù) 第一平移動畫單元的參數(shù)對圖片A進(jìn)行處理。
[0086] S208 :啟動Opengl的渲染線程。
[0087] 其中,Opengl是一種圖形圖像處理平臺,渲染線程用于將模型最終渲染成視頻。
[0088] S209:渲染線程根據(jù)所述時間段包含當(dāng)前時間的場景單元的參數(shù),對當(dāng)前處理的 圖片進(jìn)行處理,得到處理后的圖片。
[0089] 例如,當(dāng)前處理的圖片是圖片A,時間段包含當(dāng)前時間的場景單元是第一平移動畫 單元,則渲染線程根據(jù)第一平移動畫的參數(shù)對圖片A進(jìn)行處理。
[0090] 之后,可以重復(fù)執(zhí)行S206及其后續(xù)步驟,得到不同時間的處理后的圖片。
[0091] S210 :對不同時間的處理后的圖片進(jìn)行組合,得到視頻。
[0092] 類似上述對圖片A的處理,可以對進(jìn)行合成的其他圖片進(jìn)行相應(yīng)處理,之后組合 各處理后的圖片得到視頻。