- 實時流協定(Real Time Streaming Protocol,RTSP)
下列為交握步驟
OPTIONS
DESCRIBE
ANNOUNCE (ignore)
SETUP
PLAY
PAUSE (ignore)
TEARDOWN
GET_PARAMETER
SET_PARAMETER
REDIRECT (ignore)
RECORD (ignore)
OPTIONS rtsp://192.168.0.23:554/live.sdp RTSP/1.0
CSeq: 1 User-Agent: HUNT
S -> C :
RTSP/1.0 200 OK
CSeq: 1
Date: Mon, 6 Mar 2000 1:16:50 GMT
Public: OPTIONS, DESCRIBE, PLAY, SETUP, GET_PARAMETER, SET_PARAMETER, TEARDOWN
該回覆包括呈現描述,通常以對談描述協定(SDP)格式,SDP 訊息包含 Session description、Time description、 Media description,主要需要得知Media description內的video , audio 編碼方式以及其他資訊(如h264 的 sps,pps等)
SDP 格式可參考 : Albert 筆記
C -> S :
DESCRIBE rtsp://192.168.0.23:554/live.sdp RTSP/1.0
CSeq: 2
User-Agent: HUNT
S -> C :
RTSP/1.0 200 OK
CSeq: 2
Date: Mon, 6 Mar 2000 1:16:50 GMT
Content-Base: rtsp://192.168.0.23/live.sdp/
Content-Type: application/sdp
Content-Length: 461
o=RTSP 952305410 424 IN IP4 0.0.0.0
s=RTSP server
c=IN IP4 0.0.0.0
t=0 0
a=charset:Shift_JIS
a=range:npt=0-
a=control:*
a=etag:1234567890
m=video 0 RTP/AVP 98 //m表示media為video ,RTP傳輸
b=AS:0
a=rtpmap:98 H264/90000 //H264為Decode , 90000: timestamp 單位
a=control:trackID=1 //為SETUP method url為 trackID=1
a=fmtp:\
98 packetization-mode=1;\
profile-level-id=4d0028;\
sprop-parameter-sets=Z00AKNoB4AiflQ==,aO48gA==
//以本例(H264)而言
//主要使用sps, pps來記錄
//sps為 Z00AKNoB4AiflQ==
//Pps為 aO48gA==
m=audio 0 RTP/AVP 97 b=AS:13 //m表示media為audio ,RTP傳輸
a=rtpmap:97 AMR/8000
a=control:trackID=6
a=maxptime:200
a=fmtp:97 decode_buf=400;octet-align=1
SETUP 請求
SETUP請求指定如何傳輸單個媒體流。這必須在傳送PLAY請求之前完成。
C -> S :
SETUP rtsp://192.168.0.23/live.sdp/trackID=6
RTSP/1.0 Transport: RTP/AVP/TCP;unicast;interleaved=2-3
CSeq: 3
User-Agent: HUNT
S -> C :
RTSP/1.0 200 OK
CSeq: 3
Date: Mon, 6 Mar 2000 1:16:50 GMT
Session: 182264145;timeout=80
Transport: RTP/AVP/TCP;interleaved=2-3;unicast;mode=play
可以指定範圍。如果沒有指定範圍,流將從頭開始播放,並播放到最後,或者如果流暫停,則在暫停點恢復播放。
C -> S :
PLAY rtsp://192.168.0.23/live.sdp/ RTSP/1.0
Range: npt=0.000-
CSeq: 4
User-Agent: HUNT
Session: 182264145
S -> C :
RTSP/1.0 200 OK
CSeq: 4
Date: Mon, 6 Mar 2000 1:16:50 GMT
Session: 182264145;timeout=80
RTP-Info: url=rtsp://192.168.0.23/live.sdp/trackID=6;seq=0;rtptime=0
C->S: TEARDOWN rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 8
Session: 12345678
S->C: RTSP/1.0 200 OK
CSeq: 8
面試:
Timestamp 用途?
Timestamp 用途?
open path:
rtsp://195.200.199.8/mpeg4/media.amp
參考:
https://zh.wikipedia.org/wiki/%E5%8D%B3%E6%99%82%E4%B8%B2%E6%B5%81%E5%8D%94%E5%AE%9A
沒有留言:
張貼留言