视频不显示的分析方法

分析问题的前期准备步骤:

1.      准备一台笔记本电脑,并且安装360免费wifi。

2.      两部移动终端连接上360共享的wifi

3.      在笔记本电脑上开启wireshark抓包,并且在linux服务器上用tcpdump进行抓包

4.      停止抓包,并且下载服务器上的数据包到本地

数据包分析过程:

1.      首先分析笔记本电脑的数据包,看移动终端的发送端视频包,RTP的SEQ是否连续;如果SEQ不连续说明移动终端有问题,否则,需要接下来分析

2.      移动终端的发送端视频包,RTP的SEQ是连续,但在服务器端接收的RTP包的SEQ是否连续;如果接收到收到的RTP不连续,说明发送端到接收端的网络环境有问题或者发送端发送的数据包有问题,导致RTP丢包,否则,接收的RTP是连续的。

3.      服务器端接收的RTP包是连续的,接下来分析,服务器端进行转发的RTP包是否连续,如果不连续,服务器端对数据包的转发程序有问题,否则,需要接下来分析,移动终端接收RTP包端。

4.      移动终端的接收RTP端数据包是否连续,如果不连续,说明服务器到接收端的网络环境有问题或者发送端的数据包有问题,导致RTP丢包,否则,需要分析移动终端RTP流的视频解码程序。

数据包分析实例:

1.      首先用wireshark工具分析移动发送端RTP报数据,看RTP数据包是否有丢包,SEQ是否连续,从下图红色框选部分可以看出,发送端的RTP数据包没有丢包发生。

2.      接下来用wireshark工具分析服务器接收端RTP数据,看RTP数据包是否有丢包,SEQ是否连续,从下图红色框选部分可以看出,接收端和发送端接收数据包的总数一致,但接收端的丢包率28.60%,SEQ出错259次。

3.      根据以上两段数据包的分析,丢包可能是网络导致,也可能是终端发送的数据不正确导致。

4.      接下来分析服务器接收端的RTP数据包,SEQ的那个数据丢包了。

5.      分析服务器端收据RTP包,发现seq=26的数据包,服务器端没有收到。

6.      分析移动终端的发送端RTP包,seq=26的数据包,发现RTP发送但长度为54。详细见下图。

?  分析SEQ=26的数据包

?  分析该包发现,发送SEQ=26的数据包大小为54,IP包长度为40,但UDP数据包长度为1396。

?  再次分析多个丢失的数据包,发现存在同样的问题。

?  分析移动终端发送的RTP流数据用udp.length > 1350进行过滤,发现没有找到任何一条RTP数据,用udp.length > 1300进行过滤,发现有数据包,并且也是正常的。

?  根据以上数据的分析,发现导致该问题的是移动终端进行RTP分片超过1350,就会导致RTP严重丢包。

?  因此,修改移动终端RTP分片为1300,进行测试,终端之前图像显示正常。

MTU说明:

通信术语 最大传输单元(MaximumTransmission
Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。

MTU越大,通信效率越高而传输延迟增大,所以要权衡通信效率和传输延迟选择合适的MTU。

以以太网传送IPv4报文为例。MTU表示的长度包含IP包头的长度,如果IP层以上的协议层发送的数据报文的长度超过了MTU,则在发送者的IP层将对数据报文进行分片,在接收者的IP层对接收到的分片进行重组。

这里举一个具体的例子说明IP包分片的原理。以太网的MTU值是1500 bytes,假设发送者的协议高层向IP层发送了长度为3008
bytes的数据报文,则该报文在添加20 bytes的IP包头后IP包的总长度是
3028 bytes,因为3028 > 1500,所以该数据报文将被分片,分片过程如下:

1. 首先计算最大的IP包中IP净荷的长度
=MTU-IP包头长度=1500-20= 1480bytes。

2. 然后把3028 bytes按照1480 bytes的长度分片,将要分为3片,3028=1480+1480+68。

3. 最后发送者将为3个分片分别添加IP包头,组成3个IP包后再发送,3个IP包的长度分别为1500
bytes、1500 bytes和 88 bytes。

从以上分片例子可以看出第一、二个分片包组成的IP包的长度都等于MTU即1500 bytes。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-07 18:47:50

视频不显示的分析方法的相关文章

Android APP性能分析方法及工具

近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借鉴.英文好的读者可读原文(链接:http://blog.udinic.com/2015/09/15/speed-up-your-app). 1.作者的规则 作者每次着手处理或寻找性能问题时,遵循下列规则: 时常检测 在更新APP前后,用测试工具软件多检测几次APP性能,可快速得到测试数据.这些数字是不会说谎的

C#实现通过ffmpeg从flv视频文件中截图的方法

本文实例讲述了C#实现通过ffmpeg从flv视频文件中截图的方法.分享给大家供大家参考.具体分析如下: 需要先下载ffmpeg,这是开源的,代码如下所示: 代码如下: using System; using System.Configuration; public class PublicMethod:System.Web.UI.Page { public PublicMethod() { } //文件路径 public static string ffmpegtool = "ffmpeg/f

边界值分析方法

一.方法简介 1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界. 2.与等价划分的区别 1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件. 2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况. 3.边界值分析方法的考虑: 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种

测试用例设计白皮书--边界值分析方法

一.方法简介1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界. 2.与等价划分的区别  1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件.  2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况. 3.边界值分析方法的考虑:  长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对

Multisim的电路分析方法

Multisim的电路分析方法:主要有直流工作点分析,交流分析,瞬态分析,傅里叶分析,噪声分析,失真分析,直流扫描分析, 灵敏度分析,参数扫描分析,温度扫描分析,零一极点分析,传递函数分析,最坏情况分析,蒙特卡罗分析,批处理分析,用户自定义分析,噪声系数分析.1.直流工作点分析(DC Operating):在进行直流工作点分析时,电路中的交流源将被置零,电容开路,电感短路.2.交流分析(AC Analysis):交流分析用于分析电路的频率特性.需先选定被分析的电路节点,在分析时,电路中的直流源将

采集百度搜寻结果,图片不显示的解决方法

1.根据关键字采集百度搜寻结果 根据关键字采集百度搜寻结果,可以使用curl实现,代码如下: <?php function doCurl($url, $data=array(), $header=array(), $timeout=30){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_R

linux 程序分析方法

1. 背景 现实中,我们需要学习已有的软件构造方法,或维护旧的软件,或添加新功能,亦或优化性能, 这时面对的代码都不是自己所写,那如何才能快速知道这个代码库干了什么,源文件如何组织,模块间如何交互? 2. 程序的运转 a)应用程序:一般是一个语法树结构,树的叶子结点或是简单的操作(+.-.=等),或是系统调用(read.write.sleep), 树根一般是main:如果有多线程/进程,那就会产生多颗树:在出现递归调用时,也会出现环路. b)内核:内核是应用与硬件间的中间层,交互方法就是软中断和

mysql慢查询分析工具和分析方法

1.mysql慢查询分析工具 1.参考文档: http://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/ http://isadba.com/?p=655 官方文档: https://github.com/box/Anemometer 数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观. 下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer. 在使用之前

视频图像去模糊常用处理方法

视频图像去模糊常用处理方法 随着“平安城市”的广泛建设,各大城市已经建有大量的视频监控系统,虽然监控系统己经广泛地存在于银行.商场.车站和交通路口等公共场所,但是在公安工作中,由于设备或者其他条件的限制,案情发生后的图像回放都存在图像不清晰,数据不完整的问题,无法为案件的及时侦破提供有效线索.经常出现嫌疑人面部特征不清晰,难以辨认,嫌疑车辆车牌模糊无法辨认等问题.这给公安部门破案.法院的取证都带来了极大的麻烦.随着平安城市的推广.各地各类监控系统建设的进一步推进,此类问题会越来越突出. 一.模糊