1. 程式人生 > >RTSP、RTMP、HTTP協議

RTSP、RTMP、HTTP協議

rtp 每一個 creat http服務 網頁 stp 可用 sdn 方法

一、異同
1、RSTP、RTMP、HTTP協議共同點
RTSP RTMP HTTP都是用在應用層。
理論上這三種協議都可以做直播和點播,但直播一般用RTSP和RTMP點播用HTTP。
2、RSTP、RTMP、HTTP協議區別
HTTP將數據作為文件處理,所以HTTP不是流媒體協議,RTMP和RTSP是流媒體協議。
RTMP是Adobe的私有協議,未完全公開,RTSP和HTTP是共有協議。
RTMP一般傳輸flv,f4v格式流,RTSP傳輸ts,MP4格式流,HTTP沒有特定的流。
RTSP一般需要2-3個通道,數據和命令通道分開,RTMP和HTTP在一個通道上傳輸命令和數據。
二、RTSP
RTSP被用於建立的控制媒體流的傳輸,它為多媒體服務扮演“網絡遠程控制”的角色。盡管有時可以把RTSP控制信息和媒體數據流交織在一起傳送,但一般情況RTSP本身並不用於轉送媒體流數據。媒體數據的傳送可通過RTP/RTCP等協議來完成。

RTSP操作流程
1. 客戶端連接到流服務器,查詢服務器可用方法
2. 發送一個RTSP描述命令(DESCRIBE),流服務器通過一個SDP描述來進行反饋,反饋信息包括流數量、媒體類型等信息。

3. 客戶端再分析該SDP描述,並為會話中的每一個流發送一個RTSP建立命令(SETUP),RTSP建立命令告訴服務器客戶端用於接收媒體數據的端口。

4. 流媒體連接建立完成後,客戶端發送一個播放命令(PLAY),服務器就開始在傳送媒體流(RTP包)到客戶端。在播放過程中客戶端還可以向服務器發送命令來控制快進、快退和暫停等。

5. 最後,客戶端可發送一個終止命令(TERADOWN)來結束流媒體會話。三、RTMP

參考網頁:http://blog.csdn.net/caoshangpa/article/details/52872146

RTMP協議是一個互聯網五層體系結構中應用層的協議。RTMP協議中基本的數據單元稱為消息(Message)。當RTMP協議在互聯網中傳輸數據的時候,消息會被拆分成更小的單元,稱為塊(Chunk)。

RTMP操作流程
播放一個RTMP協議的流媒體需要經過以下幾個步驟:握手,建立連接,建立流,播放。

1. 握手
握手開始於客戶端發送C0、C1塊。服務器收到C0或C1後發送S0和S1。
當客戶端收齊S0和S1後,開始發送C2。當服務器收齊C0和C1後,開始發送S2。
當客戶端和服務器分別收到S2和C2後,握手完成。


2. 建立網絡連接(NetConnection)
客戶端發送命令消息中的“連接”(connect)到服務器,請求與一個服務應用實例建立連接。
服務器接收到連接命令消息後,發送確認窗口大小(Window Acknowledgement Size)協議消息到客戶端,同時連接到連接命令中提到的應用程序。
服務器發送設置帶寬協議消息到客戶端。
客戶端處理設置帶寬協議消息後,發送確認窗口大小(Window Acknowledgement Size)協議消息到服務器端。
服務器發送用戶控制消息中的“流開始”(Stream Begin)消息到客戶端
服務器發送命令消息中的“結果”(_result),通知客戶端連接的狀態。

3.建立網絡流(NetStream)
客戶端發送命令消息中的“創建流”(createStream)命令到服務器端。
服務器端接收到“創建流”命令後,發送命令消息中的“結果”(_result),通知客戶端流的狀態。

4.播放(Play)
客戶端發送命令消息中的“播放”(play)命令到服務器。
接收到播放命令後,服務器發送設置塊大小(ChunkSize)協議消息。
服務器發送用戶控制消息中的“streambegin”,告知客戶端流ID。
播放命令成功的話,服務器發送命令消息中的“響應狀態” NetStream.Play.Start & NetStream.Play.reset,告知客戶端“播放”命令執行成功。
在此之後服務器發送客戶端要播放的音頻和視頻數據。


四、HTTP
特點
支持客戶/服務器模式。
簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。采用這種方式可以節省傳輸時間。
無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
URL
HTTP URL (URL是一種特殊類型的URI,包含了用於查找某個資源的足夠的信息)的格式如下:
http://host[“:”port][abs_path]

http表示要通過HTTP協議來定位網絡資源;
host表示合法的Internet主機域名或者IP地址;
port指定一個端口號,為空則使用缺省端口80;
abs_path指定請求資源的URI;
如果URL中沒有給出abs_path,那麽當它作為請求URI時,必須
以“/”的形式給出,通常這個工作瀏覽器自動幫我們完成。

eg:
1、輸入:www.guet.edu.cn
瀏覽器自動轉換成:http://www.guet.edu.cn/
2、http:192.168.0.116:8080/index.jsp
---------------------
作者:夏中偉
來源:CSDN
原文:https://blog.csdn.net/qq_25005909/article/details/79098152
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

RTSP、RTMP、HTTP協議