数据请求方法、协转服务器及计算机可读存储介质与流程

文档序号:18298567发布日期:2019-07-31 09:45阅读:260来源:国知局
数据请求方法、协转服务器及计算机可读存储介质与流程
本发明涉及视联网
技术领域
,特别是涉及一种数据请求方法、协转服务器及计算机可读存储介质。
背景技术
:目前,实时消息传输协议(realtimemessagingprotocol,rtmp)在视频传输当中得到了越来越广泛的应用,采用rtmp协议进行数据传输的设备越来越多,例如,在教育录播系统中,录播设备就是采用rtmp协议来传输数据流的。现有技术中,由于rtmp协议与视联网中采用的传输协议不同,因此,基于rtmp协议的数据就无法在视联网中传输,进而导致用户无法通过视联网终端观看基于rtmp协议的视频。技术实现要素:鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据请求方法、协转服务器及计算机可读存储介质。为了解决上述问题,本发明实施例公开了一种数据请求方法,该方法应用于视联网中的协转服务器,该方法包括:接收视联网服务器发送的目标数据请求;所述目标视频请求是视联网服务器基于视联网终端发送的初始数据请求生成的;基于所述目标数据请求,向目标服务器请求基于实时消息传输协议rtmp的目标数据流;接收所述目标服务器发送的所述目标数据流;将所述目标数据流转换为基于视联网协议的目标视联网数据流,并将所述目标视联网数据流发送至所述视联网服务器,以便于所述视联网服务器将所述目标视联网数据流发送至所述视联网终端。可选的,所述目标视联网数据流包括目标视频数据包及目标音频数据包;所述将所述目标数据流转换为基于视联网协议的目标视联网数据流,包括:提取所述目标数据流中的视频流及音频流;基于所述视频流及音频流,分别获取目标视频数据包及目标音频数据包,得到所述目标视联网数据流。可选的,所述基于所述目标数据请求,向目标服务器请求基于实时消息传输协议rtmp的目标数据流,包括:根据所述目标数据请求,确定所述目标服务器的地址;基于所述目标服务器地址,向所述目标服务器发送流创建请求;接收并存储所述目标服务器返回的流索引号;所述流索引号用于标识所述目标数据流;接收所述目标服务器发送的所述目标数据流;所述目标数据流中的每个数据包均使用所述流索引号进行标识。可选的,所述提取所述目标数据流中的视频流及音频流,包括:基于所述流索引号从接收的数据包中提取所述目标数据流;根据所述目标数据流中每个数据包的类型,提取所述目标数据流中的视频流及音频流。可选的,所述基于所述视频流及音频流,分别获取目标视频数据包及目标音频数据包,包括:对所述视频流进行解码,得到所述视频流中包含的原始视频数据,以及对所述音频流进行解码,得到所述音频流中的原始音频数据;将所述原始视频数据切分为多个视频数据块,以及,将所述原始音频数据切分为多个音频数据块;为每个视频数据块添加视联网包头,得到目标视频数据包,以及,为每个音频数据块添加视联网包头,得到目标音频数据包。可选的,所述将所述目标视联网数据流发送至所述视联网服务器,包括:连续发送m个目标视频数据包;在连续发送所述m个目标视频数据包之后,连续发送n个目标音频数据包;在连续发送所述n个目标音频数据包之后,重复所述连续发送m个目标视频数据包的步骤;所述m、n均为不小于1的整数。可选的,所述将所述原始视频数据切分为多个视频数据块,包括:获取所述原始视频数据中每帧视频数据的帧属性;将帧属性为关键帧的帧视频数据作为所述视频数据块的首帧视频数据,并进行切分,得到多个视频数据块;每个视频数据块的首帧视频数据为关键帧。为了解决上述问题,本发明实施例公开了一种用于数据请求的协转服务器,所述协转服务器应用于视联网中,所述协转服务器包括:第一接收模块,用于接收视联网服务器发送的目标数据请求;所述目标视频请求是视联网服务器基于视联网终端发送的初始数据请求生成的;请求模块,用于基于所述目标数据请求,向目标服务器请求基于实时消息传输协议rtmp的目标数据流;第二接收模块,用于接收所述目标服务器发送的所述目标数据流;转换模块,用于将所述目标数据流转换为基于视联网协议的目标视联网数据流,并将所述目标视联网数据流发送至所述视联网服务器,以便于所述视联网服务器将所述目标视联网数据流发送至所述视联网终端。可选的,所述目标视联网数据流包括目标视频数据包及目标音频数据包;所述转换模块,包括:提取子模块,用于提取所述目标数据流中的视频流及音频流;获取子模块,用于基于所述视频流及音频流,分别获取目标视频数据包及目标音频数据包,得到所述目标视联网数据流。可选的,所述请求模块,用于:根据所述目标数据请求,确定所述目标服务器的地址;基于所述目标服务器地址,向所述目标服务器发送流创建请求;接收并存储所述目标服务器返回的流索引号;所述流索引号用于标识所述目标数据流;接收所述目标服务器发送的所述目标数据流;所述目标数据流中的每个数据包均使用所述流索引号进行标识。可选的,所述提取子模块,用于:基于所述流索引号从接收的数据包中提取所述目标数据流;根据所述目标数据流中每个数据包的类型,提取所述目标数据流中的视频流及音频流。可选的,所述获取子模块,,包括:解码单元,用于对所述视频流进行解码,得到所述视频流中包含的原始视频数据,以及对所述音频流进行解码,得到所述音频流中的原始音频数据;切分单元,用于将所述原始视频数据切分为多个视频数据块,以及,将所述原始音频数据切分为多个音频数据块;添加单元,用于为每个视频数据块添加视联网包头,得到目标视频数据包,以及,为每个音频数据块添加视联网包头,得到目标音频数据包。可选的,所述转换模块,用于:连续发送m个目标视频数据包;在连续发送所述m个目标视频数据包之后,连续发送n个目标音频数据包;在连续发送所述n个目标音频数据包之后,重复所述连续发送m个目标视频数据包的步骤;所述m、n均为不小于1的整数。可选的,所述切分单元,用于:获取所述原始视频数据中每帧视频数据的帧属性;将帧属性为关键帧的帧视频数据作为所述视频数据块的首帧视频数据,并进行切分,得到多个视频数据块;每个视频数据块的首帧视频数据为关键帧。为了解决上述问题,本发明实施例公开了计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述数据请求方法的步骤。本发明实施例包括以下优点:协转服务器可以接收视联网服务器发送的目标数据请求,然后,基于目标数据请求,向目标服务器请求基于rtmp协议的目标数据流,最后,可以将接收到的目标数据流转换为基于视联网协议的目标视联网数据流,由于该目标视联网数据流是基于视联网协议的,因此可以在视联网中传输,相应地,协转服务器将该目标视联网数据流发送给视联网服务器之后,视联网服务器可以将该目标视联网数据流发送给视联网终端,进而使得用户可以通过视联网终端收看基于rtmp协议的视频。附图说明图1是本发明的一种视联网的组网示意图;图2是本发明的一种节点服务器的硬件结构示意图;图3是本发明的一种接入交换机的硬件结构示意图;图4是本发明的一种以太网协转网关的硬件结构示意图;图5是本发明的一种数据请求方法实施例的步骤流程图;图6是本发明的另一种数据请求方法实施例的步骤流程图;图7本发明实施例的一种用于数据请求的协转服务器的框图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、vod点播、电视邮件、个性录制(pvr)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:视联网所应用的部分技术如下所述:网络技术(networktechnology)视联网的网络技术创新改良了传统以太网(ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(packetswitching)或网络电路交换(circuitswitching),视联网技术采用packetswitching满足streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。交换技术(switchingtechnology)视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载ip数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。服务器技术(servertechnology)视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。储存器技术(storagetechnology)统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级ip互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。网络安全技术(networksecuritytechnology)视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。服务创新技术(serviceinnovationtechnology)统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或pc直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。视联网的组网如下所述:视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。图1是本发明的一种视联网的组网示意图,如图1所示,视联网分为接入网和城域网两部分。接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。视联网设备分类1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。各接入网设备的具体硬件结构为:节点服务器:图2是本发明的一种节点服务器的硬件结构示意图,如图2所示,主要包括网络接口模块201、交换引擎模块202、cpu模块203、磁盘阵列模块204;其中,网络接口模块201,cpu模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;cpu模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。接入交换机:图3是本发明的一种接入交换机的硬件结构示意图,如图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是本发明的一种以太网协转网关的硬件结构示意图,如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、cpu模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和mac添加模块409、mac删除模块410。其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网macda、以太网macsa、以太网lengthorframetype、视联网目地地址da、视联网源地址sa、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由mac删除模块410减去macda、macsa、lengthorframetype(2byte),并进入相应的接收缓存,否则丢弃;下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址da获知对应的终端的以太网macda,添加终端的以太网macda、以太网协转网关的macsa、以太网lengthorframetype,并发送。以太网协转网关中其他模块的功能与接入交换机类似。终端:主要包括网络接口模块、业务处理模块和cpu模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、cpu模块;编码板主要包括网络接口模块、视音频编码引擎模块、cpu模块;存储器主要包括网络接口模块、cpu模块和磁盘阵列模块。1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和cpu模块;城域服务器主要包括网络接口模块、交换引擎模块和cpu模块构成。2、视联网数据包定义2.1接入网数据包定义接入网的数据包主要包括以下几部分:目的地址(da)、源地址(sa)、保留字节、payload(pdu)、crc。如下表所示,接入网的数据包主要包括以下几部分:dasareservedpayloadcrc其中:目的地址(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-protocollabelswitch,多协议标签交换)的标签的定义类似,假设设备a和设备b之间有两个连接,那么数据包从设备a到设备b就有2个标签,数据包从设备b到设备a也有2个标签。标签分入标签、出标签,假设数据包进入设备a的标签(入标签)是0x0000,这个数据包离开设备a时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与mpls的标签分配是不同的,mpls的标签分配是交换机、服务器互相协商的结果。如下表所示,城域网的数据包主要包括以下几部分:dasareserved标签payloadcrc即目的地址(da)、源地址(sa)、保留字节(reserved)、标签、payload(pdu)、crc。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。基于视联网的上述特性,提出了本发明实施例的核心构思之一,由协转服务器将基于rtmp的目标数据流转换为基于视联网协议的目标视联网数据流,然后发给视联网服务器,以使视联网服务器可以将目标视联网数据流发送给视联网终端,进而使用视联网用户可以通过视联网终端观看基于rtmp协议的视频。参照图5,示出了本发明的一种数据请求方法实施例的步骤流程图,该方法应用于视联网中的协转服务器,该方法具体可以包括如下步骤:步骤501、接收视联网服务器发送的目标数据请求。本发明实施例中,该目标视频请求可以是视联网服务器根据视联网终端发送的初始数据请求生成的。实际应用中,视联网服务器可以管理有至少一个视联网终端,该视联网终端可以是机顶盒(settopbox,stb),通常称作机顶盒或机上盒,是一个连接电视机与外部信号源的设备,它可以将压缩的数字信号转成电视内容,并在电视机上显示出来。一般而言,机顶盒可以连接摄像头和麦克风,用于采集视频数据和音频数据等多媒体数据,也可以连接电视机,用于播放视频数据和音频数据等多媒体数据。当用户想要通过视联网终端收看基于rtmp协议的视频时,可以通过视联网终端向视联网服务器发送初始数据请求,视联网服务器在接收到该初始数据请求之后,可以根据该初始数据请求生成目标数据请求,并发送给协转服务器,此时,协转服务器可以接收视联网服务器发送的目标数据请求。步骤502、基于所述目标数据请求,向目标服务器请求基于rtmp协议的目标数据流。本发明实施例中,用户想要观看的视频对应的数据流可以是由该目标服务器发布,进一步地,协转服务器可以先根据该目标数据请求,确定该目标服务器的地址,然后基于该目标服务器的地址,向目标服务器请求目标数据流,具体的,该目标数据请求中可以包括视频源编号,该视频源编号用于指示目标服务器,相应地,协转服务器可以获取该目标数据请求中的视频源编号,在预设的编号地址对应表中查找与该视频源编号对应的服务器地址,并将该对应的服务器地址确定为目标服务器的地址。步骤503、接收所述目标服务器发送的所述目标数据流。本发明实施例中,协转服务器向目标服务器请求目标数据流之后,目标服务器可以向协转服务器发送目标数据流,相应地,协转服务器可以接收目标服务器发送的目标数据流。步骤504、将所述目标数据流转换为基于视联网协议的目标视联网数据流,并将所述目标视联网数据流发送至所述视联网服务器,以便于所述视联网服务器所述目标视联网数据流发送至所述视联网终端。本发明实施例中,目标服务器的数据流都是基于rtmp协议传输的。由于其按照rtmp协议传输,因此该目标服务器的数据流无法在视联网中进行传输,进而导致用户无法通过视联网终端收看基于rtmp协议的视频。本步骤中,协转服务器将基于rtmp协议的目标数据流转换为基于视联网协议的目标视联网数据流,这样目标数据流就可以在视联网中传输,相应地,协转服务器可以将目标视联网数据流发送至视联网服务器,以便于视联网服务器将目标视联网数据流发送至视联网终端,进而使得用户可以通过视联网终端收看基于rtmp协议的视频。综上所述,本发明实施例提供的数据请求方法,协转服务器可以接收视联网服务器发送的目标数据请求,然后,基于目标数据请求,向目标服务器请求基于rtmp协议的目标数据流,最后,可以将接收到的目标数据流转换为基于视联网协议的目标视联网数据流,由于该目标视联网数据流是基于视联网协议的,因此可以在视联网中传输,相应地,协转服务器将该目标视联网数据流发送给视联网服务器之后,视联网服务器可以将该目标视联网数据流发送给视联网终端,进而使得用户可以通过视联网终端收看基于rtmp协议的视频。参照图6,示出了本发明的另一种数据请求方法实施例的步骤流程图,该方法应用于视联网中的协转服务器,该方法具体可以包括如下步骤:步骤601、接收视联网服务器发送的目标数据请求。具体的,本步骤的实现方式可以参照上述步骤501,本发明实施例对此不作限定。步骤602、基于所述目标数据请求,向目标服务器请求基于实时消息传输协议rtmp的目标数据流。具体的,本步骤可以通过下述子步骤(1)~子步骤(4)实现:子步骤(1):根据所述目标数据请求,确定所述目标服务器的地址。具体的,本步骤中,该目标服务器的地址可以为目标服务器的互联网协议ip地址,具体的,视联网服务器可以在接收到视联网终端发送的初始数据请求之后,根据该初始数据请求中的视频源编号,在预设的编号地址对应表中查找与该视频源编号对应的服务器地址,然后将该地址作为目标服务器的地址插入至初始数据请求中,得到目标数据请求,并发送给协转服务器,相应地,协转服务器可以直接从该目标数据请求提取目标服务器的地址,当然,视联网服务器可以在接收到视联网终端发送的初始数据请求之后,直接将初始数据请求作为目标数据请求,并发送给协转服务器,相应地,协转服务器可以先从该目标数据请求中获取视频源编号,在预设的编号地址对应表中查找与该视频源编号对应的服务器地址,并将该对应的服务器地址确定为目标服务器的地址,本发明实施例对此不作限定。其中,初始数据请求中的视频源编号可以是用户通过视联网终端向视联网服务器发送初始数据请求时生成的。示例的,视联网终端可以提供一个针对rtmp视频源的菜单,该菜单中可以包括多个选项,其中,每个选项对应一个提供rtmp数据流的服务器,每个提供rtmp数据流的服务器都会对应一个视频源编号。用户可以通过选择菜单上的选项,来触发视联网终端向视联网服务器发送初始数据请求,相应地,该初始数据请求中可以包含用户选择的选项对应的视频源编号。子步骤(2):基于所述目标服务器地址,向所述目标服务器发送流创建请求。本步骤中,该流创建请求用于向目标服务器请求传输数据流,具体的,协转服务器可以将目标服务器地址作为目标地址,向该目标服务器发送流创建请求,以进行数据流传输,进而方便后续过程中接收目标数据流。子步骤(3):接收并存储所述目标服务器返回的流索引号;所述流索引号用于标识所述目标数据流。实际应用场景中,协转服务器可能会同时和多个服务器进行交互,可能会存在同时接收多个服务器传输的数据流的情况,为了避免数据流中的数据发生混淆的问题,本发明实施例中目标服务器会在向协转服务器发送目标数据流之前,先向协转服务器返回一个流索引号,以使协转服务器能够准确的分辨出目标数据流。相应地,本步骤中,协转服务器可以接收并存储该流索引号。子步骤(4):接收所述目标服务器发送的所述目标数据流;所述目标数据流中的每个数据包均使用所述流索引号进行标识。本发明实施例中,目标服务器会返回流索引号之后,向协转服务器发送目标数据流,相应地,协转服务器在拿到流索引号之后,就可以接收目标服务器发送的目标数据流,其中,该目标数据流中的每个数据包均使用目标服务器返回的流索引号进行标识,这样,协转服务器通过接收到的数据包使用的流索引号,即可确定出哪些数据包是属于目标数据流的,进而实现准确的分辨出目标数据流。步骤603、提取所述目标数据流中的视频流及音频流。具体的,本步骤可以通过下述子步骤(5)~子步骤(6)实现:子步骤(5):基于所述流索引号从接收的数据包中提取所述目标数据流。由于协转服务器可能会同时接收多个服务器发送的数据流,因此,协转服务器接收到的数据包中可能会存在由其他服务器发送的数据包,因此,本步骤中,协转服务器可以基于流索引号从接收的数据包中提取目标数据流,具体的,协转服务器可以获取用于标识的流索引号与目标服务器返回的流索引号相匹配的数据包,进而得到目标数据流。子步骤(6):根据所述目标数据流中每个数据包的类型,提取所述目标数据流中的视频流及音频流。实际应用场景中,用户看到的视频对应的数据流往往是音视频流,即,目标数据流本质上是由视频流及音频流组成的音视频流,相应的,目标数据流中会包含音频数据包及视频数据包。进一步地,音频数据包会携带表示该数据包的类型为音频数据的标识,视频数据包会携带表示该数据包的类型为视频数据的标识,因此,本步骤中,协转服务器可以根据数据包中携带的标识类型的标识,来获取类型为视频数据的数据包,得到目标数据流中的视频流,以及获取类型为音频数据的数据包,得到目标数据流中的音频流。步骤604、基于所述视频流及音频流,分别获取目标视频数据包及目标音频数据包,得到所述目标视联网数据流。具体的,目标视联网数据流由目标视频数据包及目标音频数据包组成,本步骤可以通过下述子步骤(7)~子步骤(9)实现:子步骤(7):对所述视频流进行解码,得到所述视频流中包含的原始视频数据,以及对所述音频流进行解码,得到所述音频流中的原始音频数据。具体的,协转服务器可以基于序列参数集sps及图像参数集pps中包含的参数,对视频流进行解码,具体的,可以将sps和pps传入预设解码器,然后利用解码器基于这些参数对视频流进行解码。其中,sps和pps可以是目标服务器预先发送给协转服务器的,在对视频流进行解码时,会将视频流中每个数据包中数据体中的数据解析出来,进而得到原始视频数据。进一步地,协转服务器可以基于音频编码技术acc对音频流进行解码,得到原始的音频数据。其中,在对音频流进行解码时,会将音频流中每个数据包中数据体中的数据解析出来,进而得到原始音频数据。本发明实施例中,通过将目标数据流抽取为音频流及视频流,并通过对音频流及视频流分别进行处理,来获取目标视联网数据流,使得协转服务器可以同时对音频流及视频流进行并行处理,进而提高处理效率。子步骤(8):将所述原始视频数据切分为多个视频数据块,以及,将所述原始音频数据切分为多个音频数据块。具体的,在对原始视频数据进行切分时,可以先获取原始视频数据中每帧视频数据的帧属性,然后,将帧属性为关键帧的帧视频数据作为视频数据块的首帧视频数据,并进行切分,得到多个视频数据块,其中,每个视频数据块的首帧视频数据为关键帧。具体的,帧属性可以为关键帧、差别帧以及双向差别帧中的一种,具体的,协转服务器可以对每帧视频数据进行解析,然后确定该帧视频数据是否包含显示一帧图像所需的完整数据,如果包含,则确定该帧视频数据的帧属性为关键帧,相应的,可以将该帧视频数据作为视频数据块的首帧视频数据,即,以该帧视频数据与前一帧视频数据之间为一个切分点进行切分,这样,可以使得每个视频数据块的首帧视频数据为关键帧。本发明实施例中,通过将帧属性为关键帧的帧视频数据作为视频数据块的首帧视频数据,并进行切分,可以保证每个视频数据块的首帧视频数据均为关键帧,进而保证后续过程中视联网终端以该视频数据块进行解码播放时,能够基于该视频数据块进行正常播放。进一步地,在对原始音频数据进行切分时,可以按照预设大小进行切分,例如,该预设大小可以为1024千字节,可以将该原始音频数据切分为多个1024千字节大小的音频数据块。子步骤(9):为每个视频数据块添加视联网包头,得到目标视频数据包,以及,为每个音频数据块添加视联网包头,得到目标音频数据包。本步骤中,该视联网包头可以包括mac地址、vms地址以及协议类型等内容。该视联网包头中包含的内容以及各个内容的格式,都是符合视联网协议的。示例的,假设有100个视频数据块,那么可以为这100个视频数据块中的每个视频数据块分别添加视联网包头,得到100个目标视频数据包,进一步地,假设有70个音频数据块,那么可以为这70个音频数据块中的每个音频数据块分别添加视联网包头,得到70个目标音频数据包。步骤605、将所述目标视联网数据流发送至所述视联网服务器,以便于所述视联网服务器将所述目标视联网数据流发送至所述视联网终端。具体的,本步骤中,可以先连续发送m个目标视频数据包,接着,在连续发送m个目标视频数据包之后,连续发送n个目标音频数据包,相应地,在连续发送n个目标音频数据包之后,可以再重复连续发送m个目标视频数据包的步骤。其中,m、n均为不小于1的整数,m可以大于n。示例的,m可以为3,n可以为2,相应地,协转服务器可以先连续发送3个目标视频数据包,然后再连续发送2个目标音频数据包,接着,再连续发送3个目标视频数据包,接着,再连续发送2个目标音频数据包...,直至发送完所有的目标音频数据包及目标视频数据包。本发明实施例中,由于目标视频数据包的数据量加大,通过间隔性的发送目标视频数据包及目标音频数据包,可以使得视联网终端能够间隔性的接收到目标视频数据包及目标音频数据包,进而便于视联网终端均匀的对目标视频数据包及目标音频数据包进行解码播放,以保证播放出的音视频中音频与视频同步。综上所述,本发明实施例提供的数据请求方法,协转服务器可以接收视联网服务器发送的目标数据请求,然后,基于目标数据请求,向目标服务器请求基于rtmp协议的目标数据流,最后,可以提取目标数据流中的视频流及音频流,基于视频流及音频流,分别获取目标视频数据包及目标音频数据包,得到目标视联网数据流,这样,通过将目标数据流抽取为音频流及视频流,并通过对音频流及视频流分别进行处理,来获取目标视联网数据流,使得协转服务器可以同时对音频流及视频流进行并行处理,进而提高处理效率最后,可以将目标视联网数据流发送至所述视联网服务器。由于该目标视联网数据流是基于视联网协议的,因此可以在视联网中传输,相应地,协转服务器将该目标视联网数据流发送给视联网服务器之后,视联网服务器可以将该目标视联网数据流发送给视联网终端,进而使得用户可以通过视联网终端收看基于rtmp协议的视频。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。参照图7,示出了本发明实施例的一种用于数据请求的协转服务器的框图,具体的,该协转服务器70可以包括:第一接收模块701,用于接收视联网服务器发送的目标数据请求;所述目标视频请求是视联网服务器基于视联网终端发送的初始数据请求生成的;请求模块702,用于基于所述目标数据请求,向目标服务器请求基于实时消息传输协议rtmp的目标数据流;第二接收模块703,用于接收所述目标服务器发送的所述目标数据流;转换模块704,用于将所述目标数据流转换为基于视联网协议的目标视联网数据流,并将所述目标视联网数据流发送至所述视联网服务器,以便于所述视联网服务器将所述目标视联网数据流发送至所述视联网终端。综上所述,本发明实施例提供的一种用于请求的协转服务器,协转服务器可以接收视联网服务器发送的目标数据请求,然后,基于目标数据请求,向目标服务器请求基于rtmp协议的目标数据流,最后,可以将接收到的目标数据流转换为基于视联网协议的目标视联网数据流,由于该目标视联网数据流是基于视联网协议的,因此可以在视联网中传输,相应地,协转服务器将该目标视联网数据流发送给视联网服务器之后,视联网服务器可以将该目标视联网数据流发送给视联网终端,进而使得用户可以通过视联网终端收看基于rtmp协议的视频。可选的,所述目标视联网数据流包括目标视频数据包及目标音频数据包;所述转换模块,包括:提取子模块,用于提取所述目标数据流中的视频流及音频流;获取子模块,用于基于所述视频流及音频流,分别获取目标视频数据包及目标音频数据包,得到所述目标视联网数据流。可选的,所述请求模块,用于:根据所述目标数据请求,确定所述目标服务器的地址;基于所述目标服务器地址,向所述目标服务器发送流创建请求;接收并存储所述目标服务器返回的流索引号;所述流索引号用于标识所述目标数据流;接收所述目标服务器发送的所述目标数据流;所述目标数据流中的每个数据包均使用所述流索引号进行标识。可选的,所述提取子模块,用于:基于所述流索引号从接收的数据包中提取所述目标数据流;根据所述目标数据流中每个数据包的类型,提取所述目标数据流中的视频流及音频流。可选的,所述获取子模块,,包括:解码单元,用于对所述视频流进行解码,得到所述视频流中包含的原始视频数据,以及对所述音频流进行解码,得到所述音频流中的原始音频数据;切分单元,用于将所述原始视频数据切分为多个视频数据块,以及,将所述原始音频数据切分为多个音频数据块;添加单元,用于为每个视频数据块添加视联网包头,得到目标视频数据包,以及,为每个音频数据块添加视联网包头,得到目标音频数据包。可选的,所述转换模块,用于:连续发送m个目标视频数据包;在连续发送所述m个目标视频数据包之后,连续发送n个目标音频数据包;在连续发送所述n个目标音频数据包之后,重复所述连续发送m个目标视频数据包的步骤;所述m、n均为不小于1的整数。可选的,所述切分单元,用于:获取所述原始视频数据中每帧视频数据的帧属性;将帧属性为关键帧的帧视频数据作为所述视频数据块的首帧视频数据,并进行切分,得到多个视频数据块;每个视频数据块的首帧视频数据为关键帧。综上所述,本发明实施例提供的另一种用于数据请求的协转服务器,协转服务器可以接收视联网服务器发送的目标数据请求,然后,基于目标数据请求,向目标服务器请求基于rtmp协议的目标数据流,最后,可以提取目标数据流中的视频流及音频流,基于视频流及音频流,分别获取目标视频数据包及目标音频数据包,得到目标视联网数据流,这样,通过将目标数据流抽取为音频流及视频流,并通过对音频流及视频流分别进行处理,来获取目标视联网数据流,使得协转服务器可以同时对音频流及视频流进行并行处理,进而提高处理效率最后,可以将目标视联网数据流发送至所述视联网服务器。由于该目标视联网数据流是基于视联网协议的,因此可以在视联网中传输,相应地,协转服务器将该目标视联网数据流发送给视联网服务器之后,视联网服务器可以将该目标视联网数据流发送给视联网终端,进而使得用户可以通过视联网终端收看基于rtmp协议的视频。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据请求方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的一种数据请求方法、协转服务器及计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1