交互過程
1、建立連接:
- 客戶端發送OPTIONS請求:詢問服務器支持的操作。
        OPTIONS rtsp://example.com/media.mp4 RTSP/1.0
        CSeq: 1
- 服務器響應:返回支持的RTSP方法。
2、描述媒體:
- 客戶端發送DESCRIBE請求:獲取媒體流的描述信息。
       DESCRIBE rtsp://example.com/media.mp4 RTSP/1.0
       CSeq: 2
       Accept: application/sdp
- 服務器響應:返回SDP格式的媒體描述,包含流的格式、時長、編碼、傳輸協議等。
       RTSP/1.0 200 OK
       CSeq: 2
       Content-Type: application/sdp
       Content-Length: ...
       v=0
       o=- 123456 123456 IN IP4 192.168.1.1
       s=Example Stream
       i=An example stream for RTSP
       t=0 0
       a=control:*
       m=video 49170 RTP/AVP 96
       c=IN IP4 239.255.255.255
       a=rtpmap:96 H264/90000
3、設置會話:
- 客戶端發送SETUP請求:為媒體流指定傳輸參數。
       SETUP rtsp://example.com/media.mp4/trackID=0 RTSP/1.0
       CSeq: 3
       Transport: RTP/AVP;unicast;client_port=49170-49171
- 服務器響應:返回確認信息。
       RTSP/1.0 200 OK
       CSeq: 3
       Transport: RTP/AVP;unicast;server_port=49172-49173
       Session: 12345678
4、開始播放:
- 客戶端發送PLAY請求:請求開始流傳輸。
       PLAY rtsp://example.com/media.mp4 RTSP/1.0
       CSeq: 4
       Session: 12345678
- 服務器響應:開始通過RTP傳輸媒體流。
5、控制流:
- 客戶端可以發送PAUSE請求:暫停流傳輸。
- 客戶端發送TEARDOWN請求:結束會話,釋放資源。
SDP(會話描述協議)
- SDP是描述多媒體會話的協議,通常用于RTSP和其他流媒體協議中。SDP包含以下信息:
- 版本信息(v=):協議版本。
- 會話信息(o=):創建者和會話ID。
- 流信息(m=):媒體類型(如音頻、視頻)、端口和傳輸協議。
- 編碼信息(a=rtpmap):媒體編碼格式和時鐘頻率。
- 連接信息(c=):連接地址。
- 其他屬性(i=、t=、a=等):流的描述、時長、控制信息等。
- SDP的主要作用是為媒體流提供必要的元數據,確保客戶端能夠正確處理和播放媒體內容。