国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數據動態(tài)推送的方法及系統(tǒng)的制作方法

      文檔序號:7722574閱讀:237來源:國知局
      專利名稱:一種數據動態(tài)推送的方法及系統(tǒng)的制作方法
      技術領域
      本發(fā)明涉及流媒體技術領域,尤其涉及一種數據動態(tài)推送的方法及系統(tǒng)。
      背景技術
      流媒體是采用流式傳輸方式、在Internet/Intranet播放的媒體格式。流式傳輸 將整個音/視頻及三維媒體等多媒體文件經過特定的壓縮方式解析成一個個壓縮包,由視 頻服務器向用戶計算機順序或實時傳送??蛻舳藷o需下載完整視頻即可播放視頻。與單純 的下載方式相比,對多媒體文件邊下載邊播放的流式傳輸方式使啟動延時大幅度縮短,系 統(tǒng)緩存容量需求大大降低,可以極大地減少用戶等待時間。微軟流媒體服務(MMS,Microsoft Media krvice)是微軟公司開發(fā)的網絡流媒體 協(xié)議,已成為網絡流媒體廣泛采用的傳輸和控制協(xié)議。除廣泛應用于個人電腦等計算機中, MMS協(xié)議也被應用于手機等移動終端的流媒體業(yè)務中。MMS協(xié)議承載的媒體流通常采用先 進系統(tǒng)格式(ASF,Advanced System format)。基于MMS協(xié)議的流媒體數據傳送到目標客 戶端后,需要進行還原圖像和聲音以進行還原播放;在實現數據的進行還原播放時需要考 慮以下幾個方面(1)數據的編碼方式當前,視頻編碼的方式分為固定比特率(CBR,Constant BitRate)編碼和動態(tài)比特 率(VBR,Variable Bit Rate)編碼;其中,CBR的采樣率為固定值,一段數據流從頭到尾都 采用固定的碼率進行編碼;而VBR采用了動態(tài)調節(jié)技術的壓縮方法,當畫面較為靜態(tài)或者 音頻處在低音段時,則相應地降低碼率;反之,當畫面較為動態(tài)或音頻處在高音段時,則相 應地提升碼率。(2)數據的推送時機直播數據流是對數據的實時傳輸,對數據的實時性要求比較高,因此,確定數據的 推送時機是還原直播流數據的關鍵。(3)數據的推送數量推送數據量的大小會影響還原播放的流暢度,數據量小了,播放不流暢;數據量太 大,會使得媒體播放器的緩沖區(qū)溢出,導致異?!,F有技術中,常規(guī)的數據推送方法是采用固定的速率將數據推送到媒體播放器, 由媒體播放器對數據進行還原;例如,首先解析當前MMS直播數據流的碼率(如得出的碼率 為5001ApS),然后按照數據塊ID的順序向媒體播放器推送數據(如每秒鐘推送5001Λ的數 據),這樣就能夠確定數據推送時機以及數據推送數量。但上述方法只適用于CBR編碼方式的視頻文件,對于動態(tài)碼率編碼的視頻文件, 解析出的碼率為平均碼率,因此,系統(tǒng)會按照平均碼率勻速推送數據。當畫面變化較大時, 實際所需的碼率會提升,但由于推送速度不變,將導致數據量不足,從而發(fā)生視頻播放不流 暢的問題。

      發(fā)明內容
      本發(fā)明要解決的一個技術問題是提供一種數據動態(tài)推送的方法及系統(tǒng),能夠實現 動態(tài)碼率編碼數據的動態(tài)推送。本發(fā)明的一個方面提供了一種數據動態(tài)推送的方法,該方法包括獲取流媒體數 據每個數據塊的起始播放時間戳和播放持續(xù)時間;建立數據塊的起始播放時間戳與數據塊 ID的映射表;根據當前數據塊的起始播放時間戳和播放持續(xù)時間獲知推送下一個數據塊 的起始播放時間戳;通過下一個數據塊的起始播放時間戳,從映射表中查找下一個數據塊 的起始播放時間戳對應的數據塊ID,確定要推送的下一個數據塊;以及根據播放持續(xù)時間 確定的等待時間后將下一個數據塊推送給播放器。本發(fā)明提供的數據動態(tài)推送的方法的一個實施例中,該方法進一步包括將下一 個數據塊推送給播放器后,判斷流媒體數據的所有數據塊推送是否結束;如果流媒體數據 的所有數據塊推送沒有完成,則繼續(xù)根據播放器的播放進度獲知推送下一個數據塊的下一 個數據塊的起始播放時間戳。本發(fā)明提供的數據動態(tài)推送的方法的一個實施例中,該方法進一步包括將下一 個數據塊推送給播放器后,對實際等待時間進行補償以使下一個數據塊的下一個數據塊在 其起始播放時間戳被推送。本發(fā)明提供的數據動態(tài)推送的方法的一個實施例中,實際等待時間由剛推送的下 一個數據塊的播放持續(xù)時間減去查找和推送的時間。本發(fā)明提供的數據動態(tài)推送的方法的一個實施例中,查找和推送的時間是由已獲 取的查找和推送的時間的均值決定的。本發(fā)明的一個方面提供了一種數據動態(tài)推送的系統(tǒng),該系統(tǒng)包括解析模塊,用于 從網絡側設備接收流媒體數據,解析流媒體數據獲取每個數據塊的起始播放時間戳和播放 持續(xù)時間,并向存儲模塊發(fā)送數據塊的起始播放時間戳和播放持續(xù)時間;存儲模塊,用于接 收數據塊的起始播放時間戳和播放持續(xù)時間,存儲數據塊的起始播放時間戳和數據塊ID ; 獲取模塊,用于根據當前數據塊的起始播放時間戳和播放持續(xù)時間獲知推送下一個數據塊 的起始播放時間戳;通過下一個數據塊的起始播放時間戳從存儲模塊查找下一個數據塊的 數據塊ID,確定要推送的下一個數據塊;根據當前數據塊的播放持續(xù)時間確定等待時間; 以及推送模塊,用于在等待時間后,將下一個數據塊推送給播放器。本發(fā)明提供的數據動態(tài)推送的系統(tǒng)的一個實施例中,該系統(tǒng)還包括判斷模塊,用 于推送模塊將數據塊推送給播放器后,判斷流媒體數據的所有數據塊推送是否結束;如果 流媒體數據的所有數據塊推送沒有完成,則向獲取模塊下發(fā)指令,由獲取模塊繼續(xù)根據播 放器的播放進度獲知推送下一個數據塊的下一個數據塊的起始播放時間戳。本發(fā)明提供的數據動態(tài)推送的系統(tǒng)的一個實施例中,該系統(tǒng)還包括補償模塊,用 于推送模塊將數據塊推送給播放器后,對推送模塊的實際等待時間進行補償以使數據塊的 下一個數據塊在其起始播放時間戳被推送。本發(fā)明提供的數據動態(tài)推送的系統(tǒng)的一個實施例中,推送模塊的實際等待時間由 剛推送的下一個數據塊的播放持續(xù)時間減去獲取模塊獲取數據塊ID的查找時間和推送模 塊推送數據塊的發(fā)送時間。本發(fā)明提供的數據動態(tài)推送的系統(tǒng)的一個實施例中,查找時間和發(fā)送時間是由已
      5獲取的查找時間和發(fā)送時間的均值決定的。本發(fā)明提供的數據動態(tài)推送的方法及系統(tǒng),通過獲取當前數據塊的播放時間戳和 播放持續(xù)時間,并根據上述兩項參數對推送器推送下一個數據塊的推送時機進行控制,從 而克服了現有技術推送VBR編碼的視頻會造成播放不流暢的問題。


      圖1示出ASF格式數據中數據塊ID、SRC和Duration與播放時間的對應關系圖;圖2示出本發(fā)明提供的一種數據動態(tài)推送的方法的一個實施例的流程圖;圖3示出本發(fā)明提供的一種數據動態(tài)推送的方法的另一個實施例的流程圖;圖4示出本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的一個實施例的結構示意圖;圖5示出本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的另一個實施例的結構示意圖;圖6示出推送器理論工作時間軸與其實際工作時間軸之間的效果對比圖;圖7示出本發(fā)明提供的一種數據動態(tài)推送的方法的再一個實施例的流程圖;圖8示出本發(fā)明提供的一種數據動態(tài)推送的方法中推送器理論工作時間軸與其 實際工作時間軸之間的效果對比圖;圖9示出本發(fā)明提供的一種數據動態(tài)推送的方法的一個具體實施例的流程圖;圖10示出本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的再一個實施例的結構示意 圖;圖11示出本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的一個具體實施例的結構示意 圖。
      具體實施例方式下面參照附圖對本發(fā)明進行更全面的描述,其中說明本發(fā)明的示例性實施例。圖1示出ASF格式數據中數據塊ID、SRC和Duration與播放時間的對應關系圖。 基于MMS協(xié)議編碼的流媒體文件,每個數據塊都具有一個數據塊ID,此ID用于標識各個數 據塊的播放順序。如圖1所示,一個基于匪S協(xié)議的視頻的播放時長為30秒,并且分為8 個ASF數據塊,每個數據塊都具有各自的ID (如圖1中的數字1-8)、SRC(Source的縮寫,如 圖1中的字符“S”)以及Duration (如圖1中的字符“D”);其中,SRC表示當前數據塊基于 啟示播放時間軸的播放時間戳,Duration表示當前數據塊播放所持續(xù)的時間。所有數據塊 的Duration相加得出數據流播放的總時長。根據前述介紹可以知曉還原播放需要確定數 據的推送時機以及推送數據量。圖2示出本發(fā)明提供的一種數據動態(tài)推送的方法的一個實施例的流程圖。如圖2所示,數據動態(tài)推送的方法流程200中,步驟202,獲取流媒體數據中每 個數據塊的起始播放時間戳和播放持續(xù)時間。例如,以基于匪S協(xié)議所承載的ASF格式 的流媒體數據為例,當該流媒體數據從網絡傳送至客戶端時,推送器接收并解析該ASF格 式的流媒體數據,以獲取每個數據塊的兩個參數起始播放時間戳(SRC)和播放持續(xù)時間 (Duration)。本發(fā)明中推送器可以位于本地的客戶端,可以是P2P的播放軟件中一個組件, 生成的映射表也是存在本地;一個例子就是PPLive的播放客戶端,數據塊被推送至播放器 后,數據塊可以立即播放。
      步驟204,建立數據塊的起始播放時間戳與數據塊ID的映射表。例如,對ASF格式 的數據塊進行解析后,獲取每個數據塊的SCR和ID參數,并建立兩者對應的映射表,以便推 送器從映射表中根據SCR查找到數據塊ID,進而查找到具體數據塊。步驟206,根據當前數據塊的起始播放時間戳和播放持續(xù)時間獲知推送下一個數 據塊的起始播放時間戳。例如,根據播放器的播放進度(包含當前數據塊的起始播放時 間戳和播放持續(xù)時間等信息),能夠知曉當前正在播放的數據塊的持續(xù)時間;根據已經播 放的數據塊的持續(xù)時間和正在播放的數據塊所要持續(xù)的時間能夠獲知待推送的下一個數 據塊的起始播放時間戳(即當前播放的數據塊的下一個待推送的數據塊的起始播放時間 戳)。步驟208,通過下一個數據塊的起始播放時間戳,從映射表中查找下一個數據塊的 起始播放時間戳對應的數據塊ID,確定要推送的下一個數據塊和下一個數據塊的播放持續(xù) 時間。例如,根據該下一個數據塊的起始播放時間戳,通過查詢映射表,從而獲取該下一個 數據塊的起始播放時間戳對應的數據塊ID,進而查找到該下一個數據塊及其播放持續(xù)時 間。步驟210,根據播放持續(xù)時間確定的等待時間后將該下一個數據塊推送給播放器。 例如,推送器按照該下一個數據塊的起始播放時間戳,將該下一個數據塊推送給播放器,隨 后由播放器播放該下一個數據塊。針對VBR編碼的視頻播放不流暢的問題,本發(fā)明提供的數據動態(tài)推送的方法,通 過獲取當前數據塊的播放時間戳和播放持續(xù)時間,并根據上述兩項參數對推送器推送下一 個數據塊的推送時機進行控制,從而能夠實現動態(tài)碼率編碼數據的動態(tài)推送。圖3示出本發(fā)明提供的一種數據動態(tài)推送的方法的一個實施例的流程圖。如圖3所示,數據動態(tài)推送的方法流程300中,步驟302-步驟310可以分別執(zhí)行 與圖2所示的步驟202-步驟210相同或相似的技術內容,為簡潔起見,這里不再贅述其技 術內容。如圖3所示,在步驟310“根據播放持續(xù)時間確定的等待時間后將下一個數據塊推 送給播放器”之后,執(zhí)行步驟312,判斷流媒體數據的所有數據塊推送是否結束。例如,推送 器根據播放持續(xù)時間確定的等待時間將該下一個數據塊推送給播放器后,判斷流媒體數據 的所有數據塊推送是否結束;可能的場景包括用戶提前結束視頻播放,因此,無需再繼續(xù) 傳送該視頻文件的數據塊;針對這種情形,客戶端或推送器可以通過捕捉用戶的操作(如 停止、暫停等)來判斷;第二種情形是視頻的自然結束,可以通過各個數據塊的播放持續(xù)時 間(Duration)和視頻的實際播放總時間長度來判斷。如果流媒體數據的所有數據塊都推 送結束,則推送器停止數據塊推送,處于idle狀態(tài);否則,跳轉到步驟306,重復執(zhí)行步驟 306-步驟 310。圖4示出本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的一個實施例的結構示意圖。如圖4所示,數據動態(tài)推送的系統(tǒng)400包括解析模塊402、存儲模塊404、獲取模 塊406和推送模塊408。其中,解析模塊402,用于從網絡側設備401接收流媒體數據(如ASF格式的流媒 體數據),解析該ASF格式的流媒體數據,獲取每個數據塊的起始播放時間戳和播放持續(xù)時 間,并向存儲模塊404發(fā)送數據塊的起始播放時間戳和播放持續(xù)時間等信息。
      存儲模塊404,用于接收解析模塊402發(fā)送的所述數據塊的起始播放時間戳和播 放持續(xù)時間,存儲每個數據塊的起始播放時間戳和數據塊ID(如建立起始播放時間戳和數 據塊ID的映射表)。獲取模塊406,用于根據播放器409的當前數據塊的起始播放時間戳和播放持續(xù) 時間獲知推送下一個數據塊的起始播放時間戳;通過下一個數據塊的起始播放時間戳,向 存儲模塊404發(fā)起查詢請求,并從映射表中查找下一個數據塊的起始播放時間戳對應的數 據塊ID,確定要推送的下一個數據塊;根據當前數據塊的播放持續(xù)時間確定等待時間。推送模塊408,用于在獲取模塊406確定的等待時間后,將該下一個數據塊推送給 播放器409。圖5示出本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的一個實施例的結構示意圖。如圖5所示,數據動態(tài)推送的系統(tǒng)500主要包括解析模塊502、存儲模塊504、獲 取模塊506、推送模塊508和判斷模塊910 ;其中,解析模塊502、存儲模塊504、獲取模塊506 和推送模塊508分別可以是與圖4所示解析模塊402、存儲模塊404、獲取模塊406和推送 模塊408具有相同或相似的功能模塊;為簡潔起見,這里不再贅述。如圖5所示,判斷模塊510,用于推送模塊508將數據塊推送給播放器509后,判斷 流媒體數據的所有數據塊推送是否結束(例如,推送模塊508推送的當前數據塊是否是流 媒體數據的最后一個數據塊)。如果數據塊推送沒有完成,則向獲取模塊506下發(fā)指令,由 獲取模塊506繼續(xù)根據播放器509的播放進度獲知推送下一個數據塊的起始播放時間戳。 如果數據塊推送完成(例如,用戶結束或暫停視頻播放或者視頻播放自然結束),則推送模 塊508停止推送數據塊。采用本發(fā)明前述提及的數據動態(tài)推送的方法及系統(tǒng),在推送器按照數據塊ID順 序以及SCR時間戳向客戶端推送數據的過程中,推送器需要查找數據塊,推送器向客戶端 推送數據都會消耗一定的時間。如果推送器在向客戶端推送數據后,再按照Duration所規(guī) 定的時間進行等待,實際的每個數據塊持續(xù)的時間會比理論時間大。圖6示出推送器理論 工作時間軸與其實際工作時間軸之間的效果對比圖。如圖6所示,第一行代表推送器向播 放器推送數據塊的理論工作時間狀態(tài),推送器按照SRC時間戳和Duration規(guī)定的持續(xù)時間 順序推送所示數據塊;但是在實際推送的過程中,由于推送器查找到數據塊ID和推送該數 據塊ID對應的數據塊要消耗一定的時間(如圖6所示的查找和推送時間),因此,在推送器 向播放器推送一個數據塊后,如果再等待Duration所持續(xù)的播放時間,將會導致下一個數 據塊的推送時間被延后(如圖6第二行所示的推送器實際工作時間軸,即查找和推送時間 段和休眠/等待時間段),從而導致在理論時刻點應該播放下一個數據塊時,播放器的播放 數據量不足,從而造成視頻播放不流暢的問題。為進一步解決推送器準確推送數據塊的技 術問題,本發(fā)明給出了如下技術方案,用以對推送器查找數據塊及推送數據塊的時間進行 補償,從而避免數據塊推送的延遲問題。圖7示出本發(fā)明提供的一種數據動態(tài)推送的方法的一個實施例的流程圖。本發(fā) 明以直播互聯(lián)網上基于MMS協(xié)議和ASF格式封裝的流媒體為例進行說明,適用于Peer to Peer架構和Client-Server架構的系統(tǒng)。如圖7所示,數據動態(tài)推送的方法流程900中,步驟902-步驟710可以分別執(zhí)行 與圖2所示的步驟202-步驟210相同或相似的技術內容,為簡潔起見,這里不再贅述其技
      8術內容。如圖7所示,在步驟710 “根據播放持續(xù)時間確定的等待時間后將下一個數據塊 推送給播放器”之后,執(zhí)行步驟712,對推送器的實際等待時間進行補償。例如,推送器根 據播放持續(xù)時間確定的等待時間將該下一個數據塊推送至播放器后,播放器對當前接收 到的數據塊進行播放,并持續(xù)播放相應的播放時間(Duration),此時,推送器進入等待狀 態(tài)。如果再等待當前數據塊所持續(xù)的播放時間(Duration),將會導致下一個數據塊的推送 時間延后;為避免數據塊推送的延遲所造成的播放不流暢的問題,需要對推送器等待的時 間進行補償。具體來說,補償后推送器等待的時長不再是剛推送的數據塊的播放持續(xù)時間 (Duration),而是由剛推送數據塊的播放持續(xù)時間(Duration)減去所需要補償的時間t得 到,其中,所需要補償的時間t主要由推送器完成查找和推送操作的速度決定,這與推送器 所在客戶端的計算機性能密切相關。補償的時間t可以通過在客戶端所在的計算機上預裝 軟件的方式來動態(tài)測量獲得,從而計算出推送器在該計算機上進行查找和推送操作所花費 的時間t。本發(fā)明提供的數據動態(tài)推送的方法的一個實施例中,對推送器的實際等待時間進 行補償進一步包括測量推送器查找下一個數據塊ID以及將該下一個數據塊推送給播放 器所花費的時間t ;由該下一個數據塊播放持續(xù)時間(Duration)減去推送器所花費的時間 t即可獲得推送器在該下一個數據塊播放持續(xù)時間段內實際等待的時間。本發(fā)明提供的數據動態(tài)推送的方法的一個實施例中,也可以根據前面所獲取的需 要補償的時間的平均值作為下一次推送器所需要補償的時間t。本發(fā)明提供的數據動態(tài)推送的方法中,在推送器查找到數據塊ID,并將該數據塊 ID對應的數據塊推送給播放器之后,對推送器處于休眠/等待狀態(tài)的時間進行補償;其休 眠/等待的時間不再是對應數據塊持續(xù)播放的時間,而是該數據塊持續(xù)播放的時間減去推 送器查找和推送的時間;從而保證在下一個數據塊的起始播放時間戳時,推送器能夠準確 開始向播放器查找和推送下一個數據塊,從而實現播放器對直播等實時性要求較高的視頻 進行流程播放。圖8示出本發(fā)明提供的一種數據動態(tài)推送的方法中推送器理論工作時間軸與其 實際工作時間軸之間的效果對比圖。如圖8所示,第一行代表推送器向播放器推送數據塊的理論工作時間狀態(tài),推送 器按照SRC時間戳和Duration規(guī)定的持續(xù)時間順序推送所示數據塊;但是在實際推送的過 程中,推送器查找到數據塊ID和推送該數據塊ID對應的數據塊消耗一定的時間,為避免由 于推送器查找和推送消耗的時間造成推送器推送下一個數據塊的推送時間被延后;本發(fā)明 提供的一種數據動態(tài)推送的方法對推送器處于休眠/等待的時間進行補償處理,如圖8第 二行所示的推送器實際工作時間軸(即查找和推送時間段和休眠/等待時間段)所示,在 理論時刻點應該播放下一個數據塊時,推送器能夠準時開始推送下一個數據塊,從而保證 播放器能夠及時接收到播放數據,解決了視頻播放不流暢的問題。圖9示出本發(fā)明提供的一種數據動態(tài)推送的方法的一個具體實施例的流程圖。如圖9所示,數據動態(tài)推送的方法流程900中,步驟902,獲取流媒體數據每個數據 塊的起始播放時間戳和播放持續(xù)時間。例如,以基于MMS協(xié)議所承載的ASF格式的流媒體數 據為例,當該流媒體數據從網絡傳送至客戶端時,推送器接收并解析該ASF格式的流媒體數據,以獲取每個數據塊的兩個參數起始播放時間戳(SRC)和播放持續(xù)時間(Duration)。步驟904,建立數據塊的起始播放時間戳與數據塊ID的映射表。例如,對ASF格式 的數據塊進行解析后,獲取每個數據塊的SCR和ID參數,并建立兩者對應的映射表,以便推 送器從映射表中根據SCR查找到數據塊ID,進而查找到具體數據塊。步驟906,根據當前數據塊的起始播放時間戳和播放持續(xù)時間獲知推送下一個數 據塊的起始播放時間戳。例如,根據播放器的播放進度(如當前數據塊的起始播放時間戳 和播放持續(xù)時間),能夠知曉當前正在播放的數據塊的持續(xù)時間;根據已經播放的數據塊 的持續(xù)時間和正在播放的數據塊所要持續(xù)的時間能夠獲知待推送的下一個數據塊的起始 播放時間戳(即當前播放的數據塊的下一個待推送的數據塊的起始播放時間戳)。步驟908,通過下一個數據塊的起始播放時間戳,從映射表中查找下一個數據塊的 起始播放時間戳對應的數據塊ID,確定要推送的下一個數據塊和下一個數據塊的播放持續(xù) 時間。例如,根據該下一個數據塊的起始播放時間戳,通過查詢映射表,從而獲取該下一個 數據塊的起始播放時間戳對應的數據塊ID,進而查找到該下一個數據塊及其播放持續(xù)時 間。步驟910,根據播放持續(xù)時間確定的等待時間后將該下一個數據塊推送給播放器。 例如,推送器根據播放持續(xù)時間確定的等待時間后(也就是按照該下一個數據塊的起始播 放時間戳),將該下一個數據塊推送給播放器,隨后由播放器播放該下一個數據塊。步驟912,對推送器的實際等待時間進行補償。例如,推送器將該下一個數據塊 推送至播放器后,播放器對當前接收到的數據塊進行播放,并持續(xù)播放相應的播放時間 (Duration),此時,推送器進入等待狀態(tài)。為避免數據塊推送的延遲所造成的播放不流暢的 問題,需要對推送器等待的時間進行補償,補償后推送器等待的時長不再是剛推送的數據 塊的播放持續(xù)時間(Duration),而是由剛推送數據塊的播放持續(xù)時間(Duration)減去推 送器進行查找和推送操作所花費的時間t。步驟914,判斷流媒體數據的所有數據塊推送是否結束。例如,推送器將該下一個 數據塊推送給播放器后,判斷流媒體數據的所有數據塊推送是否結束(用戶是否提前結束 視頻播放或者是視頻的自然結束)。如果流媒體數據的所有數據塊都推送結束,則推送器停 止數據塊推送,處于idle狀態(tài);否則,跳轉到步驟906,重復執(zhí)行步驟906-步驟914。圖10示出本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的一個實施例的結構示意圖。如圖10所示,數據動態(tài)推送的系統(tǒng)1000主要包括解析模塊1002、存儲模塊 1004、獲取模塊1006、推送模塊1008和補償模塊1010 ;其中,解析模塊1002、存儲模塊 1004、獲取模塊1006和推送模塊1008分別可以是與圖4所示解析模塊402、存儲模塊404、 獲取模塊406和推送模塊408具有相同或相似的功能模塊;為簡潔起見,這里不再贅述。如圖10所示,補償模塊1010,用于推送模塊1008將數據塊推送給播放器1009后, 對推送模塊1008的實際等待時間進行補償以使數據塊的下一個數據塊在其起始播放時間 戳被推送。本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的一個實施例中,推送模塊1008的實際 等待時間由剛推送的下一個數據塊的播放持續(xù)時間減去獲取模塊1006查找數據塊ID的查 詢時間和推送模塊1008推送數據塊的推送時間。本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的一個實施例中,獲取模塊1006查找數據塊ID的查詢時間和推送模塊1008推送數據塊的推送時間可以由已獲取的查找時間和推 送時間的均值決定。圖11示出本發(fā)明提供的一種數據動態(tài)推送的系統(tǒng)的一個具體實施例的結構示意 圖。如圖11所示,數據動態(tài)推送的系統(tǒng)1100主要包括解析模塊1102、存儲模塊 1104、獲取模塊1106、推送模塊1108、判斷模塊1110和補償模塊1112。其中,解析模塊1104,用于從網絡側設備1101接收流媒體數據(如ASF格式的流 媒體數據),解析該ASF格式的流媒體數據,獲取每個數據塊的起始播放時間戳和播放持續(xù) 時間,并向存儲模塊1104發(fā)送數據塊的起始播放時間戳和播放持續(xù)時間等信息。存儲模塊1104,用于接收解析模塊1102發(fā)送的起始播放時間戳和播放持續(xù)時間, 建立并存儲每個數據塊的起始播放時間戳與數據塊ID的映射表。獲取模塊1106,用于根據播放器1109的播放進度獲知推送下一個數據塊的起始 播放時間戳;通過下一個數據塊的起始播放時間戳,向存儲模塊1104發(fā)起查詢請求,并從 映射表中查找下一個數據塊的起始播放時間戳對應的數據塊ID,確定要推送的下一個數據 塊和下一個數據塊的播放持續(xù)時間。推送模塊1108,用于根據獲取模塊1106確定的要推送的下一個數據塊,將該下一 個數據塊推送給播放器1109。判斷模塊1110,用于推送模塊1108將數據塊推送給播放器1109后,判斷流媒體數 據的所有數據塊推送是否結束。如果流媒體數據的所有數據塊推送沒有完成,則向獲取模 塊1106下發(fā)指令,由獲取模塊1106繼續(xù)根據播放器1109的播放進度獲知推送下一個數據 塊的起始播放時間戳。如果流媒體數據的所有數據塊推送完成(例如,用戶結束或暫停視 頻播放或者視頻播放自然結束),則推送模塊1108停止推送數據塊。補償模塊1112,用于推送模塊1108將數據塊推送給播放器1109后,對推送模塊 1108的實際等待時間進行補償以使數據塊的下一個數據塊在其起始播放時間戳被推送; 其中,推送模塊1108的實際等待時間由剛推送的下一個數據塊的播放持續(xù)時間減去獲取 模塊1106查找數據塊ID的查找時間和推送模塊1108推送數據塊的推送時間。參考前述本發(fā)明示例性的描述,本領域技術人員可以清楚的知曉本發(fā)明具有以下 優(yōu)點1)針對現有技術推送VBR編碼的視頻會造成播放不流暢的問題,本發(fā)明提供的數 據動態(tài)推送的方法及系統(tǒng),通過獲取當前數據塊的播放時間戳和播放持續(xù)時間,并根據上 述兩項參數對推送器推送下一個數據塊的推送時機進行控制,從而能夠實現動態(tài)碼率編碼 數據的動態(tài)推送、流暢播放。2)進一步地,本發(fā)明提供的數據動態(tài)推送的方法及系統(tǒng),在推送器向播放器推送 一個數據塊后,對推送器處于休眠/等待狀態(tài)的時間進行補償;其休眠/等待的時間不再 是對應數據塊持續(xù)播放的時間,而是該數據塊持續(xù)播放的時間減去推送器查找和推送的時 間,從而保證在下一個數據塊的起始播放時間戳時,推送器能夠準確開始向播放器查找和 推送下一個數據塊,從而實現播放器對直播等實時性要求較高的視頻進行流程播放。3)進一步地,本發(fā)明提供的數據動態(tài)推送的方法及系統(tǒng),能夠動態(tài)適應數據流的 碼率變化,準確地推送流媒體的數據塊,實現了視頻的流暢播放,滿足了用戶觀看直播等實時性視頻節(jié)目;同時也有利于提高運營商的服務水平,有利于新業(yè)務的推廣。
      本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明 限于所公開的形式。很多修改和變化對于本領域的普通技術人員而言是顯然的。選擇和描 述實施例是為了更好說明本發(fā)明的原理和實際應用,并且使本領域的普通技術人員能夠理 解本發(fā)明從而設計適于特定用途的帶有各種修改的各種實施例。
      權利要求
      1.一種數據動態(tài)推送的方法,其特征在于,所述方法包括獲取流媒體數據每個數據塊的起始播放時間戳和播放持續(xù)時間;建立所述數據塊的起始播放時間戳與數據塊ID的映射表;根據當前數據塊的起始播放時間戳和播放持續(xù)時間獲知推送下一個數據塊的起始播 放時間戳;通過所述下一個數據塊的起始播放時間戳,從所述映射表中查找所述下一個數據塊的 起始播放時間戳對應的數據塊ID,確定要推送的所述下一個數據塊;以及根據所述播放持續(xù)時間確定的等待時間后,將所述下一個數據塊推送給所述播放器。
      2.根據權利要求1所述的方法,其特征在于,所述方法進一步包括將所述下一個數據 塊推送給所述播放器后,判斷所述流媒體數據的所有數據塊推送是否結束;如果所述流媒體數據的所有數據塊推送沒有完成,則繼續(xù)根據所述播放器的播放進度 獲知推送所述下一個數據塊的下一個數據塊的起始播放時間戳。
      3.根據權利要求1所述的方法,其特征在于,所述方法進一步包括將所述下一個數據 塊推送給所述播放器后,對實際等待時間進行補償以使所述下一個數據塊的下一個數據塊 在其起始播放時間戳被推送。
      4.根據權利要求1所述的方法,其特征在于,所述等待時間為所述下一個數據塊的播 放持續(xù)時間減去所述查找和推送的時間。
      5.根據權利要求4所述的方法,其特征在于,所述查找和推送的時間是由已獲取的所 述查找和推送的時間的均值決定的。
      6.一種數據動態(tài)推送的系統(tǒng),其特征在于,所述系統(tǒng)包括解析模塊,用于接收流媒體數據,解析所述流媒體數據獲取每個數據塊的起始播放時 間戳和播放持續(xù)時間,并向存儲模塊發(fā)送所述數據塊的起始播放時間戳和播放持續(xù)時間;所述存儲模塊,用于接收所述數據塊的起始播放時間戳和播放持續(xù)時間,存儲所述數 據塊的起始播放時間戳和數據塊ID ;獲取模塊,用于根據當前數據塊的起始播放時間戳和播放持續(xù)時間獲知推送下一個數 據塊的起始播放時間戳;通過所述下一個數據塊的起始播放時間戳從所述存儲模塊查找所 述下一個數據塊的數據塊ID,確定要推送的所述下一個數據塊;根據所述當前數據塊的播 放持續(xù)時間確定等待時間;以及推送模塊,用于在所述等待時間后,將所述下一個數據塊推送給所述播放器。
      7.根據權利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括判斷模塊,用于判斷所 述流媒體數據的所有數據塊推送是否結束;如果所述流媒體數據的所有數據塊推送沒有完 成,則向所述獲取模塊下發(fā)指令,由所述獲取模塊繼續(xù)根據所述播放器的播放進度獲知推 送所述下一個數據塊的下一個數據塊的起始播放時間戳。
      8.根據權利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括補償模塊,用于對所述 推送模塊的實際等待時間進行補償以使所述數據塊的下一個數據塊在其起始播放時間戳 被推送。
      9.根據權利要求6所述的系統(tǒng),其特征在于,所述推送模塊的實際等待時間由剛推送 的所述下一個數據塊的播放持續(xù)時間減去所述獲取模塊獲取所述數據塊ID的查找時間和 所述推送模塊推送所述數據塊的推送時間。
      10.根據權利要求9所述的方法,其特征在于,所述查找時間和所述發(fā)送時間是由已獲 取的所述查找時間和所述推送時間的均值決定的。
      全文摘要
      本發(fā)明公開一種數據動態(tài)推送的方法及系統(tǒng),該方法包括獲取流媒體數據每個數據塊的起始播放時間戳和播放持續(xù)時間;建立數據塊的起始播放時間戳與數據塊ID的映射表;根據當前數據塊的起始播放時間戳和播放持續(xù)時間獲知推送下一個數據塊的起始播放時間戳;通過下一個數據塊的起始播放時間戳,從映射表中查找下一個數據塊的起始播放時間戳對應的數據塊ID,確定要推送的下一個數據塊;以及根據播放持續(xù)時間確定的等待時間后,將下一個數據塊推送給播放器。本發(fā)明通過獲取當前數據塊的播放時間戳和播放持續(xù)時間,并根據上述兩項參數對推送器推送下一個數據塊的推送時機進行控制,從而能夠實現動態(tài)碼率編碼數據的動態(tài)推送、流暢播放。
      文檔編號H04N21/8547GK102098571SQ20091025813
      公開日2011年6月15日 申請日期2009年12月14日 優(yōu)先權日2009年12月14日
      發(fā)明者龐濤, 張志健, 梁潔, 武娟, 黃海, 龍斌 申請人:中國電信股份有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1