一种mpeg视频文件的丢包检测方法

文档序号:7741615阅读:136来源:国知局
专利名称:一种mpeg视频文件的丢包检测方法
技术领域
本发明属于网络通信领域,涉及一种MPEG视频文件的丢包检测方法。

背景技术
在视频传输过程中,一旦发生丢包将降低用户对视频的满意程度,丢包决定了用户对视频的体验质量,因此准确地测量在网络传输过程中发生的丢包具有重要的研究和现实意义。这里的丢包测量指的是测量视频包在网络传输过程中丢失的情况。
现有的丢包测量工具主要有Ping、Zing、Badabing等。众所周知,Windows自带的Ping工具使用ICMP,统计发往指定地点反馈数据包的丢失数量来确定丢包率的。但是发送过程中,一旦遇到防火墙屏蔽ICMP,或者ICMP包在返回途中丢失,均会被误认为丢包。
华为公司提出的使用定界包测量的方法通过在接收端统计收到的包总数,并与发送端发送定界包对比来确定丢包数量。虽然定界包的方法可以克服ICMP包的一些缺陷,但是测试流的丢包率与链路的丢包存在一定误差。
Badabing分析各种链路丢包测量方法后,提出包列的方式发送探测流,并依概率发送,经理论及实验证明该方法对于测量链路丢包效果较好。
现有的测量工具主要基于以下假设测量流的丢包情况反映的是链路的丢包情况。然而链路的丢包情况却不一定反映具体某个应用的丢包情况;因此,不能使用链路丢包测量方法来测量具体视频应用丢包。此外,由于IP链路丢包的测量采用的是主动测量,会给实际网络带来较大入侵度,造成网络拥塞。


发明内容
本发明所要解决的技术问题是提供一种MPEG视频文件的丢包检测方法。
为解决上述技术问题,本发明采用如下技术方案。
一种MPEG视频文件的丢包检测方法包括以下步骤 步骤A,获取MPEG视频文件,所述MPEG视频文件由若干个视频序列构成,每个所述视频序列均包含有若干个I、P、B帧;在第一个视频序列头中加入标识本次测量的特殊标记,在每个所述I、P、B帧尾的用户数据域加入I、P、B帧的自身帧信息和I、P、B帧的冗余信息; 步骤B,客户端打开测量工具并点播视频,服务器将所述视频文件打成数据包开始网络传输; 步骤C,客户端测量工具找到第一个Mpeg视频数据包并获取数据包的最大载荷量max、提取数据包的五元组信息; 步骤D,根据五元组过滤数据包进而统计收到的视频数据包总数Y; 步骤E,通过帧的大小和max计算应收数据包的总数X,丢包率为
作为本发明的一种优选方案,所述I、P、B帧的自身帧信息分别为I帧的自身帧信息,P帧的自身帧信息,B帧的自身帧信息;所述I帧的自身帧信息包括I帧的数量,I帧的大小;所述P帧的自身帧信息包括P帧的数量,P帧的大小;所述B帧的自身帧信息包括B帧的数量,B帧的大小。
作为本发明的另一种优选方案,所述I、P、B帧的冗余信息分别为I帧的冗余信息,P帧的冗余信息,B帧的冗余信息;所述I帧的冗余信息包括除I帧的自身帧信息之外的帧信息;所述P帧的冗余信息包括除P帧的自身帧信息之外的帧信息;所述B帧的冗余信息包括除B帧的自身帧信息之外的帧信息。
作为本发明的再一种优选方案,所述数据包的最大载荷量max的获取方法为从数据包的第一个0x000001位置到所述数据包的最后位置的字节长度即为数据包的最大载荷量max。
作为本发明的再一种优选方案,所述应收数据包的总数X的获得方法为第i个视频序列中I帧数据包数为

i=1,2,…n,P帧数据包数为

B帧数据包数为

则传输总数据包数为

其中Iij为第i个序列中第j个I帧的大小,Pij为第i个序列中第j个P帧的大小,Bij为第i个序列中第j个B帧的大小,k(i),l(i),m(i)分别为第i个序列中I、P、B帧的个数,n为视频序列的个数。
作为本发明的再一种优选方案,所述丢包率为
作为本发明的再一种优选方案,所述五元组信息包括源IP地址,目的IP地址,源端口,目的端口,协议类型。
作为本发明的再一种优选方案,当所述MPEG视频文件通过网络传输协议传输时,所述数据包的最大载荷量max的获取方法为用网络传输的MTU大小减去应用层的传输协议头大小,所得结果即为数据包的最大载荷量max。
作为本发明的再一种优选方案,所述I、P、B帧的自身帧信息分别为I帧的自身帧信息,P帧的自身帧信息,B帧的自身帧信息;所述I帧的自身帧信息包括传输I帧所用的数据包数;所述P帧的自身帧信息包括传输P帧所用的数据包数;所述B帧的自身帧信息包括传输B帧所用的数据包数。
本发明的有益效果在于本发明所述方法将测量有效信息写入user data域中,在较少的附加信息情况下准确检测出MPEG视频的丢包情况;本发明所述方法不受应用层传输协议限制,适用于各种传输层协议;更因嵌入在视频内部的冗余数据保证了检测值的准确性。



图1为实施例二的用户数据位置示意图; 图2为网络拓扑示意图; 图3为丢包率检测结果对比图; 图4为本发明所述方法的流程图。

具体实施例方式 下面结合附图对本发明的具体实施方式
作进一步详细说明。
实施例一 本实施例所述的MPEG视频文件的丢包检测方法的具体实现步骤为 步骤A,获取MPEG视频文件,所述MPEG视频文件由若干个视频序列构成,每个所述视频序列均包含有若干个I、P、B帧;在第一个视频序列头中加入标识本次测量的特殊标记,在每个所述I、P、B帧尾的用户数据域加入I、P、B帧的自身帧信息和I、P、B帧的冗余信息; 步骤B,客户端打开测量工具并点播视频,服务器将所述视频文件打成数据包开始网络传输; 步骤C,客户端测量工具找到第一个Mpeg视频数据包并获取数据包的最大载荷量max、提取数据包的五元组信息; 步骤D,根据五元组过滤数据包进而统计收到的视频数据包总数Y;步骤E,通过帧的大小和max计算应收数据包的总数X,丢包率为
所述I、P、B帧的自身帧信息分别为I帧的自身帧信息,P帧的自身帧信息,B帧的自身帧信息;所述I帧的自身帧信息包括I帧的数量,I帧的大小;所述P帧的自身帧信息包括P帧的数量,P帧的大小;所述B帧的自身帧信息包括B帧的数量,B帧的大小。所述I、P、B帧的冗余信息分别为I帧的冗余信息,P帧的冗余信息,B帧的冗余信息;所述I帧的冗余信息包括除I帧的自身帧信息之外的帧信息;所述P帧的冗余信息包括除P帧的自身帧信息之外的帧信息;所述B帧的冗余信息包括除B帧的自身帧信息之外的帧信息。所述数据包的最大载荷量max的获取方法为从数据包的第一个0x000001位置到所述数据包的最后位置的字节长度即为数据包的最大载荷量max。
所述应收数据包的总数X的获得方法为第i个视频序列中I帧数据包数为

i=1,2,…n,P帧数据包数为

B帧数据包数为

则传输总数据包数为

其中Iij为第i个序列中第j个I帧的大小,Pij为第i个序列中第j个P帧的大小,Bij为第i个序列中第j个B帧的大小,k(i),l(i),m(i)分别为第i个序列中I、P、B帧的个数,n为视频序列的个数。所述丢包率为

所述五元组信息包括源IP地址,目的IP地址,源端口,目的端口,协议类型。
当所述MPEG视频文件通过网络传输协议传输时,所述数据包的最大载荷量max的获取方法为用网络传输的MTU大小减去应用层的传输协议头大小,所得结果即为数据包的最大载荷量max。所述I、P、B帧的自身帧信息分别为I帧的自身帧信息,P帧的自身帧信息,B帧的自身帧信息;所述I帧的自身帧信息包括传输I帧所用的数据包数;所述P帧的自身帧信息包括传输P帧所用的数据包数;所述B帧的自身帧信息包括传输B帧所用的数据包数。
实施例二 本实例提供了一种MPEG4视频文件的丢包检测方法,该方法主要包括以下步骤 步骤A,获取MPEG视频文件,所述MPEG视频文件由若干个视频序列构成,每个所述视频序列均包含有若干个I、P、B帧;在第一个视频序列头中加入标识本次测量的特殊标记,在每个所述I、P、B帧尾的用户数据域加入I、P、B帧的自身帧信息和I、P、B帧的冗余信息; 步骤B,客户端打开测量工具并点播视频,服务器将所述视频文件打成数据包开始网络传输; 步骤C,客户端测量工具找到第一个Mpeg视频数据包并获取数据包的最大载荷量max、提取数据包的五元组信息; 步骤D,根据五元组过滤数据包进而统计收到的视频数据包总数Y;步骤E,通过帧的大小和max计算应收数据包的总数X,丢包率为
本实施例所述方法首先在视频服务器端的源MPEG4视频文件中加入用于标识测量的特殊标记,如图1所示,之后客户端通过网络访问加入特殊标记的视频文件,并开始实时分析检测。视频文件序列化后形成视频序列,视频序列打包成数据包后经网络开始传输。在检测过程中首先寻找接收到的含有用户数据(userdata)的起始标记0x000001B200ff的数据包,其中0x000001B2为用户数据固定的起始标记,0x00ff为测量流标记,所述测量流标记可替换为其他不与特殊码流标识重复的代码。MPEG4码流标识如表1所示,MPEG4帧标记如表2所示,表3为举例说明。
表1 表2
表3
在用户数据(user data)的起始标记之后存放的是视频序列的帧序号(即表示第几个视频序列)及每个帧的大小,帧序号占2个字节,I帧的数量占1个字节,每个I帧的大小占4个字节,P帧的数量占1个字节,每个P帧的大小占4个字节,B帧的数量占1个字节,每个B帧的大小占4个字节。这样一组数据就标识了一个视频序列里所有帧的大小。
在user data内冗余写入另外两个视频序列的信息,以防用户数据的数据丢失;即在I帧序列的user data内写入P帧和B帧的序列信息,在P帧序列的user data内写入I帧和B帧的序列信息,在B帧序列的user data内写入P帧和I帧的序列信息。此方法可以防止因丢失包含帧信息的数据包而导致的丢包检测结果错误。
每个数据包的IP报头中均包含五元组信息,所述五元组信息为源IP地址,目的IP地址,源端口,目的端口,协议类型。根据数据包中的五元组信息可以唯一识别每一次传输,这样就可以避免繁琐的流识别,同时也可以统计出客户端所收到的数据包数Y。最后分析这个含有用户数据的起始标记的数据包,此含有用户数据的起始标记的数据包的第一个用户数据位置(0x000001)到最后一个用户数据位置所占用的字节长度即为一个IP数据包所能传输的最多视频字节数max。如此一来就可以获知每个帧序列会被分成多少个数据包进行传输。
统计传输所有视频序列所用的数据包数X的方法为 第i个视频序列中I帧数据包数为

i=1,2,…n,P帧数据包数为

B帧数据包数为

则传输总数据包数为

其中Iij为第i个序列中第j个I帧的大小,Pij为第i个序列中第j个P帧的大小,Bij为第i个序列中第j个B帧的大小,k(i),l(i),m(i)分别为第i个序列中I、P、B帧的个数。
将统计出的传输所有视频序列所用的数据包数X与通过五元组过滤后收到的数据包数Y比对,得出两者之差X-Y,该差值即为丢包数,

即为丢包率。
图3为丢包率检测结果对比图,其中有三种测量结果,一种是通过本实施例的检测方法获得的;另一种是通过传统的检测方法获得的;最后一种为通过wireshark抓包工具获得的,此结果反映的是实际情况中的丢包率。
从图中可以看出,本发明在测量MPEG视频文件丢包率方面有较高的准确性。
实施例三 本实施例与实施例二的区别在于,实施例二传输MPEG4视频,而本实施例使用RTP(Real-time Transport protocol,实时传输协议)传输MPEG2视频。在知道网络MTU(Maximum Transmission Unit)大小,RTP头大小等信息后,MTU-RTP即为一个IP数据包所能传输的最大载荷量max,各I、P、B帧的大小除以max之和即为传输的数据包数量。MTU是网络上传送的最大数据包,单位是字节。本实施例中,在每个视频序列头中的user data中直接写入的是传输的数据包数量,而不是每个帧的大小,因此接收端不需要用每个帧的大小除以max值来计算应收包总数。这个实例的受限之处在于要知道网络传输的MTU大小。此外,需要知道应用层的传输协议头大小等。本实施例结果与使用实施例二的结果一样。MPEG2码流标识如表4所示,MPEG2帧标记如表5所示,表6为举例说明。
表4 表5

表6
总之,通过在user data记录相关数据用于测量丢包数量的方法均在本发明的权利要求范围之内。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其他形式、结构、布置、比例,以及用其他元件、材料和部件来实现。
权利要求
1.一种MPEG视频文件的丢包检测方法,其特征在于,包括以下步骤
步骤A,获取MPEG视频文件,所述MPEG视频文件由若干个视频序列构成,每个所述视频序列均包含有若干个I、P、B帧;在第一个视频序列头中加入标识本次测量的特殊标记,在每个所述I、P、B帧尾的用户数据域加入I、P、B帧的自身帧信息和I、P、B帧的冗余信息;
步骤B,客户端打开测量工具并点播视频,服务器将所述视频文件打成数据包开始网络传输;
步骤C,客户端测量工具找到第一个Mpeg视频数据包并获取数据包的最大载荷量max、提取数据包的五元组信息;
步骤D,根据五元组过滤数据包进而统计收到的视频数据包总数Y;
步骤E,通过帧的大小和max计算应收数据包的总数X,丢包率为
2.根据权利要求1所述的MPEG视频文件的丢包检测方法,其特征在于所述I、P、B帧的自身帧信息分别为I帧的自身帧信息,P帧的自身帧信息,B帧的自身帧信息;所述I帧的自身帧信息包括I帧的数量,I帧的大小;所述P帧的自身帧信息包括P帧的数量,P帧的大小;所述B帧的自身帧信息包括B帧的数量,B帧的大小。
3.根据权利要求2所述的MPEG视频文件的丢包检测方法,其特征在于所述I、P、B帧的冗余信息分别为I帧的冗余信息,P帧的冗余信息,B帧的冗余信息;所述I帧的冗余信息包括除I帧的自身帧信息之外的帧信息;所述P帧的冗余信息包括除P帧的自身帧信息之外的帧信息;所述B帧的冗余信息包括除B帧的自身帧信息之外的帧信息。
4.根据权利要求1所述的MPEG视频文件的丢包检测方法,其特征在于,所述数据包的最大载荷量max的获取方法为从数据包的第一个0x000001位置到所述数据包的最后位置的字节长度即为数据包的最大载荷量max。
5.根据权利要求1所述的MPEG视频文件的丢包检测方法,其特征在于,所述应收数据包的总数X的获得方法为第i个视频序列中I帧数据包数为
P帧数据包数为
B帧数据包数为
则传输总数据包数为
其中Iij为第i个序列中第j个I帧的大小,Pij为第i个序列中第j个P帧的大小,Bij为第i个序列中第j个B帧的大小,k(i),l(i),m(i)分别为第i个序列中I、P、B帧的个数,n为视频序列的个数。
6.根据权利要求1所述的MPEG视频文件的丢包检测方法,其特征在于所述丢包率为
7.根据权利要求1所述的MPEG视频文件的丢包检测方法,其特征在于所述五元组信息包括源IP地址,目的IP地址,源端口,目的端口,协议类型。
8.根据权利要求1所述的MPEG视频文件的丢包检测方法,其特征在于,当所述MPEG视频文件通过网络传输协议传输时,所述数据包的最大载荷量max的获取方法为用网络传输的MTU大小减去应用层的传输协议头大小,所得结果即为数据包的最大载荷量max。
9.根据权利要求1所述的MPEG视频文件的丢包检测方法,其特征在于所述I、P、B帧的自身帧信息分别为I帧的自身帧信息,P帧的自身帧信息,B帧的自身帧信息;所述I帧的自身帧信息包括传输I帧所用的数据包数;所述P帧的自身帧信息包括传输P帧所用的数据包数;所述B帧的自身帧信息包括传输B帧所用的数据包数。
全文摘要
本发明公开了一种MPEG视频文件的丢包检测方法,该方法包括以下步骤步骤A,在源MPEG4视频中用户数据域内加入测量信息。步骤B,客户端打开测量工具并点播视频,服务器将所述视频文件打成数据包开始网络传输;步骤C,客户端测量工具找到第一个Mpeg视频数据包并获取数据包的最大载荷量max、提取数据包的五元组信息;步骤D,根据五元组过滤数据包进而统计收到的视频数据包总数Y;步骤E,通过帧的大小和max计算应收数据包的总数X,丢包率为本发明将测量有效信息写入用户数据域中,能准确检测出MPEG视频的丢包情况。
文档编号H04N17/00GK101778294SQ20101010690
公开日2010年7月14日 申请日期2010年2月8日 优先权日2010年2月8日
发明者张大陆, 朱小庆, 胡治国, 周华磊, 张俊生 申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1