CN109842821A - 一种视频数据传输的方法和装置 - Google Patents
一种视频数据传输的方法和装置 Download PDFInfo
- Publication number
- CN109842821A CN109842821A CN201811595618.1A CN201811595618A CN109842821A CN 109842821 A CN109842821 A CN 109842821A CN 201811595618 A CN201811595618 A CN 201811595618A CN 109842821 A CN109842821 A CN 109842821A
- Authority
- CN
- China
- Prior art keywords
- video data
- data packet
- server
- packet
- xmcu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种视频数据传输的方法和相应的一种视频数据传输的装置,所述方法和装置可以应用于视联网,所述视联网包括视联网服务器、视联网终端、扩展多点控制XMCU服务器,所述视联网服务器分别与所述视联网终端及所述XMCU服务器通信连接,视联网终端将采集到每一视频帧拆分为多个具有包序列号的视频数据包,并在发送完每一个视频数据包时,先接收XMCU服务器针对该视频数据包返回的回复确认信息,若回复确认信息包括了该视频数据包的包序列号,则继续发送下一个视频数据包;若回复确认信息不包括该视频数据包的包序列号,则将该视频数据包重新发送给XMCU服务器,可以确保全部视频数据均发送至XMCU服务器,避免视频数据丢包。
Description
技术领域
本申请涉及视联网技术领域,特别是涉及一种视频数据传输的方法和装置。
背景技术
随着视联网技术的发展,各个终端在视联网内进行音视频的传输越来越频繁,这样,随着终端的增多,视联网核心服务器间的网络流量会不断加大。由于网络带宽、抖动以及各服务器处理压力的影响,视联网核心服务器在转发音视频流时会产生乱序或者丢包,从而获得的视频画面质量不高,用户体验差。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种视频数据传输的方法和相应的一种视频数据传输装置。
为了解决上述问题,本申请实施例公开了一种视频数据传输的方法,所述方法应用于视联网,所述视联网包括视联网服务器、视联网终端、扩展多点控制XMCU服务器,所述视联网服务器分别与所述视联网终端及所述XMCU服务器通信连接,所述方法包括:
所述视联网终端将采集到的每一视频帧拆分为N个视频数据包;其中,所述视频数据包具有包序列号,N为正整数;
所述视联网终端生成缓存队列,并将所述N个视频数据包存储至所述缓存队列中;
所述视联网终端按照所述包序列号的序列顺序,从所述缓存队列中顺序提取第M个视频数据包,并将所述第M个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M个视频数据包发送至所述XMCU服务器,所述XMCU服务器用于根据接收所述第M个视频数据包是否成功的状态,生成回复确认信息并将所述回复确认信息发送至所述视联网服务器;其中,M为正整数且小于N;
所述视联网终端接收所述视联网服务器转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包具有的第一包序列号;
若包括,则所述视联网终端从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M+1个视频数据包发送至所述XMCU服务器;
若不包括,则所述视联网终端继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M个视频数据包发送至所述XMCU服务器。
优选地,每个所述视频数据包的大小均为1K。
优选地,所述视联网终端继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器的步骤中,还包括:
所述视联网终端针对所述第M个视频数据包,生成一个重发记录。
优选地,在所述视联网终端继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器的步骤后,还包括:
所述视联网终端判断所述重发记录的个数是否超过预设个数;
若超过,则所述视联网终端生成错误信息,并从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述视联网服务器,以及显示所述错误信息;所述错误信息包括所述第一包序列号。
优选地,所述回复确认信息还包括目标码率,所述视联网终端接收所述视联网服务器转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包的第一包序列号的步骤,包括:
所述视联网终端解析所述回复确认信息;
所述视联网终端从解析后的回复确认信息中提取所述目标码率;
所述视联网终端根据所述目标码率,确定第一预设时间;
所述视联网终端判断解析后的回复确认信息中是否包括所述第一包序列号。
优选地,所述视联网终端从所述缓存队列中顺序提取第M+1个视频数据包,并间隔所述第一预设时间,将所述第M+1个视频数据包发送至所述视联网服务器;或者,所述视联网终端继续从所述缓存队列中提取所述第M个视频数据包,并间隔所述第一预设时间将所述第M个视频数据包发送至所述视联网服务器。
优选地,每个所述视频数据包具有帧标识,所述视联网还与互联网通信连接,所述互联网中包括互联网终端,所述互联网终端与所述XMCU服务器通信连接;在所述视联网终端从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述XMCU服务器的步骤中,还包括:
所述视联网终端在确定所述第M+1个视频数据包为第N个视频数据包时,生成包括所述帧标识的传输完成信令,并将所述传输完成信令发送至所述XMCU服务器;所述XMCU服务器还用于针对所述传输完成信令后,将具有所述帧标识的全部N个视频数据包编码成第一视频流数据,并将所述第一视频流数据发送至所述互联网终端。
优选地,在所述视联网终端从所述缓存队列中顺序提取第M+1个视频数据包,并将所述第M+1个视频数据包发送至所述XMCU服务器的步骤后,还包括:
所述视联网终端在所述缓存队列中删除所述第M个视频数据包,以及包序列号在所述第一包序列号之前的所有视频数据包。
为了解决上述技术问题,本申请实施例还相应地公开了一种视频数据传输的装置,所述装置应用于视联网,所述视联网包括视联网服务器、视联网终端、XMCU服务器,所述视联网服务器分别与所述视联网终端及所述XMCU服务器通信连接,所述装置位于所述视联网终端,包括:
拆包模块,用于将采集到的每一视频帧拆分为N个视频数据包;其中,所述视频数据包具有包序列号,N为正整数;
缓存模块,用于生成缓存队列,并将所述N个视频数据包存储至所述缓存队列中;
滑动窗口发送模块,用于按照所述包序列号的序列顺序,从所述缓存队列中顺序提取第M个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M个视频数据包发送至所述XMCU服务器,所述XMCU服务器用于根据接收所述第M个视频数据包是否成功的状态,生成回复确认信息并发送至所述视联网服务器;其中,M为正整数且小于或等于N;
回复信息接收模块,用于接收所述视联网服务器转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包具有的第一包序列号;
滑动窗口控制模块,用于在所述回复确认信息包括所述第一包序列号时,控制所述滑动窗口发送模块从所述缓存队列中提取第M+1个视频数据包,并将所述第M+1个视频数据包发送至所述XMCU服务器;或者,用于在所述回复确认信息不包括所述第一包序列号时,控制所述滑动窗口发送模块继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M个视频数据包发送至所述XMCU服务器。
优选地,所述回复确认信息还包括目标码率,所述装置还包括:
解析模块,用于解析所述回复确认信息;
目标码率获取模块,用于从解析后的回复确认信息中提取所述目标码率;
发送流速调整模块,用于根据所述目标码率,确定所述滑动窗口控制模块在提取到所述第M+1个视频数据包与将所述第M+1个视频数据包发送至所述视联网服务器之间间隔的第一预设时间;或者,确定所述滑动窗口控制模块继续提取所述第M个视频数据包与将所述第M个视频数据包重复发送至所述视联网服务器之间间隔的第一预设时间。
与现有技术相比,本申请实施例具有以下优点:
首先,本申请实施例应用视联网的特性,视联网终端在采集到每一视频帧时,都将该视频帧按顺拆分为多个具有包序列号的视频数据包,并将多个视频数据包存储至缓存队列,并从缓存队列中按包序列号的顺序将每一个视频数据包发送至XMCU服务器,在发送完一个视频数据包时,先接收XMCU服务器针对该视频数据包返回的回复确认信息,若回复确认信息包括了该视频数据包的包序列号,则继续发送下一个视频数据包;若回复确认信息不包括该视频数据包的包序列号,则将该视频数据包重新发送给XMCU服务器;通过这样的回复确认机制,视联网终端可以确保将每一视频帧的全部视频数据均发送至XMCU服务器,使得XMCU服务器获得的视频数据是完整的视频流数据,从而可以提高XMCU服务器获取的视频流的质量,进而提高将视频流进行播放的画质。
其次,在重复发送某个视频数据的情况出现多次后,不再进行该某个视频数据的重复发送,并发送下一个视频数据,提高了视联网终端在频繁重复发送某个视频数据时的应对能力以及发送视频数据包的效率。
其次,XMCU服务器可以根据当前的网络带宽设置目标码率,使得视联网终端可以根据目标码率动态调整发送相邻两个视频数据包的间隔时间,即可以调整发送视频数据的速率,提高了视联网终端发送视频数据的网络自适应能力,以及使得XMCU服务器接收视频数据时能自主选择码率。
最后,视联网终端在发送成功一个视频数据包时,即将包序列号在前的视频数据包删除,可以减轻缓存队列的缓存压力,提高视联网终端的运行速度。XMCU服务器在成功接收到每一视频帧的全部数据后,再以帧为单位对视频数据进行编码并发送给互联网终端,扩大了本申请实施例的应用范围。
附图说明
图1是本申请的一种视联网的组网示意图;
图2是本申请的一种节点服务器的硬件结构示意图;
图3是本申请的一种接入交换机的硬件结构示意图;
图4是本申请的一种以太网协转网关的硬件结构示意图;
图5是本申请的一种视频数据传输的方法实施例1的步骤流程图;
图6是本申请的一种视频数据传输的方法实施例1的应用环境图;
图7是本申请的一种视频数据传输的方法实施例2的步骤流程图;
图8是本申请的一种视频数据传输的方法实施例2的应用环境图;
图9是本申请的一种视频数据传输的装置实施例3的结构框图;
图10是本申请的一种视频数据传输的装置实施例4的结构框图。
具体实施方式S
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本申请实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(NetworkTechnology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(CircuitSwitching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(ServerTechnology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本申请实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块204进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,在本申请实施例中分两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率操作模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率操作模块208是由CPU模块204来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率操作模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率操作模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本申请实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
基于视联网的上述特性,提出了本申请实施例的核心构思之一,遵循视联网的协议,视联网终端在采集到每一视频帧时,都将该视频帧按顺拆分为多个具有包序列号的视频数据包,并将多个视频数据包存储至缓存队列,并从缓存队列中按包序列号的顺序将每一个视频数据包发送至XMCU服务器,在发送完一个视频数据包时,先接收XMCU服务器针对该视频数据包返回的回复确认信息,若回复确认信息包括了该视频数据包的包序列号,则继续发送下一个视频数据包;若回复确认信息不包括该视频数据包的包序列号,则将该视频数据包重新发送给XMCU服务器;通过这样的回复确认机制,视联网终端可以确保将每一视频帧的全部视频数据均发送至XMCU服务器,使得XMCU服务器获得的视频数据是完整的视频流数据,从而可以提高XMCU服务器获取的视频流的质量,进而提高将视频流进行播放的画质。
实施例一
参照图5,示出了本申请的一种视频数据传输的方法实施例1的步骤流程图,本申请实施例以视联网为应用场景,所述方法应用于视联网,所述视联网包括视联网服务器602、视联网终端601、扩展多点控制XMCU服务器603,所述视联网服务器602分别与所述视联网终端601及所述XMCU服务器603通信连接。
本申请实施例的应用环境图,具体参照图6所示,图6中,视联网终端601可以是多个,XMCU服务器603也可以与多个视频播放设备604通信连接,视频播放设备604用于播放视频流,实际中,在视联网中无论是多个视联网终端601还是单个视联网终端601,每一视联网终端601均可以采用本申请实施例的方法进行视频数据传输。
视联网终端601可以是具有音视频采集功能的硬件设备,例如,安装有摄像头的平板电脑、安卓手机、记录仪等,XMCU服务器603可以理解为是可以进行音视频流数据存储、音视频流数据编解码及协议转换的服务器,实际中,XMCU服务器603可以与多个音视频播放设备604通信连接,进而可以将存储的音视频流数据进行编解码或协议转换后发送至多个音视频播放设备604;视联网服务器602可以理解为是在视联网中进行数据转发的服务器。
本申请实施例的一种视频数据传输的方法具体可以包括以下步骤:
步骤501,所述视联网终端601将采集到的每一视频帧拆分为N个视频数据包。
其中,所述视频数据包具有包序列号,N为正整数。
每一视频帧可以理解为视频流中的一帧画面,相当于电影胶片上的每一格镜头,一帧就是一副静止的画面,也可以理解为一帧是由多个字节组成的帧数据单元。
实际中,视联网终端601每采集到一帧画面便将该帧拆分为N个视频数据包,使得视联网终端601以帧为单位对视频流数据进行拆分;拆分中,不同的帧拆分的视频数据包个数可以不同,例如,前一视频帧被拆分为25个视频数据包,后以视频帧可以被拆分为36个视频数据包。
具体实现中,视联网终端601可以从每一视频帧的开始字节处开始,顺序将每一帧拆分为N个视频数据包,包序列号可以是阿拉伯数字编码,在本申请实施例中,包序列号可以标识从视频帧中拆分每一视频数据包的顺序。例如,从每一视频帧的开始字节处开始提取的第一个视频数据包的包序列号为01,接着的第二个视频数据包的包序列号为02。
作为本申请实施例的一种可选示例,每个所述视频数据包的大小均为1K。
具体实现中,视联网终端601从每一视频帧的开始字节开始依次顺序提取1024个字节,将这1024个字节作为一个视频数据包,1024个字节的数据大小即为1k。例如,当前视联网终端601采集的一个视频帧为24K,则有24个视频数据包。每个视频数据包的大小为1K,可以避免在传输视频数据包时出现底层分片的问题。
步骤502,所述视联网终端601生成缓存队列,并将所述N个视频数据包存储至所述缓存队列中。
实际中,在缓存队列中的各视频数据包按照包序列号的顺序进行排列。
步骤503,所述视联网终端601按照所述包序列号的序列顺序,从所述缓存队列中顺序提取第M个视频数据包,并将所述第M个视频数据包发送至所述视联网服务器602。
所述视联网服务器602用于将所述第M个视频数据包发送至所述XMCU服务器603,所述XMCU服务器603用于根据接收所述第M个视频数据包是否成功的状态,生成回复确认信息并将所述回复确认信息发送至所述视联网服务器602;其中,M为正整数且小于N。
实际中,视联网终端601从第一个视频数据包开始,顺序将N个视频数据包发送至所述视联网服务器602,第M个视频数据包可以理解为是包序列号排列最后的一个视频数据包之前的任何一个视频数据包,每发送一个视频数据包后,并不立即发送下一视频数据包,而要等接收到XMCU服务器603返回的回复确认信息后,再决定是发送下一视频数据包,还是重复发送该第M个视频数据包。
具体实现中,XMCU服务器603成功接收到第M个视频数据包时,能获取到第M个视频数据包的包序列号,若没有成功接收到第M个视频数据包时,则不能获取到第M个视频数据包的包序列号。这样,可以根据是否能获取到第M个视频数据包的包序列号的状态,确定回复确认信息的内容。具体实行时,XMCU服务器603可以每间隔1ms的时间,便提取接收到的最后一个视频数据包的包序列号。
例如,第M个视频数据包的包序列号是03,成功获取到03的包序列号时,则回复确认信息中包括03,若未获取到03的包序列号,则回复确认信息中不包括03。
作为一种可选的实现方式,XMCU服务器603在生成回复确认信息时,可以包括两组包序列号,即回复确认信息至少包括第M个视频数据包的前一第M-1个视频数据包的包序列号;例如,第M个视频数据包的包序列号是03,第M-1个视频数据包的包序列号是02,则XMCU服务器603在回复确认信息中至少包括包序列号02,如成功获取到03,则回去确认信息中包括02及03的包序列号,如未成功获取到03,则回去确认信息中只包括02的包序列号。采取此种方式时,可以使得XMCU服务器603每间隔预设的时间,例如1ms,便提取当前的最后两个视频数据包的序列号,可以提高XMCU服务器603对于视频数据包的确认精确度,防止误判。
步骤504,所述视联网终端601接收所述视联网服务器602转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包具有的第一包序列号,若包括,则转步骤505,若不包括,则转步骤506。
可以理解的是,包括第一包序列号则表示XMCU服务器603成功接收到第M个视频数据包;不包括第一包序列号则表示XMCU服务器603未成功接收到第M个视频数据包。
作为本申请实施例的一种可选示例,所述回复确认信息还包括目标码率。
实际中,目标码率可以由XMCU服务器603根据当前的网络带宽确定。XMCU服务器603所在的网络带宽大、连接的终端少的情况下,可以根据网络带宽值确定目标码率,在具体实现中,XMCU服务器603可以预存一个网络带宽值与码率的对照表,XMCU服务器603在获取第一包序列号时,可以获取当前的网络带宽值,根据对照表确定目标码率;网络带宽值越大,则目标码率越大;网络带宽值越小,则目标码率越小。
鉴于回复确认信息中包括目标码率,步骤504具体可以包括以下子步骤:
步骤5041,所述视联网终端601解析所述回复确认信息。
具体而言,可以采用现有的XML解析手段解析该回复确认信息,当然也可以采用现有的其他解析手段解析回复确认信息,本申请不对具体的解析手段进行限制。
步骤5042,所述视联网终端601从解析后的回复确认信息中提取所述目标码率。
实际中,可以采用现有的信息解析技术提取所述目标码率。
步骤5043,所述视联网终端601根据所述目标码率,确定第一预设时间。
码率可以理解为是数据传输时单位时间传送的数据位数,一般用的单位是kbps即千位每秒,在本申请实施例中,视联网终端601根据目标码率,可以计算匹配该目标码率的发送速度,即视联网终端601可以确定发送相邻两个视频数据包之间的间隔时间,目标码率越大,单位时间传送的数据位数越大,则发送相邻两个视频数据包之间的间隔时间越短,发送视频数据包的速度越快。
本申请实施例中,第一预设时间可以理解为是从提取视频数据包到发送该视频数据包的等待时间,可以理解的是,从发送该视频数据包到接收到针对该视频数据包的回复确认信息之间间隔的时间是不变的,因而调整第一预设时间便可以调整发送上一视频数据包到发送下一视频数据包之间的间隔时间。
步骤5044,所述视联网终端601判断解析后的回复确认信息中是否包括所述第一包序列号。
步骤505,所述视联网终端601从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述视联网服务器602。
所述视联网服务器602用于将所述第M+1个视频数据包发送至所述XMCU服务器603。
即XMCU服务器603成功接收到第M个视频数据包的情况下,视联网终端601将第M+1个视频数据包进行发送,第M+1个视频数据包的包序列号紧接在第M个视频数据包的包序列号之后。
作为本申请实施例的一种可选示例,在回复确认信息包括目标码率,且视联网终端601根据目标码率确定了第一预设时间时,步骤505的具体内容可以是:
步骤505',所述视联网终端601从所述缓存队列中顺序提取第M+1个视频数据包,并间隔所述第一预设时间,将所述第M+1个视频数据包发送至所述视联网服务器602。
具体实现时,所述视联网终端601提取到第M+1个视频数据包后,在等待第一预设时间后,再发送第M+1个视频数据包。其中,第一预设时间可以根据目标码率确定为1ms,2ms或其他时间值,目标码率越大,第一预设时间越小,则发送两个相邻视频数据包的间隔时间越短,即视联网终端601发送视频数据的速度越快,在1秒内传输的视频数据包越多。
步骤506,所述视联网终端601继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器602。
所述视联网服务器602用于将所述第M个视频数据包发送至所述XMCU服务器603。
即XMCU服务器603未成功接收到第M个视频数据包的情况下,视联网终端601会重复将第M个视频数据包发送给视联网服务器602,以确保XMCU服务器603能接收到每一视频帧的完整数据,而不丢包。
作为本申请实施例的一种可选示例,在回复确认信息包括目标码率,且视联网终端601根据目标码率确定了第一预设时间时,步骤506具体可也是如下内容:
步骤506',所述视联网终端601继续从所述缓存队列中提取所述第M个视频数据包,并间隔所述第一预设时间将所述第M个视频数据包发送至所述视联网服务器602。
本步骤506'的具体过程和描述可以参照步骤505'的描述,本处不再赘述。
本申请实施例应用视联网的特性,视联网终端601将采集的每一视频帧拆分为N个具有包序列号的视频数据包,并将N个视频数据包存储至缓存队列,按包序列号的顺序将每一个视频数据包发送至XMCU服务器603,在发送完一个视频数据包时,先接收XMCU服务器603针对该视频数据包返回的回复确认信息,若回复确认信息包括了该视频数据包的包序列号,则继续发送下一个视频数据包;若回复确认信息不包括该视频数据包的包序列号,则将该视频数据包重新发送给XMCU服务器603;使得视联网终端601可以确保将每一视频帧的全部视频数据均发送至XMCU服务器603,在网络拥挤的情况下,可以避免视频流数据传输过程的丢包问题,使得XMCU服务器603获得的视频数据是完整的视频流数据,从而可以提高XMCU服务器603获取的视频流的质量,进而提高将视频流进行播放的画质。并且,视联网终端601可以根据XMCU服务器603的请求动态调整发送相邻视频数据包之间的间隔时间,从而达到动态调整视频码率的目的。
实施例二
参照图7,示出了本申请的一种视频数据传输的方法实施例2的步骤流程图,所述方法可以应用于视联网和互联网,所述视联网包括视联网服务器602、视联网终端601、XMCU服务器603,所述视联网服务器602分别与所述视联网终端601及所述XMCU服务器603通信连接,所述视联网还与互联网通信链接,所述互联网中包括互联网终端605,所述互联网终端605与所述XMCU服务器603通信连接。
本申请实施例以互联网和视联网为应用场景进行说明,具体参照图8所示,图8中,XMCU服务器603还与互联网内的互联网终端605通信连接,互联网终端605用以从XMCU服务器603中获取视频数据并播放。下面,以该应用场景对本申请的一种视频数据传输的方法进行详细阐述:
其中,互联网终端605可以是手机等视频播放设备,XMCU服务器可以具有视联网网卡与互联网网卡,通过视联网网卡与视联网终端通信,通过互联网网卡与互联网终端605终端通信。
本申请实施例的一种视频数据传输的方法,具体可以包括以下步骤:
步骤701,所述视联网终端601将采集到的每一视频帧拆分为N个视频数据包。其中,所述视频数据包具有包序列号,N为正整数。
作为本申请实施例的一种可选示例,每个所述视频数据包的大小均为1K。
本步骤701的过程,具体可以参照实施例一步骤501的描述。
步骤702,所述视联网终端601生成缓存队列,并将所述N个视频数据包存储至所述缓存队列中。
本步骤702的过程,具体可以参照实施例一步骤502的描述。
步骤703,所述视联网终端601按照所述包序列号的序列顺序,从所述缓存队列中顺序提取第M个视频数据包,并将所述第M个视频数据包发送至所述视联网服务器602。
所述视联网服务器602用于将所述第M个视频数据包发送至所述XMCU服务器603,所述XMCU服务器603用于根据接收所述第M个视频数据包是否成功的状态,生成回复确认信息并将所述回复确认信息发送至所述视联网服务器602;其中,M为正整数且小于N。
本步骤703的过程,具体可以参照实施例一步骤503的描述。
步骤704,所述视联网终端601接收所述视联网服务器602转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包具有的第一包序列号。
若包括,则转步骤705,若不包括,则转步骤706。
步骤705,所述视联网终端601从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述视联网服务器602。
所述视联网服务器602用于将所述第M+1个视频数据包发送至所述XMCU服务器603。
作为本申请实施例的一种可选示例,每个所述视频数据包具有帧标识,步骤705具体可以包括以下子步骤:
子步骤7051,在所述视联网终端601在确定所述第M+1个视频数据包为第N个视频数据包时,生成包括所述帧标识的传输完成信令,并将所述传输完成信令发送至所述XMCU服务器603;所述XMCU服务器603还用于针对所述传输完成信令后,将具有所述帧标识的全部N个视频数据包编码成第一视频流数据,并将所述第一视频流数据发送至所述互联网终端605。
视联网终端601判断第M+1个视频数据包为第N个视频数据包,表示已经发完一个视频帧的全部视频数据包,生成的传输完成信令包括帧标识,XMCU服务器603将所有具有该帧标识的视频数据包进行编码,具体实现中,XMCU服务器603将全部的视频数据包编码成适合互联网协议的RTP视频流,这样,互联网终端605可以对RTP视频流进行解码收看,使得本方法可以应用在视联网与互联网的应用环境中。
作为本申请实施例的一种可选示例,步骤705具体还可以包括以下子步骤:
子步骤7052,所述视联网终端601在所述缓存队列中删除所述M个视频数据包,以及包序列号在所述第一包序列号之前的所有视频数据包。
视联网终端601在发送成功一个视频数据包时,即将包序列号在前的视频数据包删除,可以减轻缓存队列的缓存压力,提高视联网终端601的运行速度。XMCU服务器603在成功接收到每一视频帧的全部数据后,再以帧为单位对视频数据进行编码并发送给互联网终端605,扩大了本申请实施例的应用范围。
步骤706,所述视联网终端601继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器602;所述视联网服务器602用于将所述第M个视频数据包发送至所述XMCU服务器603。
本步骤706的过程,具体可以参照实施例一步骤506的描述。
作为本申请实施例的一种可选示例,步骤706之后还包括以下步骤:
步骤707,所述视联网终端601针对所述第M个视频数据包,生成一个重发记录。
实际中,视联网终端601可以将该重发记录进行显示。
作为本申请实施例的一种可选示例,步骤707之后还包括以下子步骤:
步骤708,所述视联网终端601判断所述重发记录的个数是否超过预设个数,并在超过时,所述视联网终端601生成错误信息,并从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述视联网服务器602,以及显示所述错误信息;所述错误信息包括所述第一包序列号。
预设的个数可以是3个,也可以是3个,具体可以根据实际情况进行灵活设置,例如,视联网终端601始终重复3次发送某一视频数据包时,视联网终端601可以不再发送该视频数据包,转而发送下一视频数据包。可以避免由于某些视频数据包参数错误导致的不能正常发送的问题,提高了视联网终端601在频繁重复发送某个视频数据时的应对能力以及发送视频数据包的效率,如果多个视频数据包都需要重复发送时,也借由重发记录获知当前的网络情况,或者借由重发记录检测视联网终端601或者XMCU服务器603是否掉线。
实际中,视联网终端601可以将该错误信息进行显示,具体实现时,可以在视联网终端采集并发送视频数据的应用窗口上显示该错误信息,具体而言,该应用窗口可以是现有的微信视频等视频通话界面窗口。
本申请实施例应用视联网的特性,视联网终端601将采集的每一视频帧拆分为N个具有包序列号的视频数据包,并将N个视频数据包存储至缓存队列,按包序列号的顺序将每一个视频数据包发送至XMCU服务器603,在发送完一个视频数据包时,先接收XMCU服务器603针对该视频数据包返回的回复确认信息,若回复确认信息包括了该视频数据包的包序列号,则继续发送下一个视频数据包;若回复确认信息不包括该视频数据包的包序列号,则将该视频数据包重新发送给XMCU服务器603;使得视联网终端601可以确保将每一视频帧的全部视频数据均发送至XMCU服务器603,XMCU服务器603再将接收到的每一视频帧的全部视频数据包编码成视频流数据发送至互联网终端605,实现了在视频数据传输中避免视频流数据不丢包的目的,可以提高XMCU服务器603获取的视频流的质量,进而提高将视频流进行播放的画质。并且,还可以借由重发记录检测视联网终端601和XMCU服务器603所处的网络环境和在线状态。
实施例三
参照图9,示出了本申请实施例3的一种视频数据传输的装置的结构框图,对照实施例1的处理方法,所述装置可以应用于视联网中,所述视联网包括视联网服务器602、视联网终端601、XMCU服务器603,所述视联网服务器602分别与所述视联网终端601及所述XMCU服务器603通信连接,所述装置位于所述视联网终端601,具体可以包括以下模块:
拆包模块801,用于将采集到的每一视频帧拆分为N个视频数据包;其中,所述视频数据包具有包序列号,N为正整数;
缓存模块802,用于生成缓存队列,并将所述N个视频数据包存储至所述缓存队列中;
滑动窗口发送模块803,用于按照所述包序列号的序列顺序,从所述缓存队列中顺序提取第M个视频数据包,并将所述第M个视频数据包发送至所述视联网服务器602;所述视联网服务器602用于将所述第M个视频数据包发送至所述XMCU服务器603,所述XMCU服务器603用于根据接收所述第M个视频数据包是否成功的状态,生成回复确认信息并将所述回复确认信息发送至所述视联网服务器602;其中,M为正整数且小于或等于N;
回复信息接收模块804,用于接收所述视联网服务器602转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包具有的第一包序列号;
滑动窗口控制模块805,用于在所述回复确认信息包括所述第一包序列号时,控制所述滑动窗口发送模块803从所述缓存队列中提取第M+1个视频数据包,并将所述第M+1个视频数据包发送至所述XMCU服务器603;或者,用于在所述回复确认信息不包括所述第一包序列号时,控制所述滑动窗口发送模块803继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器602;所述视联网服务器602用于将所述第M个视频数据包发送至所述XMCU服务器603。
作为本申请实施例的一种可选示例,所述回复确认信息还包括目标码率,所述装置还可以包括以下模块:
解析模块806,用于解析所述回复确认信息;
目标码率获取模块807,用于从解析后的回复确认信息中提取所述目标码率;
发送流速调整模块808,用于根据所述目标码率,确定所述滑动窗口控制模块在提取到所述第M+1个视频数据包与将所述第M+1个视频数据包发送至所述视联网服务器602之间间隔的第一预设时间;或者,确定所述滑动窗口控制模块805继续提取所述第M个视频数据包与将所述第M个视频数据包重复发送至所述视联网服务器602之间间隔的第一预设时间。
实施例四
参照图10,示出了本申请实施例4的一种视频数据传输的装置的结构框图,对照实施例2的处理方法,所述装置可以应用于视联网和互联网中,所述视联网包括视联网服务器602、视联网终端601、XMCU服务器603,所述视联网服务器602分别与所述视联网终端601及所述XMCU服务器603通信连接,所述视联网还与互联网通信链接,所述互联网中包括互联网终端,所述互联网终端与所述XMCU服务器603通信连接;所述装置位于所述视联网终端601,具体可以包括以下模块:
拆包模块801,用于将采集到的每一视频帧拆分为N个视频数据包;其中,所述视频数据包具有包序列号,N为正整数;
缓存模块802,用于生成缓存队列,并将所述N个视频数据包存储至所述缓存队列中;
滑动窗口发送模块803,用于按照所述包序列号的序列顺序,从所述缓存队列中顺序提取第M个视频数据包发送至所述视联网服务器602;所述视联网服务器602用于将所述第M个视频数据包发送至所述XMCU服务器603,所述XMCU服务器603用于根据接收所述第M个视频数据包是否成功的状态,生成回复确认信息并发送至所述视联网服务器602;其中,M为正整数且小于或等于N;
回复信息接收模块804,用于接收所述视联网服务器602转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包具有的第一包序列号;
滑动窗口控制模块805,用于在所述回复确认信息包括所述第一包序列号时,控制所述滑动窗口发送模块803从所述缓存队列中提取第M+1个视频数据包,并将所述第M+1个视频数据包发送至所述XMCU服务器603;或者,用于在所述回复确认信息不包括所述第一包序列号时,控制所述滑动窗口发送模块803继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器602;所述视联网服务器602用于将所述第M个视频数据包发送至所述XMCU服务器603。
作为本申请实施例的一种可选示例,所述装置还可以包括以下模块:
重发记录生成模块809,用于在继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器602时,针对所述第M个视频数据包,生成一个重发记录。
重发记录判断模块810,判断所述重发记录的个数是否超过预设个数;
错误信息模块811,用于在所述重发记录的个数是否超过所述预设个数时,生成错误信息,并显示所述错误信息。
所述滑动窗口控制模块805还用于在所述重发记录的个数超过所述预设个数时,将所述第M+1个视频数据包发送至所述视联网服务器602。
作为本申请实施例的一种可选示例,每个所述视频数据包具有帧标识,所述装置还可以包括以下模块:
传输完成信令模块,用于确定所述第M+1个视频数据包为第N个视频数据包时,生成包括所述帧标识的传输完成信令,并将所述传输完成信令发送至所述XMCU服务器603;所述XMCU服务器603还用于针对所述传输完成信令后,将具有所述帧标识的全部N个视频数据包编码成第一视频流数据,并将所述第一视频流数据发送至所述互联网终端。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种视频数据传输的方法和相应的一种视频数据传输的装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种视频数据传输的方法,其特征在于,所述方法应用于视联网,所述视联网包括视联网服务器、视联网终端、扩展多点控制XMCU服务器,所述视联网服务器分别与所述视联网终端及所述XMCU服务器通信连接,所述方法包括:
所述视联网终端将采集到的每一视频帧拆分为N个视频数据包;其中,所述视频数据包具有包序列号,N为正整数;
所述视联网终端生成缓存队列,并将所述N个视频数据包存储至所述缓存队列中;
所述视联网终端按照所述包序列号的序列顺序,从所述缓存队列中顺序提取第M个视频数据包,并将所述第M个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M个视频数据包发送至所述XMCU服务器,所述XMCU服务器用于根据接收所述第M个视频数据包是否成功的状态,生成回复确认信息并将所述回复确认信息发送至所述视联网服务器;其中,M为正整数且小于N;
所述视联网终端接收所述视联网服务器转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包具有的第一包序列号;
若包括,则所述视联网终端从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M+1个视频数据包发送至所述XMCU服务器;
若不包括,则所述视联网终端继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M个视频数据包发送至所述XMCU服务器。
2.根据权利要求1所述的方法,其特征在于,每个所述视频数据包的大小均为1K。
3.根据权利要求1或2所述的方法,其特征在于,所述视联网终端继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器的步骤中,还包括:
所述视联网终端针对所述第M个视频数据包,生成一个重发记录。
4.根据权利要求3所述的方法,其特征在于,在所述视联网终端继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器的步骤后,还包括:
所述视联网终端判断所述重发记录的个数是否超过预设个数;
若超过,则所述视联网终端生成错误信息,并从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述视联网服务器,以及显示所述错误信息;所述错误信息包括所述第一包序列号。
5.根据权利要求1或2所述的方法,其特征在于,所述回复确认信息还包括目标码率,所述视联网终端接收所述视联网服务器转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包的第一包序列号的步骤,包括:
所述视联网终端解析所述回复确认信息;
所述视联网终端从解析后的回复确认信息中提取所述目标码率;
所述视联网终端根据所述目标码率,确定第一预设时间;
所述视联网终端判断解析后的回复确认信息中是否包括所述第一包序列号。
6.根据权利要求5所述的方法,其特征在于,所述视联网终端从所述缓存队列中顺序提取第M+1个视频数据包,并间隔所述第一预设时间,将所述第M+1个视频数据包发送至所述视联网服务器;或者,所述视联网终端继续从所述缓存队列中提取所述第M个视频数据包,并间隔所述第一预设时间将所述第M个视频数据包发送至所述视联网服务器。
7.根据权利要求1或2所述的方法,其特征在于,每个所述视频数据包具有帧标识,所述视联网还与互联网通信连接,所述互联网中包括互联网终端,所述互联网终端与所述XMCU服务器通信连接;在所述视联网终端从所述缓存队列中顺序提取第M+1个视频数据包,将所述第M+1个视频数据包发送至所述XMCU服务器的步骤中,还包括:
所述视联网终端在确定所述第M+1个视频数据包为第N个视频数据包时,生成包括所述帧标识的传输完成信令,并将所述传输完成信令发送至所述XMCU服务器;所述XMCU服务器还用于针对所述传输完成信令后,将具有所述帧标识的全部N个视频数据包编码成第一视频流数据,并将所述第一视频流数据发送至所述互联网终端。
8.根据权利要求1或2所述的方法,其特征在于,在所述视联网终端从所述缓存队列中顺序提取第M+1个视频数据包,并将所述第M+1个视频数据包发送至所述XMCU服务器的步骤后,还包括:
所述视联网终端在所述缓存队列中删除所述第M个视频数据包,以及包序列号在所述第一包序列号之前的所有视频数据包。
9.一种视频数据传输的装置,其特征在于,所述装置应用于视联网,所述视联网包括视联网服务器、视联网终端、XMCU服务器,所述视联网服务器分别与所述视联网终端及所述XMCU服务器通信连接,所述装置位于所述视联网终端,包括:
拆包模块,用于将采集到的每一视频帧拆分为N个视频数据包;其中,所述视频数据包具有包序列号,N为正整数;
缓存模块,用于生成缓存队列,并将所述N个视频数据包存储至所述缓存队列中;
滑动窗口发送模块,用于按照所述包序列号的序列顺序,从所述缓存队列中顺序提取第M个视频数据包,并将所述第M个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M个视频数据包发送至所述XMCU服务器,所述XMCU服务器用于根据接收所述第M个视频数据包是否成功的状态,生成回复确认信息并将所述回复确认信息发送至所述视联网服务器;其中,M为正整数且小于或等于N;
回复信息接收模块,用于接收所述视联网服务器转发的所述回复确认信息,并判断所述回复确认信息中是否包括所述第M个视频数据包具有的第一包序列号;
滑动窗口控制模块,用于在所述回复确认信息包括所述第一包序列号时,控制所述滑动窗口发送模块从所述缓存队列中提取第M+1个视频数据包,并将所述第M+1个视频数据包发送至所述XMCU服务器;或者,用于在所述回复确认信息不包括所述第一包序列号时,控制所述滑动窗口发送模块继续从所述缓存队列中提取所述第M个视频数据包,将所述第M个视频数据包发送至所述视联网服务器;所述视联网服务器用于将所述第M个视频数据包发送至所述XMCU服务器。
10.根据权利要求9所述的装置,其特征在于,所述回复确认信息还包括目标码率,所述装置还包括:
解析模块,用于解析所述回复确认信息;
目标码率获取模块,用于从解析后的回复确认信息中提取所述目标码率;
发送流速调整模块,用于根据所述目标码率,确定所述滑动窗口控制模块在提取到所述第M+1个视频数据包与将所述第M+1个视频数据包发送至所述视联网服务器之间间隔的第一预设时间;或者,确定所述滑动窗口控制模块继续提取所述第M个视频数据包与将所述第M个视频数据包重复发送至所述视联网服务器之间间隔的第一预设时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811595618.1A CN109842821A (zh) | 2018-12-25 | 2018-12-25 | 一种视频数据传输的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811595618.1A CN109842821A (zh) | 2018-12-25 | 2018-12-25 | 一种视频数据传输的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109842821A true CN109842821A (zh) | 2019-06-04 |
Family
ID=66883366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811595618.1A Pending CN109842821A (zh) | 2018-12-25 | 2018-12-25 | 一种视频数据传输的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109842821A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110636337A (zh) * | 2019-08-20 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 视频图像的截取方法、装置及系统 |
CN111124333A (zh) * | 2019-12-05 | 2020-05-08 | 视联动力信息技术股份有限公司 | 电子白板显示内容同步的方法、装置、设备以及存储介质 |
CN111565096A (zh) * | 2020-04-07 | 2020-08-21 | 视联动力信息技术股份有限公司 | 一种数据传输方法和装置 |
CN114024914A (zh) * | 2021-10-27 | 2022-02-08 | 杭州海康威视数字技术股份有限公司 | 视频数据传输方法、装置及电子设备 |
CN115567510A (zh) * | 2022-09-13 | 2023-01-03 | 中国电子科技集团公司第十研究所 | 一种提高在轨文件上注有效性的方法 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101389036A (zh) * | 2008-10-14 | 2009-03-18 | 广东威创视讯科技股份有限公司 | 一种适用于视频会议的纠错装置及其方法 |
CN101510999A (zh) * | 2009-02-24 | 2009-08-19 | 山东大学 | 用于实时视频监控的客户端实现方法 |
CN101616316A (zh) * | 2009-06-10 | 2009-12-30 | 中兴通讯股份有限公司 | 一种视频数据的发送、接收装置及发送、接收方法 |
CN101883240A (zh) * | 2010-06-09 | 2010-11-10 | 广东威创视讯科技股份有限公司 | 基于mcu的视频会议系统及其视频传输丢包处理的方法 |
CN102143137A (zh) * | 2010-09-10 | 2011-08-03 | 华为技术有限公司 | 媒体流发送及接收方法、装置和系统 |
CN102740064A (zh) * | 2012-06-15 | 2012-10-17 | 福建星网视易信息系统有限公司 | 对讲系统中流媒体传输的组包方法 |
CN102938833A (zh) * | 2012-07-25 | 2013-02-20 | 苏州科达科技有限公司 | 视频会议中的方法及装置、多点控制设备及视频会议系统 |
CN102983941A (zh) * | 2012-11-21 | 2013-03-20 | 中国联合网络通信集团有限公司 | 数据传输方法及装置 |
CN103312915A (zh) * | 2012-03-14 | 2013-09-18 | 中兴通讯股份有限公司 | 无线传真的重传方法及装置 |
CN103326832A (zh) * | 2012-03-19 | 2013-09-25 | 华为技术有限公司 | 数据包发送方法、模式转换方法及装置 |
US20140013378A1 (en) * | 2012-04-11 | 2014-01-09 | Comcast Cable Communications, Llc | Distributed Data Distribution |
CN104270684A (zh) * | 2014-09-24 | 2015-01-07 | 北京中科大洋科技发展股份有限公司 | 一种面向实时应用的视音频数据网络传输系统和方法 |
CN105704580A (zh) * | 2016-01-21 | 2016-06-22 | 深圳比特新技术有限公司 | 一种视频传输方法 |
CN106411894A (zh) * | 2016-09-29 | 2017-02-15 | 天脉聚源(北京)传媒科技有限公司 | 一种视频传输方法及系统 |
CN108121588A (zh) * | 2016-11-30 | 2018-06-05 | 北京视联动力国际信息技术有限公司 | 一种访问外部资源的方法及其视联网接入服务器 |
CN108377427A (zh) * | 2018-01-29 | 2018-08-07 | 明博教育科技股份有限公司 | 一种实时视频传输方法和系统 |
CN108881133A (zh) * | 2017-08-14 | 2018-11-23 | 北京视联动力国际信息技术有限公司 | 一种媒体数据的通信方法和装置 |
CN108965776A (zh) * | 2017-08-21 | 2018-12-07 | 北京视联动力国际信息技术有限公司 | 一种通信方法以及通信系统 |
-
2018
- 2018-12-25 CN CN201811595618.1A patent/CN109842821A/zh active Pending
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101389036A (zh) * | 2008-10-14 | 2009-03-18 | 广东威创视讯科技股份有限公司 | 一种适用于视频会议的纠错装置及其方法 |
CN101510999A (zh) * | 2009-02-24 | 2009-08-19 | 山东大学 | 用于实时视频监控的客户端实现方法 |
CN101616316A (zh) * | 2009-06-10 | 2009-12-30 | 中兴通讯股份有限公司 | 一种视频数据的发送、接收装置及发送、接收方法 |
CN101883240A (zh) * | 2010-06-09 | 2010-11-10 | 广东威创视讯科技股份有限公司 | 基于mcu的视频会议系统及其视频传输丢包处理的方法 |
CN102143137A (zh) * | 2010-09-10 | 2011-08-03 | 华为技术有限公司 | 媒体流发送及接收方法、装置和系统 |
CN103312915A (zh) * | 2012-03-14 | 2013-09-18 | 中兴通讯股份有限公司 | 无线传真的重传方法及装置 |
CN103326832A (zh) * | 2012-03-19 | 2013-09-25 | 华为技术有限公司 | 数据包发送方法、模式转换方法及装置 |
US20140013378A1 (en) * | 2012-04-11 | 2014-01-09 | Comcast Cable Communications, Llc | Distributed Data Distribution |
CN102740064A (zh) * | 2012-06-15 | 2012-10-17 | 福建星网视易信息系统有限公司 | 对讲系统中流媒体传输的组包方法 |
CN102938833A (zh) * | 2012-07-25 | 2013-02-20 | 苏州科达科技有限公司 | 视频会议中的方法及装置、多点控制设备及视频会议系统 |
CN102983941A (zh) * | 2012-11-21 | 2013-03-20 | 中国联合网络通信集团有限公司 | 数据传输方法及装置 |
CN104270684A (zh) * | 2014-09-24 | 2015-01-07 | 北京中科大洋科技发展股份有限公司 | 一种面向实时应用的视音频数据网络传输系统和方法 |
CN105704580A (zh) * | 2016-01-21 | 2016-06-22 | 深圳比特新技术有限公司 | 一种视频传输方法 |
CN106411894A (zh) * | 2016-09-29 | 2017-02-15 | 天脉聚源(北京)传媒科技有限公司 | 一种视频传输方法及系统 |
CN108121588A (zh) * | 2016-11-30 | 2018-06-05 | 北京视联动力国际信息技术有限公司 | 一种访问外部资源的方法及其视联网接入服务器 |
CN108881133A (zh) * | 2017-08-14 | 2018-11-23 | 北京视联动力国际信息技术有限公司 | 一种媒体数据的通信方法和装置 |
CN108965776A (zh) * | 2017-08-21 | 2018-12-07 | 北京视联动力国际信息技术有限公司 | 一种通信方法以及通信系统 |
CN108377427A (zh) * | 2018-01-29 | 2018-08-07 | 明博教育科技股份有限公司 | 一种实时视频传输方法和系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110636337A (zh) * | 2019-08-20 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 视频图像的截取方法、装置及系统 |
CN110636337B (zh) * | 2019-08-20 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 视频图像的截取方法、装置及系统 |
CN111124333A (zh) * | 2019-12-05 | 2020-05-08 | 视联动力信息技术股份有限公司 | 电子白板显示内容同步的方法、装置、设备以及存储介质 |
CN111565096A (zh) * | 2020-04-07 | 2020-08-21 | 视联动力信息技术股份有限公司 | 一种数据传输方法和装置 |
CN114024914A (zh) * | 2021-10-27 | 2022-02-08 | 杭州海康威视数字技术股份有限公司 | 视频数据传输方法、装置及电子设备 |
CN114024914B (zh) * | 2021-10-27 | 2024-03-01 | 杭州海康威视数字技术股份有限公司 | 视频数据传输方法、装置及电子设备 |
CN115567510A (zh) * | 2022-09-13 | 2023-01-03 | 中国电子科技集团公司第十研究所 | 一种提高在轨文件上注有效性的方法 |
CN115567510B (zh) * | 2022-09-13 | 2024-04-26 | 中国电子科技集团公司第十研究所 | 一种提高在轨文件上注有效性的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110121059B (zh) | 监控视频处理方法、装置及存储介质 | |
CN109120946B (zh) | 收看直播的方法和装置 | |
CN109842821A (zh) | 一种视频数据传输的方法和装置 | |
CN110493351B (zh) | 一种视联网接入方法、装置、设备及存储介质 | |
CN109788232A (zh) | 一种视频会议的会议记要记录方法、装置和系统 | |
CN109246486B (zh) | 一种组帧方法和装置 | |
CN110022295B (zh) | 一种数据传输的方法和视联网系统 | |
CN108063745B (zh) | 一种基于安卓设备的视频通话方法及其系统 | |
CN110572607A (zh) | 一种视频会议方法、系统及装置和存储介质 | |
CN109379254B (zh) | 一种基于视频会议的网络连接的检测方法和系统 | |
CN108616328A (zh) | 一种音视频流丢包恢复方法及音视频流发送端和接收端 | |
CN110049273B (zh) | 一种基于视联网的会议录制方法和中转服务器 | |
CN109462761A (zh) | 一种视频解码方法及装置 | |
CN110049341B (zh) | 视频处理方法和装置 | |
CN108632559A (zh) | 一种视频数据处理方法及装置 | |
CN110505204A (zh) | 一种即时语音通信方法、装置、电子设备及可读存储介质 | |
CN108809921A (zh) | 一种音频处理方法、视联网服务器和视联网终端 | |
CN109151610A (zh) | 一种接收网络摄像机画面的处理方法和装置 | |
CN108881819A (zh) | 一种音频数据的传输方法和装置 | |
CN108881818A (zh) | 一种视频数据的传输方法和装置 | |
CN110113555B (zh) | 一种基于视联网的视频会议处理方法及系统 | |
CN110138513A (zh) | 一种数据传输方法和视联网系统 | |
CN110149305A (zh) | 一种基于视联网的多方播放音视频的方法和中转服务器 | |
CN109544879A (zh) | 一种报警数据的处理方法和系统 | |
CN110072154B (zh) | 一种基于视联网的建群方法和中转服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190604 |