一種流媒體自適應處理系統及方法
【技術領域】
[0001]本發明主要涉及流媒體處理系統及方法,特別是基于移動終端的流媒體自適應處理方法。
【背景技術】
[0002]當今,網絡帶寬仍然是流媒體系統應用的最大瓶頸,為了應付網絡帶寬的不足,許多流媒體系統將解決辦法放在流媒體系統架構的改進上。但是在傳輸上,對于相同的視頻內容,傳統的流媒體系統大多采用單一碼率的視頻文件來為所有用戶提供服務,這種硬性的處理方式,忽略了網絡性能較好的部分群體或者一些時段。如圖1所示,為一個典型的視頻應用系統的網絡結構圖,本發明的研究內容,就是拋開P2P、CDN等復雜的網絡架構,專注于討論兩點之間的傳輸,因此,網絡結構較簡單,同時拋開NAT穿透等復雜的交互流程,在假設兩點之間能夠直接通信的前提下進行研究工作。
【發明內容】
[0003]本發明首先研究如何對流媒體文件進行多碼率化,提出了媒體質量等級的劃分策略,在劃分等級的情況下,能夠在盡量保證播放質量的情況下最大地減小視頻文件的大小,以及在此基礎上對經多碼率化的流媒體文件在磁盤上的組織和管理方案,以實現在媒體內容切換時的快速定位到下一個需發送的音視頻幀。
[0004]其次是可用帶寬的測量方法的設計,通過采用適合于流媒體應用的具有延遲預警的擁塞控制算法,并結合RTP/RTCP對該算法的計算因子進行實時采集,以獲取當前可用的網絡帶寬。
[0005]在實現文件多碼率化和可用帶寬測量的基礎上,重點設計了多碼率文件的傳輸技術,在可用網絡帶寬發生變化的情況下,自適應地切換到與可用帶寬相適應的碼率的視頻數據內容進行傳輸,以適應不斷變化的網絡性能,使得對網絡帶寬的利用率和選擇傳輸的媒體內容的質量達到最大化。
[0006]最后設計了可變編解碼參數的Filters播放鏈路動態重連機制,在自適應傳輸過程中當所播放的媒體文件的分辨率發生變化時,采用了“最短”的鏈路長度進行動態重連,防止因為filters動態重連產生的“停頓感”。
[0007]實驗結果表明,本發明提出的多碼率文件的傳輸技術可以實現網絡帶寬利用以及媒體播放內容質量的最大化,同時與傳統的單碼率文件傳輸相比,在網絡帶寬較小的情況下,還能夠減少緩沖等待次數和降低等待時間,提高了流媒體系統的服務質量,因此特別適合移動終端等網絡條件不穩定的場合。
[0008]為了解決現有技術中存在的缺陷,本發明提出了:
[0009]—種流媒體自適應處理方法,其特征在于,
[0010]在發送端執行步驟,
[0011 ] 步驟A,發送端接受流媒體發送任務,根據任務指示在磁盤文件管理模塊找到媒體名稱和媒體質量等級所對應的媒體文件,并根據任務指示的開始時間找到所對應的媒體文件段;
[0012]步驟B,讀取媒體文件段,將媒體數據進行RTP封裝;
[0013]步驟C,發送封裝后的RTP包;
[0014]步驟D,測量當前可用帶寬;
[0015]步驟E,根據可用帶寬,通過擁塞控制算法,計算下一個數據包發送速率;
[0016]步驟F,如果下一個數據包發送速率與當前媒體質量等級的不匹配,則查找匹配該發送速率的媒體質量等級的媒體文件;如果滿足,則跳回步驟B繼續進行下一文件段的處理;
[0017]步驟G,如果找到,則切換到適合該發送速率的媒體質量等級的媒體文件,跳回步驟B繼續進行下一文件段的處理;如果找不到,則根據適合的媒體質量等級對媒體文件進行重編碼,并切換到重編碼后的媒體文件,跳回步驟B繼續進行下一文件段的處理;
[0018]接收端執行步驟,
[0019]步驟H,接收發送端發來的RTP封裝后的數據包;
[0020]步驟I,向發送端反饋數據包以便計算帶寬;
[0021 ] 步驟J,對接收到的RTP包進行解封裝;
[0022]步驟K,對接收到的媒體數據的音視頻幀的進行重組;
[0023]步驟L,將重組的音視頻幀存入緩沖區;
[0024]步驟M,創建f ilter鏈路,以實現音視頻幀的解碼播放;
[0025]步驟N,跳回步驟Η接收下一個數據包。
[0026]如上所述的方法,其特征在于,
[0027]步驟Α中還包括:
[0028]步驟A1,根據任務指示查找是否存在指定的媒體質量等級所對應的媒體文件,如果存在,則選擇該媒體文件,如果不存在則根據指定的媒體質量等級對媒體文件進行重編碼。
[0029]如上所述的方法,其特征在于,
[0030]步驟A中還包括:
[0031]步驟A2,根據任務指示查找對應的媒體文件,并且根據媒體質量等級的劃分策略,將媒體文件重編碼為多種不同媒體質量等級的媒體文件,其中包括任務指示指定的媒體質量等級。
[0032]如上所述的方法,其特征在于,
[0033]步驟A中還包括:
[0034]步驟A3,根據預設的時間間隔,將找到媒體文件或者重編碼的媒體文件切分為多個文件段。
[0035]如上所述的方法,其特征在于,
[0036]步驟G中還包括:
[0037]步驟G1,根據適合的媒體質量等級對媒體文件進行重編碼時,將已經切分后的媒體文件按逐個文件段進行重編碼,生成已經分段后的重編碼媒體文件。
[0038]如上所述的方法,其特征在于,
[0039]步驟L中還包括,
[0040]步驟L1,判斷接收到的媒體數據質量等級是否發生變化,如果是,則調整緩沖區的大小。
[0041]如上所述的方法,其特征在于,
[0042]步驟Μ中還包括,
[0043]步驟Μ1,判斷接收到的媒體數據質量等級是否發生變化,如果是,則重新連接filter 鏈路。
[0044]本發明還提出了一種流媒體自適應處理系統,包括發送端和接收端,其特征在于:
[0045]發送端包括以下模塊;
[0046]磁盤文件管理模塊,功能是為上層提供文件的查詢、文件內容的讀取等操作,并實現文件的分類功能;
[0047]媒體質量等級劃分模塊,包括媒體質量等級的劃分策略,預設有不同質量等級的參數標準;
[0048]媒體文件重編碼模塊,實現媒體文件的重編碼;
[0049]媒體文件分段模塊,根據設置將媒體文件切分成固定時長的小段;
[0050]RTP包組裝模塊,根據RTP協議,實現媒體文件的文件段的RTP包封裝;
[0051]媒體質量等級切換模塊,當對發送端發送速率進行調整時,對發送的媒體質量等級進行重新選擇,選擇適合發送速率的質量等級的媒體文件進行發送;
[0052]可用帶寬測量模塊,通過反饋的數據包進行實時地計算得到當前的可用帶寬大小;
[0053]擁塞控制模塊,根據可用帶寬,通過擁塞控制算法,計算下一個數據包發送速率;
[0054]媒體數據發送模塊,實現媒體數據包向對端的發送;
[0055]接收端包括以下模塊,
[0056]媒體數據接收模塊,實現媒體數據包的接收;
[0057]RTP包解封模塊,對接收到的RTP包進行解封裝;
[0058]音視頻幀重組模塊,實現音視頻幀的重組操作,為上層播放層提供音視頻幀的獲取接口 ;
[0059]播放器控制接口模塊,為用戶提供友好的播放控制界面;
[0060]Filter Graph管理器模塊,Filter Graph管理器功能在于創建filter鏈路,以實現音視頻幀的解碼播放,同時還實現在媒體質量等級切換時filter鏈路的動態重連機制;
[0061]緩沖區管理