文章目录

  • 文档
  • RTSP/RTP over TCP + G711
    • OPTIONS
    • DESCRIBE
    • SETUP
    • PLAY
    • TEARDOWN
    • RTP over TCP的封装格式
  • RTPS/RTP over UDP + AAC

文档

如果想要完全理解rtsp相关的技术, 需要阅读以下文档资料:
rtsp协议 https://tools.ietf.org/html/rfc2326
sdp协议 https://tools.ietf.org/html/rfc2327
rtp/rtcp协议 https://tools.ietf.org/html/rfc3550
rtp H.264数据格式封装 https://tools.ietf.org/html/rfc6184
rtp/sdp中aac/mpeg4的相关协议 https://tools.ietf.org/html/rfc3640
rtp/sdp中G.711相关协议 https://tools.ietf.org/html/rfc5391
RTSP客户端工具vlc: https://www.videolan.org/
RTSP服务端工具: 考虑到搭建rtsp服务器很费事, 可以使用vlc的串流功能
本机的网络抓包工具: https://www.netresec.com/?page=RawCap

RTSP/RTP over TCP + G711

OPTIONS

客户端发送

OPTIONS rtsp://192.168.2.232:8456/test RTSP/1.0
CSeq: 2
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)

服务器回复

RTSP/1.0 200 OK
CSeq: 2
Content-Length: 0
Cache-Control: no-cache
Public: DESCRIBE,SETUP,TEARDOWN,PLAY

DESCRIBE

VLC发送

DESCRIBE rtsp://192.168.2.232:8456/test RTSP/1.0
CSeq: 3
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp
method: describe

服务端回复

RTSP/1.0 200 OK
CSeq: 3
Accept: application/sdp
Cache-Control: no-cache
Content-Length: 522v=0
o=- 1546226325720 1546226325720 IN IP4 Eques
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=recvonly
a=type:broadcast
a=control:rtsp://192.168.2.232:8456/test/
m=audio 0 RTP/AVP 98
a=rtpmap:98 PCMA/22050/1
a=fmtp:98 complaw=al;
a=control:rtsp://192.168.2.232:8456/test/trackID=0
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42c014;sprop-parameter-sets=Z0LAFKtAoP0IAAADAAgAAAMBRwIABkAAAMgBaxsDxQqo,KM48gA==;
a=control:rtsp://192.168.2.232:8456/test/trackID=1

SETUP

因为有音频和视频两路流, 所以需要setup两次

SETUP rtsp://192.168.2.232:8456/test/trackID=0 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
method: setup
handle setup request
RTSP/1.0 200 OK
CSeq: 4
Cache-Control: no-cache
Content-Length: 0
Session: uYu2RlouWJBByDn1;timeout=60
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
SETUP rtsp://192.168.2.232:8456/test/trackID=1 RTSP/1.0
CSeq: 5
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
Session: uYu2RlouWJBByDn1
method: setup
handle setup request
RTSP/1.0 200 OK
CSeq: 5
Cache-Control: no-cache
Content-Length: 0
Session: uYu2RlouWJBByDn1;timeout=60
Transport: RTP/AVP/TCP;unicast;interleaved=2-3

PLAY

PLAY rtsp://192.168.2.232:8456/test/ RTSP/1.0
CSeq: 6
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)
Session: uYu2RlouWJBByDn1
Range: npt=0.000-
method: play
RTSP/1.0 200 OK
CSeq: 6
Content-Length: 0
Cache-Control: no-cache
Session: uYu2RlouWJBByDn1;timeout=60
RTP-Info: url=rtsp://192.168.2.232:8456/test/trackID=0;seq=0;rtptime=0,url=rtsp://192.168.2.232:8456/test/trackID=1;seq=0;rtptime=0
Range: npt=0.000-

TEARDOWN

TEARDOWN rtsp://192.168.2.232:8456/test/ RTSP/1.0
CSeq: 7
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)
Session: uYu2RlouWJBByDn1

RTP over TCP的封装格式

文档在 https://tools.ietf.org/html/rfc2326#page-40
音视频数据添加RTP头之后, 还要再添加4个字节头, 它的格式为

       0                   1                      2                   3----------------------------------------------------------------------------------| $ (美元符号)  |   channel id    |     rtp包大小(2字节, 网络字节序)----------------------------------------------------------------------------------

RTPS/RTP over UDP + AAC

rtsp的基本流程还是一样的, 只是部分参数的差别

DESCRIBE rtsp://192.168.2.232:8456/test RTSP/1.0
CSeq: 3
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp
RTSP/1.0 200 OK
CSeq: 3
Accept: application/sdp
Cache-Control: no-cache
Content-Length: 635v=0
o=- 1546233621391 1546233621391 IN IP4 Eques
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=recvonly
a=type:broadcast
a=control:rtsp://192.168.2.232:8456/test/
m=audio 0 RTP/AVP 97
a=rtpmap:97 mpeg4-generic/22050/1
a=fmtp:97 mode=AAC-hbr;streamtype=5;IndexDeltaLength=3;profile-level-id=15;config=0b88;SizeLength=13;IndexLength=3;Profile=1;
a=control:rtsp://192.168.2.232:8456/test/trackID=0
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42c014;sprop-parameter-sets=Z0LAFKtAoP0IAAADAAgAAAMBRwIABkAAAMgBaxsDxQqo,KM48gA==;
a=control:rtsp://192.168.2.232:8456/test/trackID=1
SETUP rtsp://192.168.2.232:8456/test/trackID=0 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP;unicast;client_port=52122-52123
method: setup
RTSP/1.0 200 OK
CSeq: 4
Cache-Control: no-cache
Content-Length: 0
Session: gixEa5aMd6gd3ZWZ;timeout=60
Transport: RTP/AVP;unicast;client_port=52122-52123;server_port=33697-33698
SETUP rtsp://192.168.2.232:8456/test/trackID=1 RTSP/1.0
CSeq: 5
User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP;unicast;client_port=52124-52125
Session: gixEa5aMd6gd3ZWZ
    RTSP/1.0 200 OKCSeq: 5Cache-Control: no-cacheContent-Length: 0Session: gixEa5aMd6gd3ZWZ;timeout=60Transport: RTP/AVP;unicast;client_port=52124-52125;server_port=51830-51831
    PLAY rtsp://192.168.2.232:8456/test/ RTSP/1.0CSeq: 6User-Agent: LibVLC/3.0.5 (LIVE555 Streaming Media v2016.11.28)Session: gixEa5aMd6gd3ZWZRange: npt=0.000-
    RTSP/1.0 200 OKCSeq: 6Content-Length: 0Cache-Control: no-cacheSession: gixEa5aMd6gd3ZWZ;timeout=60RTP-Info: url=rtsp://192.168.2.232:8456/test/trackID=0;seq=0;rtptime=0,url=rtsp://192.168.2.232:8456/test/trackID=1;seq=0;rtptime=0Range: npt=0.000-

RTSP协议与G711 AAC相关推荐

  1. RTMP协议和RTSP协议的区别

    一.RTMP协议: 1.是流媒体协议 2.RTMP是Adobe的私有协议,没有完全公开 3.RTMP协议一般传输的是flv.f4v格式流 4.RTMP协议一般在TCP的一个通道传输命令和数据 二.RT ...

  2. Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器

    Java 监控直播流rtsp协议转rtmp.hls.httpflv协议返回浏览器 目录 一:了解音视频流协议: 二:方案一 rtsp 转rtmp 1.下载nginx + nginx-rtmp-modu ...

  3. RTMP协议与RTSP协议比较

    考虑做一个手机直播系统,首先需要指定一个合理的技术方案.由于自己以前不是搞多媒体这块,对流媒体开发不熟悉,自己的理解思维总习惯用java web开发的惯性走,先指定一个大体的框架.不管对还是错,先考虑 ...

  4. 海康大华等安防摄像机采用通用RTSP协议流转RTMP推送至Web无插件播放展示的流程方法

    行业现状 中国互联网化的进程已经越来越快了,各个行业都在进行着互联网化的改造,流媒体.音视频,作为跑在互联网上最大量级的数据类型,其从编码方式到传输协议到终端兼容都成为各家标准抢占的高点,RTMP.H ...

  5. Miracast开发4——-应用层rtsp协议

    Mircacast协议介绍---------应用层rtsp协议 前面说到 Miracast协议框架,以及重点讲了发现的过程,物理层链接链接的过程,IP分配的过程,如果获取对端IP等等.下面我们来讲讲, ...

  6. RTSP协议视频智能分析平台EasyNVR在编码格式不同的情况下会导致视频无法播放吗?

    RTSP协议的视频智能分析平台EasyNVR内接入的视频通道可以通过平台进行网页直播,并且支持市面上大部分的RTSP/Onvif协议设备:IP Camera/NVR/DVR/编码器等,直播便捷稳定,是 ...

  7. FFmpeg入门详解之84:RTSP协议讲解

    RTSP亲手搭建直播点播 测试工具:VLC 数据源:  文件或本地摄像头 测试功能:RTSP直播点播 播放地址:rtsp://127.0.0.1:8554/rtspa001 服务端:推流 客户端:拉流 ...

  8. RTSP协议探秘:从原理到C++实践,解锁实时流媒体传输之道

    目录标题 引言 RTSP协议基础 RTSP协议的组成与工作原理 RTSP协议的组成 RTSP协议的工作原理 RTSP协议与其他流媒体协议的比较 RTSP协议的基本功能与用途 RTSP协议详解 RTSP ...

  9. H.264NLU和RTSP协议理解

    h.264分为两部分组成:VCL 和 NAL VCL: 是指如何进行视频压缩算法的纯视频流的部分,这里不做说明(这里是大公司给完成的部分) NAL:是指网络抽象层部分(Network Abstract ...

  10. 网络流媒体协议 RTSP协议

    ​RTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层.RTSP以客户端方式工作,对流媒体提供播放.暂停.后退.前进等操作.该标准由IETF ...

最新文章

  1. 【小程序】刘一哥课堂随机点名提问神器V1.0(附源程序)
  2. [html] html的元素有哪些(包含H5)?
  3. Spring Boot 2.1 版本变化[翻译]
  4. 基于YARN集群构建运行PySpark Application
  5. golang.org/x/lint安装失败
  6. 值得所有设计师拥有的国内外“设计导航网站”
  7. iptables,haproxy转发ftp(21端口)
  8. 进入阿里做测试员遥不可及?这里或许有你想要的答案
  9. lintcode 中等题:Palindrome Linked List 回文链表
  10. 【优化求解】基于matlab粒子群与遗传算法混合算法求解切削参数优化问题(以成本和碳排放量为目标函数)【含Matlab源码 1619期】
  11. 性能评测|影驰RTX4090金属大师系列显卡正式发售!
  12. Mac上 安装Drozer 并使用
  13. 还在用百度找资源?试试这3个顶级资源搜索网站,没有找不到的!
  14. Markdown表格之表格内换行
  15. win7系统 将 IE11 改为 IE8
  16. (五)通过pygame搭建游戏框架
  17. Svelte框架实现表格协同文档
  18. (七)Linux搭载4G模块——AT指令实现短信包的获取和删除
  19. 在Java项目中打印错误日志的正确姿势,排查问题更方便,非常实用!
  20. python屏幕找图_Python图片识别找坐标(appium通过识别图片点击坐标)

热门文章

  1. scrapy爬取时出现错误:Forbidden by robots.txt: <GET https://www.xinpianchang.com/channel/index/sor
  2. java用户登录进入系统_Java CRM系统用户登录功能实现代码实例
  3. win10设置vmware 虚拟机开机自启动
  4. 分手纪念网页-分手了就用这个看看吧(移动端)
  5. lisp线段两端同时缩短的命令_cad中有没有办法同时对多条线段偏移?
  6. 首次曝光 唯一全域最高等级背后的阿里云云原生安全全景图
  7. 跳妹儿学编程之ScratchJr(三):什么是儿童编程语言?初识ScratchJr和Scratch
  8. 拼多多被“薅羊毛” 交千万学费学到了什么?
  9. 敏捷开发scrum详解 敏捷项目管理流程
  10. 【互联网大厂研究】让千千万万底层人民脱贫致富的【快手】,他有何等魔力?