zoukankan      html  css  js  c++  java
  • RTSP协议

    概述

    下面我们先看看总的RTSP的推流和拉流过程

    步骤 RTSP推流 RTSP拉流
    第一步 OPTION 查询服务器端可⽤⽅法 OPTION 查询服务器端可⽤⽅法
    第二步 ANNOUNCE 发送媒体描述信息 DESCRIBE得到媒体描述信息
    第三步 SETUP建⽴RTSP会话 SETUP建⽴RTSP会话
    第四步 RECORD请求传送数据 PLAY请求开始传送数据
    第五步 RTP数据推送 RTP数据传送播放中
    第六步 TEARDOWN关闭会话,退出 TEARDOWN关闭会话,退出

    可以看出,推流和拉流的过程还是很相似的,下面我们抓包分析一下

    RTSP推流

     第一步:OPTION 查询服务器端可⽤⽅法

    1.C->S:OPTION request //询问S有哪些⽅法可⽤

    1.S->C:OPTION response //S回应信息的public头字段中包括提供的所有可⽤⽅法

     第⼆步:ANNOUNCE 发送媒体描述信息

    2.C->S:ANNOUNCE request //客户端发送媒体描述信息给服务器

     2.S->C:ANNOUNCE response //S回应媒体描述信息,并返回了Session ID

     第三步:SETUP建⽴RTSP会话

    3.1C->S:SETUP request //通过Transport头字段列出可接受的传输选项,请求S建⽴会话

     

    RTP:31590 RTCP:31591

    3.1 S->C:SETUP response //S建⽴会话,通过Transport头字段返回选择的具体转输选项,并返
    回建⽴的Session ID;

     C->S

    RTP: 31590 -> 59472

    RTCP: 31591 -> 59473

    3.2C->S:SETUP request //通过Transport头字段列出可接受的传输选项,请求S建⽴会话

     3.2 S->C:SETUP response //S建⽴会话,通过Transport头字段返回选择的具体转输选项

     第四步:RECORD请求传送数据

    4.C->S:RECORD request //C向S请求发送数据

     

     4.S->C:RECORD response //S回应该允许的信息

    第五步: RTP数据推送

    C->S:发送流媒体数据 // 通过RTP协议传送数据

    视频

    音频

    第六步:TEARDOWN关闭会话,退出

    6.C->S:TEARDOWN request //C请求关闭会话

    6.S->C:TEARDOWN response //S回应该请求

     

    RTSP拉流

    第⼀步:查询服务器端可⽤⽅法

    1.C->S:OPTION request //询问S有哪些⽅法可⽤

    1.S->C:OPTION response //S回应信息的public头字段中包括提供的所有可⽤⽅法

     第⼆步:DESCRIBE得到媒

    2.C->S:DESCRIBE request //要求得到S提供的媒体描述信息体描述信息

    2.S->C:DESCRIBE response //S回应媒体描述信息,⼀般是sdp信息

     第三步:SETUP建⽴RTSP会话

    3.1 C->S:SETUP request //通过Transport头字段列出可接受的传输选项,请求S建⽴会话

      3.1 S->C:SETUP response //S建⽴会话,通过Transport头字段返回选择的具体转输选项

     3.2 C->S:SETUP request //通过Transport头字段列出可接受的传输选项,请求S建⽴会话

     3.2 S->C:SETUP response //S建⽴会话,通过Transport头字段返回选择的具体转输选项

     第四步:PLAY请求开始传送数据

    4.C->S:PLAY request //C请求S开始发送数据

    4.S->C:PLAYresponse //S回应该请求的信息

     

     可能流已经播放了⼀段时间,npt=起始时间

    第五步: RTP数据传送播放中

    S->C:发送流媒体数据 // 通过RTP协议传送数据

    视频 这⾥的ssrc 来⾃服务器

    第六步:TEARDOWN关闭会话,退出

     6.C->S:TEARDOWN request //C请求关闭会话

     6.S->C:TEARDOWN response //S回应该请求

  • 相关阅读:
    2017年10月9日 冒泡&去重复习
    2017 年9月29日 弹出层特效
    2017 年9月28日 三级联动
    2017 年 9 月 27 日 js(文本框内容添加到select)
    2017 年 9 月 27 日 js(1.两个select 内容互换 2.单选按钮 同意可点击下一步 3. 全选框)
    2017 年 9 月26 日
    linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装
    Zabbix配置文件详解之服务端zabbix_server
    LoadRunner安装+汉化+破解
    zabbix告警“Zabbix poller processes more than 75% busy”
  • 原文地址:https://www.cnblogs.com/vczf/p/13962106.html
Copyright © 2011-2022 走看看