一种基于数据链路层的网络视频数据获取方法技术

技术编号:21691387 阅读:49 留言:0更新日期:2019-07-24 16:10
本发明专利技术公开了一种基于数据链路层的网络视频数据获取方法,包括步骤:在数据链路层抓取、复制传输到本计算机网卡上的所有MAC数据帧;对MAC数据帧进行逐帧解析并生成数据包;对所述数据包进行分析,得出视频数据所在位置;根据视频数据所在位置,选择出包含视频数据的数据包;将所述包含视频数据的数据包进行整理后合并生成视频文件。与现有技术相比,本发明专利技术视频数据获取过程简短高效;解析过程速度更快、占用资源更少;执行效率更加高效;视频生成速度更快、效率更高。

A Method of Network Video Data Acquisition Based on Data Link Layer

【技术实现步骤摘要】
一种基于数据链路层的网络视频数据获取方法
本专利技术涉及获取网络视频数据的方法,尤其涉及一种基于数据链路层的网络视频数据获取方法。
技术介绍
随着互联网的迅速普及,人们在获取信息的方式上发生了巨大的变化,越来越多的用户通过网络视频来获取信息,对于用户来说,视频已经成为一个不可缺少的内容,因此,在线视频直播、网络视频点播、视频会议、视频电话、短视频等视频相关应用得到迅速发展,成为互联网的主要应用之一。然而,当前的在线视频内容无法直接进行实时下载,给用户带来了很多不便;有些视频内容虽然提供下载功能,但需要在应用层通过HTTP协议对视频内容重新发起请求,额外占用网络带宽。为解决上述问题,现有技术如《基于数据链路层的视频数据传输方法、装置及系统-CN201410369537.5》提出了利用抓包模块抓取数据输出端口输出的数据,在适配器中按照预设过滤规则,进行过滤分析后,筛选出符合过滤规则的数据包,然后对抓取的数据链路层数据帧进行链路层分析、网络层分析、传输层分析、应用层分析,在应用层数据中提取出端口号,根据端口号、正则表达式、模式匹配算法识别检查每个报文,找到协商得到的端口号来提取所有包含有视频文件的数据,最后将包含有视频文件的数据通过软件转码系统转换为指定格式生成视频文件。然而,该技术方案存在以下问题:(1)需要将抓取的数据经过适配器预设的过滤规则进行过滤分析后,筛选出符合规则的数据包,数据获取过程较为复杂;(2)需要对抓取的数据链路层数据帧进行链路层分析、网络层分析、传输层分析和应用层分析,解析速度慢,占用处理单元和内存等资源多;(3)需要对每个报文进行端口号、正则表达式、模式匹配算法识别来判断是否包含视频数据,执行效率低;(4)需要通过软件转码系统将视频数据转换为指定格式才能生成视频文件,生成速度慢,效率低下。
技术实现思路
为解决现有技术的不足,本专利技术提出一种基于数据链路层的网络视频数据获取方法,通过在数据链路层抓取并复制本机网卡收到的MAC数据帧,对上述复制得到的MAC数据帧进行处理,抽取出视频数据,最终生成视频文件,从而实现在不占用额外网络带宽情况下实现在线视频内容的实时获取。本专利技术的技术方案是这样实现的,一种基于数据链路层的网络视频数据获取方法,包括步骤S1:在数据链路层抓取并复制传输到本计算机网卡上的所有MAC数据帧;S2:对所述MAC数据帧进行逐帧解析,解析出TCP报文首部中的序号、确认号和数据部分,将所述序号、确认号和数据部分打包成数据包;S3:根据视频文件格式的头部特征在所述数据包的数据部分进行匹配,找到视频数据头部所在的数据包,该数据包中包含的确认号即为视频数据所在数据包的位置;S4:在所有的数据包中选择出数据包中确认号与所述确认号相同的数据包;S5:将包含视频数据的数据包进行整理后合并生成视频文件。进一步地,步骤S3中所述视频文件格式包括但不限于MP4格式和FLV格式。进一步地,所述步骤S5包括步骤S51:根据包含视频数据的数据包内的序号进行排序、重复帧处理和数据丢失统计;S52:根据序号从小到大的顺序将数据包内的数据部分进行合并;S53:将TCP报文响应头部去除后,生成视频文件。更进一步地,所述步骤S51中重复帧处理包括步骤:将重复序号和其后序号之差的绝对值与每个重复数据包中数据部分的数据长度进行比较,保留比较值相等的重复的数据包,丢弃其余重复的数据包。更进一步地,步骤S51中所述数据丢失统计包括步骤:将重复帧处理后的数据包中序号和下一个数据包中的序号之差的绝对值与该数据包中数据部分的数据长度进行比较,若比较值相同则该帧无数据丢失,若比较值不同则统计丢失字节数。与现有技术相比,本专利技术的有有益效果在于:(1)本专利技术直接获取数据链路层MAC数据帧,视频数据获取过程简短高效;(2)本专利技术直接在传输层对获取的MAC数据帧进行解析,解析过程速度更快、占用资源更少;(3)本专利技术只需匹配到视频文件头部特征,提取其确认号,根据一个确认号即可将所有视频文件数据全部提取,执行效率更加高效;(4)本专利技术将包含有视频文件的数据进行简单合并即可生成视频文件,视频生成速度更快、效率更高。附图说明图1是本专利技术一种基于数据链路层的网络视频数据获取方法的流程图;图2是本专利技术一种基于数据链路层的网络视频数据获取方法的帧解析过程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参见图1,本专利技术涉及获取视频文件方法,特别是涉及基于数据链路层的在线视频数据获取方法,包括以下步骤步骤S1:在数据链路层抓取、复制并保存传输到本计算机网卡上的所有MAC数据帧。步骤S2:对保存的MAC数据帧进行逐帧解析并生成数据包。如图2所示,在MAC数据帧的数据部分提取上述抓取、复制的每个MAC数据帧的传输层的TCP报文首部,解析TCP报文首部中的序号、确认号,根据TCP报文首部的数据偏移字段找到TCP报文的数据部分,将序号、确认号、数据部分进行打包保存为一个数据包。步骤S3:对上述数据包进行分析,得出视频数据所在位置。在本专利技术的一个实施例中,根据MP4格式视频和FLV格式视频的头部BOX类型,在上述数据包的数据部分进行匹配,找到视频数据头部所在的数据包。视频播放时同一个TCP请求其确认号相同,因此,该数据包中包含的确认号即为视频数据所在数据包的位置,视频数据存在于多个数据包中。步骤四:根据视频数据所在位置,选择出包含视频数据的数据包。根据上述找到的视频数据所在位置的确认号,选择出数据包中确认号与该确认号相同的数据包,选择出的数据包内容即为视频数据。步骤五:将上述包含视频数据的数据包进行整理后合并生成视频文件。上述选择出的数据包会有顺序错乱、数据帧序号重复、丢失等情况,因此,需要根据上述选择出的数据包内的序号进行排序、重复帧处理、数据丢失统计,最后根据序号项按从小到大的顺序将数据包内的数据部分进行合并;TCP请求会有报文的响应头部,因此需要将TCP报文响应头部去除。根据视频的头部特征找到视频数据起始位置,从而可以确定TCP报文响应头部并去除生成视频文件。上述进行重复帧处理过程为:根据数据包内的序号是否有重复,若有,则将重复序号和其后序号之差的绝对值与每个重复数据包中数据部分的数据长度进行比较,保留其比较值相等的重复的数据包,丢弃其余重复的数据包。上述数据丢失统计过程为:将重复帧处理后的数据包中序号和下一个数据包中的序号之差的绝对值与该数据包中数据部分的数据长度进行比较,若比较值相同,则该帧无数据丢失,若不同,则统计丢失字节数。以上所述是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本专利技术的保护范围。本文档来自技高网
...

【技术保护点】
1.一种基于数据链路层的网络视频数据获取方法,其特征在于,包括步骤S1:在数据链路层抓取并复制传输到本计算机网卡上的所有MAC数据帧;S2:对所述MAC数据帧进行逐帧解析,解析出TCP报文首部中的序号、确认号和数据部分,将所述序号、确认号和数据部分打包成数据包;S3:根据视频文件格式的头部特征在所述数据包的数据部分进行匹配,找到视频数据头部所在的数据包,该数据包中包含的确认号即为视频数据所在数据包的位置;S4:在所有的数据包中选择出数据包中确认号与所述确认号相同的数据包;S5:将包含视频数据的数据包进行整理后合并生成视频文件。

【技术特征摘要】
1.一种基于数据链路层的网络视频数据获取方法,其特征在于,包括步骤S1:在数据链路层抓取并复制传输到本计算机网卡上的所有MAC数据帧;S2:对所述MAC数据帧进行逐帧解析,解析出TCP报文首部中的序号、确认号和数据部分,将所述序号、确认号和数据部分打包成数据包;S3:根据视频文件格式的头部特征在所述数据包的数据部分进行匹配,找到视频数据头部所在的数据包,该数据包中包含的确认号即为视频数据所在数据包的位置;S4:在所有的数据包中选择出数据包中确认号与所述确认号相同的数据包;S5:将包含视频数据的数据包进行整理后合并生成视频文件。2.如权利要求1所述的基于数据链路层的网络视频数据获取方法,其特征在于,步骤S3中所述视频文件格式包括但不限于MP4格式和FLV格式。3.如权利要求1所述的基于数据链路层的网络视频数据获取方法,其...

【专利技术属性】
技术研发人员:赵宏孔东一王伟杰常兆斌张浩刘向东党育马栋林王乐雷晓强王孝通
申请(专利权)人:兰州理工大学
类型:发明
国别省市:甘肃,62

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1