本發(fā)明涉及數(shù)據(jù)存儲技術(shù),尤其涉及一種存儲視頻的方法、裝置及電子設(shè)備。
背景技術(shù):
隨著計算機通信以及互聯(lián)網(wǎng)技術(shù),尤其是4G通信技術(shù)的不斷發(fā)展,電子設(shè)備,例如,智能移動電話、個人數(shù)字助理、掌上電腦、筆記本電腦等應(yīng)用越來越廣泛,電子設(shè)備中安裝的應(yīng)用程序(APP,Application)越來越多,提供的應(yīng)用功能也越來越豐富。舉例來說,作為文字與圖片之后的第三大社交載體,短視頻極有可能會成為社交的新發(fā)展趨勢,用戶可以通過社交平臺分享短視頻,也可以利用客戶端的播放器,在播放器的播放界面中,同時播放多個短視頻進行觀看,從而極大地增強和豐富了用戶的體驗。
為了后續(xù)中能夠隨時隨地回看已播放的視頻,需要對播放的多個視頻進行存儲,由于視頻占據(jù)的存儲空間較大,將播放的多個短視頻存儲在本地需要消耗大量的存儲空間,這對于電子設(shè)備,尤其是移動電子設(shè)備來說,將大大提升電子設(shè)備的成本,因而,如何有效節(jié)約本地的存儲空間,降低電子設(shè)備的成本成為一個亟需解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供一種存儲視頻的方法、裝置及電子設(shè)備,能夠有效節(jié)約本地電子設(shè)備節(jié)約存儲空間,以解決現(xiàn)有的存儲視頻的方法中,需要在本地電子設(shè)備存儲完整視頻數(shù)據(jù)導(dǎo)致的所需存儲空間較大的問題。
第一方面,本發(fā)明實施例提供一種存儲視頻的方法,包括:
獲取播放界面上多個播放視圖窗口分別播放的視頻,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系;
將所述多個播放視圖窗口分別播放的視頻進行拼接,得到拼接視頻;
按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理,得到存儲優(yōu)化拼接視頻并在本地存儲。
結(jié)合第一方面,在第一方面的第一種實施方式中,所述獲取播放界面上多個播放視圖窗口分別播放的視頻包括:
在播放界面上,設(shè)置多個播放視圖窗口,每一播放視圖窗口設(shè)置一解碼類;
接收待播放視頻,調(diào)用播放所述待播放視頻的播放視圖窗口對應(yīng)的解碼類,對所述待播放視頻進行解碼,得到圖像數(shù)據(jù);
將所述圖像數(shù)據(jù)渲染到播放所述待播放的視頻的播放視圖窗口中。
結(jié)合第一方面的第一種實施方式,在第一方面的第二種實施方式中,所述解碼類為采用硬件解碼技術(shù)的硬件解碼類,各播放視圖窗口設(shè)置的解碼類相同。
結(jié)合第一方面,在第一方面的第三種實施方式中,所述構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系包括:
為所述播放界面設(shè)置播放界面標(biāo)識;
獲取播放所述待播放視頻的播放視圖窗口在所述播放界面中的播放視圖窗口標(biāo)識;
將所述播放界面標(biāo)識和所述播放視圖窗口標(biāo)識鏈接至所述對應(yīng)播放的視頻。
結(jié)合第一方面、第一方面的第一種至第三種中任一種實施方式,在第一方面的第四種實施方式中,所述按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理包括:
獲取拼接視頻中各視頻的第一幀,存儲至預(yù)先設(shè)置的本地磁盤;
以所述第一幀為依據(jù),按照預(yù)先設(shè)置的幀間隔閾值,提取各視頻,存儲至預(yù)先設(shè)置的本地磁盤。
結(jié)合第一方面、第一方面的第一種至第三種中任一種實施方式,在第一方面的第五種實施方式中,所述按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理包括:
對所述拼接視頻中每一幀,降低視頻分辨率后存儲至預(yù)先設(shè)置的本地磁盤。
結(jié)合第一方面、第一方面的第一種至第三種中任一種實施方式,在第一方面的第六種實施方式中,所述方法還包括:
接收來自播放視圖窗口的視頻高清播放請求,依據(jù)構(gòu)建的所述映射關(guān)系,拉取所述播放視圖窗口映射的視頻,在所述播放視圖窗口進行播放,所述播放視圖窗口為播放所述存儲優(yōu)化拼接視頻的播放界面中的一播放視圖窗口,其他播放視圖窗口繼續(xù)播放對應(yīng)的所述優(yōu)化拼接視頻。
結(jié)合第一方面、第一方面的第一種至第三種中任一種實施方式,在第一方面的第七種實施方式中,所述方法還包括:
接收來自播放所述存儲優(yōu)化拼接視頻的播放界面上中非播放視圖窗口的多視頻高清播放請求,依據(jù)所述播放界面包含的播放視圖窗口數(shù)以及構(gòu)建的所述映射關(guān)系,分別拉取每一播放視圖窗口映射的視頻,在對應(yīng)的播放視圖窗口進行播放。
第二方面,本發(fā)明實施例提供一種存儲視頻的裝置,包括:映射關(guān)系構(gòu)建模塊、拼接模塊以及優(yōu)化存儲模塊,其中,
映射關(guān)系構(gòu)建模塊,用于獲取播放界面上多個播放視圖窗口分別播放的視頻,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系;
拼接模塊,用于將所述多個播放視圖窗口分別播放的視頻進行拼接,得到拼接視頻;
優(yōu)化存儲模塊,用于按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理,得到存儲優(yōu)化拼接視頻并在本地存儲。
結(jié)合第二方面,在第二方面的第一種實施方式中,所述映射關(guān)系構(gòu)建模塊包括:解碼類設(shè)置單元、解碼單元、渲染單元以及映射關(guān)系構(gòu)建單元,其中,
解碼類設(shè)置單元,用于在播放界面上,設(shè)置多個播放視圖窗口,每一播放視圖窗口設(shè)置一解碼類;
解碼單元,用于接收待播放視頻,調(diào)用播放所述待播放視頻的播放視圖窗口對應(yīng)的解碼類,對所述待播放視頻進行解碼,得到圖像數(shù)據(jù);
渲染單元,用于將所述圖像數(shù)據(jù)渲染到播放所述待播放的視頻的播放視圖窗口中;
映射關(guān)系構(gòu)建單元,用于構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系。
結(jié)合第二方面的第一種實施方式,在第二方面的第二種實施方式中,所述解碼類為采用硬件解碼技術(shù)的硬件解碼類,各播放視圖窗口設(shè)置的解碼類相同。
結(jié)合第二方面的第一種實施方式,在第二方面的第三種實施方式中,所述映射關(guān)系構(gòu)建單元包括:界面標(biāo)識設(shè)置子單元、視圖窗口設(shè)置子單元以及鏈接設(shè)置子單元,其中,
界面標(biāo)識設(shè)置子單元,用于為所述播放界面設(shè)置播放界面標(biāo)識;
視圖窗口設(shè)置子單元,用于獲取播放所述待播放視頻的播放視圖窗口在所述播放界面中的播放視圖窗口標(biāo)識;
鏈接設(shè)置子單元,用于將所述播放界面標(biāo)識和所述播放視圖窗口標(biāo)識鏈接至所述對應(yīng)播放的視頻。
結(jié)合第二方面、第二方面的第一種至第三種中任一種實施方式,在第二方面的第四種實施方式中,所述優(yōu)化存儲模塊包括:第一幀處理單元以及間隔幀提取單元,其中,
第一幀處理單元,用于獲取拼接視頻中各視頻的第一幀,存儲至預(yù)先設(shè)置的本地磁盤;
間隔幀提取單元,用于以所述第一幀為依據(jù),按照預(yù)先設(shè)置的幀間隔閾值,提取各視頻,存儲至預(yù)先設(shè)置的本地磁盤。
結(jié)合第二方面、第二方面的第一種至第三種中任一種實施方式,在第二方面的第五種實施方式中,所述優(yōu)化存儲模塊包括:分辨率處理單元以及存儲單元,其中,
分辨率處理單元,用于對所述拼接視頻中每一幀,進行降低視頻分辨率處理;
存儲單元,用于將降低視頻分辨率后的幀存儲至預(yù)先設(shè)置的本地磁盤。
結(jié)合第二方面、第二方面的第一種至第三種中任一種實施方式,在第二方面的第六種實施方式中,所述裝置還包括:
第一回播模塊,用于接收來自播放視圖窗口的視頻高清播放請求,依據(jù)構(gòu)建的所述映射關(guān)系,拉取所述播放視圖窗口映射的視頻,在所述播放視圖窗口進行播放,所述播放視圖窗口為播放所述存儲優(yōu)化拼接視頻的播放界面中的一播放視圖窗口,其他播放視圖窗口繼續(xù)播放對應(yīng)的所述優(yōu)化拼接視頻。
結(jié)合第二方面、第二方面的第一種至第三種中任一種實施方式,在第二方面的第七種實施方式中,所述裝置還包括:
第二回播模塊,用于接收來自播放所述存儲優(yōu)化拼接視頻的播放界面上中非播放視圖窗口的多視頻高清播放請求,依據(jù)所述播放界面包含的播放視圖窗口數(shù)以及構(gòu)建的所述映射關(guān)系,分別拉取每一播放視圖窗口映射的視頻,在對應(yīng)的播放視圖窗口進行播放。
第三方面,本發(fā)明實施例提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲器設(shè)置在電路板上;電源電路,用于為上述電子設(shè)備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行如下操作:
獲取播放界面上多個播放視圖窗口分別播放的視頻,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系;
將所述多個播放視圖窗口分別播放的視頻進行拼接,得到拼接視頻;
按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理,得到存儲優(yōu)化拼接視頻并在本地存儲。
第四方面,本發(fā)明實施例還提供了一種存儲介質(zhì),用于存儲應(yīng)用程序,所述應(yīng)用程序用于執(zhí)行本發(fā)明實施例所提供的一種存儲視頻的方法。
第五方面,本發(fā)明實施例還提供了一種應(yīng)用程序,用于執(zhí)行本發(fā)明實施例所提供的一種存儲視頻的方法。
本發(fā)明實施例提供的一種存儲視頻的方法、裝置及電子設(shè)備,通過獲取播放界面上多個播放視圖窗口分別播放的視頻,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系;將所述多個播放視圖窗口分別播放的視頻進行拼接,得到拼接視頻;按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理,得到存儲優(yōu)化拼接視頻并在本地存儲,能夠有效節(jié)約本地電子設(shè)備節(jié)約存儲空間,以解決現(xiàn)有的存儲視頻的方法中,需要在本地電子設(shè)備存儲完整視頻數(shù)據(jù)導(dǎo)致的所需存儲空間較大的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明的實施例一存儲視頻的方法流程示意圖;
圖2為本發(fā)明的實施例設(shè)置的播放界面結(jié)構(gòu)示意圖;
圖3為本發(fā)明的實施例播放存儲優(yōu)化拼接視頻后的播放界面結(jié)構(gòu)示意圖;
圖4為本發(fā)明的實施例二存儲視頻的裝置結(jié)構(gòu)示意圖;
圖5為本發(fā)明電子設(shè)備一個實施例的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明實施例進行詳細(xì)描述。
應(yīng)當(dāng)明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
實施例一
圖1為本發(fā)明的實施例一存儲視頻的方法流程示意圖,如圖1所示,本實施例的方法可以包括:
步驟101,獲取播放界面上多個播放視圖窗口分別播放的視頻,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系;
本實施例中,作為一可選實施例,獲取播放界面上多個播放視圖窗口分別播放的視頻包括:
A11,在播放界面上,設(shè)置多個播放視圖窗口,每一播放視圖窗口設(shè)置一解碼類;
本實施例中,作為一可選實施例,可以依據(jù)需要播放的視頻數(shù)設(shè)置播放界面上的播放視圖窗口數(shù),每一播放視圖窗口用于播放一視頻。例如,對于不同頻道的同一體育賽事的直播,可以依據(jù)直播同一體育賽事的頻道數(shù)設(shè)置播放視圖窗口。
圖2為本發(fā)明的實施例設(shè)置的播放界面結(jié)構(gòu)示意圖。參見圖2,假設(shè)需要播放的視頻數(shù)為12個,則在播放界面上設(shè)置的播放視圖窗口數(shù)也為12,其中,每三個播放視圖窗口組成一播放單元,各播放單元的尺寸可以相同,也可以不同,播放單元內(nèi)的播放視圖窗口(相當(dāng)于網(wǎng)格,一網(wǎng)格對應(yīng)一播放視圖窗口)的位置和尺寸,可依據(jù)用戶的實際播放需求進行設(shè)置,例如,對于一播放單元,可以將該播放單元進行居中豎向分屏,然后,再對右邊分屏進行居中橫向分屏,使之形成三個播放視圖窗口。
本實施例中,由于需要在同一播放界面中實現(xiàn)多個視頻的同步播放,為了保障每一播放的視頻的流暢度,作為一可選實施例,為每一播放視圖窗口設(shè)置一解碼類,以加速對視頻的解碼。
本實施例中,作為一可選實施例,解碼類為采用硬件解碼技術(shù)的硬件解碼類。其中,硬件解碼類可以是一多媒體芯片,例如,設(shè)置有MediaCodec庫的芯片。利用該底層特殊設(shè)計的多媒體芯片,在硬件層面完成將視頻數(shù)據(jù)流轉(zhuǎn)化為可以顯示的圖像數(shù)據(jù)流,從而可以實時完成對高清視頻數(shù)據(jù)流的解碼。當(dāng)然,實際應(yīng)用中,解碼類也可以為采用軟件解碼技術(shù)的軟件解碼類,本實施例對此不作限定。
本實施例中,作為一可選實施例,各播放視圖窗口設(shè)置的解碼類相同。
本實施例中,作為另一可選實施例,還可以在播放視圖窗口設(shè)置播放按鈕,例如,開始播放按鈕、停止播放按鈕、中斷播放按鈕、快進、快退、高清播放請求按鈕等,其中,后續(xù)用戶如果點擊高清播放請求按鈕,則可以關(guān)聯(lián)到構(gòu)建的播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系。
A12,接收待播放視頻,調(diào)用播放所述待播放視頻的播放視圖窗口對應(yīng)的解碼類,對所述待播放視頻進行解碼,得到圖像數(shù)據(jù);
本實施例中,待播放視頻可以來自于網(wǎng)絡(luò),也可以來自于本地存儲。用戶根據(jù)實際播放需要,將待播放的一視頻置于對應(yīng)的播放視圖窗口中,則該播放視圖窗口接收該待播放視頻,利用設(shè)置的解碼類進行解碼。
本實施例中,對視頻進行解碼后,解碼后的視頻數(shù)據(jù)為圖像數(shù)據(jù)。
A13,將所述圖像數(shù)據(jù)渲染到播放所述待播放的視頻的播放視圖窗口中。
本實施例中,作為一可選實施例,利用硬件開放圖形庫(OpenGL,Open Graphics Library),將圖像數(shù)據(jù)渲染到對應(yīng)的播放視圖窗口中,該播放視圖窗口即為接收視頻的播放視圖窗口。這樣,利用解碼類對視頻不斷進行解碼,得到圖像數(shù)據(jù),再利用硬件OpenGL不斷將圖像數(shù)據(jù)渲染到播放視圖窗口中,由于每一播放視圖窗口設(shè)置有一解碼類以及一硬件OpenGL,從而可以顯示一流暢的視頻。
本實施例中,作為一可選實施例,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系包括:
A21,為所述播放界面設(shè)置播放界面標(biāo)識;
本實施例中,用戶構(gòu)建不同的播放界面以播放不同的視頻時,每一播放界面對應(yīng)一播放界面標(biāo)識。
A22,獲取播放所述待播放視頻的播放視圖窗口在所述播放界面中的播放視圖窗口標(biāo)識;
本實施例中,播放界面中的不同播放視圖窗口具有不同的播放視圖窗口標(biāo)識。
A23,將所述播放界面標(biāo)識和所述播放視圖窗口標(biāo)識鏈接至所述對應(yīng)播放的視頻。
本實施例中,將播放視頻的播放視圖窗口設(shè)置為一鏈接,即在后續(xù)點擊該播放視圖窗口時,可以鏈接到播放的視頻所在的網(wǎng)絡(luò)服務(wù)器,以從網(wǎng)絡(luò)服務(wù)器拉取該視頻進行重新播放。
本實施例中,鏈接的網(wǎng)絡(luò)服務(wù)器可以通過有線或無線的方式連接電子設(shè)備。
本實施例中,作為一可選實施例,在所述獲取播放界面上多個播放視圖窗口分別播放的視頻之后,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系之前,該方法還包括:
獲取所述對應(yīng)播放的視頻的存儲地址,如果所述存儲地址為遠(yuǎn)程存儲地址,執(zhí)行所述構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系的步驟。
本實施例中,遠(yuǎn)程存儲地址即所述對應(yīng)播放的視頻未存儲在本地。
步驟102,將所述多個播放視圖窗口分別播放的視頻進行拼接,得到拼接視頻;
本實施例中,關(guān)于將同步播放的多個視頻進行拼接為公知技術(shù),在此略去詳述。
步驟103,按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理,得到存儲優(yōu)化拼接視頻并在本地存儲。
本實施例中,作為一可選實施例,按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理包括:
B11,獲取拼接視頻中各視頻的第一幀,存儲至預(yù)先設(shè)置的本地磁盤;
本實施例中,作為一可選實施例,獲取拼接視頻中各視頻的第一幀,存儲至預(yù)先設(shè)置的本地磁盤包括:
設(shè)置一包含播放界面屬性信息的存儲文件,獲取使用所述硬件OpenGL渲染到播放視圖窗口中的第一幀數(shù)據(jù),將所述第一幀數(shù)據(jù)使用編碼類的方式編譯到所述存儲文件,在該存儲文件中,存儲有播放界面屬性信息,例如,各播放視圖窗口的位置、尺寸、播放視圖窗口的鏈接關(guān)系等。
本實施例中,在存儲設(shè)備中開辟一存儲空間(存儲文件)P,將使用硬件OpenGL渲染到每一播放視圖窗口中的數(shù)據(jù)直接用硬件編碼類的方式編譯到存儲文件P中。
本實施例中,選用第一幀進行初始存儲是便于后續(xù)回放的同步。作為另一可選實施例,也可以不選用第一幀進行初始存儲。
B12,以所述第一幀為依據(jù),按照預(yù)先設(shè)置的幀間隔閾值,提取各視頻,存儲至預(yù)先設(shè)置的本地磁盤。
本實施例中,幀間隔閾值可依據(jù)實際需要設(shè)置,例如,每隔5幀提取一幀。舉例來說,對于一段60s長度的視頻,可以只取每一秒中的某一幀的畫面數(shù)據(jù)進行存儲,這樣,每隔一定的幀數(shù)進行保存,并結(jié)合利用構(gòu)建鏈接的方式獲取源視頻的方式,以便于用戶需要瀏覽高清視頻時,可以調(diào)用出對應(yīng)的清晰完整視頻,可以大大的節(jié)省存儲空間,能夠有效降低電子設(shè)備的成本。
作為另一可選實施例,按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理包括:
對所述拼接視頻中每一幀,降低視頻分辨率后存儲至預(yù)先設(shè)置的本地磁盤。
本實施例中,通過將待存儲的視頻分辨率降低,例如,將原來1920x1080視頻分辨率下降到192x108,并結(jié)合利用構(gòu)建鏈接的方式獲取源視頻的方式,也可以大大的節(jié)省存儲空間,有效降低電子設(shè)備的成本。
本實施例中,作為一可選實施例,該方法還可以包括:
接收來自播放視圖窗口的視頻高清播放請求,依據(jù)構(gòu)建的所述映射關(guān)系,拉取所述播放視圖窗口映射的視頻,在所述播放視圖窗口進行播放,所述播放視圖窗口為播放所述存儲優(yōu)化拼接視頻的播放界面中的一播放視圖窗口,其他播放視圖窗口繼續(xù)播放對應(yīng)的所述優(yōu)化拼接視頻。
本實施例中,用戶在需要再次觀看該播放界面中的多個視頻時,可以通過播放存儲的優(yōu)化拼接視頻,使得可以呈現(xiàn)包含多個播放視圖窗口格局的播放界面,并在各播放視圖窗口中,播放存儲文件中存儲的對應(yīng)視頻,以便于用戶對各播放的視頻進行概略瀏覽。
在用戶需要對某一播放視圖窗口中的視頻進行高清瀏覽時,可以通過點擊該播放視圖窗口,從而觸發(fā)輸出視頻高清播放請求,從而依據(jù)為該播放視圖窗口設(shè)置的鏈接,從相應(yīng)網(wǎng)絡(luò)服務(wù)器拉取鏈接的視頻進行高清播放。其他未被點擊的播放視圖窗口中,繼續(xù)播放對應(yīng)的存儲優(yōu)化拼接視頻。
本實施例中,作為另一可選實施例,該方法還可以包括:
接收來自播放所述存儲優(yōu)化拼接視頻的播放界面上中非播放視圖窗口的多視頻高清播放請求,依據(jù)所述播放界面包含的播放視圖窗口數(shù)以及構(gòu)建的所述映射關(guān)系,分別拉取每一播放視圖窗口映射的視頻,在對應(yīng)的播放視圖窗口進行播放。
本實施例中,如果用戶點擊播放界面上所有播放視圖窗口之外的任意位置,則觸發(fā)輸出多視頻高清播放請求,從而依據(jù)播放界面上包含的播放視圖窗口以及分別為播放視圖窗口設(shè)置的鏈接(映射關(guān)系),從相應(yīng)網(wǎng)絡(luò)服務(wù)器拉取鏈接的視頻至對應(yīng)的播放視圖窗口進行高清播放。
圖3為本發(fā)明的實施例播放存儲優(yōu)化拼接視頻后的播放界面結(jié)構(gòu)示意圖。參見圖3,該播放存儲優(yōu)化拼接視頻后的播放界面包含有三個播放視圖窗口,從左至右,從上至下分別為第一播放視圖窗口、第二播放視圖窗口以及第三播放視圖窗口。其中,第一播放視圖窗口鏈接至第一網(wǎng)絡(luò)服務(wù)器中第一存儲文件存儲的第一視頻,第二播放視圖窗口鏈接至第一網(wǎng)絡(luò)服務(wù)器中第二存儲文件存儲的第二視頻,第三播放視圖窗口鏈接至第三網(wǎng)絡(luò)服務(wù)器中第三存儲文件存儲的第三視頻,當(dāng)用戶點擊第一播放視圖窗口所在區(qū)域的任意位置,停止第一播放視圖窗口的當(dāng)前播放,則從第一網(wǎng)絡(luò)服務(wù)器獲取第一存儲文件中存儲的第一視頻進行高清播放,第二播放視圖窗口以及第三播放視圖窗口繼續(xù)播放本地存儲的存儲優(yōu)化拼接視頻。如果用戶點擊除第一播放視圖窗口、第二播放視圖窗口以及第三播放視圖窗口之外的任意區(qū)域位置,則觸發(fā)輸出多視頻高清播放請求,每個網(wǎng)格停止當(dāng)前播放的優(yōu)化拼接視頻,并在第一播放視圖窗口中,從第一網(wǎng)絡(luò)服務(wù)器獲取第一存儲文件中存儲的第一視頻進行高清播放;在第二播放視圖窗口中,從第一網(wǎng)絡(luò)服務(wù)器獲取第二存儲文件中存儲的第二視頻進行高清播放;在第三播放視圖窗口中,從第三網(wǎng)絡(luò)服務(wù)器獲取第三存儲文件中存儲的第三視頻進行高清播放,使得每個網(wǎng)格直接播放對應(yīng)的高清視頻。
本實施例存儲視頻的方法,通過獲取播放界面上多個播放視圖窗口分別播放的視頻,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系;將所述多個播放視圖窗口分別播放的視頻進行拼接,得到拼接視頻;按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理,得到存儲優(yōu)化拼接視頻并在本地存儲。這樣,通過構(gòu)建播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系,在本地對播放的視頻進行組合以及存儲空間優(yōu)化處理,可以將多個視頻組合成為一拼接視頻,并且可以同時觀看這些視頻,能夠使得組合出的拼接視頻包含更多的內(nèi)容,且對合并出的視頻進行存儲空間優(yōu)化處理,可以有效節(jié)約本地電子設(shè)備節(jié)約存儲空間,降低電子設(shè)備的成本。進一步地,在后續(xù)應(yīng)用中,通過播放存儲的存儲優(yōu)化拼接視頻,從而加載播放界面的多播放視圖窗口,可以進行多視頻同步播放,并進而加載播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系,使得在點擊一播放視圖窗口后,可以依據(jù)映射關(guān)系,拉取對應(yīng)的視頻進行高清播放,保障了回播的性能和用戶體驗。
實施例二
圖4為本發(fā)明的實施例二存儲視頻的裝置結(jié)構(gòu)示意圖,如圖4所示,本實施例的裝置可以包括:映射關(guān)系構(gòu)建模塊41、拼接模塊42以及優(yōu)化存儲模塊43,其中,
映射關(guān)系構(gòu)建模塊41,用于獲取播放界面上多個播放視圖窗口分別播放的視頻,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系;
本實施例中,作為一可選實施例,映射關(guān)系構(gòu)建模塊41包括:解碼類設(shè)置單元、解碼單元、渲染單元以及映射關(guān)系構(gòu)建單元(圖中未示出),其中,
解碼類設(shè)置單元,用于在播放界面上,設(shè)置多個播放視圖窗口,每一播放視圖窗口設(shè)置一解碼類;
本實施例中,作為一可選實施例,解碼類為采用硬件解碼技術(shù)的硬件解碼類,各播放視圖窗口設(shè)置的解碼類相同。其中,硬件解碼類可以是一多媒體芯片,例如,設(shè)置有MediaCodec庫的芯片。
本實施例中,作為另一可選實施例,還可以在播放視圖窗口設(shè)置播放按鈕,例如,開始播放按鈕、停止播放按鈕、中斷播放按鈕、快進、快退、高清播放請求按鈕等。
解碼單元,用于接收待播放視頻,調(diào)用播放所述待播放視頻的播放視圖窗口對應(yīng)的解碼類,對所述待播放視頻進行解碼,得到圖像數(shù)據(jù);
本實施例中,對視頻進行解碼后,解碼后的視頻數(shù)據(jù)為圖像數(shù)據(jù)。
渲染單元,用于將所述圖像數(shù)據(jù)渲染到播放所述待播放的視頻的播放視圖窗口中;
本實施例中,作為一可選實施例,利用硬件開放圖形庫將圖像數(shù)據(jù)渲染到對應(yīng)的播放視圖窗口中。
映射關(guān)系構(gòu)建單元,用于構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系。
本實施例中,作為一可選實施例,映射關(guān)系構(gòu)建單元包括:界面標(biāo)識設(shè)置子單元、視圖窗口設(shè)置子單元以及鏈接設(shè)置子單元,其中,
界面標(biāo)識設(shè)置子單元,用于為所述播放界面設(shè)置播放界面標(biāo)識;
視圖窗口設(shè)置子單元,用于獲取播放所述待播放視頻的播放視圖窗口在所述播放界面中的播放視圖窗口標(biāo)識;
鏈接設(shè)置子單元,用于將所述播放界面標(biāo)識和所述播放視圖窗口標(biāo)識鏈接至所述對應(yīng)播放的視頻。
拼接模塊42,用于將所述多個播放視圖窗口分別播放的視頻進行拼接,得到拼接視頻;
優(yōu)化存儲模塊43,用于按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理,得到存儲優(yōu)化拼接視頻并在本地存儲。
本實施例中,作為一可選實施例,優(yōu)化存儲模塊43包括:第一幀處理單元以及間隔幀提取單元(圖中未示出),其中,
第一幀處理單元,用于獲取拼接視頻中各視頻的第一幀,存儲至預(yù)先設(shè)置的本地磁盤;
本實施例中,作為一可選實施例,獲取拼接視頻中各視頻的第一幀,存儲至預(yù)先設(shè)置的本地磁盤包括:
設(shè)置一包含播放界面屬性信息的存儲文件,獲取使用所述硬件OpenGL渲染到播放視圖窗口中的第一幀數(shù)據(jù),將所述第一幀數(shù)據(jù)使用編碼類的方式編譯到所述存儲文件。其中,播放界面屬性信息包括:各播放視圖窗口的位置、尺寸、播放視圖窗口的鏈接關(guān)系等。
間隔幀提取單元,用于以所述第一幀為依據(jù),按照預(yù)先設(shè)置的幀間隔閾值,提取各視頻,存儲至預(yù)先設(shè)置的本地磁盤。
本實施例中,幀間隔閾值可依據(jù)實際需要設(shè)置,例如,每隔5幀提取一幀。
作為另一可選實施例,優(yōu)化存儲模塊43包括:分辨率處理單元以及存儲單元(圖中未示出),其中,
分辨率處理單元,用于對所述拼接視頻中每一幀,進行降低視頻分辨率處理;
存儲單元,用于將降低視頻分辨率后的幀存儲至預(yù)先設(shè)置的本地磁盤。
本實施例中,作為一可選實施例,該裝置還可以包括:
第一回播模塊(圖中未示出),用于接收來自播放視圖窗口的視頻高清播放請求,依據(jù)構(gòu)建的所述映射關(guān)系,拉取所述播放視圖窗口映射的視頻,在所述播放視圖窗口進行播放,所述播放視圖窗口為播放所述存儲優(yōu)化拼接視頻的播放界面中的一播放視圖窗口,其他播放視圖窗口繼續(xù)播放對應(yīng)的所述優(yōu)化拼接視頻。
本實施例中,用戶在需要再次觀看該播放界面中的多個視頻時,可以通過播放存儲的優(yōu)化拼接視頻,使得可以呈現(xiàn)包含多個播放視圖窗口格局的播放界面,并在各播放視圖窗口中,播放存儲文件中存儲的對應(yīng)視頻,以便于用戶對各播放的視頻進行概略瀏覽。
在用戶需要對某一播放視圖窗口中的視頻進行高清瀏覽時,可以通過點擊該播放視圖窗口,從而觸發(fā)輸出視頻高清播放請求,從而依據(jù)為該播放視圖窗口設(shè)置的鏈接,從相應(yīng)網(wǎng)絡(luò)服務(wù)器拉取鏈接的視頻進行高清播放。其他未被點擊的播放視圖窗口中,繼續(xù)播放對應(yīng)的存儲優(yōu)化拼接視頻。
本實施例中,作為另一可選實施例,該裝置還可以包括:
第二回播模塊(圖中未示出),用于接收來自播放所述存儲優(yōu)化拼接視頻的播放界面上中非播放視圖窗口的多視頻高清播放請求,依據(jù)所述播放界面包含的播放視圖窗口數(shù)以及構(gòu)建的所述映射關(guān)系,分別拉取每一播放視圖窗口映射的視頻,在對應(yīng)的播放視圖窗口進行播放。
本實施例中,在用戶需要對整個播放界面的播放視圖窗口中的視頻進行高清瀏覽時,可以通過點擊播放界面上除播放視圖窗口之外的任意位置,則觸發(fā)輸出多視頻高清播放請求,從而依據(jù)播放界面上包含的播放視圖窗口以及分別為播放視圖窗口設(shè)置的鏈接(映射關(guān)系),從相應(yīng)網(wǎng)絡(luò)服務(wù)器拉取鏈接的視頻至對應(yīng)的播放視圖窗口進行高清播放。
本實施例的裝置,可以用于執(zhí)行圖1至圖3所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。
尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,″計算機可讀介質(zhì)″可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計算機可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(ROM),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(CDROM)。另外,計算機可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進行光學(xué)掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。
在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
本發(fā)明實施例還提供一種電子設(shè)備,所述電子設(shè)備包含前述任一實施例所述的裝置。
圖5為本發(fā)明電子設(shè)備一個實施例的結(jié)構(gòu)示意圖,可以實現(xiàn)本發(fā)明圖1-4所示實施例的流程,如圖5所示,上述電子設(shè)備可以包括:殼體51、處理器52、存儲器53、電路板54和電源電路55,其中,電路板54安置在殼體51圍成的空間內(nèi)部,處理器52和存儲器53設(shè)置在電路板54上;電源電路55,用于為上述電子設(shè)備的各個電路或器件供電;存儲器53用于存儲可執(zhí)行程序代碼;處理器52通過讀取存儲器53中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行如下操作:
獲取播放界面上多個播放視圖窗口分別播放的視頻,構(gòu)建所述播放視圖窗口與對應(yīng)播放的視頻的映射關(guān)系;
將所述多個播放視圖窗口分別播放的視頻進行拼接,得到拼接視頻;
按照預(yù)先設(shè)置的存儲空間優(yōu)化策略對所述拼接視頻進行優(yōu)化處理,得到存儲優(yōu)化拼接視頻并在本地存儲。
處理器52對上述步驟的具體執(zhí)行過程以及處理器52通過運行可執(zhí)行程序代碼來進一步執(zhí)行的步驟,可以參見本發(fā)明圖1-4所示實施例的描述,在此不再贅述。
該電子設(shè)備以多種形式存在,包括但不限于:
(1)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。
(2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
(4)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
(5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。
本發(fā)明實施例還提供了一種存儲介質(zhì),用于存儲應(yīng)用程序,所述應(yīng)用程序用于執(zhí)行本發(fā)明實施例所提供的一種存儲視頻的方法。
本發(fā)明實施例還提供了一種應(yīng)用程序,用于執(zhí)行本發(fā)明實施例所提供的一種存儲視頻的方法。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當(dāng)然,在實施本發(fā)明時可以把各單元/模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本
發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準(zhǔn)。