一種基于mpeg-dash協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統的制作方法【專利摘要】本申請公開了一種基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統,其中,客戶端向流媒體服務器請求發送目標視頻,流媒體服務器在接收到客戶端的請求之后,向客戶端發送目標視頻的摘要MPD文件、以及目標視頻的視頻片段MPD文件,客戶端從流媒體服務器下載并解析摘要MPD文件,得到目標視頻的摘要畫面、以及摘要畫面在目標視頻中的位置,在客戶端上顯示摘要畫面,并由用戶選擇其中的一個摘要畫面,客戶端記錄選擇的結果,客戶端從流媒體服務器下載并解析視頻片段MPD文件,得到目標視頻的視頻片段的播放信息,客戶端根據播放信息、以及選擇的結果,確定與所選摘要畫面對應的視頻片段,向流媒體服務器請求從該視頻片段開始發送并播放目標視頻。【專利說明】一種基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統【
技術領域:
】[0001]本發明涉及互聯網流媒體領域,更具體地,涉及基于Dash協議的帶碼率切換控制和靜態摘要技術的播控系統。【
背景技術:
】[0002]MPEG-DASH協議標準[0003]目前,市場上主流的媒體傳輸規范包括微軟集團的SmoothStreaming、Adobe集團的HDS、以及蘋果集團的HLS等,這些規范都自成一家,沒有通用性。MPEG-DASH協議是為了解決不同平臺下HTTP協議的通用性而產生的。這一協議在2011年由MPEG組織批準,之后它就成為流媒體領域的一個熱門話題,這一協議可以讓不同的服務器和客戶端之間進行交互,如果能夠得到發展,勢必會讓流媒體領域發生重大變革。MPEG-DASH規范的產生是流媒體視頻自適應碼率傳輸不斷走向成熟的至關重要的一步。在標準規范完成之后,DASH最重要的問題就是要有支持這一規范的實際產品,現存的一些技術可以為實現這些產品提供支撐,在DASH實現之后,不同平臺開發的客戶端和服務器之間就可以協同工作。[0004]MPEG-DASH協議是基于HTTP協議實現的,HTTP流有很多優點。首先,因特網基礎結構進化了,可以很好的支持HTTP協議。比如,⑶N網絡提供局部邊緣高速緩存,可以減少數據的長距離傳輸。另外,HTTP協議對防火墻友好,幾乎所有的防火墻配置都支持HTTP的外向連接。HTTP服務器技術很常見,因此為數百萬用戶提供HTTP流支持很劃算。第二,使用HTTP流,客戶端可以不用在服務器上維持會話狀態。因此,支持多用戶除了HTTP的標準應用外不會為服務器增加額外費用,而且CDN可以使用標準HTTP優化技術來管理它。[0005]在MPEG-DASH協議中,媒體內容被捕獲和存儲在HTTP服務器中,使用HTTP協議進行傳輸。這些媒體信息在服務器上存在于兩個部分:一個是MPD(媒體表現描述,MediaPresentationDescription),描述了媒體文件可用內容的manifest、可提供的選擇、URL地址和其它特征;另外一個部分是片段(segment),它是以塊(chunk)方式存儲的單一或多個文件中的實際媒體比特流,如圖1所示。[0006]在播放內容之前,DASH客戶端首先得到MPD文件,MPD文件是一個XML文件,其格式如圖2所示。MPD可以用HTTP、email、指狀存儲器、廣播或其它方式進行傳輸。通過解析MPD文件,DASH客戶端得到程序事件、媒體信息可用性、媒體類型、解決方法、最大和最小帶寬和媒體分量的不同編碼選擇、可訪問性特點和需要的DRM(數字權限管理,digitalrightsmanagement)、媒體內容在網絡上的位置和其它媒體特點。有了這些信息,DASH客戶端就可以選擇合適的編碼方式,客戶端使用HTTPGET向服務器請求獲取片段。在緩存之后可以適應網絡的不同吞吐量變化進行播放,客戶端繼續獲取隨后的片段,并且監視網絡的帶寬波動,通過監視和測量結果,客戶端通過獲取不同方案的片段來保證足夠的緩存,從而適應不同的帶寬。[0007]MPD包含一個或多個周期。一個周期是指媒體文件時間軸上的一個時間集合。每一個時間集合都有一個起始時間和持續時間,包含一個或多個適應集(adaptationset)。每個adaptationset提供一個或多個媒體分量和它的多種編碼選擇的信息。例如,一個adaptationset可能包含同一媒體內容不同比特率的視頻分量,另一個adaptionset可能包含同一媒體內容不同比特率的音頻分量(比如,低質量立體聲和高質量環繞聲),每一個adaptationset通常包含多個描述。[0008]—個表現(Representation)包含同一媒體分量的在不同編碼方式下的片段,與其他表現在比特率、解決方案、通道數或者其他特征方面不同。每一個表現由一個或多個片段組成,片段是時間序列中的媒體流塊(chunk)。每個片段有一個URI,它是服務器上可尋址的地址,可以用HTTPGET或者帶比特范圍的HTTPGET來下載。[0009]為了使用這種數據模型,DASH客戶端首先解析MPD的XML文件,客戶端根據MPD中的描述性元素來選擇它需要使用的描述,描述性元素包括客戶端容量和用戶的選擇。然后客戶端建立時間線,開始播放所需要的正確的媒體分量。每個特征的表述包括有關當前片段的信息,這樣可以使每個分段都用HTTPURI和比特范圍來進行表述。對于實時描述,MPD提供片段的起始時間、結束時間、大概起始時間和片段的不同持續時間。[0010]在DASH協議中,媒體內容可以作為一群片段來獲得。一個片段作為DASH客戶端HTTPGET或者部分HTTPGET的實體回應,媒體內容以成組的片段被編碼和分離。第一個片段是包含初始化DASH客戶端解碼器所需信息的一個初始化片段,并不包含任何實際的媒體數據。[0011]然后媒體流被分成一個或者多個連貫的媒體片段,每一個片段被分配一個URL、一個索引和明確的或者內在的起始時間和持續時間。[0012]為了能夠下載媒體片段,這個規范定義了一種使用片段索引盒來標記片段的方法,這個片段索引盒標記持續時間和字節偏移,從而描述了片段的次片段和流接入點。DASH客戶端可以通過索引信息,用部分HTTPGETS來索取次片段。片段的索引信息可以放在那個片段開頭的單獨的盒子里,或者在片段的眾多索引盒子中進行傳播。可以使用不同的傳播方法,比如分層的、環鏈或混合法。這個技術可以避免在片段的開頭增加一個很大的盒子,從而避免了可能存在的內在(固有)下載延遲。[0013]MPEG-DASH為ISO底層媒體文件格式和MPEG-2傳輸系統定義容器格式。MPEG-DASH的解碼器未知,可以支持復用或者未復用的編碼內容。在MPEG-DASH中,每個adaptiveset可以使用一個保護內容的描述符來描述支持的DRM計劃。Adaptiveset也可以用復用的內容保護計劃,只要客戶端識別至少一個,它就可以解碼內容。[0014]這個標準定義了五個明確的配置文件,每個都可以尋址一個不同類型的應用程序。每一個配置文件都定義了一系列約束條件,將Mro和片段格式限制到整個標準的子集中。因此,一個DASH客戶端的配置文件只需要符合所要求的特征即可,而不需要符合整個標準。一些配置文件被設計成使用可繼承內容從而為非標準的解決方案提供折中路徑。[0015]一些其他的標準組織或聯盟與MPEG合作,在他們的標準中引用MPEG-DASH協議。同時,一些行業正在提供基于MPEG-DASH的解決方案。一些開源的實現方法也在進行中。大家相信,之后兩年將會是這個產業應用這個標準的重要時刻,包括媒體和服務提供者、平臺提供者、軟件供應商、CDN提供者和設備制造商,還有為因特網上建立媒體流之間相互協作系統的重要時刻。[0016]DASH的目標是通過定義一個通用的分發格式來適應因特網上視頻數據的急劇增長,在視頻流式傳輸到他們的設備時為終端用戶提供最佳的視頻體驗及動態自適應變化的網絡條件。它采用專有自適應流媒體解決方案的所有最佳元素,解決用戶流式傳輸視頻時遇到的傳統問題。[0017]MP4封裝格式[0018]媒體封裝格式的實質是為與視頻有關的數據提供一個存放的容器。MP4是一種常見的容器格式,它定義了通用媒體文件結構標準(參見參考文獻[1],Thomasff.GaryS.GisleBOverviewoftheH.264/AVCVideoCodingStandard2003,為了避免使本發明的描述限于冗繁,將該參考文獻通過引用的方式合并于此),理論上講可以在MP4文件中嵌入任何形式的數據。MP4是由很多個box(盒)組成的,box可以互相嵌套,大的box中嵌套小的box,一級一級地存放媒體數據。[0019]MP4的box具有相同的結構,每個box都包含頭部和數據域(數據字段)兩部分,在頭部中存放著整個box的類型和長度信息,box的類型表明了在當前box中會存放音視頻的哪些信息,box的長度指明了當前box在文件中占用的字節數,當box的長度為O時代表這是文件的最后一個box,當長度為I時說明這個box真正的大小需要在另外的地方得到;數據域存放box的實際數據,具體存放的數據由box的類型決定。[0020]MP4文件的box可以由數據組成,也可以嵌套別的子box,結構非常靈活。MP4容器格式幾乎可以描述所有的媒體結構,在蘋果的IOS平臺下只支持MP4格式的文件,在Android平臺下對MP4的支持也非常成熟。在MP4文件中,媒體描述和媒體數據并不是放在一起的,而是分開的兩個部分,在組織MP4結構的時候,可以通過索引來引用其他文件。[0021]碼率切換算法[0022]DASH中同一視頻內容可以有多種碼率,同一碼率的視頻內容是由若干個內容上不重復的片段文件組成,因此實際播放時客戶端可以根據網絡狀況動態選擇不同碼率的片段文件。[0023]研究碼率切換的目的就是為觀眾提供播放質量保障:[0024]1.盡量減少時延、提高平均碼率和避免播放停頓;[0025]2.保證碼率切換的平滑性,避免出現碼率切換幅度過大的問題。[0026]綜合而言,影響碼率切換的因素主要有網絡狀況和現有的緩沖時間長度。[0027]Android平臺視頻的無縫播放(SeamlessPlayback)[0028]現階段Android平臺并沒有一個主流的無縫播放的解決方案,無縫播放的意義,就是一個視頻片段到另一個視頻片段的播放切換可以完美銜接,沒有黑屏,卡頓、跳幀等現象。[0029]現在,MPEG-DASH在PC平臺上的實現正處于測試階段,有各大公司都在致力于實現MPEG-DASH協議,DASH的消息交互主要發生在客戶端和存放好了準備好的媒體內容的DASH服務器之間。DASH客戶端和服務器間的簡單交互流程如下所述。首先在建立TCP連接后,DASH客戶端向服務器發送HTTPGETMPD請求,請求消息中包含了MPD文件的URL信息。服務器收到Mro請求后向客戶端發送TCP數據包形式的Mro文件內容。隨后客戶端解析Mro文件中的媒體特征信息,包括獲得媒體持續時間、比特率、URL地址等等。客戶端向服務器請求媒體片段1,請求消息中包含所請求的媒體片段的比特率、URL等參數。服務器收到媒體片段請求后將對應的媒體片段打包發送至客戶端。客戶端接收到開始播放媒體內容,同時客戶端還啟動自適應機制,在估計可用網絡帶寬后調整下一請求的媒體片段2的比特率,向服務器請求下一個媒體片段2。服務器給客戶端發送相應比特率的媒體片段數據。當客戶端暫停或停止播放時,客戶端和服務器間停止交互消息,底層TCP連接斷開,整個DASH過程就完成了。[0030]摘要封裝方法[0031]視頻摘要用來從視頻數據中快速查找用戶感興趣的內容,對于在線視頻播放來說有著很大的應用意義。現有的摘要封裝方法是動態摘要封裝方法,動態摘要的實質是一段動態視頻,根據需要的不同可以是視頻剪輯、縮略視頻等。視頻剪輯的主要目的是將用戶最感興趣的部分截取出來;縮略視頻是通過一些視頻片段序列的組合或者簡單的視頻幀的組合使用戶對視頻的內容有大致的了解。視頻剪輯有很強的主觀性,所以一般的視頻摘要都是以縮略視頻的方式進行動態摘要的顯示。縮略圖摘要的實現方式是通過抽樣的方法提取整個視頻中的關鍵信息,組成一個縮短的視頻,這種方式可以讓用戶快速瀏覽整個視頻,但是可能會有?目息的損失。[0032]現有的具有視頻摘要的多媒體系統是基于動態摘要的方法實現的,因此摘要box(摘要盒)的設計是為動態摘要服務的,原有系統的視頻摘要信息按圖12所示方式存儲,摘要box的類型是一種自定義的類型“kfra”,這個box由兩個子box組成,第一個是“kfhd”,這個box用來存放“kfra”的基本信息,包括版本、標志、創建時間、修改時間、保留字節以及寬高等字段,其中版本(version)占3個字節,標志(flag)占I個字節,其余每個字段分別占用4個字節,整個“kfhd”占用32字節;另外一個是“kftk”,這個box中存放的是關鍵幀數目、以及每一個關鍵幀所在track(軌道)的音視頻索引。entrytable(條目表)的每個表項會存儲一個24字節的AVIndexEntry結構體,這個結構體包含的信息是視頻數據在文件中的偏移量,entrytable的總大小為sizeof(AVIndexEntry)*關鍵幀數目。[0033]動態摘要的封裝是將關鍵幀信息寫入MP4文件,具體操作過程是:根據一定的摘要提取算法得到關鍵幀的數目和每一個關鍵幀在視頻文件中的偏移量;打開MP4文件,將操作指針移到文件的末尾,在文件的末尾寫入box的類型、box中所包含的數據,然后計算box的總大小并寫入size(大小)字段。[0034]解封裝過程是在服務器端實現的,首先尋找類型為“kfra”的box,如果沒有找到,則表明這個視頻文件不含關鍵幀信息;如果找到了,從“kfhd”中解析得到視頻的寬高信息,保存下來,再從“kftk”中得到關鍵幀的數目,并從MP4文件中提取出相應的音視頻數據,打包之后發送到客戶端,客戶端通過相應的視頻模塊進行解碼播放。[0035]動態摘要的本質是一個縮短的視頻,因此,客戶端在播放的時候順次播放摘要視頻的每一幀圖像,用戶無法與之進行交互。此外,動態摘要中封裝的是未經解碼的視頻裸數據,因此,只有支持MP4格式的解碼器才可以解析動態摘要文件,靈活性低。[0036]基于緩沖等級的碼率切換算法[0037]基于緩沖等級的碼率切換算法是ChristopherMiiller、StefanLederer和ChristianTimmerer提出的,算法考慮到緩沖區的時長這一因素,如果緩沖時間比較充足,即使網絡速率不是很高,也可以選擇相對比較大的碼率片段文件下載。雖然此時會導致下載文件片的時長超過其播放時長,但是由于緩沖區的時間足夠,不易造成播放停頓現象。該算法中的網絡帶寬也是以上一個文件片的下載速率為參考值。[0038]當緩沖區時間比較小時,選擇一個比較小的碼率,緩沖區時間在一定范圍內時不做碼流切換。具體算法如公式所示:【權利要求】1.一種基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統,其包括流媒體服務器、以及客戶端,所述流媒體服務器和所述客戶端以可通信方式連接,所述客戶端用來向所述流媒體服務器請求發送目標視頻,并在所述客戶端本地播放所述目標視頻,其中,所述客戶端包括摘要MPD下載及解析模塊、摘要顯示和選擇模塊、視頻片段MPD下載及解析模塊、以及視頻播放模塊,所述流媒體服務器包括MPD發送模塊,所述MPD發送模塊用來在所述流媒體服務器接收到所述客戶端的所述請求之后,向所述客戶端發送所述目標視頻的摘要MPD文件、以及所述目標視頻的視頻片段MPD文件,所述摘要MPD下載及解析模塊用來從所述流媒體服務器下載并解析所述摘要MPD文件,得到所述目標視頻的摘要畫面、以及所述摘要畫面在所述目標視頻中的位置,所述摘要顯示和選擇模塊用來在所述客戶端上顯示所述摘要畫面,并由用戶選擇其中的一個摘要畫面,并向所述視頻播放模塊通知所述選擇的結果,所述視頻片段MPD下載及解析模塊用來從所述流媒體服務器下載并解析所述視頻片段MPD文件,得到所述目標視頻的視頻片段的播放信息,并將所述播放信息傳送到所述視頻播放模塊,所述視頻播放模塊用來根據所述播放信息、以及所述選擇的結果,確定與所選摘要畫面對應的視頻片段,向所述流媒體服務器請求從該視頻片段開始發送并播放所述目標視頻。2.根據權利要求1所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統,其中,所述摘要MPD下載及解析模塊還用來:在從所述流媒體服務器下載所述摘要MPD文件之后,將所述摘要MPD文件存儲在客戶端本地之后進行解析,得到摘要畫面的數目、每個摘要畫面對應的網址、以及每個摘要畫面在原視頻文件中的位置,所述位置是時間位置或字節位置。3.根據權利要求2所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統,其中,所述摘要顯示和選擇模塊還用來:根據所述摘要MPD下載及解析模塊得到的每個摘要畫面對應的網址,將每個摘要畫面顯示在所述客戶端的顯示器上,所述客戶端的用戶通過點擊所顯示的某個摘要畫面而選擇該摘要畫面。4.根據權利要求3所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統,其中,所述視頻片段MPD下載及解析模塊還用來:從所述流媒體服務器下載所述視頻片段MPD文件之后,將所述視頻片段MPD文件存儲在客戶端本地之后進行解析,得到所述視頻片段的播放信息,所述播放信息包括視頻片段的視頻格式、編解碼器類型、寬度、高度、幀率、網址、視頻片段在原視頻文件中的位置,所述位置是時間位置或字節位置。5.根據權利要求4所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統,其中,所述視頻播放模塊還用來:根據所述播放信息中的視頻片段在原視頻文件中的位置,找到距離所選摘要畫面最近的視頻片段,并向所述流媒體服務器請求從該視頻片段開始發送并播放所述目標視頻。6.根據權利要求5所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控系統,其中,所述流媒體服務器還用來:在向所述客戶端發送視頻片段時,通過以下公式確定要發送的視頻片段的碼率:7.一種基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控方法,其用于包括流媒體服務器、以及客戶端的在線視頻播控系統,所述流媒體服務器和所述客戶端以可通信方式連接,所述在線視頻播控方法包括:步驟I,所述客戶端向所述流媒體服務器請求發送目標視頻;步驟2,所述流媒體服務器在接收到所述客戶端的所述請求之后,向所述客戶端發送所述目標視頻的摘要MPD文件、以及所述目標視頻的視頻片段MPD文件;步驟3,所述客戶端從所述流媒體服務器下載并解析所述摘要MPD文件,得到所述目標視頻的摘要畫面、以及所述摘要畫面在所述目標視頻中的位置;步驟4,在所述客戶端上顯示所述摘要畫面,并由用戶選擇其中的一個摘要畫面,所述客戶端記錄所述選擇的結果;步驟5,所述客戶端從所述流媒體服務器下載并解析所述視頻片段MPD文件,得到所述目標視頻的視頻片段的播放信息;以及步驟6,所述客戶端根據所述播放信息、以及所述選擇的結果,確定與所選摘要畫面對應的視頻片段,向所述流媒體服務器請求從該視頻片段開始發送并播放所述目標視頻。8.根據權利要求7所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控方法,其中,所述客戶端在從所述流媒體服務器下載所述摘要MPD文件之后,將所述摘要MPD文件存儲在客戶端本地之后進行解析,得到摘要畫面的數目、每個摘要畫面對應的網址、以及每個摘要畫面在原視頻文件中的位置,所述位置是時間位置或字節位置。9.根據權利要求8所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控方法,其中,所述客戶端根據所得到的每個摘要畫面對應的網址,向用戶顯示每個摘要畫面,所述用戶通過點擊所顯示的某個摘要畫面而選擇該摘要畫面。10.根據權利要求9所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控方法,其中,所述客戶端從所述流媒體服務器下載所述視頻片段MPD文件之后,將所述視頻片段MPD文件存儲在客戶端本地之后進行解析,得到所述視頻片段的播放信息,所述播放信息包括視頻片段的視頻格式、編解碼器類型、寬度、高度、幀率、網址、視頻片段在原視頻文件中的位置,所述位置是時間位置或字節位置。11.根據權利要求10所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控方法,其中,所述客戶端根據所述播放信息中的視頻片段在原視頻文件中的位置,找到距離所選摘要畫面最近的視頻片段,并向所述流媒體服務器請求從該視頻片段開始發送并播放所述目標視頻。12.根據權利要求11所述的基于MPEG-DASH協議的帶有碼率切換控制和靜態摘要技術的在線視頻播控方法,其中,所述流媒體服務器在向所述客戶端發送視頻片段時,通過以下公式確定要發送的視頻片段的碼率:【文檔編號】H04N21/643GK103974147SQ201410083234【公開日】2014年8月6日申請日期:2014年3月7日優先權日:2014年3月7日【發明者】莊伯金,謝偉男,蘇菲,趙衍運,趙志誠申請人:北京郵電大學