自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

秒懂流媒體協(xié)議 RTMP 與 RTSP

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
本文主要介紹了流媒體協(xié)議、TCP與UDP協(xié)議、RTMP與RTSP協(xié)議,RTMP 和 RTSP 流媒體協(xié)議都有各自的優(yōu)勢(shì)。

RTMP 與 RTSP 是比較常見的兩種流媒體協(xié)議,那么什么是RTMP?什么是RTSP?它們兩之間有什么區(qū)別?使用的時(shí)候應(yīng)該如何選擇?

什么是流媒體協(xié)議?

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

每次觀看直播或點(diǎn)播視頻時(shí),背后的技術(shù)就是流媒體協(xié)議。

流媒體協(xié)議有很多,主要分為三大類:

  • 傳統(tǒng)視頻流協(xié)議
  • 基于 HTTP 的自適應(yīng)協(xié)議
  • 新技術(shù)

傳統(tǒng)視頻流協(xié)議

傳統(tǒng)視頻流協(xié)議主要有:

  • RTMP
  • RTSP

基于 HTTP 的自適應(yīng)協(xié)議

基于 HTTP 的自適應(yīng)協(xié)議主要有:

  • Apple HLS
  • Low-Latency HLS
  • MPEG-DASH
  • Adobe HDS

新技術(shù)

新技術(shù)主要有:

  • SRT
  • WebRTC

而我們今天著重要介紹和比較的就是傳統(tǒng)視頻流協(xié)議:RTMP和RTSP。

TCP 和 UDP

在探討RTMP和RTSP前,我們有必要先了解一下TCP 和 UDP,因?yàn)?RTMP 是基于 TCP 開發(fā)的,那么 RTSP 使用到了 UDP 。

TCP

TCP 英文全稱:Transmission Control Protocol,中文意思:傳輸控制協(xié)議。

TCP協(xié)議是位于應(yīng)用層和網(wǎng)絡(luò)層之間的傳輸控制協(xié)議,用于提供可靠的流傳輸服務(wù),即以字節(jié)流的形式傳輸數(shù)據(jù)和以字節(jié)流的形式接收數(shù)據(jù)。TCP 使用確認(rèn)機(jī)制來檢查數(shù)據(jù)是否安全可靠地到達(dá),在發(fā)送端進(jìn)行復(fù)用,在接收端進(jìn)行解復(fù)用。TCP 使用三個(gè)階段來實(shí)現(xiàn)連接定向功能,如連接建立、數(shù)據(jù)傳輸和連接終止。

UDP

UDP 英文全稱:User Datagram Protocol ,中文意思:用戶數(shù)據(jù)報(bào)協(xié)議。

UDP是一種無連接協(xié)議,即將數(shù)據(jù)從一端傳輸?shù)搅硪欢?無需建立連接。UDP 也位于應(yīng)用層和網(wǎng)絡(luò)層之間。它還以數(shù)據(jù)包的形式傳遞數(shù)據(jù)或信息;這些數(shù)據(jù)包稱為用戶數(shù)據(jù)報(bào)。UDP 使用多路復(fù)用來處理來自多個(gè)進(jìn)程的傳出用戶數(shù)據(jù)報(bào),并使用解復(fù)用來處理進(jìn)入同一主機(jī)上不同進(jìn)程的傳入用戶數(shù)據(jù)報(bào)。

TCP 與 UDP 區(qū)別

  • TCP 是面向連接的,而 UDP 是無連接的
  • TCP 是重量級(jí)的,而 UDP 是輕量級(jí)的
  • TCP 提供可靠的服務(wù),而 UDP 不提供可靠的服務(wù)
  • TCP 支持重傳機(jī)制,而 UDP 不支持
  • TCP 數(shù)據(jù)包按順序到達(dá)接收器,而 UDP 無序
  • TCP 不支持廣播,而 UDP 支持廣播
  • TCP 連接是一個(gè)字節(jié)流,而 UDP 連接是消息流

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

RTMP

  • 英文全稱:Real Time Messaging Protocol
  • 中文意思:實(shí)時(shí)消息協(xié)議
  • 底層協(xié)議:TCP
  • 應(yīng)用級(jí)視頻流協(xié)議
  • 視頻編解碼器:H.264
  • 音頻編解碼器:AAC
  • 延遲:3 - 30 秒

RTMP 2005 年誕生,由 Macromedia 開發(fā),后來被 Adobe 收購,在流媒體市場(chǎng)上有著悠久的歷史。最初用于在 RTMP 服務(wù)器和用戶設(shè)備上的 Flash 播放器之間傳輸數(shù)據(jù),不過Flash 于 2020 年正式結(jié)束了。

RTMP 的最大優(yōu)點(diǎn)是可以在服務(wù)器和客戶端服務(wù)器之間保持穩(wěn)定的連接,無論用戶的互聯(lián)網(wǎng)連接質(zhì)量如何,它都可以無縫低延遲進(jìn)行流媒體傳輸。這個(gè)技術(shù)主要通過將數(shù)據(jù)流分成相等的小部分(音頻數(shù)據(jù)默認(rèn)為 64 字節(jié),視頻數(shù)據(jù)默認(rèn)為 128 字節(jié))并將它們順序傳輸?shù)浇邮赵O(shè)備,然后將它們重新組合成視頻流來實(shí)現(xiàn)的。

RTMP 工作原理 

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

  • 攝像頭捕獲視頻
  • 通過編碼器將視頻流傳輸?shù)揭曨l平臺(tái)服務(wù)器
  • 視頻平臺(tái)處理視頻流
  • 通過CDN分發(fā)到離用戶最近的服務(wù)器上
  • 最后視頻流就能成功的到達(dá)用戶設(shè)備

那么這個(gè)環(huán)節(jié)中RTMP就起到了非常重要的作用,在視頻從攝像頭到服務(wù)器的過程中,RTMP將大量數(shù)據(jù)分割成小塊并跨多個(gè)虛擬通道傳輸,在視頻源和 RTMP 服務(wù)器之間提供了穩(wěn)定和流暢的視頻流。

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

RTSP

  • 英文全稱:Real Time Streaming Protocol
  • 中文意思:實(shí)時(shí)流協(xié)議
  • 底層協(xié)議:TCP 和 UDP
  • 網(wǎng)絡(luò)控制協(xié)議
  • 視頻編解碼器:H.265
  • 音頻編解碼器:AAC
  • 延遲:2 秒

RTSP 1996年誕生,由 RealNetworks、Netscape 和哥倫比亞大學(xué)的專家聯(lián)合開發(fā),用于控制 VHS 式視頻流的娛樂和通信系統(tǒng),RTSP 使用高效的 RTP 協(xié)議,將流數(shù)據(jù)分解成更小的塊,這樣可以更快地傳遞。

RTSP 支持可靠的分段流,這意味著用戶可以在仍在下載流的同時(shí)繼續(xù)觀看流。

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

上面提到RTSP使用RTP協(xié)議進(jìn)行分解視頻塊的,這里我們來講一下RTP協(xié)議。

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

除了RTP協(xié)議,為確保流暢和一致的流傳輸,RTSP 還使用另外兩種網(wǎng)絡(luò)通信協(xié)議:

  • TCP 收發(fā)控制命令(例如播放或停止請(qǐng)求)
  • UDP 傳送音頻、視頻和數(shù)據(jù)

這個(gè)怎么理解呢?

TCP可靠傳輸,比如用戶按下播放或者停止播放的時(shí)候,這個(gè)是個(gè)準(zhǔn)確的請(qǐng)求,這個(gè)需要保證可靠性,這個(gè)時(shí)候TCP作用就體現(xiàn)了。

UDP是低延遲的協(xié)議,那么用于傳送音頻、視頻和數(shù)據(jù)可以達(dá)到非常高效的效果。

RTSP 工作原理 

  • 用戶設(shè)備向視頻流平臺(tái)發(fā)送 RTSP 請(qǐng)求
  • 視頻流平臺(tái)返回可以操作的請(qǐng)求列表,比如播放、暫停等
  • 用戶設(shè)備向視頻流平臺(tái)發(fā)送具體的請(qǐng)求,比如播放
  • 視頻流平臺(tái)解析請(qǐng)求并調(diào)用指定機(jī)制啟動(dòng)視頻流處理

由于 RTSP 依賴于專用服務(wù)器,并且依賴于 RTP,因此該協(xié)議不支持加密視頻內(nèi)容或重傳丟失的數(shù)據(jù)包。

RTMP 與 RTSP 區(qū)別

1.延遲

RTMP:3-30秒

RTSP:2-5秒

2.音頻編解碼器

  • RTMP:AAC、AAC-LC、HE-AAC+ v1 & v2、MP3、Speex、Opus、Vorbis
  • RTSP:AAC、AAC-LC、HE-AAC+ v1 & v2、MP3、Speex、Opus、Vorbis

3、視頻編解碼器

  • RTMP:H.264, VP8, VP6, Sorenson Spark?, Screen Video v1 & v2
  • RTSP:H.265 (preview), H.264, VP9, VP8

4、優(yōu)點(diǎn)

  • RTMP: 低延遲適應(yīng)性靈活性不需要緩沖
  • RTSP: 低延遲分段流式傳輸

5、缺點(diǎn)

  • RTMP: 帶寬問題HTML5 不支持某些瀏覽器和設(shè)備的兼容性問題安全性有點(diǎn)低
  • RTSP:
  • HTTP 不兼容
  • 依賴于其他協(xié)議

RTMP 與 RTSP 該如何選擇?

其實(shí)看完RTMP 與 RTSP 區(qū)別,應(yīng)該對(duì)于使用場(chǎng)景有見解式的認(rèn)識(shí)了。

  • IP 攝像機(jī)、物聯(lián)網(wǎng)設(shè)備,那么選擇 RTSP準(zhǔn)不會(huì)錯(cuò)
  • 第三方流媒體應(yīng)用,那么選擇RTMP準(zhǔn)不會(huì)錯(cuò)

總結(jié)

本文主要介紹了流媒體協(xié)議、TCP與UDP協(xié)議、RTMP與RTSP協(xié)議,RTMP 和 RTSP 流媒體協(xié)議都有各自的優(yōu)勢(shì)。

RTMP 提供與不同攝取設(shè)備的兼容性和低延遲流媒體的穩(wěn)定性,但是,您需要一個(gè)特定的 Flash Media Server 來使用 RTMP 分發(fā)您的內(nèi)容,所以RTMP 適用于主要的第三方流應(yīng)用程序和較舊的硬件編碼器;

RTSP 最適用于 IP 攝像機(jī)和運(yùn)行 IP 攝像機(jī)的設(shè)備,例如無人機(jī)。

朋友們,你們明白了嗎?

責(zé)任編輯:武曉燕 來源: 今日頭條
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)