RTSP推流

1.和服务端建立TCP连接

2.建立会话

​ 使用建立的TCP连接进行会话,会话报文以两个\r\n结尾;

2.1.OPTIONS会话

客户端发送:
    OPTIONS rtsp://192.168.200.199:8010/designated_ch1 RTSP/1.0
    User-Agent: MultiCoreServer
    CSeq: 1

服务端回复:
    RTSP/1.0 200 OK
    CSeq: 1
    Date: 2021-05-24 11:28:32 GMT
    Public: OPTIONS, DESCRIBE, ANNOUNCE,SETUP, TEARDOWN, PLAY,RECORD,GET_PARAMETER

2.2.ANNOUNCE会话

​ 客户端需要主动提供推流的信息描述,格式需要符合SDP文件格式;

客户端发送:
    ANNOUNCE rtsp://192.168.200.199:8010/designated_ch1 RTSP/1.0
    User-Agent: MultiCoreServer
    CSeq: 2
    Content-Type: application/sdp
    Content-Length: 175

    v=0
    o=- 1464329709034587 1 IN IP4 127.0.0.1
    s=MPEG Transport Stream, streamed by mscore(Email:sugao_cn@163.com)
    m=video 0 RTP/AVP 33
    c=IN IP4 0.0.0.0
    a=control:trackid1

服务端回复:
    RTSP/1.0 200 OK
    CSeq: 2
    Date: 2021-05-24 11:28:32 GMT

2.3.SETUP会话

​ SETUP会话完成后,服务端会分配唯一的会话标识ID,此后的会话都需要携带该会话标识ID;

​ 客户端推流采用RTSP(OVER TCP)还是RTSP(OVER UDP),或者其他方式(此处不扩展),是由客户端和服务端协商确定的。由客户端主动发起协商方式,如果服务端支持则回复成功,如果服务端回复不支持,则客户端应更换其他方式再次进行尝试;

2.3.1.RTSP(OVER TCP)

客户端发送:
    SETUP rtsp://192.168.200.199:8010/designated_ch1/trackid1 RTSP/1.0
    Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
    User-Agent: MultiCoreServer
    CSeq: 3

服务端回复:
    RTSP/1.0 200 OK
    CSeq: 3
    Date: 2021-05-24 11:28:32 GMT
    Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record;
    Session: 0xa2fd474b

2.3.2.RTSP(OVER UDP)

服务端回复的server_port=12002-22002,分别为服务端的RTP和RTCP的接收端口

客户端发送:
    SETUP rtsp://192.168.200.199:8010/designated_ch1/trackid1 RTSP/1.0
    Transport: RTP/AVP/UDP;unicast;client_port=21534-21535;mode=record
    User-Agent: MultiCoreServer
    CSeq: 3
服务端回复:
    RTSP/1.0 200 OK
    CSeq: 3
    Date: 2021-05-24 11:28:32 GMT
    Transport: RTP/AVP/UDP;unicast;client_port=21534-21535;mode=record;server_port=12002-22002
    Session: 0xa2fd4749

2.4.RECORD会话

客户端发送:
    RECORD rtsp://192.168.200.199:8010/designated_ch1 RTSP/1.0
    Session: 0xa2fd474b
    User-Agent: MultiCoreServer
    CSeq: 4

服务端回复:
    RTSP/1.0 200 OK
    CSeq: 4
    Date: 2021-05-24 11:28:32 GMT
    Session: 0xa2fd474b

3.数据推流

​ 数据封装见文章RTP和RTCP讲解

3.1.RTSP(OVER TCP)

  • 使用TCP连接进行数据推送,推送RTP(OVER TCP)流;
  • 使用TCP连接进行会话,无需定时进行心跳发送;

3.2.RTSP(OVER UDP)

  • 使用SETUP会话中,服务端回复的server_port=12002-22002,基于UDP协议分别进行RTP和RTCP数据的发送;
  • 使用TCP连接进行会话,要求定时进行心跳发送,保持会话连接;

4.断开会话

客户端发送:
    TEARDOWN rtsp://192.168.200.199:8010/designated_ch1 RTSP/1.0
    Session: 0xa2fd474b
    User-Agent: MultiCoreServer
    CSeq: 4

服务端回复:
    RTSP/1.0 200 OK
    CSeq: 4
    Date: 2021-05-24 11:28:32 GMT
    Session: 0xa2fd474b
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷咪哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值