rtp包的解析,纠结了好久好久,一直没有好的解决方案,最近琢磨了一下,下面给我的一些思路。

rtp包解析存在以下问题:

1、包的序号会存在乱序的可能性

2、由于序号是16字节无符号,超过65535之后,会从0开始循环

3、网络会出现丢包情况

4、如何界定一帧数据何时开始,何时结束

解决思路:

一定存在的条件:

1、rtp头里面有个序号字段,此字段是自增长的

2、rtp头里面有个timestamp字段,同一帧的不同rtp包,此字段是一样

3、当两个rtp包seq间隔为1,timesatamp不同时候,说明后一个rtp包是一帧的开始,前一个rtp包是一帧的结束

根据上述条件,我们开始解析rtp包。

设定一个期望序号,即上一个rtp的seq+1为期望序号,如果每次来的rtp都是期望序号,那么解析就简单多了。但是网络偶尔会抖动,我们把不是期望序号的rtp包,保存在一个等待的容器里面。画了一个如下的流程图:

**************************修正逻辑,增加如果期望的包前面的认为已经丢弃的包又过来的话,直接丢弃*************************

另外,还有一个非常纠结,又是seq循环之后,不能严格按照大小比较来确定是否需要丢弃,还需要考虑循环之后的情况

Rtsp之rtp包解析相关推荐

  1. Wireshark将udp包作为rtp包解析

    最近在使用 Wireshark的时候,由于想要分析一下 rtp数据包的 Seq值,于是抓取了一个数据包(rtsp协议),在分析数据包的过程中发现,如果 Wireshark抓到了 rtsp的建立连接的协 ...

  2. 国标平台视频流抓取及rtp包解析

    最近遇到国标平台无法播放视频流的问题.需要检查视频接收端和播放端视频的收包和发包是否正常.但是只看pcap文件不是很直观,所以将pcap文件中的rtp包解析出来,用播放器将视频播放出来,以更直观的判断 ...

  3. 部标JT1078协议RTP包解析

    https://blog.csdn.net/gps_pro/article/details/87516506 https://www.dazhuanlan.com/2019/09/27/5d8ddd1 ...

  4. RTP协议解析及H264/H265 音视频RTP打包分析

    一 概述 实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的. RTP协议详 ...

  5. 流媒体协议初探(MPEG2-TS、RTSP、RTP、RTCP、SDP、RTMP、HLS、HDS、HSS、MPEG-DASH)

    目录 一.综述 需求分析 协议定制 二.MPEG2-TS协议 三.RTSP协议.RTP.RTCP.SDP RTSP RTP.RTCP.SDP 四.RTMP 五.HLS.HDS.HSS HLS HDS和 ...

  6. wireshark提取视频数据之RTP包中提取H264和H265

    wireshark提取视频数据之RTP包中提取H264和H265 文章目录 wireshark提取视频数据之RTP包中提取H264和H265 1 背景 2 提取前工作 3 H264视频从RTP包中提取 ...

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

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

  8. RTSP协议 RTP协议

    RTSP(Real-Time Streaming Protocol)实时流式协议 需要注意的是,RTSP本身不传输数据,音视频流数据是通过RTP传输的. C/S请求应答整体流程: 客户端->&g ...

  9. 将NALU封装成RTP包

    源码地址:https://github.com/zhouyinfei/rtsp-netty-server NALU封装成RTP包: //nalu封装成rtp public List<byte[] ...

最新文章

  1. 将linux的debug串口用于console和应用串口复用的方法
  2. 如何在DB2安装重启后登陆Administrator系统账号
  3. 如何查看SAP云平台上某个subaccount的tenant和region信息
  4. 另一种“人老心不老”
  5. [NEHE Couse] 05.3D Objects
  6. Eclipse离线集成svn插件
  7. 读懂西瓜书 14 : 概率图模型
  8. GLUE部分基准数据集介绍:RTE、MRPC、SST-2、QNLI、MNLI、QQP
  9. 市场爆发在即 分布式电站运维出路何在?
  10. vmbox 导入虚拟电脑之后无法上网
  11. kafka中副本数据同步策略 ,acknowledge的发送策略,kafka的数据可靠性保证
  12. word中装订线位置_word装订线位置在哪里
  13. Android App架构设计
  14. 双千兆网口路由器方案开发板香橙派R1 Plus LTS连接USB无线网卡测试说明(OpenWRT 系统)
  15. uboot2021.10-nandflash-3.initr_nand
  16. Vue-你不知道的Bus中央数据总线学习
  17. Python数据可视化:香港地图、房价可视化,绘制气泡图
  18. 杭电和南邮计算机考研哪个好考,南京邮电大学研究生,二本考南邮研究生!
  19. Go语言:字节流读写(io.Reader/io.Writer)的示例之redis读写
  20. 【整理帖】消除Vuvuzela/瓦瓦祖拉的烦人声音

热门文章

  1. 精通MVC3摘译(9)-过滤器
  2. 求两个整数中的最大值(不能用比较语句,循环语句)
  3. asp.net zero
  4. Javascript第六章计时器练习【源码】第四课
  5. 电子计算机的速度快精确度,都21世纪了,还不来了解了解什么叫compute?
  6. 平流式沉淀池表面负荷怎么计算_竖流式与辐流式沉淀池
  7. 安卓手机如何防盗_iphone手机换成安卓手机后如何转移便签备忘录数据?
  8. 计算机文化基础证书丢了,计算机文化基础 文档的打印与保护 3.8.1 防止文档内容丢失.pptx...
  9. linux如何运行java程序,Linux环境下运行简单java程序
  10. mysql 分区 目的_MySQL分区表最佳实践