本发明涉及p2p直播业务技术领域,尤其涉及一种数据传输方法、装置、设备及存储介质。
背景技术:
随着网络技术的飞速发展,直播在互联网中应用越来越广泛。传统的直播模式存在带宽压力大,且若用户量过大导致视频质量降低的问题。因此,目前采用对等网络(peertopeer,p2p)技术来解决传统直播方式中带宽压力大等问题。
使用p2p技术进行视频直播需要搭建分片服务器,以对直播的媒体数据进行分片。但是,对直播的媒体数据进行分片不仅搭建分片服务器耗时,而且在进行直播的媒体数据进行分片后需要修改数据传输协议,来保证媒体数据的传输。而上述直播技术会造成了直播时间开销大。
技术实现要素:
本发明实施例提供了一种数据传输方法、装置、设备及存储介质,解决了资源开销大和计算压力大的问题。
第一方面,本发明实施例提供了一种数据传输方法,该方法包括:
接收请求信息,请求信息中包含有第一时间戳信息;
确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致;
若第二时间戳信息与第一时间戳信息一致,则将与第二时间戳对应的媒体数据共享给客户端。
在一个可能的实现中,该方法还包括:
若第二时间戳信息与第一时间戳信息不一致,则生成数据查询指令;
向客户端发送数据查询指令,以使客户端响应于数据查询指令,从预先生成的共享端信息对应的共享端上,请求第一时间戳信息对应的媒体数据。
在一个可能的实现中,第二时间戳信息位于媒体数据的扩展字段中;
媒体数据的每一个关键帧均包含第二时间戳信息,以使画面组gop中包含第二时间戳信息。
第二方面,本发明实施例提供了一种数据传输方法,该方法包括:
生成请求信息,请求信息中包含第一时间戳信息;
将请求信息发送给共享端,以使共享端确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致;
接收媒体数据,媒体数据中包含第二时间戳信息。
在一个可能的实现中,该方法还包括:
接收数据查询指令;
响应于数据查询指令,从预先生成的共享端信息对应的共享端上,请求第一时间戳信息对应的媒体数据。
在一个可能的实现中,在接收媒体数据之后,该方法还包括:
在确定第二时间戳信息与第一时间戳信息一致的情况下,播放媒体数据。
在一种可能的实现中,所述媒体数据包括第一媒体数据和第二媒体数据;所述第一媒体数据和第二媒体数据由不同的共享端共享得到;
根据第一媒体数据的最后一个关键帧对应的时间戳,请求所述第二媒体数据。
第三方面,本发明实施例提供了一种数据传输装置,该装置包括:
接收模块,用于接收请求信息,请求信息中包含有第一时间戳信息;
对比模块,用于确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致;
共享模块,用于若第二时间戳信息与第一时间戳信息一致,则将与第二时间戳对应的媒体数据共享给客户端。
第四方面,本发明实施例提供了一种数据传输装置,该装置包括:
生成模块,用于生成请求信息,请求信息中包含第一时间戳信息;
发送模块,用于将请求信息发送给共享端,以使共享端确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致;
接收模块,用于接收媒体数据,媒体数据中包含第二时间戳信息。
第五方面,本发明实施例提供了一种计算设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面或者第一方面任一可能实现方式的方法,或者当计算机程序指令被处理器执行时实现第二方面或者第二方面任一可能实现方式的方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面或者第一方面任一可能实现方式的方法,或者当计算机程序指令被处理器执行时实现第二方面或者第二方面任一可能实现方式的方法。
本发明实施例提供的数据传输方法、装置、设备及介质,通过接收请求信息,请求信息中包含有第一时间戳信息;确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致;若第二时间戳信息与第一时间戳信息一致,则将与第二时间戳对应的媒体数据共享给客户端。本发明实施例能够降低资源开销和计算压力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明一些实施例提供的一种数据传输方法的流程图;
图2示出了根据本发明一些实施例提供的另一种数据传输方法的流程图;
图3示出了根据本发明一些实施例提供的一种数据传输装置的结构示意图;
图4示出了根据本发明一些实施例提供的另一种数据传输装置的结构示意图;
图5示出了根据本发明一些实施例提供的一种数据传输系统的结构示意图;
图6示出了根据本发明一些实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
随着网络技术的飞速发展,直播在互联网中应用越来越广泛。传统的直播模式存在带宽压力大,且若用户量过大导致视频质量降低的问题。因此,目前采用p2p技术来解决传统直播方式中带宽压力大等问题。
使用p2p技术进行视频直播需要搭建分片服务器,以对直播的媒体数据进行分片,上传至分片服务器。但是,对直播的媒体数据进行分片不仅搭建分片服务器耗时,而且在进行直播的媒体数据进行分片后需要修改数据传输协议,来保证媒体数据的传输。而上述直播技术会造成了直播时间开销大。
因此,本发明提供的一种数据传输方法、装置、设备及存储介质,能够解决资源开销大和计算压力大的问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据传输方法进行详细介绍。
参见图1所示,本发明实施例提供了一种数据传输方法,包括s101-s106。
s101:客户端设备生成请求信息,请求信息中包含第一时间戳信息。
在本发明的一个实施例中,客户端设备生成请求信息,通过请求信息向共享端设备请求媒体数据,客户端设备为了能够准确的请求得到所需要的媒体数据,生成的请求信息中包含有第一时间戳信息,第一时间戳信息能够使得共享端设备确定客户端设备所需要的媒体数据。
s102:客户端设备将请求信息发送给共享端设备,以使共享端设备确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致。
在本发明的一个实施例中,生成请求信息后,将请求信息发送给共享端设备,其中,该共享端设备可以是任意一个客户端设备。在客户端设备中保存有共享端设备信息,共享端设备信息保存有各个客户端设备的状态信息,共享端设备信息也可以是从服务器中获取的,服务器根据获得的客户端设备的状态信息,确定能够作为共享端设备的客户端设备,生成共享端设备信息,其中,客户端设备的状态信息是需要定期上传至服务器,状态信息包括客户端的互联网协议地址(internetprotocol,ip)、客户端是否处于共享媒体数据的状态、客户端处于分享媒体数据状态时分享的客户端数量、客户端所处的位置信息、客户端处于数据拉流阶段还是共享阶段等等。共享端设备信息能够使得需要媒体数据的客户端设备根据状态信息确定哪一个客户端设备可以作为共享端设备。
s103:共享端设备接收请求信息,请求信息中包含有第一时间戳信息。
在本发明的一个实施例中,共享端设备接收到请求信息后,会识别出请求信息中的第一时间戳信息,进而根据第一时间戳信息确定客户端设备所请求的媒体数据。
s104:共享端设备确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致。
在本发明的一个实施例中,共享端设备确定第一时间戳信息后,会在媒体数据的扩展字段中确定第二时间戳信息。其中,媒体数据的每一个关键帧均包含第二时间戳信息,例如,采用h264格式封装视频,并在视频的扩展字段中加入自定义的时间戳字段,如图2所示,为视频的h264序列,h264序列是由多组画面组(groupofpictures,gop)组成,每一个gop组的关键帧前插入补充增强信息sei,以保证每一组gop都有时间戳信息,也即,时间戳信息是与sei对应的。其中,一组gop对应的时间可以为1秒。
s105:若第二时间戳信息与第一时间戳信息一致,共享端设备将与第二时间戳对应的媒体数据共享给客户端设备。
在本发明的一个实施例中,共享端设备确定第二时间戳信息后,将第一时间戳信息与第二时间戳信息进行比对,若两者一致,则共享端设备中有客户端设备所需要的媒体数据,将第二时间戳信息对应的媒体数据发送给客户端设备。
s106:客户端设备接收媒体数据,媒体数据中包含第二时间戳信息。
在本发明的一个实施例中,客户端设备接收到媒体数据后,还需要进行数据对齐,因此,媒体数据中还包含有第二时间戳信息。
客户端设备将媒体数据中的第二时间戳信息与第一时间戳信息进行比对,进而能够将媒体数据进行对齐,并在确定第二时间戳信息与第一时间戳信息一致的情况下,对媒体数据进行播放。
此外,若第一时间戳信息与第二时间戳信息不一致的情况下,共享端设备会生成数据查询指令,并将数据查询指令发送给客户端设备,客户端设备接收到数据查询指令后,确定共享端设备中没有其所要请求的媒体数据,进而从共享端设备信息对应的共享端设备上请求第一时间戳信息对应的媒体数据。
最后,本发明实施例提供的数据传输方法中,媒体数据包括第一媒体数据和第二媒体数据;所述第一媒体数据和第二媒体数据由不同的共享端共享得到;
所述方法还包括:根据第一媒体数据的最后一个关键帧对应的时间戳,请求所述第二媒体数据。
在本发明的一个实施例中,共享端设备在共享媒体数据的时候,会出现断开连接的状况,客户端设备请求得到的媒体数据可以是从多个共享端设备请求得到的。例如,客户端设备请求的媒体数据包括第一媒体数据和第二媒体数据,其中,第一媒体数据由第一共享端设备共享给客户端,第二媒体数据由第二共享端设备共享给客户端。第一媒体数据的最后一个关键帧对应的时间戳是t,为了能够保证直播视频播放的流畅性,在向第二共享端设备获取第二媒体数据时,第二媒体数据的第一个关键帧对应的时间戳为t 1,也就是说,客户端需要从第二共享端设备请求第二媒体数据的时候,请求信息中包含的时间戳为t 1。
本发明实施例通过使用时间戳信息来请求媒体数据,不需要搭建分片服务器,也不需要修改数据传输协议,进而降低了资源开销大和计算压力。
作为一个示例,参见图3所示,本发明实施例提供了一种数据传输系统,包括:服务器301、信息转发服务器302、客户端设备303。
服务器301,用于接收信息转发服务器更新的客户端设备303的状态信息,并基于客户端设备303的状态信息生成共享端设备信息,将共享端设备信息下发至信息转发服务器302,其中,共享端设备信息中的客户端可以作为共享端设备,向其余客户端共享媒体数据,共享端设备信息可以是共享端最优列表,客户端设备303能够基于共享端最优列表,与共享端最优列表中的客户端进行连接,且客户端可以同时与其他多个客户端连接。
信息转发服务器302,用于获取客户端设备303的状态信息,并将状态信息上传至服务器301;接收服务器301下发的共享端设备信息。
客户端设备303,用于向信息转发服务器上传客户端的状态信息。
参见图4所示,本发明实施例提供了一种数据传输装置,该装置包括:
接收模块401,用于接收请求信息,请求信息中包含有第一时间戳信息;
对比模块402,用于确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致;
共享模块403,用于若第二时间戳信息与第一时间戳信息一致,则将与第二时间戳对应的媒体数据共享给客户端。
可选的,该装置还包括指令处理模块404,用于若第二时间戳信息与第一时间戳信息不一致,则生成数据查询指令;向客户端发送数据查询指令,以使客户端响应于数据查询指令,从预先生成的共享端设备信息对应的共享端设备上,请求第一时间戳信息对应的媒体数据。
可选的,第二时间戳信息位于媒体数据的扩展字段中;
媒体数据的每一个关键帧均包含第二时间戳信息。
本发明实施例提供装置中的各个模块可以实现图1所示的方法,并达到其技术效果,为简洁描述,再此不在赘述。
参见图5所示,本发明实施例提供了一种数据传输装置,该装置包括:
生成模块501,用于生成请求信息,请求信息中包含第一时间戳信息;
发送模块502,用于将请求信息发送给共享端设备,以使共享端设备确定媒体数据中的第二时间戳信息与第一时间戳信息是否一致;
接收模块503,用于接收媒体数据,媒体数据中包含第二时间戳信息。
可选的,该装置还包括指令处理模块504,用于接收数据查询指令;响应于数据查询指令,从预先生成的共享端设备信息对应的共享端设备上,请求第一时间戳信息对应的媒体数据。
可选的,该装置还包括播放模块505,用于在接收媒体数据之后,在确定第二时间戳信息与第一时间戳信息一致的情况下,播放媒体数据。
可选的,媒体数据包括第一媒体数据和第二媒体数据;所述第一媒体数据和第二媒体数据由不同的共享端共享得到;
该装置还包括请求模块506,用于根据第一媒体数据的最后一个关键帧对应的时间戳,请求所述第二媒体数据。
本发明实施例提供装置中的各个模块可以实现图1所示的方法,并达到其技术效果,为简洁描述,再此不在赘述。
参见图6所示,本发明实施例提供了计算设备的硬件结构示意图。
计算设备可以包括处理器601以及存储有计算机程序指令的存储器602。
具体地,上述处理器601可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器602可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器602可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器602可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器602可在数据处理装置的内部或外部。在特定实施例中,存储器602是非易失性固态存储器。在特定实施例中,存储器602包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
处理器601通过读取并执行存储器602中存储的计算机程序指令,以实现上述实施例中的任意一种数据传输方法。
在一个示例中,计算设备还可包括通信接口603和总线610。其中,如图6所示,处理器601、存储器602、通信接口603通过总线610连接并完成相互间的通信。
通信接口603,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线610包括硬件、软件或两者,将计算设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线610可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
另外,结合上述实施例中的数据传输方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据传输方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
1.一种数据传输方法,其特征在于,所述方法包括:
接收请求信息,所述请求信息中包含有第一时间戳信息;
确定媒体数据中的第二时间戳信息与所述第一时间戳信息是否一致;
若所述第二时间戳信息与所述第一时间戳信息一致,则将与所述第二时间戳对应的媒体数据共享给客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第二时间戳信息与所述第一时间戳信息不一致,则生成数据查询指令;
向所述客户端发送所述数据查询指令,以使所述客户端响应于所述数据查询指令,从预先生成的共享端信息对应的共享端上,请求所述第一时间戳信息对应的媒体数据。
3.根据权利要求1所述的方法,其特征在于,所述第二时间戳信息位于所述媒体数据的扩展字段中;
所述媒体数据的每一个关键帧均包含所述第二时间戳信息。
4.一种数据传输方法,其特征在于,所述方法包括:
生成请求信息,所述请求信息中包含第一时间戳信息;
将所述请求信息发送给共享端,以使所述共享端确定媒体数据中的第二时间戳信息与所述第一时间戳信息是否一致;
接收媒体数据,所述媒体数据中包含所述第二时间戳信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收数据查询指令;
响应于所述数据查询指令,从预先生成的共享端信息对应的共享端上,请求所述第一时间戳信息对应的媒体数据。
6.根据权利要求4所述的方法,其特征在于,在接收所述媒体数据之后,所述方法还包括:
在确定所述第二时间戳信息与所述第一时间戳信息一致的情况下,播放所述媒体数据。
7.根据权利要求4所述的方法,其特征在于,所述媒体数据包括第一媒体数据和第二媒体数据;所述第一媒体数据和第二媒体数据由不同的共享端共享得到;
所述方法还包括:根据第一媒体数据的最后一个关键帧对应的时间戳,请求所述第二媒体数据。
8.一种数据传输装置,其特征在于,所述装置包括:
接收模块,用于接收请求信息,所述请求信息中包含有第一时间戳信息;
对比模块,用于确定媒体数据中的第二时间戳信息与所述第一时间戳信息是否一致;
共享模块,用于若所述第二时间戳信息与所述第一时间戳信息一致,则将与所述第二时间戳对应的媒体数据共享给客户端。
9.一种数据传输装置,其特征在于,所述装置包括:
生成模块,用于生成请求信息,所述请求信息中包含第一时间戳信息;
发送模块,用于将所述请求信息发送给共享端,以使所述共享端确定媒体数据中的第二时间戳信息与所述第一时间戳信息是否一致;
接收模块,用于接收媒体数据,所述媒体数据中包含所述第二时间戳信息。
10.一种计算设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-3中任一项或权利要求4-7中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-3中任一项或权利要求4-7中任一项所述的方法。
技术总结