本發明涉及視頻播放領域,具體涉及一種包含單路音頻多路視頻的復合視頻的播放方法及設備。
背景技術:
隨著互聯網視頻技術的發展,人們已經習慣于通過具有視頻播放功能的電子設備,例如電視機、個人電腦以及智能終端等,連接至互聯網觀看各種視頻來豐富業余生活。目前,現有技術中,具有視頻播放功能的電子設備連接至互聯網后,用戶在觀看各種直播視頻時,視頻服務器根據用戶請求將直播的視頻流發送客戶端進行播放。然而,當用戶按照上述現有技術觀看直播視頻節目時,只能隨著當前視頻流提供的拍攝角度進行觀看,無法同時從其它角度觀看視頻中場景的內容。因此,為了滿足用戶的觀看需求,包含多路視頻的復合視頻應運而生,在實際視頻播放中,如體育賽事的視頻播放,即為在同一個屏幕界面上顯示多路的視頻數據。
目前在多攝像頭拍攝的應用場景中,便會產生多路視頻流,也即每個攝像頭拍攝的視頻流均為一路視頻流。在播放多路視頻流時,通常是在播放設備上同時開啟多個播放客戶端,每個播放客戶端的顯示屏幕上對應播放一路視頻流。這樣,在播放設備上可以利用多個播放客戶端同時顯示多路視頻流的圖像。在現有的播放方案中,會彈出多個播放器對話框進行多個視頻的播放,造成多個標簽頁面產生,不便于管理,同時,對層次的調整帶來不便。
技術實現要素:
為了解決上述問題,本發明提供了一種包含單路音頻多路視頻的復合視頻的播放方法及設備。本發明提供的一種包含單路音頻多路視頻的復合視頻的播放方法及設備,將多個視頻在一個界面顯示出來,同時可任意調整各路視頻的播放界面大小以及位置。
本發明采用的技術方案如下:
一種包含單路音頻多路視頻的復合視頻的播放方法,包括如下步驟:
S1.打開復合視頻;
S2.識別復合視頻中的單路音頻以及多路視頻;確定復合視頻中包含視頻的數量信息,確定與音頻對應的主視頻;
S3.根據復合視頻中包含視頻的數量在播放窗口建立對應數量的子窗口,并將每一路視頻與窗口一一對應;
S4.第一次讀取,獲取音頻的前N幀以及每一路視頻的前N幀,當音頻和各路視頻不滿N幀時,全部獲?。籒為自然數;
S5.根據音頻時間戳進行多線程音視頻同步解碼、貼圖、音頻播放顯示;當播放至第M幀時,在播放復合視頻的同時運行步驟S6;M為大于N/2、小于N的自然數;
S6.第X次讀取,獲取從當前幀號開始的N幀音頻以及各路視頻,如果沒有數據,則至步驟S7;如果有數據,至步驟S5;X為大于1的正整數;
S7.結束播放。
上述的一種包含單路音頻多路視頻的復合視頻的播放方法,其中,所述步驟S6包括具體還包括如下內容:主視頻與音頻通過時間戳同步,其他視頻通過幀號與主視頻同步。具體的是指其他視頻的第Y幀與主視頻的第Y幀同步。
上述的一種包含單路音頻多路視頻的復合視頻的播放方法,其中,所述子窗口根據需要通過拖拽進行位置、大小、層次的調整。
上述的一種包含單路音頻多路視頻的復合視頻的播放方法,其中,N取值100。
上述的一種包含單路音頻多路視頻的復合視頻的播放方法,其中,M取值90-95中的任意自然數。
一種包含單路音頻多路視頻的復合視頻的播放設備,包括:
打開裝置:用以打開復合視頻;
識別裝置:用以識別復合視頻中的單路音頻以及多路視頻;確定復合視頻中包含視頻的數量信息,確定與音頻對應的主視頻;
建立窗口裝置:用以根據復合視頻中包含視頻的數量在播放窗口建立對應數量的子窗口,并將每一路視頻與窗口一一對應;
首次讀取裝置:用以進行第一次讀取,獲取音頻的前N幀以及每一路視頻的前N幀,當音頻和各路視頻不滿N幀時,全部獲?。籒為自然數;
播放裝置:用以根據音頻時間戳進行多線程音視頻同步解碼、貼圖、音頻播放顯示;當播放至第M幀時,后續讀取裝置進行讀??;M為大于N/2、小于N的自然數;
后續讀取裝置:用以進行第X次讀取,獲取從當前幀號開始的N幀音頻以及各路視頻,如果沒有數據,則無內容傳輸至播放裝置;如果有數據,將讀取內容傳輸至播放裝置;X為大于1的正整數;
結束裝置:當播放裝置沒有數據用以播放時用以顯示結束播放。
上述的一種包含單路音頻多路視頻的復合視頻的播放設備,其中,還包括同步裝置:用以將主視頻與音頻通過時間戳同步播放,其他視頻通過幀號與主視頻同步播放。
本發明提供一種包含單路音頻多路視頻的復合視頻的播放方法及設備,有效的針對現有的包含多路視頻的復合視頻提供了播放途徑,并且在播放過程中,對所述每路視頻進行同步。具體的如針對體育賽事的視頻播放,實現了在一個終端屏幕上通過多個子窗口多賽事內容從不同角度進行觀看。由于復合視頻均在一個播放窗口的子窗口進行播放,即可以在同一個播放客戶端的顯示屏幕上顯示各路視頻流的圖像,因此解決了現有技術中播放設備在同時開啟多個播放客戶端播放多路視頻流時,會消耗大量的系統資源的問題;達到了可以僅利用一個播放客戶端來播放多路視頻流,從而減少對系統資源占用的效果。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明一種包含單路音頻多路視頻的復合視頻的播放方法的流程圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例?;诒景l明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
實施例
一種包含單路音頻多路視頻的復合視頻的播放設備,包括打開裝置、識別裝置、建立窗口裝置、首次讀取裝置、同步裝置、播放裝置、后續讀取裝置、結束裝置,其中:
打開裝置:用以打開復合視頻;
識別裝置:用以識別復合視頻中的單路音頻以及多路視頻;確定復合視頻中包含視頻的數量信息,確定與音頻對應的主視頻;
建立窗口裝置:用以根據復合視頻中包含視頻的數量在播放窗口建立對應數量的子窗口,并將每一路視頻與窗口一一對應;
首次讀取裝置:用以進行第一次讀取,獲取音頻的前N幀以及每一路視頻的前N幀,當音頻和各路視頻不滿N幀時,全部獲取;N為自然數;
同步裝置:用以將主視頻與音頻通過時間戳同步,其他視頻通過幀號與主視頻同步;
播放裝置:用以根據音頻時間戳進行多線程音視頻同步解碼、貼圖、音頻播放顯示;
后續讀取裝置:用以進行第X次讀取,獲取從當前幀號開始的N幀音頻以及各路視頻,如果沒有數據,則至結束裝置;如果有數據,至播放裝置;X為大于1的正整數;
結束裝置:當播放裝置沒有數據用以播放時用以顯示結束播放。
如圖1所示,一種包含單路音頻多路視頻的復合視頻的播放方法,包括如下步驟:
S1.打開復合視頻;復合視頻中包含單路音頻以及多路視頻。
S2.識別復合視頻中的單路音頻以及多路視頻;確定復合視頻中包含視頻的數量信息,確定與音頻對應的主視頻;所述主視頻是指提供音頻的視頻,即音頻中的聲音內容是由主視頻發出的。以體育賽事為示例,包括講解的音頻、播報員的視頻以及多路各個視角的比賽場景的視頻,其中,播報員對賽事進行講解,則播報員的視頻為主視頻,播報員的視頻與講解的音頻通過時間戳同步,其他各路視頻與播報員視頻同步;
S3.根據復合視頻中包含視頻的數量在播放窗口建立對應數量的子窗口,并將每一路視頻與窗口一一對應;在具體實施中,當識別出有五路視頻時,在播放窗口建立五個子窗口,并且每個子窗口播放一路視頻;子窗口根據需要通過拖拽進行位置、大小、層次的調整。每增加一個子窗口,對系統資源的消耗就會增加,因此,根據視頻的數量信息來建立子窗口,合理利用系統資源;
S4.第一次讀取,獲取音頻的前100幀以及每一路視頻的前100幀,當音頻和各路視頻不滿100幀時,全部獲??;獲取的幀數越多,對內存等系統資源的占用就越多,因此,在保證復合視頻播放流暢的情況下更少的獲取幀數也體現了對系統資源的合理利用。
S5.將主視頻與音頻通過時間戳同步,其他視頻通過幀號與主視頻同步。具體的是指其他路視頻的第1幀與主視頻的第1幀同步,其他路視頻的第2幀與主視頻的第2幀同步,……其他路視頻的第Y幀與主視頻的第Y幀同步。根據音頻時間戳進行多線程音視頻同步解碼、貼圖、音頻播放顯示;當播放至第95幀時,在播放復合視頻的同時運行步驟S6;啟動運行步驟S6的幀號越靠后,則對系統資源的消耗就越小,但是啟動運行步驟S6的幀號太靠后,復合視頻的播放就會出現卡頓的現象,因此,對于每次選取100幀音頻以及各路視頻時,優選的在播放至第90-95幀中的任意一幀時啟動運行步驟S6,即減小了對系統資源的消耗,又保證了復合視頻的流暢播放。
S6.第X次讀取,獲取從當前幀號開始的100幀音頻以及各路視頻,如果沒有數據,則至步驟S7;如果有數據,至步驟S5;X為大于1的正整數;
S7.當步驟S6獲取不到新的播放數據時,S5中的內容播放完畢后就結束整個復合視頻的播放。
本發明將包含有單路音頻多路視頻的復合視頻文件播放,通過獲取其中的音頻數據,根據音頻的時間對視頻數據進行同步,然后使用多線程同時將多路視頻和音頻進行解碼,將多路解碼后的視頻數據貼圖到同一個播放窗口的特定位置即子窗口,每路視頻對應的子窗口的位置通過拖拽進行大小、層次的調整,將音頻解碼數據通過聲卡播放,最終實現復合視頻的同步播放。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實施,例如,可采用專用集成電路(ASIC)、通用目的計算機或任何其他類似硬件設備來實現。在一個實施例中,本申請的軟件程序可以通過處理器執行以實現上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關的數據結構)可以被存儲到計算機可讀記錄介質中,例如,RAM存儲器,磁或光驅動器或軟磁盤及類似設備。另外,本申請的一些步驟或功能可采用硬件來實現,例如,作為與處理器配合從而執行各個步驟或功能的電路。
另外,本申請的一部分可被應用為計算機程序產品,例如計算機程序指令,當其被計算機執行時,通過該計算機的操作,可以調用或提供根據本申請的方法和/或技術方案。而調用本申請的方法的程序指令,可能被存儲在固定的或可移動的記錄介質中,和/或通過廣播或其他信號承載媒體中的數據流而被傳輸,和/或被存儲在根據所述程序指令運行的計算機設備的工作存儲器中。在此,根據本申請的一個實施例包括一個裝置,該裝置包括用于存儲計算機程序指令的存儲器和用于執行程序指令的處理器,其中,當該計算機程序指令被該處理器執行時,觸發該裝置運行基于前述根據本申請的多個實施例的方法和/或技術方案。
對于本領域技術人員而言,顯然本申請不限于上述示范性實施例的細節,而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現本申請。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化涵括在本申請內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數不排除復數。裝置權利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。
當然,對于本領域技術人員而言,顯然本申請不限于上述示范性實施例的細節,而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現本申請。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化涵括在本申請內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。