RTSP(Real-Time Streaming Protocol)实时流式协议

需要注意的是,RTSP本身不传输数据,音视频流数据是通过RTP传输的。

C/S请求应答整体流程:

客户端->>服务器:DESCRIBE
服务器->>客户端: 200 OK (SDP)
客户端->>服务器:SETUP
服务器->>客户端: 200 OK
客户端->>服务器:PLAY
服务器->>客户端: (RTP包)

RTSP请求报文的结构如下图所示

RTSP响应报文的结构如下图所示

一次完整的会话抓包分析:

可以看到抓包序列从407到419为客户端与服务端信息交互的过程,从420开始则是服务端用RTP发送过来的音视频流数据。

RTP(Real-Time Transport Protocol)实时运输协议是IEFT的AVT工作组开发的协议,为实时应用提供端到端的运输服务,但不提供任何服务质量的保证,它有两种工作模式:TCP 和 UDP。

RTP协议构造很简单,它就是在音视频数据的头部加上RTP的数据头来区分识别音视频流数据,以确保客户端能正确解析数据而已。

RTP协议头数据犹如结构体:

typedef struct RtpHdr_s
{#if (BYTE_ORDER == LITTLE_ENDIAN)/* byte 0 */u16 cc      :4;   /* CSRC count */u16 x       :1;   /* header extension flag */u16 p       :1;   /* padding flag */u16 version :2;   /* protocol version *//* byte 1 */u16 pt      :7;   /* payload type */u16 marker  :1;   /* marker bit */
#elif (BYTE_ORDER == BIG_ENDIAN)/* byte 0 */u16 version :2;   /* protocol version */u16 p       :1;   /* padding flag */u16 x       :1;   /* header extension flag */u16 cc      :4;   /* CSRC count *//*byte 1*/u16 marker  :1;   /* marker bit */u16 pt      :7;   /* payload type */
#else#error YOU MUST DEFINE BYTE_ORDER == LITTLE_ENDIAN OR BIG_ENDIAN !
#endif/* bytes 2, 3 */u16 seqno  :16;   /* sequence number *//* bytes 4-7 */int ts;            /* timestamp in ms *//* bytes 8-11 */int ssrc;          /* synchronization source */
}RtpHdr_t; 

参考列表:

RTSP协议详解(转载)_黑面狐-CSDN博客_rtsp协议

RTSP协议实例分析_dosthing的博客-CSDN博客_rtsp协议

RTSP协议 RTP协议相关推荐

  1. 音视频学习之rtsp学习rtp协议的理解(rtp)

    1:理论理解相关细节 实际的媒体数据(视频/音频)的传输是通过rtp进行传输的. rtp可以基于udp进行发送,也可以基于tcp进行发送. (这个有点疑问,看很多都说rtp是基于udp传输) ==&g ...

  2. 音视频协议-RTP协议

    1 协议简介 音视频传输的基石:RTP和RTCP.对于协议的讲解主要是是对于RFC文档的阅读和理解.不同的使用场景用到的字段也有所侧重,RTP和RTCP定义在RFC3550中.其中RTP用于数据流的传 ...

  3. HTTP RTSP RTMP RTP 协议简说 流媒体学习(一)

    2019独角兽企业重金招聘Python工程师标准>>>  HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:Wo ...

  4. 音视频协议-RTP协议打包

    目录 H264打包RTP的方法 RTP打包AAC 1. H264打包RTP的方法 RTP的特点不仅仅支持承载在UDP上,这样利于低延迟音视频数据的传输,另外一个特点是它允许通过其它协议接收端和发送端协 ...

  5. 实时传输协议——RTP协议

    随着以太网音视频桥接(AVB)技术的引入,汽车可支持各种基于音频.视频的流媒体服务.在流媒体数据传输过程中,为保障音视频流的实时传输,需采用RTP和RTCP协议.接下来,我们一起来了解下实时传输协议吧 ...

  6. webrtc 和 rtp 协议

    我会开辟一个空间rtp协议,包含vp9 h264 h265 aac opus 等rtp实例,包含实例代码,让看文章的人得到真实的提升 一.webrtc rtp协议为实时传输协议 real transf ...

  7. 【视频】视频传输协议:RTSP、RTP、RTCP、RTMP、HTTP

    一.RTSP.RTP.RTCP RTSP.RTP.RTCP是一组协议,其中RTSP在应用层.RTP和RTCP在传输层.RTP用于传输流媒体数据,而RTCP对RTP进行控制.同步. 二.RTSP.RTM ...

  8. 流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析

    0.前言 流媒体服务器做音视频媒体传输主要就两件事:媒体回话协商,媒体数据传输:下面这几种协议就围绕着这两个需求而产生. 1.rtp协议 rtp的全称是实时传输协议RTP(Real-time Tran ...

  9. php视频流传输,视频流传输协议RTP/RTCP/RTSP/HTTP的区别

    用一句简单的话总结:RTSP发起/终结流媒体.RTP传输流媒体数据.RTCP对RTP进行控制,同步.之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没 ...

最新文章

  1. Win32 API 和 ODBC 访问数据库一
  2. 程序员笔试面试基础知识资料整理
  3. 电商网站模板_阿里云建站:模板建站与定制建站怎么选(小白参考)
  4. Executors浅析
  5. 利用Gitee搭建个人图床(上)
  6. 少儿编程孩子的学习路线
  7. springboot+vue旅行社旅游拼团系统java
  8. 微信小程序开发者工具构建npm
  9. 数组的定义,一维数组,二维数组与变长数组
  10. 【SQL】CAST()函数,(CAST AS decimal)
  11. 爆刷PAT(甲级)——之【1148】 Werewolf - Simple Version(20 分)——思维
  12. 解决:charles连接代理后不能使用苹果支付的问题
  13. Arkime 2.7(原Moloch)docker镜像构建
  14. 数字孪生技术在工业制造领域的研究与实践
  15. 关于TASSEL_5的一个小问题
  16. Android简单笔记本解析,成功入职头条月薪35K
  17. 亚马逊五点需要转换成html,亚马逊listing五点描述怎么写才能提高转化率?
  18. 多张图片怎么合成gif?
  19. 为你重新系统梳理下, Web 体验优化中和图有关的那些事(万字长文)
  20. 【随想录12】01背包练习

热门文章

  1. P2P技术之STUN、TURN、ICE详解
  2. 虚拟现实开发完整教程
  3. 用选择法对10个整数排序(从小到大)
  4. html5卷轴动画制作,几种逼真卷轴动画的制作方法
  5. php语句以什么符号结束,c语言语句以什么结束,c语言语句的结束标志
  6. 10个数冒泡排序法c语言代码,输入10个数用冒泡法排序
  7. 2021011029wxy_实验3
  8. byte[]数组相等比较
  9. 如何做一个小程序口令红包功能
  10. 使用Gogs轻松搭建可能比GitLab更好用的Git服务平台 1