流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)转
常用的流媒體協(xié)議主要有HTTP漸進(jìn)下載和基于RTSP/RTP的實(shí)時(shí)流媒體協(xié)議兩類。在流式傳輸?shù)膶?shí)現(xiàn)方案中,一般采用HTTP/TCP來(lái)傳輸控制信息,而用RTP/UDP來(lái)傳輸實(shí)時(shí)多媒體數(shù)據(jù)。
1 實(shí)時(shí)傳輸協(xié)議RTP與RTCP
RTP(Real-time TransportProtocol)是用于Internet上針對(duì)多媒體數(shù)據(jù)流的一種傳輸協(xié)議。RTP由兩個(gè)緊密鏈接部分組成:RTP----傳送具有實(shí)時(shí)屬性的數(shù)據(jù);RTP控制協(xié)議(RTCP)----監(jiān)控服務(wù)質(zhì)量并傳送正在進(jìn)行的會(huì)話參與者的相關(guān)信息。
RTP協(xié)議是建立在UDP協(xié)議上的。RTP協(xié)議詳細(xì)說(shuō)明了在互聯(lián)網(wǎng)上傳遞音頻和視頻的標(biāo)準(zhǔn)數(shù)據(jù)包格式。RTP協(xié)議常用于流媒體系統(tǒng)(配合RTCP協(xié)議)、視頻會(huì)議和視頻電話系統(tǒng)(配合H.263或SIP)。
RTP本身并沒(méi)有提供按時(shí)發(fā)送機(jī)制或其他服務(wù)質(zhì)量(QoS)保證,它依賴于底層服務(wù)去實(shí)現(xiàn)這一過(guò)程。RTP并不保證傳送或防止無(wú)序傳送,也不確定底層網(wǎng)絡(luò)的可靠性。RTP實(shí)行有序傳送,RTP中的序列號(hào)允許接收方重組發(fā)送方的包序列,同時(shí)序列號(hào)也能用于決定適當(dāng)?shù)陌恢茫纾涸谝曨l解碼中,就不需要順序解碼。
實(shí)時(shí)傳輸控制協(xié)議(Real-time Transport Control Protocol,RTCP)是實(shí)時(shí)傳輸協(xié)議(RTP)的一個(gè)姐妹協(xié)議。RTCP為RTP媒體流提供信道外控制。RTCP定期在流多媒體會(huì)話參加者之間傳輸控制數(shù)據(jù)。RTCP的主要功能是為RTP所提供的服務(wù)質(zhì)量提供反饋。RTCP收集相關(guān)媒體連接的統(tǒng)計(jì)信息,例如:傳輸字節(jié)數(shù),傳輸分組數(shù),丟失分組數(shù),時(shí)延抖動(dòng),單向和雙向網(wǎng)絡(luò)延遲等等。網(wǎng)絡(luò)應(yīng)用程序可以利用RTCP所提供的信息試圖提高服務(wù)質(zhì)量,比如限制信息流量或改用壓縮比較小的編解碼器。RTCP本身不提供數(shù)據(jù)加密或身份認(rèn)證,其伴生協(xié)議SRTCP(安全實(shí)時(shí)傳輸控制協(xié)議)則可用于此類用途。
2 實(shí)時(shí)流協(xié)議RTSP
RTSP協(xié)議定義了一對(duì)多應(yīng)用程序如何有效通過(guò)IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。RTSP在體系結(jié)構(gòu)上位于RTP和RTCP之上,它使用TCP或RTP完成數(shù)據(jù)傳輸。HTTP與RTSP相比,HTTP傳送HTML,而RTP傳送的是多媒體數(shù)據(jù)。HTTP請(qǐng)求由客戶機(jī)發(fā)出,服務(wù)器做出響應(yīng);RTSP可以是雙向的,即客戶機(jī)和服務(wù)器都可以發(fā)出請(qǐng)求。
RTSP與RTP最大的區(qū)別在于:RTSP是一種雙向?qū)崟r(shí)數(shù)據(jù)傳輸協(xié)議,它允許客戶端向服務(wù)器端發(fā)送請(qǐng)求,如回放、快進(jìn)、倒退等操作。當(dāng)然RTSP可基于RTP來(lái)傳送數(shù)據(jù),還可以選擇TCP、UDP、組播UDP等通道來(lái)發(fā)送數(shù)據(jù),具有很好的擴(kuò)展性。它是一種類似于HTTP協(xié)議的網(wǎng)絡(luò)應(yīng)用協(xié)議。
3 資源預(yù)定協(xié)議RSVP
RSVP即資源預(yù)訂協(xié)議,使用RSVP預(yù)留一部分網(wǎng)絡(luò)資源(即帶寬),能在一定程度上為流媒體的傳輸提供QoS。RSVP、RTSP與RTP協(xié)議工作在不同的層次,如下圖所示。
4 實(shí)時(shí)消息傳輸協(xié)議RTMP
RTMP(Real Time Messaging Protocol)是Adobe Systems公司為Flash播放器和服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸開發(fā)的開放協(xié)議。它有三種變種:
(1)工作在TCP之上的明文協(xié)議,使用端口1935;
(2)RTMPT封裝在HTTP請(qǐng)求之中,可穿越防火墻;
(3)RTMPS類似RTMPT,但使用的是HTTPS連接。
RTMP視頻播放的特點(diǎn):
(1)RTMP協(xié)議是采用實(shí)時(shí)的流式傳輸,所以不會(huì)緩存文件到客戶端,這種特性說(shuō)明用戶想下載RTMP協(xié)議下的視頻是比較難的;
(2)視頻流可以隨便拖動(dòng),既可以從任意時(shí)間點(diǎn)向服務(wù)器發(fā)送請(qǐng)求進(jìn)行播放,并不需要視頻有關(guān)鍵幀。相比而言,HTTP協(xié)議下視頻需要有關(guān)鍵幀才可以隨意拖動(dòng)。
(3)RTMP協(xié)議支持點(diǎn)播/回放(通俗點(diǎn)將就是支持把flv,f4v,mp4文件放在RTMP服務(wù)器,客戶端可以直接播放),直播(邊錄制視頻邊播放)。
RTMP環(huán)境的架設(shè):
因?yàn)樵搮f(xié)議是adobe公司開發(fā)的,所以最初服務(wù)器端架設(shè)的環(huán)境是FMS(Flash Media
Server),該軟件為收費(fèi)軟件,價(jià)格昂貴。后來(lái),開源軟件red5的推出,使rtmp協(xié)議的架設(shè)成本大大縮小,但是在性能方面不如fms的穩(wěn)定。此外,wowza雖然是收費(fèi)的,但價(jià)格比較適中。
5 微軟媒體服務(wù)器協(xié)議MMS
MMS(Microsoft Media Server Protocol)是用來(lái)訪問(wèn)并流式接收Window
Media服務(wù)器中.asf文件的一種協(xié)議。MMS協(xié)議用于訪問(wèn)Windows Media發(fā)布點(diǎn)上的單播內(nèi)容。MMS是連接Windows
Media單播服務(wù)的默認(rèn)方法。若觀眾在Windows Media
Player中鍵入一個(gè)URL以連接內(nèi)容,而不是通過(guò)超級(jí)鏈接訪問(wèn)內(nèi)容,則他們必須是MMS協(xié)議引用該流。MMS的預(yù)設(shè)端口是1755.
6 HLS
HTTP Live Streaming(HLS)是蘋果公司實(shí)現(xiàn)的基于HTTP的流媒體傳輸協(xié)議,可實(shí)現(xiàn)流媒體的直播和點(diǎn)播,主要應(yīng)用于iOS系統(tǒng)。HLS點(diǎn)播是分段HTTP點(diǎn)播,不同在于它的分段非常小。要實(shí)現(xiàn)HLS點(diǎn)播,重點(diǎn)在于對(duì)媒體文件分段,目前有不少開源工具可以使用。
相對(duì)于常見(jiàn)的流媒體直播協(xié)議,HLS直播最大的不同在于,直播客戶端獲取到的并不是一個(gè)完整的數(shù)據(jù)流,HLS協(xié)議在服務(wù)器端將直播數(shù)據(jù)流存儲(chǔ)為連續(xù)的、很短時(shí)長(zhǎng)的媒體文件(MPEG-TS格式),而客戶端則不斷的下載并播放這些小文件,因?yàn)榉?wù)器總是會(huì)將最新的直播數(shù)據(jù)生成新的小文件,這樣客戶端只要不停的按順序播放從服務(wù)器獲取到的文件,就實(shí)現(xiàn)了直播。由此可見(jiàn),基本上可以認(rèn)為,HLS是以點(diǎn)播的技術(shù)方式實(shí)現(xiàn)直播。由于數(shù)據(jù)通過(guò)HTTP協(xié)議傳輸,所以完全不用考慮防火墻或者代理的問(wèn)題,而且分段文件的時(shí)長(zhǎng)很短,客戶端可以很快的選擇和切換碼率,以適應(yīng)不同帶寬條件下的播放。不過(guò)HLS的這種技術(shù)特點(diǎn),決定了它的延遲一般總是會(huì)高于普通的流媒體直播協(xié)議。
7 HTTP與RTSP傳輸?shù)牟顒e
概括的講,RTSP被許多公司防火墻拒絕,而HTTP可以作為一個(gè)普通的文件通過(guò);RTSP適合于大數(shù)據(jù)量、高可用性的流,如直播事件、長(zhǎng)事件或大型文件;HTTP更適合于較小的數(shù)據(jù)傳輸和交互;當(dāng)終端用戶正在觀看時(shí),RTSP允許用戶在服務(wù)器有效的回放媒體,HTTP更象下載一段媒體并在客戶機(jī)上播放。從終端用戶觀點(diǎn)來(lái)看,RTSP看起來(lái)像是文件從中心位置播放,有點(diǎn)象廣播,而HTTP感覺(jué)更象時(shí)從視頻庫(kù)中取視頻,并在家里的機(jī)器上播放。從服務(wù)質(zhì)量的觀點(diǎn)上看,對(duì)于流,RTSP有更好的體驗(yàn),RTSP提供類似于VCR的媒體控制,如暫停、快進(jìn)、倒退和絕對(duì)定位。使用HTTP傳輸,只能在整個(gè)流下載完成后,播放器軟件再模擬該過(guò)程。雖然,RTSP能夠使用TCP或UDP,但是RTSP控制經(jīng)常與RTP聯(lián)合使用,以最好的服務(wù)質(zhì)量傳送實(shí)際的媒體數(shù)據(jù)。
原文:https://zhuanlan.zhihu.com/p/27442401
總結(jié)
以上是生活随笔為你收集整理的流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为什么 SAP 电商云 Spartacu
- 下一篇: SAP 电商云 Spartacus 产品