流媒體技術是網絡與多媒體技術發展到一定階段的產物。術語「流媒體」既可指網上傳輸連續時基媒體的流式技術,也可指使用流式技術的連續時基媒體本身。網上傳輸音視頻主要有兩種方式:下載與流式傳輸。下載方式需先下載整個媒體檔案才能播放,受頻寬限制延遲大。流式傳輸關鍵技術是流式傳輸:先對多媒體預處理(降低質量、高效壓縮),再用緩存系統保證數據連續正確傳輸。用戶無需等待整個檔案下載完,只需幾秒到幾十秒啟動延時即可播放,剩餘部分在後台繼續下載。相比純下載,邊下載邊播放大幅縮短啟動延時,降低系統緩存需求。另一好處是使傳輸事先不知或無法知曉大小的媒體數據(如網上直播、視頻會議)成為可能。
目前 Internet 上常用流式視頻格式主要有三種:RealNetworks 的 RealMedia、Apple 的 QuickTime、Microsoft 的 Advanced Streaming Format (ASF)。
多媒體應用顯著特點是數據量大、許多應用對實時性要求高。傳統 TCP 協議面向連接,其重傳與擁塞控制機制不適用於實時多媒體傳輸。RTP 是應用層傳輸協議,不提供傳輸可靠性保證與流量擁塞控制,位於 UDP 之上。UDP 雖不如 TCP 可靠,無法保證實時業務服務質量,需 RTCP 實時監控數據傳輸與服務質量。但 UDP 傳輸時延低於 TCP,能與音視頻良好配合。實際應用中,RTP/RTCP/UDP 用於音視頻媒體,TCP 用於數據與控制信令傳輸。支援流媒體傳輸的協議主要有 RTP、RTCP、RTSP 等。流媒體協議棧如圖 1 所示。

圖 1. 流媒體協議棧
RTP 針對 Internet 多媒體數據流,由 IETF 作為 RFC1889 發布。RTP 定義為在一對一或一對多傳輸情況下工作,目的是提供時間資訊與實現流同步。典型應用建立在 UDP 上,也可在 TCP 或 ATM 等協議上工作。RTP 僅保證實時數據傳輸,不提供按順序傳送數據包的可靠機制,無流量控制或擁塞控制,依靠 RTCP 提供這些服務。
威脅多媒體數據傳輸的尖銳問題是不可預測的數據到達時間。流媒體傳輸需數據適時到達用以播放回放。RTP 協議提供時間標籤、序列號等結構控制適時數據流放。在流概念中「時間標籤」是最重要資訊。發送端依即時採樣在數據包隱蔽設置時間標籤。接收端收到數據包後,依時間標籤按正確速率恢復原始適時數據。不同媒體格式調時屬性不同。但 RTP 本身不負責同步,為簡化傳輸層處理提高效率,將部分傳輸層功能(如流量控制)上移到應用層完成。同步屬於應用層協議完成。RTP 無傳輸層協議完整功能,不提供機制保證實時傳輸,不支援資源預留,不保證服務質量。RTP 報文甚至不包括長度與報文邊界描述。同時 RTP 數據報文與控制報文使用相鄰不同端口,大大提高協議靈活性與處理簡單性。
RTP 與 UDP 共同完成傳輸層功能。UDP 傳輸數據包,不管時間順序。RTP 協議數據單元用 UDP 分組承載。承載 RTP 數據包時,有時一幀數據被分割成幾個包具相同時間標籤,則時間標籤非必須。UDP 多路復用讓 RTP 利用顯式多點投遞,滿足多媒體會話需求。RTP 雖是傳輸層協議但未作為 OSI 體系結構單獨一層實現,通常根據具體應用提供服務,僅提供協議框架,開發者可按應用具體要求充分擴展。
RTP 頭格式如圖 2 所示:

前 12 個八位元組出現在每個 RTP 包中,CSRC 標識列表僅在混合器插入時出現。各段含義:

若只有序列號,無法完整按順序播放 data,因 data 中間可能無資料,只靠序列號會出錯,需搭配時間戳讓它知道在哪個時間正確播放,才能播放正確無誤資訊。
RTCP 負責管理傳輸質量,在當前應用進程間交換控制資訊。RTP 會話期間,各參與者週期性傳送 RTCP 包,含已發送數據包數量、丟失數據包數量等統計資料。服務器可利用這些資訊動態改變傳輸速率,甚至改變有效載荷類型。RTP 與 RTCP 配合使用,能以有效反饋與最小開銷使傳輸效率最佳化,特別適合傳送網上實時數據。
應用程序啟動 RTP 會話時使用兩個端口:一個給 RTP,一個給 RTCP。RTP 本身無可靠傳送機制、無流量控制或擁塞控制,依靠 RTCP 提供。RTP 會話間週期發送 RTCP 包以監聽服務質量、交換會話用戶資訊。RTCP 包含統計資料,服務器可動態改變傳輸速率或載荷類型。RTP/RTCP 配合使傳輸效率最佳化。根據用戶間數據傳輸反饋資訊可制定流量控制策略,會話用戶資訊交互可制定會話控制策略。
音視頻數據流比傳統數據對網絡延時更敏感。要在網絡傳輸高質量音視頻,除頻寬要求外,還需更多條件。RSVP 是 Internet 資源預訂協議,使用 RSVP 預留部分網絡資源(即頻寬),能在一定程度上為流媒體傳輸提供 QoS。
本文出自「子 孑」博客,請務必保留出處 https://zhangjunhd.blog.51cto.com/113473/25481