尹亞光,楊峰,戴瓊海
摘 要:本文著重對影響流媒體服務器性能的關鍵因素進行了分析,并在此基礎上提出了一些對流媒體服務器進行配置的建議。
關鍵詞:流媒體 性能 內存 處理速度 磁盤讀寫 網絡吞吐率
流媒體(Streaming Media)是一種以音視頻數據流的方式在網絡上傳遞多媒體信息的技術。與傳統的多媒體下載不同,流媒體傳輸具有實時性和連續性的特點。邊播放邊下載的流式傳輸方式可以使用戶不必等待所有的數據下載到本地。采用不同的碼率傳輸,可以使用戶在幾十kbit/s低帶寬到幾十Mbit/s高帶寬的不同網絡環境中都能在線欣賞到連續不斷的較高品質的音視頻節目。流媒體技術具有十分廣泛的應用領域,如在線直播、網絡廣告、視頻點播、視訊會議、遠程教育等。多媒體文件與一般的數據不同,較大的傳輸負荷將使得網絡丟失和擁塞的概率大大增加,因此如何提高音視頻傳輸的服務質量是流媒體技術所面臨的最大挑戰。
一、技術概述
1. 協議支持
一般的數據傳輸采用的協議有HTTP或FTP,這兩種基于TCP可靠傳輸機制的協議可以完成普通數據在網絡上的傳輸。對于實時音視頻數據的傳輸業務,HTTP或FTP雖然也能支持,但是卻具有較大的局限性。首先,數據的實時性需求無法在傳輸中得到保證,更不能提供像現場直播這樣的高實時性的業務。其次,無法支持如快進快退這樣的VCR功能。最后,無法實現實時加密,對數據版權的保護有限。
針對流媒體數據獨有的特點,一系列與此相關的傳輸協議以及一個完善的流媒體傳輸結構框架被提出,并用以解決上述音視頻數據傳輸中遇到的問題。在新的框架體系中,服務器端建立專門用于傳輸音視頻實時數據流的流服務器,所有在網上傳輸的數據都需要經過一系列的壓縮編碼,減小其中的數據冗余,然后再被服務器封裝成數據包傳輸給客戶端。由于音視頻數據少量的差錯和丟失對最終播放質量的影響較小,為了避免采用可靠傳輸帶來的時延,提高數據的實時性,因此實時傳輸協議RTP是建立在面向無連接的UDP之上的。原有的服務器端和客戶端的可靠連接通信則由另一個實時流協議RTSP來完成。
實時傳輸協議RTP是專門用于因特網上實時多媒體數據傳輸的一種協議,一般是在UDP數據包之前建立一個RTP包頭,其中包含了一些保證數據實時連續性的信息(如序列號、時間戳等),但RTP也可以在TCP或ATM等其他協議上工作。RTP被定義為在一對一或一對多的傳輸模式下工作,提供時間信息和流同步。
RTP傳輸協議有如下一些特點:
(1)協議的靈活性。RTP不具備傳輸層協議的完整功能,其本身也不提供任何機制來保證實時地數據傳輸,不支持資源預留,也不保證服務質量。另外,RTP將部分運輸層協議功能(比如流量控制)上移到應用層完成,簡化了運輸層處理,提高了該層效率。
(2)數據流和控制流分離。RTP的數據報文和控制報文使用相鄰的不同端口,這樣大大提高了協議的靈活性和處理的簡單性。
(3)協議的可擴展性和適用性。RTP通常為一個具體的應用來提供服務,通過一個具體的應用進程實現,而不作為OSI體系結構中單獨的一層來實現,RTP只提供協議框架,開發者可以根據應用的具體要求進行充分的擴展。
RTP協議本身不提供流量控制和擁塞控制功能,它靠一個專門的實時傳輸控制協議(RTCP)來實現。RTCP周期性地統計數據包傳輸時的丟失情況等信息,服務器根據這些反饋信息來制定流量控制的策略,改變傳輸碼率甚至負載類型,大大提高了實時數據的傳輸性能。
RTSP是基于應用層的一個重要的流會話控制協議,建立在TCP協議上,在整個流媒體應用過程中提供整套會話服務,控制著整個媒體流的播放過程。它提供用于音頻和視頻流的“VCR模式”遠程控制功能,用于控制流媒體的播放、暫停、記錄等操作。同時,服務器和客戶端之間會話的建立與銷毀等信息的交互也來自RTSP的支持。
2. 相關技術
為了提供更高質量的服務,在流媒體業務中涉及了相當多的技術。首先,視頻在傳輸之前需要壓縮成適合于網絡傳輸的碼流。在編碼中,一種方法是精細可擴展行編碼(FGS),這種壓縮機制把視頻壓縮成基本層和增強層位流,通過位平面編碼實現連續的增強層速率控制。
傳輸信道中的差錯控制也可以提高視頻傳輸的質量。前向糾錯FEC是其中的一種差錯控制方法,可以通過在各個數據包中附加一定的冗余信息來恢復丟失的數據包;也可以通過在編碼時在碼流中采用一些特殊的編碼方式,比如逆向編碼、多描述編碼、分層編碼等來減少數據丟失對質量的影響;還可以在客戶端對丟失的信息進行插值預測,盡量削弱差錯所帶來的影響。
除了采用差錯控制來保證傳輸數據的質量,還可以采用擁塞控制的方法來減輕網絡擁塞程度。一種方法是在服務器端根據反饋信息調節數據的發送速率,另一種方法是由客戶端增加和減少信道數量來進行速率的調整。兩種方法也可以結合起來使用。
媒體流之間的同步通過媒體同步機制來實現。不同的媒體之間的傳輸和播放是獨立的,而最終播放的所有媒體又需要集成在一起,例如音頻、視頻和其他文本信息的同步播放。流內同步、流間同步和對象間同步是三種類型的同步機制,其本質是在媒體內或媒體間說明時間關系。同步多媒體集成語言SMIL是一種實現媒體同步控制的標準。
數據的安全性由數字版權管理DRM來保證。這是保護多媒體內容免受未經授權的播放和復制的一種方法。如果數字版權無法得到保證,流媒體業務將失去商業運營的可能。DRM通過對內容加密來保護數據和通過附加使用規則來判斷用戶的使用權限。
二、系統組成
1. 基本組件
流媒體是由各種不同的互相通信交互的軟件系統構成的,一個最基本的流媒體系統必須包括編碼器(Encoder),服務器(Server)和播放器(Player)三個模塊,如圖1所示。模塊之間通過特定的協議互相通信,并按照特定格式互相交換文件數據。其中編碼器用來將原始的音視頻轉換成合適的流格式文件,服務器向客戶端發送編碼后的媒體流,客戶端播放器則負責解碼和播放接收到的媒體數據。
編碼器對原始的音視頻媒體源進行一定格式的壓縮編碼,編碼的方式有實時和離線兩種。實時編碼主要應用在實時直播服務中,由于對數據實時性的要求較高,因此對編碼器的性能要求也較高,其輸入一般是模擬的音視頻信號,也可以輸入數字的媒體設備信號如DVD光驅。由于單一的碼率無法滿足多種用戶的需求,實時編碼可以采用多個編碼器并行編碼的方法,輸出不同碼率的碼流。離線編碼對實時性的要求更低,一般是通過一個軟件平臺直接讀取并編碼需要壓縮的音視頻數據,如果提供的是其他壓縮格式的數據,則需要先解碼并轉碼成所需格式。這種方法一般是服務于對實時性要求不高的點播業務,因此最后需要將其封裝為一個媒體文件,供服務器進行傳輸。編碼器的性能好壞將直接決定服務質量的優劣,目前最新的H.264視頻編碼器無論在編碼效率還是在圖像質量上都優于現有的各種視頻編碼標準。服務器負責將編碼數據封裝成RTP數據包發送到網絡中。每次從節目中獲取一幀數據,然后分成幾個RTP數據包,并將時間戳和序列號添加到RTP包頭,屬于同一幀的數據包具有相同的時戳。一旦到達數據包所應播放的時間后,服務器便將這一幀的音視頻數據包發送出去,然后再讀取下一幀數據。
流媒體系統是無法忽略網絡環境的變化所帶來的影響的。這些變化包括不斷變化的網絡吞吐量,不斷變化的傳輸延遲,以及由于網絡擁塞中丟包而不斷變化的丟包率。對付這種網絡變化的辦法就是在客戶端播放前預先緩沖足夠的數據,以此來平滑網絡變化的影響。
音視頻RTP數據包經互聯網絡傳輸到客戶端后,先進入一個緩沖隊列等待,這個緩沖隊列中的所有數據包按照包頭的序列號排序,如果有遲到的包,則需按序列號重新插入到正確的位置上,這樣就避免了亂序的問題。
客戶端每次從隊列頭部讀取一幀的數據,從包頭的時戳中解出該幀的播放時間,然后進行音視頻同步處理。同步后的數據將送入解碼器進行解碼,解碼后的數據被送入一個循環讀取的緩存中等待。一旦該幀的播放時間到達,解碼數據就被從緩存中取出,送入播放模塊驅動底層硬件設備進行顯示或播放。
2. 業務擴展
(1)集群調度。單臺服務器的容量和性能畢竟是有限的,服務器集群調度策略可以將多個服務器并行使用來為更多的用戶服務。集群系統通過客戶端和多個流服務器之間的一個調度與網管服務器實現。在負載均衡應用中,集中式調度是現在使用較多的一種集群管理模式,系統主要由三部分組成:調度器,位于服務集群的最前端,根據服務集群的負載情況將到來的服務請求轉發到后臺真實服務器上;服務器池,位于調度器的后端,由一組為用戶提供具體服務的Server組成,對用戶不可見,用戶通過調度器與服務器建立C/S關系;存儲池,后臺服務器的一個共享存儲空間,使得集群中的各臺服務器能夠提供相同的內容服務。
客戶端將用戶的請求先傳送到調度器,調度器則通過網絡管理協議對各節點進行監控,動態獲取各節點的狀態信息,隨時對各節點的性能進行評估,根據當前各節點的負載情況,通過一定的智能算法選擇轉發至最合適的服務器,從而達到集群中各個服務器間的動態負載均衡。這種方法通過增加新的服務結點大大擴充了服務器支持的并發流數量,克服了單臺服務器處理能力的局限性,使得整個流媒體服務的性能和容量得到了無限制的提升。
對于用戶來說,整個集群服務器是透明的,也就是不存在每個單獨服務器,因此我們必須實現IP隱藏,使得用戶無法觀察到每個單獨服務器的IP,這樣可以更好的保證整個集群的負載平衡,因為這樣集群的負載是由調度器來統一執行,用戶無法自己指定,而且也可以更好的保證系統的安全性。實現IP隱藏的手段很多,在此選擇了IP隧道的方式。
(2)網絡管理。調度服務器上的網絡管理平臺通過特定的網管協議來實現各個服務器之間的協調管理,可以選用SNMP作為管理協議,并針對流媒體服務的特點開發了一套流媒體服務集群管理系統。一個SNMP網絡管理系統從邏輯上可抽象為四個部分:被管代理,網絡管理工作站,網絡管理協議,網絡管理信息庫。網管工作站負責整個網絡的管理,監控被管設備狀態從而保證網絡中的各個設備正常運行。被管代理是駐留在被管理設備上的一個進程,負責收集組織被管設備狀態信息,響應管理端訪問管理信息庫的請求,另外當系統出現問題的時候可以主動向管理端發出通告信息。MIB是管理信息的組織形式,呈樹形結構。管理協議則定義了網管工作站和被管設備之間信息交換的接口,雙方以約定的格式進行消息傳遞。
(3)認證計費。作為一個面向用戶的多媒體業務,商業運營必須作為其中一個重要的策略被提出。首先,提供流媒體服務必須面向授權用戶,因此需要對用戶的接入信息進行認證。其次作為一個商業平臺,必須對每項服務進行統一的多策略計費。目前流行的用戶認證和計費系統遵從RADIUS(Remote Authentication Dial in User Service)協議。整個系統主要實現的功能應該包括:用戶接入認證,用戶服務授權,服務過程計費,用戶信息管理,計費策略管理等。各部分組件包括認證服務器,計費服務器,信息數據庫,用戶和計費策略管理平臺等。需要在流媒體平臺上提供用戶認證插件,當用戶通過Web認證后,還需要流媒體服務器進行身份驗證后才能收看節目,避免了用戶繞過Web認證而直接用節目URL地址進行點播,提供更高的安全性。認證服務器除了認證接入的用戶權限外,還作為代理轉發信息到計費服務器。同時計費服務器根據用戶級別,節目信息,收看時段信息可采取不同的計費策略。這項業務使得大規模商業運營成為可能,具備其自身的新業務特點,例如時間、流量、多種計費規則、多種媒體格式等等,在選擇性、高效性、實時性、可靠性及安全性方面將會提出比電信業務的用戶管理和計費系統更高的要求。
(4)內容發布。為了方便用戶使用流媒體系統所提供的各類點播或直播服務,所有的服務內容可以以Web頁面的形式發布到網上,用戶只需要點擊自己所需節目的鏈接,就可以自動啟動安裝在本地的客戶端進行收看。Web服務器可以通過Apache和PHP等技術實現。為了方便對發布內容的更新,每個節目鏈接都是指向服務器上的一個鏈接文件,文件中的內容即為該節目在某臺服務器或調度器的地址鏈接。這樣,如果需要更新節目,則只需修改或添加鏈接文件中內容即可。
三、結束語
隨著互聯網,多媒體編碼技術的不斷發展,流媒體業務具有廣闊的市場前景,流媒體技術的應用將對人們的工作和生活帶來深遠的影響。隨著流媒體技術的日益成熟,流媒體市場也吸引了越來越多的企業參與競爭,一個全球化的流媒體市場競爭格局已經初步形成,具備巨大發展潛力的流媒體技術將會在未來的互聯網應用中占據重要的一席之地。