• 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回应该请求

  • 相关阅读:
    调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置
    调试SQLSERVER (一)生成dump文件的方法
    SQLSERVER中如何快速比较两张表的不一样
    Leptonica在VS2010中的编译及简单使用举例
    UVALive 3135--Argus+自己定义优先队列的优先规则
    mysql---总体备份和增量备份
    OllyDbg 使用笔记 (十二)
    《TCP/IP具体解释卷2:实现》笔记--IP:网际协议
    blurImage做图片模糊处理报错free(): invalid next size
    docker网络配置方法总结
  • 原文地址:https://www.cnblogs.com/vczf/p/13962106.html
Copyright © 2020-2023  润新知