亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

音視頻基礎知識---協議相關RTP RTMP HLS

2023-06-08 09:20:08
41
0

RTP(Real-time Transport Protocol)實時傳輸協議

RTP是用于Internet上針對多媒體數據流的一種傳輸協議。RTP由兩個緊密鏈接部分組成:RTP----傳送具有實時屬性的數據;RTCP控制協議(RTCP)----監控服務質量并傳送正在進行的會話參與者的相關信息。

RTP協議是建立在UDP協議上的。RTP協議詳細說明了在互聯網上傳遞音頻和視頻的標準數據包格式。RTP協議常用于流媒體系統(配合RTCP協議)、視頻會議。和一鍵通(Push to Talk)系統(配合H.323或SIP),使它成為了IP電話產業的技術基礎。

實時傳輸協議(RTP)為數據提供了具有實時特征的端對端傳送服務,如在組播單播網絡服務下的交互式視頻音頻或模擬數據。應用程序通常在 UDP 上運行 RTP 以便使用其多路結點和校驗服務;這兩種協議都提供了傳輸層協議的功能。但是 RTP 可以與其它適合的底層網絡或傳輸協議一起使用。如果底層網絡提供組播方式,那么 RTP 可以使用該組播表傳輸數據到多個目的地。
 
RTP 本身并沒有提供按時發送機制或其它服務質量(QoS)保證,它依賴于底層服務去實現這一過程。 RTP 并不保證傳送或防止無序傳送,也不確定底層網絡的可靠性。 RTP 實行有序傳送, RTP 中的序列號允許接收方重組發送方的包序列,同時序列號也能用于決定適當的包位置,例如:在視頻解碼中,就不需要順序解碼。

 

RTCP(Real-time Transport Control Protocol)實時傳輸控制協議

對于實時多媒體流應用,及時傳送信息是首要目標,為達到目標可以忍受部分丟包。例如,在音頻應用中的一個丟包,可能導致損失音頻數據中的一秒內容,這個很容易通過合適的隱藏算法掩蓋過去,從而不被人注意。由于TCP更注重可靠性而不是及時性,在RTP應用中很少使用。取而代之,大部分RTP實施是基于UDP的。
 
每一個多媒體流會建立一個RTP會話。一個會話包含帶有RTP和RTCP端口號的IP地址。例如,音頻和視頻流使用分開的RTP會話,這樣用戶可以選擇其中一個媒體流。形成會話的端口由其他協議(例如RTSP和SIP)來協商。RTP和RTCP使用UDP端口1024 - 65535。

通常RTCP會采用與RTP相同的分發機制,向會話中的所有成員周期性地發送控制信息,應用程序通過接收這些數據,從中獲取會話參與者的相關資料,以及網絡狀況、分組丟失概率等反饋信息,從而能夠對服務質量進行控制或者對網絡狀況進行診斷。

 


RTMP(Real Time Messaging Protocol)實時消息傳輸協議

RTMP協議是Real Time Message Protocol(實時信息傳輸協議)的縮寫,它是由Adobe公司提出的一種應用層的協議,用來解決多媒體數據傳輸流的多路復用(Multiplexing)和分包(packetizing)的問題。

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

RTMP協議是要靠底層可靠的傳輸層協議(通常是TCP)來保證信息傳輸的可靠性的,默認使用端口1935。在基于傳輸層協議的鏈接建立完成后,RTMP協議也要客戶端和服務器通過“握手”來建立基于傳輸層鏈接之上的RTMP Connection鏈接。RTMP Connection成功后會傳輸一些控制信息,如CreateStream命令會創建一個Stream鏈接,用于傳輸具體的音視頻數據和控制這些信息傳輸的命令信息。

RTMP協議中基本的數據單元稱為消息(Message),即封裝、解封裝都是以Message為單位進行操作。當RTMP協議在互聯網中傳輸數據的時候,為了更好地實現多路復用、分包和信息的公平性,發送端會把Message劃分為帶有Message ID的Chunk,每個Chunk可能是一個單獨的Message,也可能是Message的一部分,在接受端會根據chunk中包含的data的長度,message id和message的長度把chunk還原成完整的Message,從而實現信息的收發。


HLS (HTTP Live Streaming)

HTTP Live Streaming(HLS)是蘋果公司實現的基于HTTP的流媒體傳輸協議,可實現流媒體的直播和點播,主要應用于iOS系統。HLS點播是分段HTTP點播,不同在于它的分段非常小。要實現HLS點播,重點在于對媒體文件分段,目前有不少開源工具可以使用。

相對于常見的流媒體直播協議,HLS直播最大的不同在于,直播客戶端獲取到的并不是一個完整的數據流。HLS(HTTP Live Streaming) 把整個流分成一個個小的基于 HTTP 的文件來下載,每次只下載一些。HLS 協議由三部分組成:HTTP、M3U8、TS。這三部分中,HTTP 是傳輸協議,M3U8 是索引文件,TS 是音視頻的媒體信息。

HLS是以點播的技術方式實現直播。由于數據通過HTTP協議傳輸,所以完全不用考慮防火墻或者代理的問題,而且分段文件的時長很短,客戶端可以很快的選擇和切換碼率,以適應不同帶寬條件下的播放。HLS的這種技術特點,決定了它的延遲一般總是會高于普通的流媒體直播協議。

 

直播應用中,RTMP和HLS可以基本支持各類客戶端需求,

HLS延時比較大,RTMP主要優勢在于延時低。

 

0條評論
作者已關閉評論
陳****宏
3文章數
0粉絲數
陳****宏
3 文章 | 0 粉絲
陳****宏
3文章數
0粉絲數
陳****宏
3 文章 | 0 粉絲
原創

音視頻基礎知識---協議相關RTP RTMP HLS

2023-06-08 09:20:08
41
0

RTP(Real-time Transport Protocol)實時傳輸協議

RTP是用于Internet上針對多媒體數據流的一種傳輸協議。RTP由兩個緊密鏈接部分組成:RTP----傳送具有實時屬性的數據;RTCP控制協議(RTCP)----監控服務質量并傳送正在進行的會話參與者的相關信息。

RTP協議是建立在UDP協議上的。RTP協議詳細說明了在互聯網上傳遞音頻和視頻的標準數據包格式。RTP協議常用于流媒體系統(配合RTCP協議)、視頻會議。和一鍵通(Push to Talk)系統(配合H.323或SIP),使它成為了IP電話產業的技術基礎。

實時傳輸協議(RTP)為數據提供了具有實時特征的端對端傳送服務,如在組播單播網絡服務下的交互式視頻音頻或模擬數據。應用程序通常在 UDP 上運行 RTP 以便使用其多路結點和校驗服務;這兩種協議都提供了傳輸層協議的功能。但是 RTP 可以與其它適合的底層網絡或傳輸協議一起使用。如果底層網絡提供組播方式,那么 RTP 可以使用該組播表傳輸數據到多個目的地。
 
RTP 本身并沒有提供按時發送機制或其它服務質量(QoS)保證,它依賴于底層服務去實現這一過程。 RTP 并不保證傳送或防止無序傳送,也不確定底層網絡的可靠性。 RTP 實行有序傳送, RTP 中的序列號允許接收方重組發送方的包序列,同時序列號也能用于決定適當的包位置,例如:在視頻解碼中,就不需要順序解碼。

 

RTCP(Real-time Transport Control Protocol)實時傳輸控制協議

對于實時多媒體流應用,及時傳送信息是首要目標,為達到目標可以忍受部分丟包。例如,在音頻應用中的一個丟包,可能導致損失音頻數據中的一秒內容,這個很容易通過合適的隱藏算法掩蓋過去,從而不被人注意。由于TCP更注重可靠性而不是及時性,在RTP應用中很少使用。取而代之,大部分RTP實施是基于UDP的。
 
每一個多媒體流會建立一個RTP會話。一個會話包含帶有RTP和RTCP端口號的IP地址。例如,音頻和視頻流使用分開的RTP會話,這樣用戶可以選擇其中一個媒體流。形成會話的端口由其他協議(例如RTSP和SIP)來協商。RTP和RTCP使用UDP端口1024 - 65535。

通常RTCP會采用與RTP相同的分發機制,向會話中的所有成員周期性地發送控制信息,應用程序通過接收這些數據,從中獲取會話參與者的相關資料,以及網絡狀況、分組丟失概率等反饋信息,從而能夠對服務質量進行控制或者對網絡狀況進行診斷。

 


RTMP(Real Time Messaging Protocol)實時消息傳輸協議

RTMP協議是Real Time Message Protocol(實時信息傳輸協議)的縮寫,它是由Adobe公司提出的一種應用層的協議,用來解決多媒體數據傳輸流的多路復用(Multiplexing)和分包(packetizing)的問題。

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

RTMP協議是要靠底層可靠的傳輸層協議(通常是TCP)來保證信息傳輸的可靠性的,默認使用端口1935。在基于傳輸層協議的鏈接建立完成后,RTMP協議也要客戶端和服務器通過“握手”來建立基于傳輸層鏈接之上的RTMP Connection鏈接。RTMP Connection成功后會傳輸一些控制信息,如CreateStream命令會創建一個Stream鏈接,用于傳輸具體的音視頻數據和控制這些信息傳輸的命令信息。

RTMP協議中基本的數據單元稱為消息(Message),即封裝、解封裝都是以Message為單位進行操作。當RTMP協議在互聯網中傳輸數據的時候,為了更好地實現多路復用、分包和信息的公平性,發送端會把Message劃分為帶有Message ID的Chunk,每個Chunk可能是一個單獨的Message,也可能是Message的一部分,在接受端會根據chunk中包含的data的長度,message id和message的長度把chunk還原成完整的Message,從而實現信息的收發。


HLS (HTTP Live Streaming)

HTTP Live Streaming(HLS)是蘋果公司實現的基于HTTP的流媒體傳輸協議,可實現流媒體的直播和點播,主要應用于iOS系統。HLS點播是分段HTTP點播,不同在于它的分段非常小。要實現HLS點播,重點在于對媒體文件分段,目前有不少開源工具可以使用。

相對于常見的流媒體直播協議,HLS直播最大的不同在于,直播客戶端獲取到的并不是一個完整的數據流。HLS(HTTP Live Streaming) 把整個流分成一個個小的基于 HTTP 的文件來下載,每次只下載一些。HLS 協議由三部分組成:HTTP、M3U8、TS。這三部分中,HTTP 是傳輸協議,M3U8 是索引文件,TS 是音視頻的媒體信息。

HLS是以點播的技術方式實現直播。由于數據通過HTTP協議傳輸,所以完全不用考慮防火墻或者代理的問題,而且分段文件的時長很短,客戶端可以很快的選擇和切換碼率,以適應不同帶寬條件下的播放。HLS的這種技術特點,決定了它的延遲一般總是會高于普通的流媒體直播協議。

 

直播應用中,RTMP和HLS可以基本支持各類客戶端需求,

HLS延時比較大,RTMP主要優勢在于延時低。

 

文章來自個人專欄
文章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0