UDP视频流MP2T的分析方法
一、 MP2T视频协议
视频直播一般使用MP2T(ISO/IEC 13818-1,MPEG-TS)协议, 具体有如下几种:
常用的是MP2T/RTP/UDP和MP2T/ UDP,主要是直播视频不需要重传。
每7个MP2T包打包为一个RTP,然后每个RTP再打包为一个UDP。或者每7个MP2T包也可以直接打包为一个UDP。(由信令决定TS所属的UDP端口号)。
如果视频速率传输方式是CBR(const bit rate),如果实际视频源压缩比较高或者P帧,则填充无有效载荷的包。注: VBR(variable bit rate)
MP2T包:PDU 188B(含头),头部4B,头部字段如下:
sync_byte 同步字节,固定为0x47 ,表示后面的是一个TS分组,包中数据是不会出现0x47
transport_error_indicator传输错误标志位,一般传输错误的话就不会处理这个包了
payload_unit_start_indicator这个位功能有点复杂,字面意思是有效负载的开始标志,根据后面有效负载的内容不同功能也不同
transport_priority 传输优先级位,1表示高优先级,传输机制可能用到,解码好像用不着。
PID指出了这个包的有效负载数据的类型,音频 或 视频 或者 播放目录。
transport_scrambling_control加密标志位,表示TS分组有效负载的加密模式。TS分组首部(也就是前面这32bit)是不应被加密的,00表示未加密。
adaption_field_control 翻译为“调整字段控制”,表示TS分组首部后面是否跟随有调整字段和有效负载。01仅含有效负载,10仅含调整字段,11含有调整字段和有效负载。为00的话解码器不进行处理。空分组没有调整字段
continuity_counter 一个4bit的计数器,范围0-15,具有相同的PID的TS分组传输时每次加1,到15后清0。不过,有些情况下是不计数的。如下:(1)TS分组无有效负载(2)复制的TS分组和原分组这个值一样(3)标志discontinuity_indicator为1时
adaptation_field()调整字段的处理
二、 视频丢帧分析
1、 如果UDP上面直接是mp2t包(ISO/IEC的包),过滤UDP视频流
输入过滤表达式 udp.stream==流号,保存(File->Export Specified Packets)。
2、 如果是UDP上面是RTP,需要先把data解码设置为RTP解码
3、 UDP视频流丢帧分析
查看wireshark诊断信息(Analyze->Expert Info), Error中是否有Malform MP2T信息。
丢帧判断依据: 相同PID的连续号CC在[0,15] 循环,不连续则为丢帧。如有丢帧,查看对应(最靠近视频udp层)的ip层,ip.id是否连续。
[ip.id连续] 摄像头视频源导致丢帧
[ip.id不连续] 最有可能为丢包导致丢帧,但要排除以下2点导致的id不连续的因素
- 视频业务层面的路由节点修改ip.id
- 摄像头把中间ip.id分配给其他协议包,如TCP/ICMP等。如加上其他包,业务层面的ip.id连续,则仍为摄像头视频源导致丢帧
三、 视频抖动分析
4、 UDP视频流抖动分析
查看IO统计信息(Statistics->IO Graph), 输出每ms/s的速率,发包间隔。
输出ms/s级速率(点copy)
输出发包间隔
对ms级速率从1一直编号,刷选速率非0项,编号前后相减,即为间隔(单位ms)
5、 输出非0项的发包间隔和速率的均值(average),偏差(stdev),最大值(max)
四、 视频还原分析
6、 还原UDP/MP2T视频
选择一个UDP/MP2T视频流,Analyze->Follow UDP Stream,
选择视频数据的方向,保存为Raw的数据,并命名为.ts的文件。
另新版wireshark显示如下:
7、 播放视频
如果视频分辨率比较高,本机可能无法播放。
用VLC或Potplayer视频播放器播放,就可以看到这个视频流的表现效果了。
五、 央视视频源发包规律
I帧数据 155KB
P帧数据 24KB
UDP视频流MP2T的分析方法相关推荐
- linux防火墙转发udp,一次穿透 iptables 防火墙的 UDP ***报文真实案例分析
一次穿透 iptables 防火墙的 UDP ***报文真实案例分析,揭示了一些在使用 iptables 时鲜为人知的安全隐患,希望能给大家带来帮助! 这类***确实少见,也是一次好的排错过程,所以转 ...
- 高通SDX55平台:5G速率问题排查分析方法
高通SDX55平台:5G速率问题排查分析方法 1. 背景 2. 测速环境配置介绍 2.1 测速工具 2.2 工具使用 2.3 网络参数介绍 2.3.1 带宽 2.3.2 信号质量 2.3.3 RB 2 ...
- 典型问题分析——wifi吞吐量测试和分析方法
一.手机吞吐量测试方法 准备工具:手机侧安装Magic Iperf软件:PC侧安装iperf.exe 1.上行吞吐量测试方法 手机作为client端,PC为server端 2.下行吞吐量测试方法 手机 ...
- 面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?
AutoSAR入门到精通系列讲解 将从2019年开始更新关于AutoSAR的知识,从入门到精通,博主xyfx和大家一起进步 雪云飞星 ¥29.90 去订阅 简单地说结构化分析方法主要用来分析系统的功能 ...
- java三维滑雪,第六章 三维数据空间分析方法.ppt
第六章 三维数据空间分析方法 * * * * 可视性分析 * * 自然邻域法插值 基本思路: 利用输入点及邻近栅格单元进行插值生成栅格表面. 方法: 利用输入数据点(样本点)为节点,建立Delauna ...
- mysql慢查询开启及分析方法
最近服务维护的公司的DB服务器,总是会出现问题,感觉需要优化一下了,登陆上去,发现慢查询日志都没有开,真是惭愧, 故果断加上慢查询日志,经过分析sql记录,发现问题很多,开发人员很多没有对sql优化, ...
- 图论分析方法gretna_基于磁共振的多模态分析对血管性认知障碍患者脑网络的研究...
摘要:目的:1.通过对血管性认知障碍(VCI)患者的结构相及静息态磁共振数据进行采集和分析,运用图论的分析方法来研究VCI患者与正常者之间的脑网络差异,并将脑网络拓扑属性与临床认知评分进行相关性分析, ...
- Nature Microbiology: 微生物数据的系统发育分析方法
本文转载自美格基因,己获授权. 佳作推荐 推荐指数:★★★★★ 阅读时间:4 分钟 文本字数:1800字 推荐理由: 这篇文章总结了对微生物组数据的系统发育进行分析的几种方法,举例说明不同方法适用的数 ...
- 什么是信度分析(Reliability)?有哪些信度分析方法?那什么又是效度?
什么是信度分析(Reliability)?有哪些信度分析方法?那什么又是效度? 目录 什么是信度分析(Reliability)?有哪些信度分析方法?那什么又是效度? #常见信度分析方法
最新文章
- Tomcat中文乱码问题的原理和解决方法
- 其实吧,微信就是已经用电脑上线,第二天消息还是从手机上重新接收
- delphi 中的dll编程注意事项
- DSP学习--BCC校验(异或校验)
- java高并发(三)并发编程的基础
- sql 数据库中只靠一个数据,查询到所在表和列名
- 消息队列MQ如何保证消息的幂等性
- 309. zui佳买卖股票时机含冷冻期(JavaScript)
- 学习Python编程培训 有哪些爬虫技术课程需要掌握
- Android Excel 解析 xls 和 xlsx,方法也可以很简单
- 机器学习中的核函数与核方法(是什么?为什么?怎么做?)
- onedrive 添加到本地硬盘_Win10系统OneDrive映射到本地磁盘的解决设置技巧
- 数据库表及其字段变量命名神器之codeIf
- windows与mac字体设置
- 中华好诗词大学季第二季(四)
- 我的阿里云盘资源搜索引擎首次试运行
- 微信小程序聊天客服工具
- 《深入浅出图神经网络》读书笔记(5.图信号处理与图卷积神经网络)
- 浙江省高等学校教师教育理论培训上机考试
- 【HTML期末作业】大学生抗疫感动专题网页设计作业 抗疫最美逆行者网页 致敬疫情感动人物网页设计制作
热门文章
- Hibernate:DisjunctionConjunction构造复杂的查询条件
- 我为什么要立刻放弃React而使用Vue?
- 微信小程序----第二天(小程序 - 模板与配置)
- java 数组的class_Java Class isArray()方法
- [转]微信公众平台(测试接口)开发前的准备工作(转载自walkingmanc的专栏)
- 【Unity3D日常开发】修改游戏对象的材质颜色
- 终于去看了麦兜响当当
- 【Linux 性能优化】利用perf和CPU使用率定位异常函数
- CSAPP实验四:性能优化实验(Perflab)
- SpringBoot整合Quartz--使用/教程/实例