数据传输方法和数据传输装置与流程

文档序号:21818956发布日期:2020-08-11 21:33阅读:118来源:国知局
数据传输方法和数据传输装置与流程

本申请涉及通信技术,尤其涉及一种数据传输方法和数据传输装置。



背景技术:

目前,随着互联网公司越过运营商(overthetop,ott)直播应用的广泛使用,用户对ott直播端到端时延的要求越来越高。因此,直播时延问题成为当前ott直播运营所关心的核心问题。

为了减小直播时延,提高直播效果,引入内容分发网络(contentdeliverynetwork,cdn)。cdn的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。目前,终端设备通过该媒体分片的索引向cdn发送媒体分片的数据请求,如果当前cdn本地未缓存有该媒体分片的数据时,则cdn向源站服务器请求获取该媒体分片的数据,而如果当前源站服务器本地也未缓存该媒体分片的数据,则源站服务器会向cdn反馈失败消息,那么cdn向终端设备回馈该失败消息;而终端设备接收到该失败消息时,终端设备在若干时间内会再次向cdn发起媒体分片的数据请求,如果当前cdn本地未缓存该媒体分片的数据,则cdn再次向源站服务器请求该媒体分片的数据,然后再向该终端设备发送该媒体分片的数据。

上述方案中,由于媒体分片的数据推送至该源站服务器和cdn可能存在一定时延,而终端设备如果在此过程请求媒体分片的数据失败,则会不断地向cdn重复请求媒体分片的数据,直到成功为止。在这种情况下,终端设备不断重复请求和重试,由于终端设备至cdn、cdn至源站服务器之间存在不确定的时延,导致引入了较大的时延,从而影响了直播的播放效果,导致用户体验较差。



技术实现要素:

本申请实施例提供了一种数据传输方法和数据传输装置,用于提高直播的播放效果,提升用户体验。

本申请实施例的第一方面提供一种数据传输方法,该方法包括:

在直播过程中,终端设备可以通过索引的方式向第一服务器发送索引请求;然后,第一服务器可以向终端设备发送媒体分片的索引,其中,该媒体分片的索引可以包括该媒体分片的地址。终端设备可以通过媒体分片的地址向第一服务器发送媒体分片的数据请求;而当在当前时刻第一服务器中没有存储该媒体分片的数据且该第一服务器将接收到该媒体分片的数据时,那么第一服务器可以向终端设备发送第一成功消息,告知该终端设备请求媒体分片的数据成功,其中,当前时刻是指第一服务器接收到终端设备发送的媒体分片的数据请求的时刻。那么,终端设备会等待第一服务器向其发送媒体分片的数据。然后,第一服务器获取该媒体分片的数据,并向终端设备发送该媒体分片的数据。通过本申请的技术方案,当在当前时刻第一服务器中没有存储该媒体分片的数据并且该第一服务器将接收到该媒体分片的数据时,第一服务器向终端设备发送第一成功消息,使得终端设备不会由于接收到失败反馈再不断地进行重复请求和重试,从而避免了由于终端设备至服务器之间存在的不确定时延所带来的时延问题,从而提高直播的播放效果,提升用户体验。

一种可能的实现方式中,该第一服务器向终端设备发送媒体分片的索引之前,该方法还可以包括:首先,第一服务器可以获取该媒体分片的索引。然后,第一服务器可以根据该媒体分片的地址创建该媒体分片对应的空文件。在该可能的实现方式中,提供了一种第一服务器通过创建媒体分片对应的空文件来实现:当在当前时刻第一服务器中没有存储该媒体分片的数据并且该第一服务器将接收到该媒体分片的数据时,第一服务器向终端设备发送第一成功消息的消息反馈机制。

另一种可能的实现方式中,该第一服务器可以向该终端设备发送媒体分片的索引之前,该方法还可以包括:首先,第一服务器可以向第二服务器发送索引请求。然后,第一服务器可以接收该第二服务器发送的该媒体分片的索引。第一服务器获取该媒体分片的数据之前,该方法还可以包括:该第一服务器可以向该第二服务器发送媒体分片的数据请求;当在第二时刻该第二服务器中存储有该媒体分片的数据时,该第一服务器可以接收该第二服务器发送的第二成功消息,该第二成功消息用于指示该第一服务器请求该媒体分片的数据成功,该第二时刻为该第二服务器接收到该第一服务器发送的该媒体分片的数据请求的时刻。在该可能的实现方式中,该第一服务器可以与终端设备直接进行交互的服务器,例如:cdn。

另一种可能的实现方式中,当在该第二时刻该第二服务器中未存储有该媒体分片的数据时,该方法还可以包括:首先,该第一服务器可以接收该第二服务器发送的失败消息,该失败消息用于指示该第一服务器请求该媒体发分片的数据失败;然后,该第一服务器可以向第二服务器发送该媒体分片的数据请求;当在第三时刻该第二服务器中存储有该媒体分片的数据时,该第一服务器可以接收该第二服务器发送的第三成功消息,该第三成功消息用于指示该第一服务器请求该媒体分片的数据成功,该第三时刻为该第二服务器再次接收到该第一服务器发送的该媒体分片的数据请求的时刻。在该可能的实现方式中,当第一服务器为与终端设备直接交互的服务器时,第一服务器本地未存储有该媒体分片的数据时,可以向第二服务器请求获取该媒体分片的数据。当该第二服务器本地也未存储有该媒体分片的数据时,则第一服务器会接收到该第二服务器反馈的失败消息,那么第一服务器会再次向第二服务器发起媒体分片的数据请求。

另一种可能的实现方式中,该第一服务器向该终端设备发送媒体分片的索引可以包括:首先,该第一服务器可以通过第二服务器向该终端设备发送媒体分片的索引;而第一服务器可以向终端设备发送第一成功消息可以包括:第一服务器可以通过第二服务器向该终端设备发送媒体分片的数据。在该可能的实现方式中,该第一服务器可以间接与终端设备交互的服务器,例如,源站服务器。另一种可能的实现方式中,第一服务器向终端设备发送媒体分片的索引之前,该方法还可以包括:首先,该第一服务器可以向第二服务器发送索引请求;然后,该第一服务器可以接收第二服务器发送的该媒体分片的索引;该方法还可以包括:第一服务器向第二服务器发送媒体分片的数据请求;然后,当在第二时刻该第二服务器未存储有该媒体分片的数据且该第二服务器将接收到该媒体分片的数据时,则该第一服务器接收该第二服务器发送的第二成功消息,该第二成功消息用于指示该第一服务器请求该媒体分片的数据成功,该第二时刻为该第二服务器接收到该媒体分片的数据请求的时刻。终端设备在请求获取媒体分片的数据时,该网络架构中可以是多级服务器来实现对该媒体分片的数据传输,例如三级服务器,四级服务器,具体此处不做限定。可以在这多级服务器中都可以通过创建该媒体分片的空文件来实现该消息反馈机制。

本申请实施例第二方面提供了一种数据传输装置,该数据传输装置具有实现上述第一方面第一服务器行为的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能对应的模块。

本申请实施例中第三方面提供了一种数据传输装置,该数据传输装置包括:处理器、存储器、输入输出设备以及总线;该处理器、存储器、输入输出设备分别与该总线相连,该存储器中存储有计算机指令;该处理器在执行该存储器中的计算机指令时,该存储器中存储有计算机指令;该处理器在执行该存储器中的计算机指令时,用于实现如第一方面任意一种实现方式。

本申请实施例第四方面提供了一种包括指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得该计算机执行如第一方面中任一种的实现方式。

本申请实施例第五方面提供了一种计算机可读存储介质,其特征在于,包括指令,当该指令在计算机上运行时,使得计算机执行如第一方面中任一种实现方式。

从以上技术方案可以看出,本申请实施例具有以下优点:

经由上述技术方案可知,终端设备通过索引的方式向第一服务器发送索引请求,然后第一服务器向该终端设备发送媒体分片的索引,该媒体分片的索引可以包括该媒体分片的地址。终端设备可以根据该媒体分片的地址向第一服务器发送媒体分片的数据请求,而当在当前时刻第一服务器中没有存储该媒体分片的数据并且该第一服务器将接收到该媒体分片的数据时,那么第一服务器可以向终端设备发送第一成功消息,告知该终端设备请求媒体分片的数据成功,那么终端设备则会等待第一服务器向其发送媒体分片的数据;然后第一服务器获取该媒体分片的数据并向终端设备发送该媒体分片的数据。通过本申请的技术方案,当在当前时刻第一服务器中没有存储该媒体分片的数据并且该第一服务器将接收到该媒体分片的数据时,第一服务器向终端设备发送第一成功消息,使得终端设备不会由于接收到失败反馈再不断地进行重复请求和重试,从而避免了由于终端设备至服务器之间存在的不确定时延所带来的时延问题,从而提高直播的播放效果,提升用户体验。

附图说明

图1为本申请实施例中数据传输方法的一个网络架构示意图;

图2为本申请实施例中数据传输方法的一个实施例示意图;

图3为本申请实施例中数据传输方法的另一个实施例示意图;

图4为本申请实施例中数据传输方法的另一个实施例示意图;

图5为本申请实施例中数据传输方法的另一个实施例示意图;

图6为本申请实施例中数据传输方法的另一个实施例示意图;

图7为本申请实施例中数据传输装置的一个结构示意图;

图8为本申请实施例中数据传输装置的另一个结构示意图。

具体实施方式

本申请实施例提供了一种数据传输方法和数据传输装置,用于提高直播的播放效果,提升用户体验。

本申请实施例所提出的方法主要应用于用户通过cdn获取直播业务数据的场景。其中,cdn是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。需要注意的是,本申请实施例所提出的方法可以应用于用户通过cdn获取媒体分片的数据,也可以是用户通过其他服务器请求获取媒体分片的数据的场景,比如源站服务器等,即此时用户无需通过cdn,而直接与源站服务器请求获取媒体分片的数据,具体此处不做限定。

需要说明的是,本申请实施例所提出的方法还可以应用于用户获取点播业务数据的场景,当然这里应当限定在磁盘中点播业务数据一定存在的场景下。在后续实施例中,以直播业务为例进行说明。其次,本申请实施例所提出的方法中,终端设备与服务器之间的数据传输时所采用的协议可以为由苹果公司提出的基于http的流媒体网络传输协议(httplivestreaming,hls),或者为微软microsoft公司http的自适应码率流媒体协议,还可以为基于http的动态自适应流(dynamicadaptivestreamingoverhttp,dash),具体本申请不做限定。

基于cdn的应用场景,本申请实施例提出的一种网络架构如图1所示,该网络架构中,主要包括终端设备、cdn、源站服务器和转码器。其中,终端设备可以为手机、平板、电脑、机顶盒等,具体本申请不做限定。转码器可以主动向源站服务器推送索引,终端设备通过媒体分片的索引向cdn发送媒体分片的数据请求;如果当前cdn本地未缓存有该媒体分片的数据时,则cdn可以向源站服务器请求获取该媒体分片的数据;而如果当前源站服务器本地也未缓存该媒体分片的数据,则源站服务器会向cdn反馈失败消息,那么cdn向终端设备回馈该失败消息。而终端设备接收到该失败消息时,终端设备在若干时间内会再次向cdn发起媒体分片的数据请求,如果当前cdn本地未缓存该媒体分片的数据,则cdn再次向源站服务器请求该媒体分片的数据,然后再向该终端设备发送该媒体分片的数据。上述方案中,由于媒体分片的数据推送至该源站服务器和cdn可能存在一定时延,而终端设备如果在此过程请求媒体分片的数据失败,则会不断地向cdn重复请求媒体分片的数据,直到成功为止。在这种情况下,终端设备不断重复请求和重试,由于终端设备至cdn、cdn至源站服务器之间存在不确定的时延,导致引入了较大的时延,从而影响了直播的播放效果,导致用户体验较差。

需要说明的是,图1仅仅示出了两级服务器实现对媒体分片的数据的传输的架构图,而实际应用中,终端设备在请求获取媒体分片的数据时,该网络架构中可以是多级服务器来实现对该媒体分片的数据传输,例如三级服务器,四级服务器,而这多级服务器是上下级关系,具体本申请不做限定。在后续的实施例中,仅以两级服务器实现对媒体分片的数据传输为例进行说明,而对于多级服务器实现对媒体分片的数据的传输同样适用。

其次,图1中仅仅示出了源站服务器的上级为转码器,而在实际当中,也可以是编码器,该源站服务器的上一级源站服务器等,具体本申请不作限定,图1仅仅是为了说明本申请实施例所提出的方法。

有鉴于此,本申请实施例提供一种数据传输方法,用于提高直播的播放效果,提升用户体验。终端设备通过索引的方式向第一服务器发送索引请求,然后第一服务器向该终端设备发送媒体分片的索引,该媒体分片的索引可以包括该媒体分片的地址。终端设备可以根据该媒体分片的地址向第一服务器发送媒体分片的数据请求,而当在当前时刻第一服务器中没有存储该媒体分片的数据并且该第一服务器将接收到该媒体分片的数据时,那么第一服务器可以向终端设备发送第一成功消息,告知该终端设备请求媒体分片的数据成功,则终端设备会等待第一服务器向其发送媒体分片的数据,就不断重复请求和重试;然后第一服务器获取该媒体分片的数据并向终端设备发送该媒体分片的数据,从而避免了由于终端设备至服务器之间存在的不确定时延所带来的时延问题。

为便于更好地理解本申请实施例所提出的方案,下面对本实施例中的具体流程进行介绍,如图2所示,本申请实施例中数据传输方法的一个实施例包括:

201、第一服务器接收终端设备发送的索引请求。

用户使用ott直播应用看直播视频时,首先,终端设备可以通过索引方式向第一服务器发送索引请求。

202、第一服务器向终端设备发送媒体分片的索引。

第一服务器接收到终端设备发送的索引请求,则会向终端设备推送媒体分片的索引,其中,该媒体分片的索引包括媒体分片的地址。而媒体分片的地址可以是直接携带在该索引中,也可以是通过间接的方式指示终端设备的该媒体分片的地址,例如,可以是在该索引中包括该媒体分片的编号或者媒体分片的时间戳,然后终端设备根据该媒体分片的编号或者该媒体分片的时间戳确定该媒体分片的地址,具体本申请不做限定。

203、第一服务器接收终端设备发送的媒体分片的数据请求。

终端设备通过该媒体分片的索引确定媒体分片的地址,则终端设备可以通过该媒体分片的地址向第一服务器发送该媒体分片的数据请求。

204、第一服务器向终端设备发送第一成功消息。

由于媒体分片的数据推送至第一服务器存在一定时延,但是在未来一段时长内将推送该媒体分片的数据至该第一服务器。当在第一时刻该第一服务器中未存储有该媒体分片的数据时,并且该第一服务器将接收到该媒体分片的数据时,那么第一服务器可以向该终端设备发送第一成功消息;其中,第一成功消息用于指示终端设备请求该媒体分片的数据成功,第一时刻为该第一服务器接收到该媒体分片的数据请求的时刻。

在步骤204中,当在第一时刻第一服务器接收到该终端设备发送的媒体分片的数据请求,并且该第一服务器将接收到该媒体分片的数据时,第一服务器可以向终端设备反馈第一成功消息,在这种消息反馈机制下,终端设备可以在未来的一段时长内等待接收第一服务器发送的媒体分片的数据,而不会不断地重复向第一服务器发起请求或者重试,从而避免由于终端设备至第一服务器之间存在的不确定时延所带来的时延问题。

需要说明的是,如果在第一时刻第一服务器中存储有该媒体分片的数据时,则第一服务器可以直接向终端设备发送该第一成功消息和媒体分片的数据。

205、第一服务器获取媒体分片的数据。

第一服务器在一段时长内获取媒体分片的数据,具体可以是上级服务器、转码器或者编码器向该第一服务器发送媒体分片的数据。

206、第一服务器向终端设备发送媒体分片的数据。

第一服务器接收到媒体分片的数据之后,可以向该终端设备发送该媒体分片的数据。

本申请实施例中,终端设备通过索引的方式向第一服务器发送索引请求,然后第一服务器向该终端设备发送媒体分片的索引,该媒体分片的索引可以包括该媒体分片的地址。终端设备可以根据该媒体分片的地址向第一服务器发送媒体分片的数据请求,而当在当前时刻第一服务器中没有存储该媒体分片的数据并且该第一服务器将接收到该媒体分片的数据时,那么第一服务器可以向终端设备发送第一成功消息,告知该终端设备请求媒体分片的数据成功,那么终端设备则会等待第一服务器向其发送媒体分片的数据;然后第一服务器获取该媒体分片的数据并向终端设备发送该媒体分片的数据。通过本申请的技术方案,当在当前时刻第一服务器中没有存储该媒体分片的数据并且该第一服务器将接收到该媒体分片的数据时,第一服务器向终端设备发送第一成功消息,使得终端设备不会由于接收到失败反馈再不断地进行重复请求和重试,从而避免了由于终端设备至服务器之间存在的不确定时延所带来的时延问题,从而提高直播的播放效果,提升用户体验。

本申请实施例中,当在第一时刻第一服务器中未存储有该媒体分片的数据时,并且该第一服务器将接收到该媒体分片的数据时,第一服务器可以向终端设备发送第一成功消息,这种消息反馈机制可以是通过第一服务器在预设路径中通过该媒体分片的地址创建该媒体分片对应的空文件来实现,在创建空文件的时候,也意味着第一服务器在本地创建了该媒体分片的数据结构;需要说明的是,第一服务器在也可以仅创建该媒体分片的数据结构,该媒体分片的数据结构可以理解为该媒体分片的逻辑文件,具体本申请不做限定。在后续实施例中以第一服务器可以通过该媒体分片的地址创建该媒体分片对应的空文件为例进行说明。第一服务器通过创建该媒体分片的空文件来实现步骤204的消息反馈机制,即当第一时刻第一服务器接收到该终端设备发送的媒体分片的数据请求时,并且该第一服务器将接收到该媒体分片的数据时,第一服务器可以向终端设备反馈该第一成功消息。

本申请实施例中,第一服务器可以为直接与终端设备交互的服务器,例如cdn;也可以是间接与终端设备交互的服务器,例如,源站服务器,具体本申请不做限定。

本申请实施例中,在多级服务器中,可以只有一个服务器通过创建媒体分片对应的空文件实现上述图2中步骤204所述的消息反馈机制,也可以是两个服务器都通过创建该媒体分片对应的空文件实现上述图2中步骤204所述的消息反馈机制,具体本申请不做限定。下面分别通过图3、图4、图5和图6分别进行详细地介绍,其中,以两级服务器中一个服务器为cdn、另一个服务器为源站服务器进行说明:

请参阅图3,图3为在源站服务器中通过创建媒体分片对应的空文件来实现具备上述图2中步骤204所述的消息反馈机制的示意图,本申请实施例数据传输方法的另一个实施例包括:

301、源站服务器接收转码器发送的媒体分片的索引。

直播过程中,编码器侧会时时刷新媒体分片的索引,转码器接收到编码器发送的媒体分片的索引后,可以主动向源站服务器推送该媒体分片的索引。需要说明的是,源站服务器可以是向转码器发送索引请求,然后转码器再将该媒体分片的索引推送给该源站服务器,具体此处不做限定。

302、终端设备向cdn发送索引请求。

用户使用ott直播应用看直播视频时,终端设备可以通过索引的方式向cdn发送索引请求。

303、cdn向源站服务器发送索引请求。

而cdn接收到源站服务器发送的索引请求之后,可以向其上一级服务器,即向源站服务器发送该索引请求。

304、源站服务器创建该媒体分片对应的空文件。

源站服务器可以在预设的路径中根据该媒体分片的地址创建该媒体分片对应的空文件。具体可以是源站服务器通过该媒体分片的索引确定该媒体分片的地址,然后根据该媒体分片的地址创建对应的空文件。而源站服务器确定媒体分片的地址可以是通过该媒体分片的索引中携带的该媒体分片的地址确定,也可以是通过索引中携带的该媒体分片的编号或者该媒体分片的时间戳确定该媒体分片的地址,具体本申请不做限定。

本实施例中,步骤304与步骤302至303和步骤305至步骤307之间没有固定的执行先后顺序,可以先执行步骤302至303和步骤305至步骤307,也可以先执行步骤304,或者依据情况同时执行步骤304与步骤302至303和步骤305至步骤307,具体此处不做限定。

305、源站服务器向cdn发送第一成功消息和媒体分片的索引。

源站服务器可以向cdn反馈第一成功消息和媒体分片的索引,该第一成功消息用于指示cdn成功请求该媒体分片的索引,而该媒体分片的索引包括该媒体分片的地址,或者该媒体分片的编号,或者该媒体分片的时间戳,具体不做限定。

306、cdn向终端设备发送第一成功消息和媒体分片的索引。

cdn可以向终端设备发送该第一成功消息和媒体分片的索引,使得终端设备通过该第一成功消息确定成功请求媒体分片的索引,并获取该cdn发送的媒体分片的索引。

307、终端设备向cdn发送媒体分片的数据请求。

终端设备接收到该媒体分片的索引之后,通过该媒体分片的索引确定该媒体分片的地址,然后通过该媒体分片的地址向cdn发送该媒体分片的数据请求。

308、cdn向源站服务器发送媒体分片的数据请求。

cdn接收到该终端设备发送的媒体分片的数据请求时,若在第一时刻cdn中未存储有该媒体分片的数据时,则cdn会将该媒体分片的数据请求转达给源站服务器,以向源站服务器请求该媒体分片的数据,这里第一时刻是指该cdn接收到终端设备发送的媒体分片的数据请求的时刻。

309、源站服务器向cdn发送第二成功消息。

在前述步骤304中,源站服务器创建了媒体分片对应的空文件,则源站服务器可以实现如图2步骤204的消息反馈机制,即若在第二时刻源站服务器中未存储有该媒体分片的数据时,并且源站服务器将接收到该媒体分片的数据时,则源站服务器可以向cdn发送第二成功消息,其中,第二时刻为源站服务器接收到cdn发送的媒体分片的数据请求的时刻,而第二成功消息则用于指示cdn成功请求媒体分片的数据。

需要说明的是,当在第二时刻源站服务器中存储有该媒体分片的数据时,则源站服务器可以向cdn发送该第二成功消息和媒体分片的数据。

310、cdn向终端设备发送第二成功消息。

cdn接收源站服务器发送的第二成功消息后,则会将该第二成功消息发送给终端设备,以使得终端设备通过该第二成功消息确定成功请求该媒体分片的数据。

311、源站服务器接收转码器发送的媒体分片的数据。

转码器侧接收到编码器推送的媒体分片的数据后,可以向源站服务器发送该媒体分片的数据。

312、源站服务器向cdn发送媒体分片的数据。

源站服务器则可以向cdn发送该媒体分片的数据,以使得cdn可以向终端设备发送该媒体分片的数据。

313、cdn向终端设备发送媒体分片的数据。

cdn则可以向终端设备发送该媒体分片的数据,从而实现对该媒体分片的数据的传输。

本申请实施例中,首先,源站服务器创建该媒体分片的空文件;然后,当在当前时刻源站服务器中没有存储该媒体分片的数据并且该源站服务器将接收到该媒体分片的数据时,源站服务器向终端设备发送第二成功消息,其中,当前时刻是指源站服务器接收到该cdn发送的媒体分片的数据请求的时刻,使得终端设备不会由于接收到失败反馈再不断地进行重复请求和重试,从而避免了由于终端设备至cdn和cdn至源站服务器之间存在的不确定时延所带来的时延问题,从而提高直播的播放效果,提升用户体验。

请参阅图4,图4为cdn通过创建媒体分片的空文件从而具备上述图2中步骤204的消息反馈机制的示意图,本申请实施例数据传输方法的另一个实施例包括:

401、源站服务器接收转码器发送的媒体分片的索引。

402、终端设备向cdn发送索引请求。

403、cdn向源站服务器发送该索引请求。

404、源站服务器向cdn发送第一成功消息和媒体分片的索引。

步骤401至步骤404与前述图3中的步骤301至步骤303和步骤305类似,具体请参阅图3步骤301至步骤303和步骤305的详细介绍,这里不再赘述。

405、cdn创建该媒体分片对应的空文件。

cdn接收到源站服务器发送的媒体分片的索引后,可以通过该媒体分片的索引创建该媒体分片对应的空文件,具体可以是cdn通过该媒体分片的索引确定该媒体分片的地址,然后根据该媒体分片的地址创建对应的空文件。而cdn确定媒体分片的地址可以是通过该媒体分片的索引中携带的该媒体分片的地址确定,也可以是通过索引中携带的该媒体分片的编号或者该媒体分片的时间戳确定该媒体分片的地址,具体本申请不做限定。

需要说明的是,步骤405与步骤406之间没有固定的执行先后顺序,可以先执行步骤405,也可以先执行步骤406,或者依据情况同时执行步骤405和步骤406,具体此处不做限定。

406、cdn向终端设备发送第一成功消息和媒体分片的索引。

407、终端设备向cdn发送媒体分片的数据请求。

本实施例中,步骤406至步骤407与前述图3中的步骤306至步骤307类似,具体请参阅前述图3中步骤306至步骤307的详细介绍,这里不再赘述。

408、cdn向终端设备发送第二成功消息。

cdn接收终端设备发送的媒体分片的数据请求的时刻称为第一时刻,若在该第一时刻cdn中未存储有该媒体分片的数据,并且cdn将接收到源站服务器发送的媒体分片的数据时,则cdn可以向终端设备反馈第二成功消息,该第二成功消息用于指示该终端设备成功请求该媒体分片的数据。

需要说明的是,当在第一时刻cdn中存储有该媒体分片的数据时,则cdn可以直接向终端设备发送该第二成功消息和该媒体分片的数据。

409、源站服务器接收转码器发送的媒体分片的数据。

步骤409与前述图3中的步骤311类似,具体此处不再赘述。

410、cdn向源站服务器发送该媒体分片的数据请求。

由于cdn中在第一时刻未存储有该媒体分片的数据,所以cdn可以向源站服务器发送该媒体分片的数据请求。

411、源站服务器向cdn发送媒体分片的数据。

由于在步骤409中,转码器向源站服务器推送了该媒体分片的数据,所以源站服务器中存储有该媒体分片的数据,在接收到cdn发送的媒体分片的数据请求时,源站服务器可以向cdn发送该媒体分片的数据。

412、cdn向终端设备发送媒体分片的数据。

步骤412与前述图3中的步骤313类似,具体此处不再赘述。

需要说明的是,在步骤410中,cdn向源站服务器发送媒体分片的数据请求时,如果转码器向源站服务器推送媒体分片的数据是在步骤410之后,那么源站服务器中也未存储有该媒体分片的数据,则此时源站服务器会向cdn反馈失败消息,cdn则在预设时长内会重新向源站服务器发起媒体分片的数据请求,下面通过图5来详细介绍该cdn向源站服务器重新发起媒体分片的数据请求的过程:

501、源站服务器向cdn发送失败消息。

当在源站服务器接收到cdn发送媒体分片的数据请求且此时源站服务器中未存储有该媒体分片的数据时,则源站服务器可以向cdn反馈失败消息,该失败消息用于指示该cdn请求媒体分片的数据失败。

502、源站服务器接收转码器发送的媒体分片的数据。

步骤502与前述图4中的步骤409类似,具体此处不再赘述。

503、cdn向源站服务器发送媒体分片的数据请求。

cdn接收源站服务器反馈的失败消息,则可以确定请求媒体分片的数据失败;那么cdn可以在预设时长内再次向源站服务器发送该媒体分片的数据。

504、源站服务器向cdn发送第三成功消息和媒体分片的数据。

由于转码器在步骤502中已经向源站服务器推送该媒体分片的数据,所以源站服务器中存储有该媒体分片的数据,那么源站服务器接收到cdn发送的媒体分片的数据请求后,可以向cdn反馈第三成功消息和媒体分片的数据,该第三成功消息用于指示cdn成功请求该媒体分片的数据。

505、cdn向终端设备发送该媒体分片的数据。

步骤505与前述图4中的步骤412类似,具体此处不再赘述。

本申请实施例中,首先,cdn创建该媒体分片的空文件;然后,当在当前时刻cdn中没有存储该媒体分片的数据并且该cdn将接收到该媒体分片的数据时,cdn向终端设备发送第二成功消息,其中,当前时刻是指cdn接收到终端设备发送的媒体分片的数据请求的时刻,使得终端设备不会由于接收到失败反馈再不断地进行重复请求和重试,从而避免了由于终端设备至cdn和cdn至源站服务器之间存在的不确定时延所带来的时延问题,从而提高直播的播放效果,提升用户体验。

请参阅图6,图6为cdn和源站服务器中都创建该媒体分片的空文件,实现在cdn和源站服务器都具备上述图2中步骤204的消息反馈机制的示意图,本申请实施例数据传输方法的另一个实施例包括:

601、源站服务器接收转码器发送的媒体分片的索引。

602、终端设备向cdn发送索引请求。

603、cdn向源站服务器发送索引请求。

604、源站服务器创建媒体分片对应的空文件。

605、源站服务器向cdn发送第一成功消息和媒体分片的索引。

本实施例中,步骤601至步骤605与前述图3中的步骤301至步骤305类似,具体请参阅图3中步骤301至步骤305的详细介绍,这里不再赘述。

需要说明的是,步骤604与步骤602至步骤603、步骤605至步骤609之间没有固定的执行先后顺序,可以先执行步骤602至步骤603和步骤605至步骤609,也可以先执行步骤604,或者依据情况同时执行步骤604与步骤602至步骤603、步骤605至步骤609,具体此处不做限定。

606、cdn创建该媒体分片对应的空文件。

步骤606与前述图4中的步骤405类似,具体请参阅前述图4中的步骤405的详细描述,这里不再赘述。

607、cdn向终端设备发送第一成功消息和媒体分片的索引。

608、终端设备向cdn发送媒体分片的数据请求。

步骤607至步骤608与前述图3中的步骤306至步骤307类似,具体请参阅前述图3中步骤306至步骤307的详细介绍,这里不再赘述。

609、cdn向终端设备发送第二成功消息。

步骤609与前述图4中的步骤408类似,具体请参阅前述图4中的步骤408的详细介绍,这里不再赘述。

610、cdn向源站服务器发送媒体分片的数据请求。

步骤610与前述图4中的步骤410类似,具体请参阅前述图4中的步骤410的详细介绍,这里不再赘述。

611、源站服务器向cdn发送第三成功消息。

步骤611与前述图3中的步骤309类似,具体请参阅前述图3中的步骤309的详细介绍,这里不再赘述。

612、源站服务器接收转码器发送的媒体分片的数据。

613、源站服务器向cdn发送媒体分片的数据。

614、cdn向终端设备发送媒体分片的数据。

步骤612至步骤614与前述图3中的步骤311至步骤313类似,具体请参阅前述图3中的步骤311至步骤313的详细介绍,这里不再赘述。

本申请实施例中,在cdn和源站服务器中都创建该媒体分片的空文件,使得cdn和源站服务器都具备上述图2中步骤204的消息反馈机制,这样不仅仅使得终端设备不会由于接收到失败反馈再不断地进行重复请求和重试,从而避免由于终端设备至cdn和cdn至源站服务器之间存在的不确定时延所带来的时延问题,还可以使得cdn不会由于接收到源站服务器反馈的失败消息再不断地向源站服务器进行重复请求和重试,从而避免了cdn至源站服务器之间存在的不确定时延所带来的时延问题,从而更好地降低直播时延,提高直播的播放效果和用户体验。

上面对本申请实施例中的数据传输方法进行了描述,下面对本申请实施例中的数据传输装置进行描述,请参阅图7,其中,创建单元704为可选单元;本申请实施例中数据传输装置的一个实施例包括:

接收单元701,用于接收终端设备发送的索引请求;

发送单元702,用于向终端设备发送媒体分片的索引,该索引包括所述媒体分片的地址;

该接收单元701,还用于接收该终端设备发送的该媒体分片的数据请求;

该发送单元702,还用于当在第一时刻该数据传输装置中未存储有该媒体分片的数据并且该数据传输装置将接收到该媒体分片的数据时,则向该终端设备发送第一成功消息,该第一成功消息用于指示该终端设备请求该媒体分片的数据成功,该第一时刻为该数据传输装置接收到该终端设备发送的该媒体分片的数据请求的时刻;

获取单元703,用于获取该媒体分片的数据;

该发送单元702,还用于向该终端设备发送该媒体分片的数据。

一种可能的实现方式中,该获取单元703还用于:

获取该媒体分片的索引;

该数据传输装置还包括:

创建单元,用于根据该媒体分片的地址创建该媒体分片对应的空文件。

另一种可能的实现方式中,该发送单元702还用于:

向第二服务器发送该索引请求;

该接收单元701还用于:

接收该第二服务器发送的该媒体分片的索引;

该发送单元702还用于:

向该第二服务器发送该媒体分片的数据请求;

该接收单元701还用于:

当在第二时刻该第二服务器中存储有该媒体分片的数据时,接收该第二服务器发送的第二成功消息,该第二成功消息用于指示该数据传输装置请求该媒体分片的数据成功,该第二时刻为该第二服务器接收到该数据传输装置发送的该媒体分片的数据请求的时刻。

另一种可能的实现方式中,当在该第二时刻该第二服务器中未存储有该媒体分片的数据时,该接收单元701还用于:

接收该第二服务器发送的失败消息,该失败消息用于指示该数据传输装置请求该媒体分片的数据失败;

该发送单元702还用于:

向该第二服务器发送该媒体分片的数据请求;

该接收单元701还用于:

当在第三时刻所述第二服务器中存储有该媒体分片的数据时,接收该第二服务器发送的第三成功消息,该第三成功消息用于指示该数据传输装置请求该媒体分片的数据成功,该第三时刻为该第二服务器再次接收到该数据传输装置发送的该媒体分片的数据请求的时刻。

另一种可能的实现方式中,该发送单元702具体用于:

通过该第二服务器向该终端设备发送该媒体分片的索引;

通过该第二服务器向该终端设备发送该第一成功消息;

通过该第二服务器向该终端设备发送该媒体分片的数据。

另一种可能的实现方式中,该发送单元702具体用于:

向第二服务器发送该索引请求;

该接收单元701还用于:

接收该第二服务器发送的该媒体分片的索引;

该发送单元702具体用于:

向该第二服务器发送该媒体分片的数据请求;

该接收单元701还用于:

当在第二时刻该第二服务器中未存储有该媒体分片的数据且该第二服务器将接收到该媒体分片的数据时,接收该第二服务器发送的第二成功消息,该第二成功消息用于指示该数据传输装置请求该媒体分片的数据成功,该第二时刻为该第二服务器接收到该媒体分片的数据请求的时刻。

本申请实施例中,终端设备通过索引的方式向数据传输装置的接收单元701发送索引请求,然后发送单元702向该终端设备发送媒体分片的索引,该媒体分片的索引可以包括该媒体分片的地址。终端设备可以根据该媒体分片的地址向接收单元701发送媒体分片的数据请求,而当在当前时刻数据传输装置中没有存储该媒体分片的数据并且该数据传输装置将接收到该媒体分片的数据时,那么发送单元702可以向终端设备发送第一成功消息,告知该终端设备请求媒体分片的数据成功,那么终端设备则会等待第一服务器向其发送媒体分片的数据;然后获取单元703获取该媒体分片的数据,然后发送单元702向终端设备发送该媒体分片的数据。通过本申请的技术方案,当在当前时刻数据传输装置中没有存储该媒体分片的数据并且该数据传输装置将接收到该媒体分片的数据时,发送单元702向终端设备发送第一成功消息,使得终端设备不会由于接收到失败反馈再不断地进行重复请求和重试,从而避免了由于终端设备至服务器之间存在的不确定时延所带来的时延问题,从而提高直播的播放效果,提升用户体验。

本申请还提供一种数据传输装置800,请参阅图8,本申请实施例中数据传输装置一个实施例包括:

处理器801、存储器802、输入输出设备803以及总线804;

处理器801、存储器802、输入输出设备803分别与总线804相连,该存储器中存储有计算机指令;

该输入输出设备803,用于接收终端设备发送的索引请求;向所述终端设备发送媒体分片的索引,所述索引包括所述媒体分片的地址;接收所述终端设备发送的所述媒体分片的数据请求;当在第一时刻所述数据传输装置中未存储有所述媒体分片的数据并且所述数据传输装置将接收到所述媒体分片的数据时,则向所述终端设备发送第一成功消息,所述第一成功消息用于指示所述终端设备请求所述媒体分片的数据成功,所述第一时刻为所述数据传输装置接收到所述终端设备发送的所述媒体分片的数据请求的时刻;获取所述媒体分片的数据;向所述终端设备发送所述媒体分片的数据。

还应理解,上述图2至图6所对应的方法实施例中,该第一服务器所执行的步骤均可以基于该图8所示的数据传输装置800结构。

本实施例中,终端设备通过索引的方式向数据传输装置的该输入输出设备803发送索引请求,然后该输入输出设备803向该终端设备发送媒体分片的索引,该媒体分片的索引可以包括该媒体分片的地址。终端设备可以根据该媒体分片的地址向该输入输出设备803发送媒体分片的数据请求,而当在当前时刻数据传输装置中没有存储该媒体分片的数据并且该数据传输装置将接收到该媒体分片的数据时,那么该输入输出设备803可以向终端设备发送第一成功消息,告知该终端设备请求媒体分片的数据成功,那么终端设备则会等待第一服务器向其发送媒体分片的数据;然后该输入输出设备803获取该媒体分片的数据,然后该输入输出设备803向终端设备发送该媒体分片的数据。通过本申请的技术方案,当在当前时刻数据传输装置中没有存储该媒体分片的数据并且该数据传输装置将接收到该媒体分片的数据时,该输入输出设备803向终端设备发送第一成功消息,使得终端设备不会由于接收到失败反馈再不断地进行重复请求和重试,从而避免了由于终端设备至服务器之间存在的不确定时延所带来的时延问题,从而提高直播的播放效果,提升用户体验。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1