流媒體傳輸協議RTP、RTCP、RTSP、RTMPS、HLS,究竟是個啥東東?

2021-01-08 石家莊陀螺科技

作者:馬豐敏

網際網路技術的本質就是通信協議,各種通信協議將各種終端連接了起來。流媒體協議是建立在網際網路TCP/IP協議上的多媒體數據流傳輸分發協議。它主要為主播端和觀眾端提供數據傳輸和分發的解決方案。

現在網際網路上的流數據佔據帶寬的大部分,音頻、短視頻、長視頻佔據了網際網路應用的主流。數據流通過傳輸技術被運來運去,那麼流數據遵循哪些傳輸規則和協議呢,各個協議有什麼優缺點呢?

01RFC文檔概要

在討論流數據傳輸技術之前,我們先了解一下RFC,這對理解流數據協議至關重要。RFC英文全稱為Request For Comments,中文字面意思是「請求評論」,它是一系列編號文件。

RFC文檔最初由Steve Crocker(史迪夫·科洛克)在1969年發明,發明的初衷是記錄ARPANET開發中的非官方註解信息。

現在RFC文檔由IETF(Internet Engineering Task Force,Internet工程特別行動組)產生,並由專家組、RFC編輯在編輯後發布。現在RFC文檔已經成為網際網路規範標準和事件的官方記錄庫。RFC文檔是最全面的關於網際網路協議標準的記錄庫,目前已經超過了9000個文檔。

絕大部分網際網路技術協議都包含在RFC文檔中,包括TCP、IP、FTP、RTP等。

傳輸協議棧

02RTP數據流協議

流數據具有數據量大、實時傳輸等特點,它對網絡傳輸有高帶寬、低時延、同步和高可靠性的要求。為了保證好的QoS質量,傳輸模式、協議棧和應用體系控制等問題就顯得非常重要。下面我們先來討論RTP協議。

RTP英文全稱Real-time Transport Protocol實時流傳輸協議。在RFC中定義為RFC3550/RFC3551。RTP由IETF(Internet Engineering Task Force,網際網路工程任務組)工作組制定。

該協議主要實現實時數據的傳輸,它在數據包頭中提供編碼類型,包中數據的採樣時刻、數據包的序號,依據這些信息傳輸雙方可以協商編碼類型,可以對數據包進行排序。

RTP 本身並沒有服務質量保證機制,它依賴於低層服務去實現這一過程。

03RTCP數據流協議

RTCP英文全稱Real-time Transport Control Protocol,實時傳輸控制協議,該協議是RTP數據流協議的一個姐妹協議。RTCP為RTP數據流提供信道外控制。RTCP並不傳輸數據,它和RTP協作將多媒體數據打包和發送。RTCP的主要功能是保證服務質量,為RTP提供服務質量反饋。

04SRTP & SRTCP數據流協議

SRTP英文全稱為Secure Real-time Transport Protocol安全實時傳輸協議,該協議是在實時傳輸協議RTP基礎上定義的一個協議,旨在為RTP數據提供加密、消息認證、完整性保證和重放保護。可以參考文檔RFC3711。

RTCP同樣也有一個伴生協議,它被稱為安全實時傳輸控制協議Secure RTCP或SRTCP。在使用實時傳輸協議或實時傳輸控制協議時,是應用安全傳輸協議還是明文傳輸在數據傳輸過程中是可以選擇的。

05RTSP數據流協議

RTSP英文全稱Real Time Streaming Protocol實時串流協議,該協議由Real Networks和Netscape共同提出的,它是用來控制流數據串的協議。該協議定義了一對多應用程式如何有效地通過IP網絡傳送流數據。RTSP提供了一個可擴展框架,使實時數據,如音視頻的受控、點播成為可能。

它允許同時對多個串流控制,伺服器端可以自行選擇使用TCP或UDP來傳送串流內容,它的語法和運作跟HTTP 1.1類似,能容忍網絡延遲。詳情可以參考文檔RFC2326。

RTP、RTSP、RSVP協議層圖示

06RTSP 和RTP的區別與聯繫

RTSP與RTP最大的區別在於,RTSP是RTP的上層協議,是一種類似與http協議的網絡應用層協議。RTSP允許雙向實時數據傳輸,它允許客戶端向伺服器端發送控制操作,例如回放、快進、倒退等操作。此外,RTSP既可以使用RTP來傳送數據,還可以選擇TCP、UDP等通道來傳輸數據。

07RSVP協議

RSVP英文全稱Resource reSerVation Protocol資源預留協議,該協議是網絡層協議,它是針對IP網絡傳輸層不能保證QoS和支持多點傳輸而提出的協議。RSVP事先在業務流傳輸前預約網絡資源,建立靜態或動態的傳輸邏輯通路,保證每一業務流都有足夠的帶寬,這樣能夠提高傳輸質量。

RSVP是由接收方執行操作的協議,接收方決定預留資源的優先級,並對預留資源進行初始化和管理。RSVP共有三種預留資源類型,無濾包器、固定濾包器和動態濾包器。

RTP、RTCP、RTVP、RTSP功能圖示

08RTMP和RTMPS協議

RTMP英文全稱Real Time Messaging Protocol實時消息傳送協議。它是Adobe Systems公司為Flash播放器和伺服器之間流數據傳輸開發的開放協議。RTMP協議既可以傳輸AMF格式數據,也可以傳輸FLV格式數據。

RTMP協議有三個分支,第一種是工作在TCP協議上的明文傳輸,它使用的埠是1935;第二種是RTMPT,RTMPT被封裝在HTTP請求之中,可以穿越防火牆進行傳輸;第三種是RTMPS,它也是封裝在HTTP之中,不過與RTMPT不同的是,它使用HTTPS安全連接,可以保證傳輸的安全。

目前,大多數網際網路數據流傳輸使用該協議。

09HLS數據流傳輸協議

HLS英文全稱HTTP Live Streaming在線流傳輸協議,該協議是由美國蘋果公司實現的基於HTTP的流數據傳輸協議,可以實現流媒體的直播和點播。該協議主要為iOS系統服務。

HLS實際上並不是真正的實時流協議,HLS協議在伺服器端將數據流存儲為連續的、短時長的MPEG-TS格式文件,客戶端不斷下載並解析播放這些小文件從而實現實時流效果。可以認為,HLS是以點播流技術方式來實現實時流的協議。這樣的缺點是延時高。 

10RTMP和HLS比較

RTMP是APP中最常用的數據流傳輸協議,它可以做到低延時。RTMP協議進行數據傳輸時,它將一整條數據流封裝成FLV通過HTTP打包、TCP長連接分發出去,在伺服器端不產生落地文件,延時通常為 1至3秒,遠超HLS。

HLS協議通過切片傳輸數據,邊下載邊傳輸,所以傳輸延時要比RTMP長。但是,HLS基於HTTP/80 傳輸,很少會被防火牆攔下。HLS基於無狀態協議(HTTP)支持平滑擴展,RTMP對視頻伺服器進行平滑擴展困難。

做APP數據流時一般會選擇RTMP而不是HLS,特殊情況是微信端不支持RTMP,所以HLS表現良好。

相關焦點

  • 安全實時傳輸協議(SRTP-RFC3711)翻譯
    rtp(實時傳輸協議)用於傳輸實時音視頻數據;rtcp(實時傳輸控制協議)是rtp的配套協議,用於實時數據傳輸的監控和反饋、保證服務質量;srtp是rtp的profile,工作於rtp與傳輸層(例如udp)之間,為rtp提供數據加密、消息認證和重放保護,srtcp為rtcp提供類似功能。
  • 音視頻網絡傳輸協議有哪些,RTSP/RTMP/SRT/NDI的介紹
    > (文章來源:KILOVIEW千視) 網絡視頻傳輸協議有哪些,RTSP/RTMP/SRT/RTP之間特點下面詳細介紹: RTP協議(Real-time Transport Protocol)是一個網絡傳輸協議,是一種實時傳輸協議技術,RTP協議常用於流媒體系統(配合RTSP協議
  • 實現HEVC碼流RTSP推流並顯示
    而將編碼後得到的H265碼流推流,我將使用RTSP+RTP協議。不過沒關係,我們照葫蘆畫瓢,參考它的H264碼流的rtsp_h264_file.cpp文件實現H265碼流的推流調用就可以了。H265碼流推流代碼修改還是比較簡單的(快的話,十幾分鐘吧,畢竟框架是現成的),具體代碼就不在這貼了,如果大家比較感興趣,可以在公眾號私信給我,我把H265使用RTSP推流的rtsp_h265.cpp代碼發給你。
  • 南京家長日記 —揭秘hls hls hls!價值2萬的幼升小經驗
    門前沒有任何招牌廣告我當時覺得十分不可思議,還跟我同事說:「怎麼搞得這麼神秘啊,培訓班不要招生嗎,這位hls不打廣告的嗎!要我開一個培訓班,我肯定得掛個大廣告牌,上面寫上鬥大的字,越醒目越好。」同事只是神秘一笑。
  • 新一代直播傳輸協議SRT
    Photo by Vlad Alexandru Popa from PexelsSRT協議是基於UDT的傳輸協議,保留了UDT的核心思想和機制,抗丟包能力強,適用於複雜的網絡。在LiveVideoStack線上分享中,新浪音視頻架構師 施維對SRT協議的原理、優缺點特性以及在流媒體中的應用進行了詳細解析。
  • Xilinx Zynq使用HLS實現OpenCV的開發流程
    摘要:首先介紹OpenCV中圖像類型和函數處理方法,之後通過設計實例描述在VivadoHLS中調用OpenCV庫函數實現圖像處理的幾個基本步驟,闡述從OpenCV設計到RTL轉換綜合的開發流程。  圖2.1 Zynq視頻處理系統結構  2.2 在FPGA/Zynq開發中使用VivadoHLS實現OpenCV的設計流程  設計開發流程主要有如圖2.2三個步驟
  • 《抖音》hls可樂桶介紹
    《抖音》上面最近出現了一個非常奇怪的詞,這一個詞就是「hls可樂桶」,聽上去是不是非常像KFC新出的套餐呢?不過,真實的意思可遠遠不是這樣的。接下來小編就給各位玩家小夥伴詳細的講解一下《抖音》hls可樂桶介紹,一起來看看吧。
  • 《抖音》上火的hls可樂桶是什麼
    抖音上火的hls可樂桶是什麼?最近刷《抖音》的小夥伴相信都看到了一些關於hls可樂桶的視頻,視頻除搞笑之外,還有很多小夥伴都在想這個hls可樂桶是什麼意思,那麼今天小編就給大家介紹一下抖音上火的hls可樂桶的相關含義。
  • 流控制傳輸協議是什麼 流控制傳輸協議應用介紹【圖文】
    因而,SSCOPMCE實際上只能在有一定傳輸質量保證的內部或專用IP網上使用 其他一些研究機構則提出了新的IP網絡上用於傳輸信令的協議,如可靠信令傳輸協議RSTP。而TCP只提供嚴格的數據按序傳輸,這會導致不必要的隊頭阻塞並使消息的傳輸時延增大;  TCP連接直接由一對傳輸地址(IP位址和埠號)識別,從而無法提供對多宿主機的透明支持;  典型的TCP實現不允許高層應用設定協議控制參數。但是一些應用可能會需要調節傳輸協議的屬性以滿足其特定要求,例如某些信令協議有較高的時延要求,而另一些信令協議則只要求較高的可靠性。
  • SSD固態硬碟的傳輸總線、傳輸協議、傳輸接口大全
    1.傳輸總線 總線就像一條公路,公路上的車好比總線上的電信號;公路的大小和車流量就決定了公路的車流量,故總線的位寬大小和傳輸頻率決定了一次傳輸中能夠提供的最大速度。常見的總線類型有: 1.1 PCIe
  • 一張圖讀懂央媽心思:CBS是個啥東東?是不是中國版QE?
    一張圖讀懂央媽心思:CBS是個啥東東?是不是中國版QE?CBS是個啥東東?是不是中國版的量化寬鬆(QE)?以下這張圖為你解答。
  • 抖音hls可樂桶是什麼梗
    抖音hls可樂桶是什麼梗?抖音上最近一個hls可樂桶很火,很多網友都在學習做和研究怎麼兌和怎麼調,那麼大家知道抖音hls可樂桶是什麼梗要怎麼調嗎? 抖音hls可樂桶是什麼梗 hls可樂桶是一種可樂和威士忌的新喝發,就是簡單的威士忌混可樂,但是真的不要隨便嘗試哦。
  • 網宿宣布全面支持DASH協議 加速超清化全面普及
    業內人士表示,隨著5G時代的加速到來,超高清視頻首當其衝成為率先發力的重點產業之一,而在流媒體領域,超高清視頻的全面普及,標準協議必須先行。眾所周知,流媒體傳輸協議是伺服器和播放端之間傳送視頻的規定。其中,DASH協議是一種在網際網路上傳輸動態碼率的流媒體技術,類似於蘋果公司的HLS(HTTP Live Streaming)協議,這兩者都屬於基於HTTP的碼率自適應技術。
  • 加速超清化全面普及 網宿科技宣布全面支持DASH協議
    業內人士表示,隨著5G時代的加速到來,超高清視頻首當其衝成為率先發力的重點產業之一,而在流媒體領域,超高清視頻的全面普及,標準協議必須先行。眾所周知,流媒體傳輸協議是伺服器和播放端之間傳送視頻的規定。其中,DASH協議是一種在網際網路上傳輸動態碼率的流媒體技術,類似於蘋果公司的HLS(HTTP Live Streaming)協議,這兩者都屬於基於HTTP的碼率自適應技術。DASH可將大視頻切成若干個不同碼率的小視頻(切片),然後根據索引文件發起一系列的分片請求,從而減小每次請求的數據量,縮短首屏加載時間,保證高流暢的視聽體驗。