使用UDP协议传输视频数据的方法及系统技术方案

技术编号:12585178 阅读:88 留言:0更新日期:2015-12-24 01:39
本申请公开了一种使用UDP协议传输视频数据的方法,包括:数据发送端接收数据接收端发送的视频数据传输请求;发送端根据视频数据传输请求与接收端建立UDP协议连接;发送方将待发送的视频数据分为多个数据包,按照数据包的原始顺序在每个数据包中加入文件头信息,并将数据包分别发送至接收端,其中,文件头信息包括:当前视频帧的帧序号、当前数据包在本视频帧中的位置及当前视频帧的大小;接收端接收所有的数据包后,根据文件头信息中记录的顺序拼接成完整的视频数据并保存。保证了接收到的文件数据与原始发送的文件数据顺序相同,避免了采用UDP协议发送视频数据时出现数据乱序的现象。

【技术实现步骤摘要】

本申请涉及数据传输领域,具体地说,是涉及一种使用UDP协议传输视频数据的方法及系统
技术介绍
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI (OpenSystem Interconnect1n,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层一一传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。与所熟知的TCP (传输控制协议)协议一样,UDP协议直接位于IP (网际协议)协议的顶层。根据OSI (开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。UDP协议并不能提供数据传输的保证机制,例如,在发送方到接收方传递过程中出现的数据包丢失,UDP本身不能做出任何的检测或提示。但是,在P2P技术等应用网络环境中,由于互联网防火墙和NAT网关的存在,两台主机不一定能通过TCP协议建立连接,进而进行数据传输。但是在这些网络应用环境中,UDP协议却可以在两台主机之间进行不可靠数据的传输。使用UDP协议比使用TCP协议更容易使得待传输的数据顺利到达目标主机。采用UDP协议发送视频数据时,尤其是在视频源数据发送过程中,当遇到网络状况有波动的情况时,极易造成先发送的数据晚到,导致接收端接收到的数据顺序和发送端发送的数据顺序不一致,也就是出现乱序现象。在视频流数据传输时,乱序现象会导致用户端的花屏、卡顿等视频播放异常的现象,严重影响用户观看视频体验。
技术实现思路
为了解决在上述现有技术中出现的问题,本专利技术的目的是提供一种使用UDP协议传输视频数据的方法及系统。本专利技术提供了一种使用UDP协议传输视频数据的方法,包括:数据发送端接收数据接收端发送的视频数据传输请求;所述发送端根据所述视频数据传输请求与所述接收端建立UDP协议连接;所述发送方将待发送的视频数据分为多个数据包,按照所述数据包的原始顺序在每个数据包中加入文件头信息,并将所述数据包分别发送至所述接收端,其中,所述文件头信息包括:当前视频帧的帧序号、当前数据包在本视频帧中的位置及当前视频帧的大小;所述接收端接收所有的数据包后,根据文件头信息中记录的顺序拼接成完整的视频数据并保存。进一步地,其中,所述发送方将待发送的视频数据分为多个数据包,进一步包括:将所述待发送的视频数据按照大小为1316字节分成多个数据包。进一步地,其中,所述接收端接收所有的数据包后,根据文件头信息中记录的顺序拼接成完整的视频数据并保存,进一步包括:当接收到数据包的序号等于接收到的当前视频帧序号时,将该数据包按照其在本视频帧中的位置存入数据缓冲区内;当接收到的数据包序号不等于接收到的当前视频帧序号时,将该数据包按照当前视频帧序号存入数据缓冲区内。进一步地,其中,进一步包括:在每个接收的数据包存入数据缓冲区内后,将所述缓冲区中的数据输出,并将所述缓冲区重新放置于缓冲队列队尾位置。进一步地,其中,进一步包括:当接收到的数据包序号远小于已经收到的视频帧序号,将缓冲队列里的序号为当前数据包序号的缓冲区数据丢弃,并将该缓冲区重新放置于缓冲队列队尾位置。—种使用UDP协议传输视频数据的系统,包括:发送模块、处理模块及接收模块,其中,所述发送模块,用于接收数据接收端发送的视频数据传输请求,并根据所述视频数据传输请求与所述接收端建立UDP协议连接;所述处理模块,用于将待发送的视频数据分为多个数据包,按照所述数据包的原始顺序在每个数据包中加入文件头信息,并将所述数据包分别发送至所述接收端,其中,所述文件头信息包括:当前视频帧的帧序号、当前数据包在本帧中的位置及当前视频帧的大小;所述接收模块,用于接收所有的数据包后,根据文件头信息中记录的顺序拼接成完整的视频数据并保存。进一步地,其中,所述处理模块,进一步用于:将所述待发送的视频数据按照大小为1316字节分成多个数据包。进一步地,其中,所述接收模块,进一步用于:当接收到数据包的序号等于接收到的当前视频帧序号时,将该数据包按照其在本帧中的位置存入数据缓冲区内;当接收到的数据包序号不等于接收到的当前视频帧序号时,将该数据包按照当前视频帧序号存入数据缓冲区内。进一步地,其中,所述接收模块,进一步用于:在每个接收的数据包存入数据缓冲区内后,将所述缓冲区中的数据输出,并将所述缓冲区重新放置于缓冲队列队尾位置。进一步地,其中,所述接收模块,进一步用于:当接收到的数据包序号远小于已经收到的视频帧序号,将缓冲队列里的序号为当前数据包序号的缓冲区数据丢弃,并将该缓冲区重新放置于缓冲队列队尾位置。与现有技术相比,本申请所述的一种使用UDP协议传输视频数据的方法及系统,具有以下优点:(I)本专利技术将待发送的数据分割成多个数据包,对每个数据包编上包含数据包位置等信息的文件头信息后,将数据包分别进行发送。接收端根据接收到数据包,根据的其文件头信息进行拼接,恢复出数据包的正确顺序。如此,保证了接收到的文件数据与原始发送的文件数据顺序相同,避免了采用UDP协议发送视频数据时出现数据乱序的现象。(2)本专利技术在数据发送方与数据接收方之间进行数据传输时,将待发送的数据分割成多个数据包进行数据传输,将大文件分割为多个小文件发送,提升了数据传输效率,避免了网络不稳定等现象对大文件传输造成的影响。当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。【附图说明】此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是本专利技术的使用UDP协议传输数据的方法步骤流程示意图;图2是本专利技术实施例2所述的使用UDP协议传输数据的方法步骤流程示意图;图3是本专利技术的使用UDP协议传输数据的系统结构框图示意图。【具体实施方式】如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。本文档来自技高网
...

【技术保护点】
一种使用UDP协议传输视频数据的方法,其特征在于,包括:数据发送端接收数据接收端发送的视频数据传输请求;所述发送端根据所述视频数据传输请求与所述接收端建立UDP协议连接;所述发送方将待发送的视频数据分为多个数据包,按照所述数据包的原始顺序在每个数据包中加入文件头信息,并将所述数据包分别发送至所述接收端,其中,所述文件头信息包括:当前视频帧的帧序号、当前数据包在本视频帧中的位置及当前视频帧的大小;所述接收端接收所有的数据包后,根据文件头信息中记录的顺序拼接成完整的视频数据并保存。

【技术特征摘要】

【专利技术属性】
技术研发人员:袁春光毕先春卢述奇
申请(专利权)人:北京暴风科技股份有限公司
类型:发明
国别省市:北京;11

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

1