秒懂流媒體協議 RTMP 與 RTSP

RTMP 與 RTSP 是比較常見的兩種流媒體協議,那麼什麼是 RTMP?什麼是 RTSP?它們兩之間有什麼區別?使用的時候應該如何選擇?

什麼是流媒體協議?

流媒體協議,英文學名 Streaming Protocol,用一句人話來解釋:流媒體協議是一種用於通過 Web 傳遞多媒體的協議。

每次觀看直播或點播視頻時,背後的技術就是流媒體協議

流媒體協議有很多,主要分爲三大類:

傳統視頻流協議

傳統視頻流協議主要有:

基於 HTTP 的自適應協議

基於 HTTP 的自適應協議主要有:

新技術

新技術主要有:

而我們今天着重要介紹和比較的就是傳統視頻流協議:RTMP 和 RTSP

TCP 和 UDP

在探討 RTMP 和 RTSP 前,我們有必要先了解一下 TCP 和 UDP,因爲 RTMP 是基於 TCP 開發的,那麼 RTSP 使用到了 UDP

TCP

TCP 英文全稱:Transmission Control Protocol,中文意思:傳輸控制協議

TCP 協議是位於應用層和網絡層之間的傳輸控制協議,用於提供可靠的流傳輸服務,即以字節流的形式傳輸數據和以字節流的形式接收數據。TCP 使用確認機制來檢查數據是否安全可靠地到達,在發送端進行復用,在接收端進行解複用。TCP 使用三個階段來實現連接定向功能,如連接建立、數據傳輸和連接終止。

UDP

UDP 英文全稱:User Datagram Protocol ,中文意思:用戶數據報協議

UDP 是一種無連接協議,即將數據從一端傳輸到另一端;無需建立連接。UDP 也位於應用層和網絡層之間。它還以數據包的形式傳遞數據或信息;這些數據包稱爲用戶數據報。UDP 使用多路複用來處理來自多個進程的傳出用戶數據報,並使用解複用來處理進入同一主機上不同進程的傳入用戶數據報。

TCP 與 UDP 區別

以上就是最基礎的部分,下面我切入今天的主題:RTMP 和 RTSP 協議。

RTMP

RTMP  2005 年誕生,由 Macromedia 開發,後來被 Adobe 收購,在流媒體市場上有着悠久的歷史。最初用於在 RTMP 服務器和用戶設備上的 Flash 播放器之間傳輸數據,不過 Flash 於 2020 年正式結束了。

RTMP 的最大優點是可以在服務器和客戶端服務器之間保持穩定的連接,無論用戶的互聯網連接質量如何,它都可以無縫低延遲進行流媒體傳輸。這個技術主要通過將數據流分成相等的小部分(音頻數據默認爲 64 字節,視頻數據默認爲 128 字節)並將它們順序傳輸到接收設備,然後將它們重新組合成視頻流來實現的。

RTMP 工作原理 ⭐

一般來說視頻流是這樣工作的:

  1. 攝像頭捕獲視頻

  2. 通過編碼器將視頻流傳輸到視頻平臺服務器

  3. 視頻平臺處理視頻流

  4. 通過 CDN 分發到離用戶最近的服務器上

  5. 最後視頻流就能成功的到達用戶設備

那麼這個環節中 RTMP 就起到了非常重要的作用,在視頻從攝像頭到服務器的過程中,RTMP 將大量數據分割成小塊並跨多個虛擬通道傳輸,在視頻源和 RTMP 服務器之間提供了穩定和流暢的視頻流。

RTMP 最大的缺點是它與 HTML5 播放器不兼容,這樣的話必須使用另一種協議,例如 HLS 來傳輸視頻文件到達用戶的設備,此外,RTMP 容易受到帶寬問題的影響。

RTSP

RTSP 1996 年誕生,由 RealNetworks、Netscape 和哥倫比亞大學的專家聯合開發,用於控制 VHS 式視頻流的娛樂和通信系統,RTSP 使用高效的 RTP 協議,將流數據分解成更小的塊,這樣可以更快地傳遞。

RTSP 支持可靠的分段流,這意味着用戶可以在仍在下載流的同時繼續觀看流。

Android 和 iOS 設備沒有開箱即用的 RTSP 兼容播放器,所以普及度並不高,但 RTSP 在許多監控 和閉路電視 (CCTV) 應用非常廣泛,遠程攝像頭、在線教育和互聯網直播等,都用的比較頻繁。

上面提到 RTSP 使用 RTP 協議進行分解視頻塊的,這裏我們來講一下 RTP 協議。

RTP 協議,英文全稱:Real-time Transport Protocol,中文就是實時傳輸協議,它的底層其實就是 UDP,這樣一來就可以實現低延遲

除了 RTP 協議,爲確保流暢和一致的流傳輸,RTSP 還使用另外兩種網絡通信協議:

這個怎麼理解呢?

TCP 可靠傳輸,比如用戶按下播放或者停止播放的時候,這個是個準確的請求,這個需要保證可靠性,這個時候 TCP 作用就體現了。

UDP 是低延遲的協議,那麼用於傳送音頻、視頻和數據可以達到非常高效的效果。

RTSP 工作原理 ⭐

  1. 用戶設備向視頻流平臺發送 RTSP 請求

  2. 視頻流平臺返回可以操作的請求列表,比如播放、暫停等

  3. 用戶設備向視頻流平臺發送具體的請求,比如播放

  4. 視頻流平臺解析請求並調用指定機制啓動視頻流處理

由於 RTSP 依賴於專用服務器,並且依賴於 RTP,因此該協議不支持加密視頻內容或重傳丟失的數據包。

RTMP 與 RTSP 區別

1、延遲

2、音頻編解碼器

3、視頻編解碼器

4、優點

5、缺點

RTMP 與 RTSP 該如何選擇?

其實看完 RTMP 與 RTSP 區別,應該對於使用場景有見解式的認識了。

總結

本文主要介紹了流媒體協議、TCP 與 UDP 協議、RTMP 與 RTSP 協議,RTMP 和 RTSP 流媒體協議都有各自的優勢。

RTMP 提供與不同攝取設備的兼容性和低延遲流媒體的穩定性,但是,您需要一個特定的 Flash Media Server 來使用 RTMP 分發您的內容,所以 RTMP 適用於主要的第三方流應用程序和較舊的硬件編碼器;

RTSP 最適用於 IP 攝像機和運行 IP 攝像機的設備,例如無人機。

朋友們,你們明白了嗎?

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/GLiYsXkiRK-GDGxRQS8jAg