国产精品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>

      自適應播放flv媒體流的方法、客戶端和系統(tǒng)的制作方法

      文檔序號:7761331閱讀:272來源:國知局
      專利名稱:自適應播放flv媒體流的方法、客戶端和系統(tǒng)的制作方法
      技術領域
      本發(fā)明涉及媒體流播放領域,尤其涉及一種自適應播放FLV媒體流的方法、客戶%5和系統(tǒng)。
      背景技術
      目前自適應移動流媒體協(xié)議主要包括自適應RTSP協(xié)議(Real Time StreamingProtocol,實時流傳輸協(xié)議)、自適應RTMP協(xié)議(Real Time Messaging Protocol,實時消息傳輸協(xié)議)、Smooth streaming (平滑流)和自適應 HTTP (HyperText Transfer Protocol,超文本傳輸協(xié)議)漸進下載(Adaptive Progressive Downloading)。RTSP協(xié)議在3GPP中已經制定,RTMP、HTTP PD (HTTP Progressive Downloading, HTTP 漸進下載)在互聯(lián)網(wǎng)上已經取代了 RTSP流媒體協(xié)議,隨著移動網(wǎng)的帶寬的增加,手機流媒體協(xié)議也將由RTSP向HTTP PD演進,這個趨勢已經在iPHONE、Silverlight和Adobe上得到驗證。HTTP流媒體是以HTTP為基礎傳輸協(xié)議的流媒體協(xié)議族的統(tǒng)稱。國內外已有多種形式的HTTP流媒體應用,典型的有簡單HTTP PD協(xié)議,特征是使用HTTP協(xié)議對3GP ( 一種3G流媒體的視頻編碼格式)、MP4、FLV(FLASH VIDEO)格式的文件進行漸進下載,邊下載邊播放。典型應用是各大互聯(lián)網(wǎng)視頻網(wǎng)站,以及這些網(wǎng)站的手機版本。HTTP Adaptive streaming.由蘋果公司首創(chuàng),已經在蘋果公司產品及部分互聯(lián)網(wǎng)視頻公司采用。協(xié)議已提交IETF作為Draft標準。特征是采用m2ts切片封裝,支持動態(tài)自適應多碼率。Smooth streaming由微軟公司發(fā)明,使用Smooth streaming的流媒體服務器稱為Silver light。主要特征是修改了 3GP/MP4文件的封裝,采用文件內分片的方式,同樣支持動態(tài)自適應多碼率。Dynamic streaming. Adobe公司的HTTP流媒體協(xié)議,媒體傳輸方式可以采用Adobe的私有協(xié)議RTMP (Real Time Messaging Protocol),也支持目前流媒體流行米用的HTTP PD (Progressive Download)協(xié)議,主要通過服務器側控制碼率切換,適用于FLV視頻。在以上協(xié)議中,除第一種簡單ro外,其他幾種都采用了更進一步的機制支持多碼率。目前制約流媒體寬帶應用發(fā)展的核心問題在于服務質量。簡單地說,由于因特網(wǎng)的狀況是不可靠的,其帶寬、負荷等變化劇烈,這難以滿足流媒體寬帶業(yè)務的實時性服務質量要求,常常造成播放卡殼、延遲、視頻質量抖動劇烈等不良情況,給使用者感官造成很大影響。所以解決好流媒體寬帶應用的服務質量問題對于流媒體寬帶應用是極為重要的。

      發(fā)明內容
      有鑒于此,本發(fā)明要解決的一個技術問題是提供一種自適應播放FLV媒體流的方法,提高FLV媒體流的播放質量。
      一種自適應播放FLV媒體流的方法,包括下載FLV索引文件;其中,所述FLV索引文件包含視頻編碼關鍵幀在時間軸上的時間點與FLV媒體流的字節(jié)偏移量之間的映射關系;當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀;從所述當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流。根據(jù)本發(fā)明方法的一個實施例,所述監(jiān)測當前網(wǎng)絡帶寬具體為根據(jù)客戶端緩沖區(qū)接收下載的FLV媒體流字節(jié)數(shù)和FLV媒體流下載時間確定當前網(wǎng)絡帶寬,判斷是否需要
      調整碼率。根據(jù)本發(fā)明方法的一個實施例,所述下載FLV索引文件包括對于點播類業(yè)務,在播放FLV媒體流之前,客戶端向服務器請求下載與所述FLV媒體流對應的FLV索引文件;客戶端接收服務器返回的所述FLV媒體不同碼率的媒體文件所對應的索引文件。根據(jù)本發(fā)明方法的一個實施例,所述當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀包括客戶端開始下載并播放低碼率的所述FLV媒體流;客戶端實時計算網(wǎng)絡帶寬,當網(wǎng)絡帶寬達到下載高碼率的所述FLV媒體流所需的帶寬時,所述客戶端根據(jù)所述FLV索引文件,確定媒體流切換的關鍵幀位置,獲取高碼率的所述FLV媒體流中最接近所述關鍵幀位置的關鍵幀所對應的字節(jié)偏移量;從所述當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流包括從所述字節(jié)偏移量開始下載高碼率的所述FLV媒體流,并播放高碼率的所述FLV媒體流。根據(jù)本發(fā)明方法的一個實施例,所述當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀包括當網(wǎng)絡帶寬不滿足高碼率的所述FLV媒體流所需的帶寬時,所述客戶端根據(jù)所述FLV索引文件,確定媒體流切換的關鍵幀位置,獲取低碼率的所述FLV媒體流中最接近所述關鍵幀位置的關鍵幀所對應的字節(jié)偏移量;所述從所述當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流包括從所述字節(jié)偏移量開始下載低碼率的所述FLV媒體流,并播放低碼率的所述FLV媒體流。根據(jù)本發(fā)明方法的一個實施例,客戶端使用多個緩存區(qū),隔離分開緩存下載的不同碼率的所述FLV媒體流。根據(jù)本發(fā)明方法的一個實施例,所述客戶端開始下載并播放低碼率的所述FLV媒體流時,在所述客戶端輸入或點擊所述FLV媒體流對應的邏輯URL地址,所述客戶端解析所述邏輯URL地址,將所述邏輯URL地址映射為物理地址。本發(fā)明方法通過計算網(wǎng)絡接入速率,播放后根據(jù)可用帶寬大小,自動切換到與帶寬匹配的碼流上,降低網(wǎng)絡帶寬影響,利用帶寬,更好的保證用戶觀看的流暢性,提高FLV媒體流的播放質量。本發(fā)明要解決的另一個技術問題是提供一種自適應播放FLV媒體流的客戶端,提高FLV媒體流的播放質量。一種自適應播放FLV媒體流的客戶端,包括播放器,用于播放FLV媒體流;FLV索弓I文件下載單元,用于在播放FLV媒體流之前,下載所述FLV媒體流不同碼率的媒體文件所對應的索引文件;其中,每個不同碼率的FLV媒體流有對應的FLV索引文件,所述FLV索引文件包含視頻編碼關鍵幀在時間軸上的時間點與FLV媒體流字的節(jié)偏移量之間的映射關系;當前關鍵幀確定單元,用于當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀;媒體流下載單元,用于從所述當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流。根據(jù)本發(fā)明客戶端的一個實施例,所述客戶端還包括帶寬計算單元,用于根據(jù)客戶端緩沖區(qū)接收下載的FLV媒體流字節(jié)數(shù)和FLV媒體流下載時間確定當前網(wǎng)絡帶寬。根據(jù)本發(fā)明客戶端的一個實施例,所述客戶端還包括網(wǎng)址解析單元,用于解析在所述客戶端輸入或點擊所述FLV媒體流對應的邏輯URL地址,將所述邏輯URL地址映射為物理地址;FLV媒體流下載單元,用于下載FLV媒體流;在開始下載并播放所述FLV媒體流時,下載低碼率的所述FLV媒體流;所述當前關鍵幀確定單元,用于當網(wǎng)絡帶寬達到下載高碼率的所述FLV媒體流所需的帶寬時,根據(jù)所述FLV索引文件,確定媒體流切換的關鍵幀位置,獲取高碼率的所述FLV媒體流中最接近所述關鍵幀位置的關鍵幀所對應的字節(jié)偏移 量;所述媒體流下載單元,用于從所述字節(jié)偏移量開始下載高碼率的所述FLV媒體流,并控制所述播放器切換到高碼率的所述FLV媒體流上。根據(jù)本發(fā)明客戶端的一個實施例,所述當前關鍵幀確定單元進一步用于,當網(wǎng)絡帶寬不滿足下載高碼率所述FLV媒體流所需的帶寬時,根據(jù)所述FLV索引文件,確定媒體流切換的關鍵幀位置,獲取低碼率的所述FLV媒體流中最接近所述關鍵幀位置的關鍵幀所對應的字節(jié)偏移量;所述媒體流下載單元進一步用于,從所述字節(jié)偏移量開始下載低碼率的所述FLV媒體流,并控制所述播放器切換到低碼率的所述FLV媒體流上。根據(jù)本發(fā)明客戶端的一個實施例,所述客戶端包括多個緩存區(qū),用于隔離分開緩存下載的不同碼率的所述FLV媒體流。根據(jù)本發(fā)明客戶端的一個實施例,所述客戶端包括低速緩存區(qū),用于緩存下載的低碼率的所述FLV媒體流;所述客戶端包括高速緩存區(qū),用于緩存下載的高碼率的所述FLV媒體流。本發(fā)明要解決的另一個技術問題是提供一種自適應播放FLV媒體流的系統(tǒng),包括上述的客戶端,還包括服務器;所述服務器存儲不同碼率的FLV媒體文件,并且存儲每個FLV媒體文件對應的FLV索引文件。根據(jù)本發(fā)明系統(tǒng)的一個實施例,所述服務器為HTTP服務器。本發(fā)明的客戶端和系統(tǒng)通過計算網(wǎng)絡接入速率,播放FLV媒體流后根據(jù)可用帶寬大小,自動切換到與帶寬匹配的碼流上,減少網(wǎng)絡帶寬影響,更好的保證用戶觀看的流暢性,提高FLV媒體流的播放質量。本發(fā)明的服務器存儲FLV媒體文件和索引文件,提供HTTP下載。


      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      圖I為根據(jù)本發(fā)明的自適應播放FLV媒體流的方法的一個實施例的流程圖;圖2為根據(jù)本發(fā)明的一個實施例的FLV索引文件的示意圖;圖3為根據(jù)本發(fā)明的自適應播放FLV媒體流的方法的另一個實施例的流程圖;
      圖4為根據(jù)本發(fā)明的自適應播放FLV媒體流的方法中切換碼率的一個實施例的流程圖;圖5為根據(jù)本發(fā)明的自適應播放FLV媒體流的方法中切換碼率的另一個實施例的流程圖;圖6為本發(fā)明一個實施例的自適應播放FLV媒體流客戶端的示意圖;圖7為本發(fā)明另一個實施例的自適應播放FLV媒體流客戶端的示意圖;圖8為本發(fā)明一個實施例的自適應播放FLV媒體流系統(tǒng)的不意圖。圖9為本發(fā)明一個實施例的自適應播放FLV媒體流系統(tǒng)的客戶端判斷切換FLV媒體流的示意圖。
      具體實施例方式下面參照附圖對本發(fā)明進行更全面的描述,其中說明本發(fā)明的示例性實施例。下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明對于點播類業(yè)務,將不同編碼方式的FLV封裝的文件及文件索引置于服務器,客戶端根據(jù)自身的策略判斷網(wǎng)絡環(huán)境的變化并請求服務,服務器接受請求并響應,通過客戶端請求服務器響應的方式進行自適應多碼率間的切換,實現(xiàn)自適應多碼率的切換源視頻文件完整,不需分片即可實現(xiàn),能夠在服務端提供多碼率的情況下,盡可能地減少用戶觀看的停頓,保障最大的播放流暢性;并在保證流暢的前提下提供盡可能提高FLV媒體流的播放質量。下面結合各個圖和實施例對本發(fā)明的技術方案進行多方面的描述。圖I為根據(jù)本發(fā)明的自適應播放FLV媒體流的方法的一個實施例的流程圖。如圖I所示步驟102,下載FLV索引文件;其中,F(xiàn)LV索引文件包含視頻編碼關鍵幀在時間軸上的時間點與FLV媒體流字的節(jié)偏移量之間的映射關系。步驟103,當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀。步驟104,從當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流。通過判斷當前帶寬情況,調整需要傳送視頻碼率,保證客戶的觀看需求,將減少網(wǎng)絡帶寬影響,更好的保證用戶觀看的流暢性,提高FLV媒體流的播放質量。根據(jù)本發(fā)明的一個實施例,客戶端設置緩沖區(qū)接收下載的FLV媒體流,獲取已經下載的時間和在此時間內下載的FLV媒體流字節(jié)數(shù),計算網(wǎng)絡的帶寬。根據(jù)本發(fā)明的一個實施例,在服務器上有不同碼率的FLV媒體文件,并且每個FLV媒體文件都有對應的FLV索引文件。圖2為根據(jù)本發(fā)明的FLV索引文件的一個實施例的示意圖。FLV媒體流封裝結構由文件頭FLV header和很多tag組成。tag又可以分成三類audio, video, script,分別代表音頻流,視頻流,腳本流,不同碼率的音視頻流封裝在不同的FLV文件中。圖2中的碼率索引用于標識該視頻文件包含的碼率基本信息及對應索引的位置。碼率索引I標識用于標識該碼率的基本信息,如分辨率、幀率,文件長度等。幀數(shù)I為關鍵幀I的幀數(shù),時間點I為幀數(shù)I的時間軸上的時間點,偏移量I為視頻編碼關鍵幀在時間軸上的時間點的字節(jié)偏移量。幀數(shù)2為關鍵幀2的幀數(shù),時間點2為幀數(shù)2的時間軸上的時間點,偏移量2為視頻編碼關鍵幀在時間軸上的時間點的字節(jié)偏移量。不同碼率索引的格式都相同。根據(jù)本發(fā)明的一個實施例,F(xiàn)LV索引文件是二進制文件,包含了不 同碼率媒體流的索引信息,即在單個FLV索引文件內包含了不同碼率媒體流的索引信息。例如,對于一個低碼率的FLV媒體流,時間點字段的值為10598毫秒,對應于頻編碼關鍵幀I在時間軸上10598毫秒處的字節(jié)偏移量為123456字節(jié),字節(jié)偏移量字段的值為123456。對于一個高碼率的FLV媒體流,時間點字段的值為10598毫秒,對應于頻編碼關鍵幀I在時間軸上10598毫秒處的字節(jié)偏移量為654321字節(jié),所以字節(jié)偏移量字段的值為654321??蛻舳烁鶕?jù)FLV索引文件下載并播放FLV媒體流。根據(jù)本發(fā)明的一個實施例,對于不同碼率媒體流,分別有對應的FLV索引文件,SP不同碼率的媒體流對應有不同的索引文件。圖3為根據(jù)本發(fā)明的自適應播放FLV媒體流的方法的另一個實施例的流程圖。如圖所示步驟301,對于點播類業(yè)務,在客戶端輸入或點擊節(jié)目內容對應的邏輯URL地址。步驟302,客戶端解析該邏輯URL地址,將邏輯URL地址映射為物理地址。根據(jù)本發(fā)明的一個實施例,為了減少用戶觀看影片的等待時延,獲得較好的用戶體驗,保證客戶端能夠快速啟動,在客戶端首次連接服務器觀看節(jié)目時,選用低碼率視頻為客戶提供服務。步驟303,客戶端連接服務器,向服務器請求索引文件。步驟304,服務器響應客戶端請求,向客戶端返回索引文件。步驟305,客戶端向服務器請求低碼率的視頻文件。步驟306,服務器向客戶端提供低碼率視頻文件的漸進下載。步驟307,客戶端通過緩沖區(qū)接收處理下載的視頻文件,獲取當前已經下載的時間;通過播放器API獲取緩沖區(qū)已下載的字節(jié)數(shù),計算當前下載速率;匹配碼率和下載速率的對應關系并進行切換時機的選擇;播放中N秒內計算緩沖速度,在緩沖區(qū)足夠大,并達到高碼率速度時,停止低速緩沖,開始高碼率緩沖。步驟308,客戶端向服務器請求高碼率的視頻文件,根據(jù)索引文件中的時間戳信息和文件偏移信息從關鍵幀開始切換,確定出新碼率的碼流中最接近該參數(shù)的關鍵幀的位置,以此關鍵幀開始,發(fā)送媒體數(shù)據(jù)。步驟309,當新的碼流的緩沖區(qū)達到可播放的時,向高碼率視頻進行切換;在新碼率的碼流能夠播放之前,播放原有碼率碼流的緩沖區(qū)。步驟310,繼續(xù)監(jiān)聽緩沖區(qū)加載的快慢,當緩沖區(qū)填充的速度不足以滿足高碼率視頻播放時,選擇相應的時機向低碼率進行切換。步驟311,向服務器請求低碼率的視頻文件。步驟312,服務器提供低碼率的視頻文件下載,向客戶端提供服務。如此反復,直至用戶選擇停止播放為止。用戶開始播放時,可以采取先提供低碼率碼流的方式。開始播放后可以根據(jù)可用帶寬大小,自動切換到與帶寬匹配的碼流上。當前網(wǎng)絡狀態(tài)不穩(wěn)定或是持續(xù)低下的時候,通過緩沖區(qū)策略判斷當前帶寬情況 ,調整需要傳送視頻碼率,保證客戶的觀看需求,將網(wǎng)絡帶寬影響降到最低,同時最大限度利用帶寬,更好的保證用戶觀看的流暢性,為用戶提供最佳的流媒體質量。根據(jù)本發(fā)明的一個實施例,用戶開始播放時,也可以采取先提供高碼率碼流的方式,開始播放后可以根據(jù)可用帶寬大小,自動切換到與帶寬匹配的碼流上。根據(jù)本發(fā)明的一個實施例,在播放FLV媒體流之前,客戶端向服務器請求下載與FLV媒體對應的FLV索引文件;服務器響應客戶端的請求,向客戶端返回FLV媒體不同碼率的媒體文件所對應的索引文件。圖4為根據(jù)本發(fā)明的自適應播放FLV媒體流的方法中切換碼率的一個實施例的流程圖。如圖所不步驟401,客戶端根據(jù)當前播放的低碼率的FLV媒體的索引文件,確定媒體流切換的關鍵幀位置。步驟402,查詢高碼率的FLV媒體流的索引文件,獲取高碼率的FLV媒體流中最接近關鍵幀位置的關鍵幀所對應的字節(jié)偏移量。根據(jù)本發(fā)明的一個實施例,在單個FLV索引文件內包含了不同碼率媒體流的索引信息的場景下,客戶端根據(jù)FLV索引文件,確定媒體流切換的關鍵幀位置。獲取高碼率的FLV媒體流中最接近關鍵幀位置的關鍵幀所對應的字節(jié)偏移量。步驟403,從字節(jié)偏移量開始下載,客戶端切換到并播放高碼率的FLV媒體流。根據(jù)本發(fā)明的一個實施例,假設當前低碼率的媒體流的播放時間為10598毫秒,此時網(wǎng)絡速率達到向高碼率的媒體流切換的條件,通過查索引文件,10598毫秒對應一個關鍵幀,發(fā)現(xiàn)高碼率的媒體流的10598毫秒對應的字節(jié)偏移量為654321字節(jié),此時,停止低碼率的緩沖,通過ht tp協(xié)議range get高碼率的媒體流654321字節(jié)后的內容,并填充到高碼率的緩沖區(qū),并切換到高碼率的媒體流。反之亦然,通過查詢索引文件,停止高碼率緩沖,接收低碼率的媒體流數(shù)據(jù)。通過索引文件的映射關系實現(xiàn)播放器在不同碼率FLV封裝的視頻文件間的無縫切換播放。對于直播內容,不同的碼率的流媒體視頻可由編碼器直接生成,前提條件要求不同碼率的視頻的關鍵幀數(shù)據(jù)對齊,另外通過工具生成碼率的索引;對于點播的內容,不同碼率的FLV視頻文件和索引文件直接放置在HTTP server上即可。圖5為根據(jù)本發(fā)明的自適應播放FLV媒體流的方法中切換碼率的另一個實施例的流程圖。如圖5所示當網(wǎng)絡帶寬不滿足下載高碼率的FLV媒體流所需的帶寬時,客戶端向服務器請求下載低碼率的FLV媒體流。步驟501,客戶端根據(jù)當前播放的高碼率的FLV媒體流的索引文件,確定媒體流切換的關鍵幀位置。步驟502,查詢低碼率的FLV媒體流的索引文件,獲取低碼率的FLV媒體流中最接近關鍵幀位置的關鍵幀所對應的字節(jié)偏移量。
      根據(jù)本發(fā)明的一個實施例,在單個FLV索引文件內包含了不同碼率媒體流的索引信息的場景下,客戶端根據(jù)FLV索引文件,確定媒體流切換的關鍵幀位置,獲取低碼率的FLV媒體流中最接近關鍵幀位置的關鍵幀所對應的字節(jié)偏移量。步驟503,從此字節(jié)偏移量開始下載,客戶端切換到并播放低碼率的FLV媒體流??蛻舳送ㄟ^索引信息文件的映射關系實現(xiàn)播放器在不同碼率FLV封裝的視頻文件間的無縫切換播放。在播放FLV媒體流后可以根據(jù)可用帶寬大小,自動切換到與帶寬匹配的碼流上,當前網(wǎng)絡狀態(tài)不穩(wěn)定或是持續(xù)低下的時候,通過緩沖區(qū)策略判斷當前帶寬情況,調整需要傳送視頻碼率,保證客戶的觀看需求,將網(wǎng)絡帶寬影響降到最低。圖6為本發(fā)明一個實施例的自適應播放FLV媒體流客戶端的示意圖。如圖6所示客戶端61包括FLV索引文件下載單元611,在播放FLV媒體流之前,下載全部所述FLV媒體流不同碼率的媒體文件所對應的索引文件;其中,每個不同碼率的FLV媒體流有對應的FLV索引文件,F(xiàn)LV索引文件包含視頻編碼關鍵幀在時間軸上的時間點與FLV媒體流字的節(jié)偏 移量之間的映射關系;播放器614播放FLV媒體流;當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,當前關鍵幀確定單元612根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀;媒體流下載單元613從當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流。播放器614可以為Flash Player等FLV視頻格式文件的播放器。根據(jù)本發(fā)明的一個實施例,在單個FLV索引文件內包含了不同碼率媒體流的索引信息的場景下,F(xiàn)LV索引文件下載單元611在播放FLV媒體流之前,下載所述FLV媒體流不同碼率的媒體文件所對應的索引文件??蛻舳丝梢圆渴鸹虬惭b在PC、PDA或手機等終端上。該自適應客戶端能在任何已有網(wǎng)絡環(huán)境下工作,極大地降低了技術推廣的難度,很好地屏蔽網(wǎng)絡帶寬的短時間尺度波動對視頻播放質量的影響,并能夠通過碼率切換方式,在網(wǎng)絡帶寬長時間下降時,提供流暢的播放。圖7為本發(fā)明另一個實施例的自適應播放FLV媒體流客戶端的示意圖。如圖7所示,客戶端71進包括FLV索引文件下載單元711,在播放FLV媒體流之前,下載全部所述FLV媒體流不同碼率的媒體文件所對應的索引文件;播放器716播放FLV媒體流;網(wǎng)址解析單元714,解析用戶輸入或所點擊的節(jié)目內容對應的邏輯URL地址,將邏輯URL地址映射為物理地址;在開始下載并播放FLV媒體流時,媒體流下載單元715服務器請求下載低碼率的FLV媒體流。帶寬計算單元713獲取緩沖區(qū)已經下載的時間和在此時間內下載的FLV媒體流字節(jié)數(shù),計算當前網(wǎng)絡的帶寬。當網(wǎng)絡帶寬達到下載高碼率的FLV媒體流所需的帶寬時,當前關鍵幀確定單元712根據(jù)當前播放的低碼率的FLV媒體的索引文件,確定媒體流切換的關鍵幀位置,查詢高碼率的FLV媒體流的索引文件,獲取高碼率的FLV媒體流中最接近關鍵幀位置的關鍵幀所對應的字節(jié)偏移量;媒體流下載單元715從字節(jié)偏移量開始下載高碼率的FLV媒體流,并控制播放器716切換到高碼率的FLV媒體流上。根據(jù)本發(fā)明的一個實施例,在單個FLV索引文件內包含了不同碼率媒體流的索引信息的場景下,當網(wǎng)絡帶寬達到下載高碼率的FLV媒體流所需的帶寬時,當前關鍵幀確定單元712根據(jù)FLV索引文件,確定媒體流切換的關鍵幀位置,獲取高碼率的FLV媒體流中最接近關鍵幀位置的關鍵幀所對應的字節(jié)偏移量。
      根據(jù)本發(fā)明的另一個實施例,當網(wǎng)絡帶寬不滿足下載高碼率FLV媒體流所需的帶寬時,當前關鍵幀確定單元712根據(jù)當前播放的高碼率的FLV媒體流的FLV索引文件,確定媒體流切換的關鍵幀位置,查詢低碼率的FLV媒體流的FLV索引文件,獲取低碼率的FLV媒體流中最接近關鍵幀位置的關鍵幀所對應的字節(jié)偏移量;媒體流下載單元713從字節(jié)偏移量開始下載低碼率的FLV媒體流,并控制播放器714切換到低碼率的FLV媒體流上。根據(jù)本發(fā)明的一個實施例,在單個FLV索引文件內包含了不同碼率媒體流的索引信息的場景下,當網(wǎng)絡帶寬不滿足下載高碼率FLV媒體流所需的帶寬時,當前關鍵幀確定單元712根據(jù)FLV索引文件,確定媒體流切換的關鍵幀位置,獲取低碼率的FLV媒體流中最接近關鍵幀位置的關鍵幀所對應的字節(jié)偏移量??蛻舳送ㄟ^索引信息文件的映射關系實現(xiàn)播放器在不同碼率FLV封裝的視頻文件間的無縫切換播放,極大地簡化了調節(jié)難度,由于FLV封裝結構決定了視頻源數(shù)據(jù)不用進行切片處理,對CMS管理帶來了極大的改善。圖8為本發(fā)明一個實施例的自適應播放FLV媒體流系統(tǒng)的示意圖。如圖8所示, 自適應播放FLV媒體流的系統(tǒng)包括客戶端82和服務器81,服務器81存儲不同碼率的FLV媒體文件811 ;每個FLV媒體文件都有對應的FLV索引文件812 ;FLV索引文件包含視頻編碼關鍵幀在時間軸上的時間點與字節(jié)偏移量之間的映射關系,例如可以是二進制文件或者文本文件。根據(jù)本發(fā)明的一個實施例,在單個FLV索引文件內包含了不同碼率媒體流的索引信息的場景下,不同碼率的FLV媒體文件811都對應單個的FLV索引文件812。客戶端82包括播放器824、媒體流下載單元821 ;客戶端可以包括兩個或者多個緩存區(qū),隔離分開緩存下載的不同碼率的FLV媒體流。根據(jù)本發(fā)明的一個實施例,低速緩存區(qū)823接收下載的低碼率的FLV媒體流,高速緩存區(qū)822接收下載的高碼率的FLV媒體流。在下載多個不同碼率的FLV媒體流時,多個不同碼率的FLV媒體流可以共享緩存區(qū)。將不同碼率的視頻隔離分開緩沖,避免解碼器解碼過程中反復切換引起的圖像黑屏及卡頓現(xiàn)象。月艮務器81可以為HTTP服務器,數(shù)據(jù)代理單元821可以為HTTP代理單元。圖9為本發(fā)明一個實施例的自適應播放FLV媒體流系統(tǒng)的客戶端判斷切換FLV媒體流的示意圖。如圖所示,客戶端91的實現(xiàn)參照上述圖6至8的實施例的客戶端??蛻舳?1能夠檢測播放過程中的各種情況,并計算出幾個典型的考量指標,最后根據(jù)預設的門限值作出合適的碼率切換判決??蛻舳?1可以根據(jù)可用碼率、緩沖區(qū)的大小和下載的平均速度判斷是否需要調整碼率。當網(wǎng)絡帶寬與客戶端91正在播放的FLV媒體流的碼率不相匹配時,客戶端91從服務器下載碼率與網(wǎng)絡帶寬匹配的FLV媒體流,并自動切換到碼率與網(wǎng)絡帶寬匹配的FLV媒體流上。當網(wǎng)絡帶寬發(fā)生變化時,其中當網(wǎng)絡帶寬達到下載高碼率的FLV媒體流所需的帶寬時,下載高碼率的FLV媒體流,并切換到高碼率的FLV媒體流。當網(wǎng)絡帶寬不滿足高碼率的FLV媒體流所需的帶寬時,客戶端91向服務器請求下載低碼率的所述FLV媒體流,并切換到低碼率的媒體流。如果帶寬不發(fā)生變換,并滿足播放質量時,客戶端91繼續(xù)保持目前的碼率,下載并播放FLV媒體流??蛻舳?1設置緩存區(qū),緩存下載的FLV媒體流。在客戶端91的緩存區(qū)緩存FLV媒體流時,客戶端91可暫停播放。從上面所述的實施例可以看出,本發(fā)明的實施例通過先提供低碼率碼流,開始播放后可以根據(jù)可用帶寬大小,自動切換到與帶寬匹配的碼流上,當前網(wǎng)絡狀態(tài)不穩(wěn)定或是持續(xù)低下的時候,通過緩沖區(qū)策略判斷當前帶寬情況,調整需要傳送視頻碼率,保證客戶的觀看需求,降低網(wǎng)絡帶寬影響,同時可以最大限度利用帶寬,更好的保證用戶觀看的流暢性,提高流媒體的播放質量,特別是更加適應無線網(wǎng)絡的特性。
      本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對于本領域的普通技術人員而言是顯然的。選擇和描述實施例是為了更好說明本發(fā)明的原理和實際應用,并且使本領域的普通技術人員能夠理解本發(fā)明從而設計適于特定用途的帶有各種修改的各種實施例。
      權利要求
      1.一種自適應播放FLV媒體流的方法,其特征在于,包括 下載FLV索引文件;其中所述FLV索引文件包含視頻編碼關鍵幀在時間軸上的時間點與FLV媒體流的字節(jié)偏移量之間的映射關系; 當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀; 從所述當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流。
      2.如權利要求I所述的方法,其特征在于,所述監(jiān)測當前網(wǎng)絡帶寬,具體為 根據(jù)客戶端緩沖區(qū)接收下載的媒體流字節(jié)數(shù)和媒體流下載時間確定當前網(wǎng)絡帶寬。
      3.如權利要求I所述的方法,其特征在于,所述下載FLV索引文件包括 在播放FLV媒體流之前,客戶端向服務器請求下載與所述FLV媒體流對應的FLV索引文件; 客戶端接收服務器返回的所述FLV媒體不同碼率的媒體文件所對應的索引文件。
      4.如權利要求I所述的方法,其特征在于,所述當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時、根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀包括 客戶端開始下載并播放低碼率的所述FLV媒體流; 客戶端實時計算網(wǎng)絡帶寬,當網(wǎng)絡帶寬達到下載高碼率的所述FLV媒體流所需的帶寬時,所述客戶端根據(jù)所述FLV索引文件,確定媒體流切換的關鍵幀位置,獲取高碼率的所述FLV媒體流中最接近所述關鍵幀位置的關鍵幀所對應的字節(jié)偏移量; 所述從所述當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流包括 從所述字節(jié)偏移量開始下載高碼率的所述FLV媒體流,并播放高碼率的所述FLV媒體流。
      5.如權利要求I所述的方法,其特征在于,所述當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀包括 當網(wǎng)絡帶寬不滿足高碼率的所述FLV媒體流所需的帶寬時,所述客戶端根據(jù)所述FLV索引文件,確定媒體流切換的關鍵幀位置,獲取低碼率的所述FLV媒體流中最接近所述關鍵幀位置的關鍵幀所對應的字節(jié)偏移量; 所述從所述當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流包括 從所述字節(jié)偏移量開始下載低碼率的所述FLV媒體流,并播放低碼率的所述FLV媒體流。
      6.如權利要求4或5所述的方法,其特征在于 客戶端使用兩個或者兩個以上個緩存區(qū),隔離分開緩存下載的不同碼率的所述FLV媒體流。
      7.如權利要求4所述的方法,其特征在于,所述客戶端開始下載并播放低碼率的所述FLV媒體流時,在所述客戶端輸入或點擊所述FLV媒體流對應的邏輯URL地址,所述客戶端解析所述邏輯URL地址,將所述邏輯URL地址映射為物理地址。
      8.一種自適應播放FLV媒體流的客戶端,其特征在于,包括 播放器,用于播放FLV媒體流; FLV索引文件下載單元,用于在播放FLV媒體流之前,下載所述FLV媒體流不同碼率的媒體文件所對應的索引文件;其中,所述FLV索引文件包含視頻編碼關鍵幀在時間軸上的時間點與FLV媒體流的字節(jié)偏移量之間的映射關系; 當前關鍵幀確定單元,用于當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀; 媒體流下載單元,用于從所述當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流。
      9.如權利要求8所述的客戶端,其特征在于,所述客戶端還包括 帶寬計算單元,用于根據(jù)客戶端緩沖區(qū)接收下載的FLV媒體流字節(jié)數(shù)和FLV媒體流下載時間確定當前網(wǎng)絡帶寬。
      10.如權利要求8所述的客戶端,其特征在于,所述客戶端還包括 網(wǎng)址解析單元,用于解析在所述客戶端輸入或點擊所述FLV媒體流對應的邏輯URL地址,將所述邏輯URL地址映射為物理地址; 所述當前關鍵幀確定單元,用于當網(wǎng)絡帶寬達到下載高碼率的所述FLV媒體流所需的帶寬時,根據(jù)所述FLV索引文件,確定媒體流切換的關鍵幀位置,獲取高碼率的所述FLV媒體流中最接近所述關鍵幀位置的關鍵幀所對應的字節(jié)偏移量; 所述媒體流下載單元,用于從所述字節(jié)偏移量開始下載高碼率的所述FLV媒體流,并控制所述播放器播放高碼率的所述FLV媒體流。
      11.如權利要求8所述的客戶端,其特征在于 所述當前關鍵幀確定單元進一步用于,當網(wǎng)絡帶寬不滿足下載高碼率所述FLV媒體流所需的帶寬時,根據(jù)所述FLV索引文件,確定媒體流切換的關鍵幀位置,獲取低碼率的所述FLV媒體流中最接近所述關鍵幀位置的關鍵幀所對應的字節(jié)偏移量; 所述媒體流下載單元進一步用于,從所述字節(jié)偏移量開始下載低碼率的所述FLV媒體流,并控制所述播放器播放低碼率的所述FLV媒體流。
      12.如權利要求11所述的客戶端,其特征在于 所述客戶端包括兩個或者兩個以上個緩存區(qū),用于隔離分開緩存下載的不同碼率的所述FLV媒體流。
      13.一種自適應播放FLV媒體流的系統(tǒng),其特征在于 包括如權利要求8至12任一項所述的客戶端;所述系統(tǒng)還包括服務器,用于存儲不同碼率的FLV媒體文件,并且存儲所述FLV媒體文件對應的FLV索引文件。
      14.如權利要求13所述的系統(tǒng),其特征在于 所述服務器為HTTP服務器。
      全文摘要
      本發(fā)明公開了一種自適應播放FLV媒體流的方法、客戶端和系統(tǒng)。下載FLV索引文件,當監(jiān)測到當前網(wǎng)絡帶寬與播放的FLV媒體流的碼率不相匹配時,根據(jù)FLV索引文件確定與當前網(wǎng)絡帶寬匹配的碼率的FLV媒體流的當前關鍵幀,從當前關鍵幀開始從服務器下載并播放碼率與網(wǎng)絡帶寬匹配的FLV媒體流。本發(fā)明公開的方法、客戶端和系統(tǒng)通過計算網(wǎng)絡接入速率,播放FLV媒體流后根據(jù)可用帶寬大小,自動切換到與帶寬匹配的碼流上,降低網(wǎng)絡帶寬影響,更加有效地利用帶寬,更好的保證用戶觀看的流暢性,提高了流媒體的播放質量。
      文檔編號H04L29/06GK102957672SQ20111024458
      公開日2013年3月6日 申請日期2011年8月25日 優(yōu)先權日2011年8月25日
      發(fā)明者董石磊, 于建港, 李奕群, 陳杲 申請人:中國電信股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1