一种视频流分析方法及装置的制作方法

文档序号:7761613阅读:300来源:国知局
专利名称:一种视频流分析方法及装置的制作方法
技术领域
本发明涉及多媒体通信技术,尤其涉及一种视频流分析方法及装置。
背景技术
当前,随着通信技术的发展,视频业务得到了广泛的应用,但是,在视频业务的开发和维护过程中,经常碰到视频质量达不到要求的情况,视频质量达不到要求主要有以下两个方面的原因1.网络问题,视频流的丢包率、抖动、时延过大。2.软件问题,可能是接收方的软件故障使得合乎质量要求的视频流得不到正确的呈现,也可能是因为发送方发送的视频包有缺陷,例如某个字段取值错误。为了定位上述视频质量问题,目前通用的做法在发送侧、接收侧或者交换的关键节点上抓取网络包并存储在相应文件中,再由工作人员打开相应文件对抓取的网络包进行分析。这属于事后分析的方法,本发明发明人发现,这种事后分析具有如下缺陷1.由于抓包的数据量很大,从海量的抓包数据中去定位一个具体的视频呼叫的码流并进行数据包层面的跟踪非常困难,首先该呼叫的码流与其它网络包交织在一起,中间可能掺杂了大量与该呼叫无关的网络包。即便是在一个呼叫的码流中,要定位出在什么时刻发生了什么错误也是非常困难的。2.这种分析完全停留在数据层面,并且是由人工进行分析,定位效率很低,需要定位人员具备扎实的视频编解码知识和技能。3.分析抓包数据是一种事后的分析,往往需要停止抓包,再打开抓包文件,这样就中断了其它正在进行的视频呼叫数据的抓取,这种对抓包数据完整性的破坏很可能是致命的,因为可能恰恰一个很重要并且难以重现的错误正在发生,而抓包却已经中断了。4.缺乏直观性,在分析抓包数据的时候,无法去和现场的图像质量的人脑印象进行对应,例如图像卡到什么程度?图像花到什么程度?延迟到什么程度?应该说目前的分析方式还处在比较宏观的层面,分析的结论往往是导致问题的可能性而不是一个确定性。5.当前使用的抓包然后离线作人工分析的操作过程中,在用户指定某视频流的基本信息(session)为Rtp视频流的前提下,抓包软件可以根据相关标准进一步显示出这些包的字段取值,但是由于Rtp传输的端口是动态分配的,所以分析人员还需要去查看应用系统的相关日志查看在某个时刻Rtp传输使用的是哪个端口。以上的分析表明,当前使用的视频流分析方法在进行质量定位的过程中,局限性大,效率低。

发明内容
本发明实施例提供一种视频流分析方法及装置,以提高视频质量问题的定位效率。一种视频流分析方法,包括根据设置的抓包参数连续抓取符合条件的网络包,并确定每一个网络包所属的基本信息session ;确定所述网络包所属的session是否为视频流,并显示视频流session的信息;在接收到播放视频流session的请求时,读取该视频流session的网络包并解码播放。一种视频流分析装置,包括抓取确定单元,用于根据设置的抓包参数连续抓取符合条件的网络包,并确定每一个网络包所属的基本信息session ;判断存储单元,用于确定所述网络包所属的session是否为视频流,并显示视频流session的信息;播放单元,用于在接收到播放视频流session的请求时,读取该视频流session的网络包并解码播放。本发明实施例提供一种视频流分析方法及装置,在抓取网络包的同时,判断每一个抓取的网络包的session是否为视频流,并按照视频流和非视频流分类显示session目录,以及在接收到播放视频流session的请求时,读取该视频流session的网络包解码播放。由于在抓取网络包的同时进行了网络包类型的判断,从而进行分类管理,在需要查看视频质量时,可以直接播放视频流session,使用户对图像质量有直观的认识,提高了视频质量问题的定位效率。


图1为本发明实施例提供的视频流分析方法流程示意图;图2为本发明实施例中从网络包文件中读取该视频流session的网络包并解码播放流程示意图;图3为本发明实施例中根据网络包中的数据信息确定网络包所属的session是否为视频流的流程示意图;图4和图5为本发明实施例提供的视频流分析装置结构示意图。
具体实施例方式本发明实施例提供一种视频流分析方法及装置,在抓取网络包的同时,判断每一个抓取的网络包的session是否为视频流,并按照视频流和非视频流分类显示session目录,以及在接收到播放视频流session的请求时,读取该视频流session的网络包解码播放。由于在抓取网络包的同时进行了网络包类型的判断,从而进行分类管理,在需要查看视频质量时,可以直接播放视频流session,使用户对图像质量有直观的认识,提高了视频质量问题的定位效率。如图1所示,本发明实施例提供的视频流分析的方法包括步骤S101、根据设置的抓包参数连续抓取符合条件的网络包,并确定每一个网络包所属的基本信息session ;步骤S102、确定网络包所属的session是否为视频流,并显示视频流session的信息;步骤S103、在接收到播放视频流session的请求时,读取该视频流session的网络
5包并解码播放。通常在用户发送停止抓包的命令后,才会停止抓取网络包,用户命令的发送可以采用多种方式,例如以命令语句的形式或者点击界面上设定的按钮等。在播放的过程中,还可以同时显示出所播放的图像对应的网络包的16进制内容,并解析出网络包结构的关键字段,例如RTP信息头时间戳、版本、负载类型、 SequenceNum(包序号)、负载的关键信息(H. 263负载的图像格式QCIF/CIF)等,以便于用户同步进行分析。通常情况下,为便于网络包的查找和分析,需要将网络包存储在网络包文件中, 这样在接收到播放视频流session的请求时,需要从所述网络包文件中读取该视频流 session的网络包并解码播放。步骤SlOl中,在进行抓包前,首先要选择抓包的网卡设备,设置抓包参数,抓包参数可以包括源地址、目标地址、源端口、目标端口,即kssion的限定条件,如果对某一条件进行了设定则表示只抓取符合该条件的网络包,如果不设置过滤参数,则表示抓取所有网络包,这样网络包文件体积会大一些,但是不影响后续功能。为了保证在大的网络流量环境下完整记录网络中的消息往来,在步骤SlOl中采用连续抓包的方式,即在进行网络报的解析时,并不停止对网络包的抓取和保存,写文件逻辑和解析逻辑是并行进行的,具体实现时,可以在抓取网络包后,将网络包一式两份分别发送给解析逻辑和写文件逻辑。将网络包存储在网络包文件中即是写文件逻辑的功能,在一边抓包一边播放且读写流量非常大的情况下,为了进一步提高性能,可以采用文件映射方式进行文件操作,即将文件映射到进程的地址空间,在读取时,先复制文件数据到内存中,再直接读取内存中的数据,在写入文件时,则直接将网络包数据写入内存,再从内存中复制存储到网络包文件中, 由于内存的读写速度较快,所以提高了读写速度。在进行文件播放时,为进一步保证播放流畅,可以监控文件的边界,并控制播放时的读操作不超过文件的边界。如图2所示,步骤S103中,读取该视频流session的网络包并解码播放,具体包括步骤S1031、读取该session的一个网络包进行解码并显示,通常如果没有特殊设置,则从第一个网络包开始读取;步骤S1032、如果用户发送了停止播放命令,那么终止播放,否则继续读取网络包并进行解码显示。由于抓取的网络包都存储在一个网络包文件中,所以在读取网络包时,可以首先判断网络包文件中所读取的网络包所属的session,解码播放所属session与请求播放的 session相同的网络包。另一种较佳的实现方式是,建立一个网络包存储索引,存储了各个session的网络包的存储位置,在存储网络包时,将该网络包的存储位置更新到该网络包存储索引的相应session中,这样在播放时,即可直接根据网络包存储索引,从网络包文件的相应位置中读取请求播放的视频流session的网络包并解码播放。在步骤S102中,确定网络包所属的session是否为视频流具体包括两种方式,一种是通过信令交互从视频业务系统获得网络包信息或者增加配置项,直接根据获得的网络包信息或增加配置项确定网络包所属的session是否为视频流;另一种是根据网络包中的数据信息确定网络包所属的session是否为视频流。这两种方式可以单独使用,也可以配合使用。可以仅显示视频流session的信息供用户选择播放,也可以分别显示视频流 session的信息和非视频流session的信息,以便用户进行管理。根据网络包中的数据信息确定网络包所属的session是否为视频流,可以通过单个包的判断和基于包缓冲区的判断相结合的方式进行,如图3所示,具体包括步骤S301、解析网络包包头;步骤S302、判断网络包包头长度是否小于RTP(real-time transport protocol, 实时传输协议)头长度,如果长度小于RTP头的长度,肯定不是RTP包,也就更不会是视频包,所以当网络包包头长度小于RTP头长度时,确定网络包所属的session为非视频流,执行步骤S311,否则继续执行步骤S303 ;步骤S303、获取RTP头域中的负载类型;步骤S304、判断负载类型的取值是否是业务系统正在使用的视频类型,根据视频业务系统的部署情况,网络中需要监视的只有有限种类的视频,这时候只需要判断RTP头域中的负载类型是否为业务系统正在使用的视频类型,例如H. 263视频的负载类型取值为 0 X 22,如果取值不符合正在使用的视频类型,那么一定不是视频流或者说不是我们需要分析的视频流,所以当负载类型的取值不是业务系统正在使用的视频类型取值时,确定网络包所属的session为非视频流,执行步骤S311,否则继续执行步骤S305 ;步骤S305、获取网络包中的特征数据;步骤S306、判断网络包中的特征数据是否与该网络包的视频类型符合,当网络包中的特征数据与该网络包的视频类型符合时,确定网络包所属的session为视频流,执行步骤S312,否则继续执行步骤S307 ;当然,当网络包中的特征数据与该网络包的视频类型不符合时,也可以不基于缓冲区进行判断,直接根据后续网络包的特征确定网络包所属的session是否为视频流,但这时可能会出现漏判的情况;当基于缓冲区进行判断时,即为判断RTP标准的符合度,对所缓存的属于同一个 session的所有网络包进行特征分析,如果基于包缓冲的判断认为不符合RTP标准,那么该 session 一定不是RTP流,更不是视频流,如果符合RTP标准,则在后续的属于该session的网络包到来时,继续通过步骤S301-S306判定为视频流。步骤S307、缓存网络包;进一步,还可以在进行步骤S307之前先判断缓冲区是否满,如是,表示经过一定数量的分析仍然无法判定为视频流,转311。否则再进行步骤S307,缓冲区的大小需要根据网络流量来设定,通常需要能够缓存不少于10000个网络包。步骤S308、判断所缓存的属于同一个session的所有网络包的包序号(kquence Number)是否符合递增特征,如果是,继续执行步骤S309,否则执行步骤S311 ;步骤S309、判断包序号符合递增特征的网络包的Tim必tamp (时间戳)值是否符合递增特征,如果是,继续步骤S310,否则,执行步骤S311 ;步骤S310、根据后续网络包的特征确定网络包所属的session是否为视频流;
步骤S311、确定该session为非视频流,将该session信息列入非视频流列表中;步骤S312、确定该session为视频流,将该session信息列入视频流列表中。较佳的,为简化判断步骤,当一个网络包所属的session已经确定为视频流且尚未过期时,可以继续认为该session为视频流;同样,当一个网络包所属的session已经确定为非视频流且尚未过期时,可以继续认为该session为非视频流。当设定的时间内没有再接收到属于该session的网络包时,则可以认为该session过期,再接收到属于该 session的网络包时则需要重新判断网络包所属的session是否为视频流。在步骤S306中,只需要提取该类型网络包中的关键特征进行判断,具体的为提高判断效率,不按照相关标准解析包的每一个字段,如果进行对应负载类型的解析,则基于该包是图像数据的假设,但是标准中大量的位域描述的字段使得这种解析往往只能够得到一个貌似合理的值,因为基于位域描述的字段要么为0要么为1,都具有含义。所以可以通过获取对应负载类型的关键的排它性的特征来进行判断,以ITU-T H. 263的I/P帧数据为例,ITU-T H. 263的I/P帧数据中具有一个Picture Start Code (图像开始码),其取值为 0X00000020。如果该网络包为ITU-T H. 263网络包,且该特征是符合H. 263网络包的特征, 则判定该网络包所属的session是视频流,如果不符合,说明可能是图组数据等,需要继续判断,如果后面碰到同属于该session的网络包符合的I/P帧数据特征,即可认为该网络包所属的session是视频流。需要说明的是这里H. 263仅为例举,其它H. 264.MPEG-4等图像数据,也都有自己排它性的特征取值,在此就不再赘述。较佳的,在步骤S308和步骤S309中、判断所缓存的属于同一个session的所有网络包的kquence Number是否符合递增特征,以及判断kquence Number符合递增特征的网络包的TimeMamp值是否符合递增特征,都要考虑到丢包和乱序的情况,例如,在分析属于同一个session的所有网络包的kquence Number是否符合递增特征之前,要将缓冲区的包按kquence Number进行排序,如果个别网络包与前驱网络包的kquence Number字段增量超过1,但不超过一个设定的值,例如3,就可以认为符合递增特征。本发明实施例还相应提供一种视频流分析装置,如图4所示,包括抓取确定单元401,用于根据设置的抓包参数连续抓取符合条件的网络包,并确定每一个网络包所属的基本信息session ;判断存储单元402,用于确定网络包所属的session是否为视频流,并显示视频流 session的信息;播放单元403,用于在接收到播放视频流session的请求时,读取该视频流 session的网络包并解码播放。进一步,为便于用户的同步分析,播放单元403还用于,在解码播放时,同时显示出所播放的图像对应的网络包的内容,以及解析出网络包结构的关键字段并显示。通常,需要将抓取的网络包存储在网络包文件中,以便于后续的查找和管理,此时,判断存储单元402还用于将每一个抓取的网络包存储在网络包文件中;播放单元403 具体用于,在接收到播放视频流session的请求时,从网络包文件中读取该视频流session 的网络包并解码播放。根据本发明实施例提供的两种读取网络包的方式,播放单元403具体用于在接收到播放视频流session的请求时,顺序读取网络包文件中的网络包并判断读取的网络包所属的session,解码播放所属session与请求播放的session相同的网络包;或者在接收到播放视频流session的请求时,根据网络包存储索引,从网络包文件的相应位置中读取请求播放的视频流session的网络包并解码播放,网络包存储索引包括网络包所属session和网络包在网络包文件中的存储位置,在将网络包存储到网络包文件中时更新。如图5所示,视频流分析装置中的判断存储单元402具体包括判断子单元4021,用于确定网络包所属的session是否为视频流;显示子单元4022,用于显示视频流session的信息;存储子单元4023,用于将每一个抓取的网络包存储在网络包文件中。其中,根据本发明实施例提供的确定网络包所属的session是否为视频流的具体方法,判断子单元4021 可以通过信令交互从视频业务系统获得网络包信息或者增加配置项,并根据所述网络包信息或增加配置项确定所述网络包所属的session是否为视频流;也可以根据网络包中的数据信息确定网络包所属的session是否为视频流,或者可以通过两种方式的结合确定网络包所属的session是否为视频流。具体的,判断子单元4021在根据网络包中的数据信息确定网络包所属的session 是否为视频流时,具体用于解析网络包包头,当网络包包头长度小于RTP头长度时,确定网络包所属的 session为非视频流;当网络包包头长度大于或等于RTP头长度时,获取RTP头域中的负载类型,当负载类型的取值不是业务系统正在使用的视频类型取值时,确定网络包所属的session为非视频流;当负载类型的取值是业务系统正在使用的视频类型时,获取网络包中的特征数据,当网络包中的特征数据与该网络包的视频类型符合时,确定网络包所属的session为视频流;当网络包中的特征数据与该网络包的视频类型不符合时,缓存网络包;当所缓存的属于同一个session的所有网络包的包序号符合递增特征,并且 TimeStamp值也符合递增特征时,根据后续网络包的特征确定网络包所属的session是否为视频流,否则,确定session为非视频流。本发明实施例提供一种视频流分析方法及装置,在抓取网络包的同时,判断每一个抓取的网络包的session是否为视频流,并按照视频流和非视频流分类显示session目录,以及在接收到播放视频流session的请求时,读取该视频流session的网络包解码播放。由于在抓取网络包的同时进行了网络包类型的判断,从而进行分类管理,在需要查看视频质量时,可以直接播放视频流session,使用户对图像质量有直观的认识,提高了视频质量问题的定位效率。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种视频流分析方法,其特征在于,包括根据设置的抓包参数连续抓取符合条件的网络包,并确定每一个网络包所属的基本信息 session ;确定所述网络包所属的session是否为视频流,并显示视频流session的信息;在接收到播放视频流session的请求时,读取该视频流session的网络包并解码播放。
2.如权利要求1所述的方法,其特征在于,还包括将每一个抓取的网络包存储在网络包文件中,并在接收到播放视频流session的请求时,从所述网络包文件中读取该视频流session的网络包并解码播放。
3.如权利要求1所述的方法,其特征在于,所述确定所述网络包所属的session是否为视频流具体包括通过信令交互从视频业务系统获得网络包信息或增加配置项,并根据所述网络包信息或增加配置项确定所述网络包所属的session是否为视频流;和/或根据所述网络包中的数据信息确定所述网络包所属的session是否为视频流。
4.如权利要求3所述的方法,其特征在于,所述根据所述网络包中的数据信息确定网络包所属的session是否为视频流具体包括解析网络包包头;当网络包包头长度大于或等于RTP头长度时,获取RTP头域中的负载类型;当负载类型的取值是业务系统正在使用的视频类型时,获取网络包中的特征数据;当网络包中的特征数据与该网络包的视频类型符合时,确定所述网络包所属的 session为视频流。
5.如权利要求4所述的方法,其特征在于,所述确定网络包所属的session是否为视频流,还包括当网络包中的特征数据与该网络包的视频类型不符合时,缓存所述网络包;当所缓存的属于同一个session的所有网络包的包序号符合递增特征,并且时间戳 TimeStamp值也符合递增特征时,根据后续网络包的特征确定网络包所属的session是否为视频流。
6.如权利要求1所述的方法,其特征在于,还包括在解码播放时,同时显示出所播放的图像对应的网络包的内容,以及解析出网络包结构的关键字段并显示。
7.一种视频流分析装置,其特征在于,包括抓取确定单元,用于根据设置的抓包参数连续抓取符合条件的网络包,并确定每一个网络包所属的基本信息session ;判断存储单元,用于确定所述网络包所属的session是否为视频流,并显示视频流 session的信息;播放单元,用于在接收到播放视频流session的请求时,读取该视频流session的网络包并解码播放。
8.如权利要求7所述的装置,其特征在于,所述判断存储单元还用于将每一个抓取的网络包存储在网络包文件中;所述播放单元具体用于,在接收到播放视频流session的请求时,从所述网络包文件中读取该视频流session的网络包并解码播放。
9.如权利要求8所述的装置,其特征在于,所述判断存储单元具体包括 判断子单元,用于确定所述网络包所属的session是否为视频流;显示子单元,用于显示视频流session的信息; 存储子单元,用于将每一个抓取的网络包存储在网络包文件中。
10.如权利要求9所述的装置,其特征在于,所述判断子单元具体用于通过信令交互从视频业务系统获得网络包信息或增加配置项,并根据所述网络包信息或增加配置项确定所述网络包所属的session是否为视频流;和/或根据所述网络包中的数据信息确定所述网络包所属的session是否为视频流。
11.如权利要求10所述的装置,其特征在于,所述判断子单元根据所述网络包中的数据信息确定所述网络包所属的session是否为视频流时,具体用于解析网络包包头;当网络包包头长度大于或等于RTP头长度时,获取RTP头域中的负载类型; 当负载类型的取值是业务系统正在使用的视频类型取值时,获取网络包中的特征数据;当网络包中的特征数据与该网络包的视频类型符合时,确定所述网络包所属的 session为视频流;当网络包中的特征数据与该网络包的视频类型不符合时,缓存所述网络包; 当所缓存的属于同一个session的所有网络包的包序号符合递增特征,并且时间戳 TimeStamp值也符合递增特征时,根据后续网络包的特征确定网络包所属的session是否为视频流。
12.如权利要求7所述的装置,其特征在于,所述播放单元还用于,在解码播放时,同时显示出所播放的图像对应的网络包的内容,以及解析出网络包结构的关键字段并显示。
全文摘要
本发明公开了一种视频流分析方法及装置,涉及多媒体通信技术,在抓取网络包的同时,判断每一个抓取的网络包的session是否为视频流,并显示视频流session的信息,以及在接收到播放视频流session的请求时,读取该视频流session的网络包解码播放。由于在抓取网络包的同时进行了网络包类型的判断,从而进行分类管理,在需要查看视频质量时,可以直接播放视频流session,使用户对图像质量有直观的认识,提高了视频质量问题的定位效率。
文档编号H04N21/647GK102438182SQ20101050169
公开日2012年5月2日 申请日期2010年9月29日 优先权日2010年9月29日
发明者张治华, 李刚, 贺彬 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1