CN115002083A - 实时流媒体数据传输的方法、设备及存储介质 - Google Patents

实时流媒体数据传输的方法、设备及存储介质 Download PDF

Info

Publication number
CN115002083A
CN115002083A CN202210567651.3A CN202210567651A CN115002083A CN 115002083 A CN115002083 A CN 115002083A CN 202210567651 A CN202210567651 A CN 202210567651A CN 115002083 A CN115002083 A CN 115002083A
Authority
CN
China
Prior art keywords
node
pull
information
alternative
stream
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.)
Granted
Application number
CN202210567651.3A
Other languages
English (en)
Other versions
CN115002083B (zh
Inventor
洪小迟
卢日
肖凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210567651.3A priority Critical patent/CN115002083B/zh
Publication of CN115002083A publication Critical patent/CN115002083A/zh
Priority to PCT/CN2023/095623 priority patent/WO2023226949A1/zh
Application granted granted Critical
Publication of CN115002083B publication Critical patent/CN115002083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种实时流媒体数据传输的方法、设备及存储介质。本申请的方法,通过将拉流客户端分别与多个拉流节点建立通信链路,并建立拉流节点与推流节点间的通信链路,形成多条用于拉流的链路,不同链路中使用不同的拉流节点。其中一条链路作为主链路,其他链路作为备选链路。当主链路中拉流客户端与拉流节点间的通信链路不符合预设条件时,将一个备选链路切换为主链路,通过切换后的主链路拉取流媒体数据,能够在拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞时,及时地切换拉流使用的拉流节点,能够避免因拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞造成的卡顿延迟、丢包等状况,提高了流媒体数据的传输质量和实时性。

Description

实时流媒体数据传输的方法、设备及存储介质
技术领域
本申请涉及通信技术,尤其涉及一种实时流媒体数据传输的方法、设备及存储介质。
背景技术
随着通信技术的发展,越来越多的用户依赖于视频直播、音视频会议等实时流媒体进行交互。视频直播尤其是低延迟直播(Real-time Streaming,RTS),以及音视频会议等实时音视频通信(Real-time Communication,RTC)的场景对延迟和传输质量的要求较高,对数据传输的实时性要求较高。
内容分发网络(Content Delivery Network,CDN)是一种常用的实现流媒体数据传输的网络。在CDN中,拉流客户端(即播放客户端)与CDN中的一个边缘节点(即拉流节点)建立通信链路,拉流客户端与拉流节点间采用单链路方式进行数据传输,在通信链路发生抖动等状况时,会造成数据传输出现诸如卡顿延迟、丢包等现象,造成数据传输的质量差,难以满足RTS、RTC等场景下流媒体数据传输的实时性要求。
发明内容
本申请提供一种实时流媒体数据传输的方法、设备及存储介质,用以解决目前CDN中数据传输的质量差,难以满足RTS、RTC等场景下流媒体数据传输的实时性要求的问题。
第一方面,本申请提供一种实时流媒体数据传输方法,应用于拉流客户端,包括:
接收DNS服务器提供的目标拉流节点的信息,与所述目标拉流节点建立第一通信链路;
向所述目标拉流节点发送第一拉流请求,以使所述目标拉流节点建立与推流节点间的第二通信链路,所述第一通信链路和所述第二通信链路构成用于拉取流媒体数据的主链路;
接收所述目标拉流节点发送的备选节点的信息,所述备选节点的信息是由直播中心确定并发送给所述目标拉流节点的;
根据所述备选节点的信息,选择至少一个备选节点作为备选拉流节点,与每一所述备选拉流节点建立第三通信链路;
向每一所述备选拉流节点发送第二拉流请求,以使每一所述备选拉流节点建立与推流节点间的第四通信链路,所述第三通信链路和所述第四通信链路构成拉取流媒体数据的备选链路;
当所述第一通信链路不符合预设条件时,选择一个备选链路切换为主链路,通过切换后的主链路拉取流媒体数据,并将切换前的主链路切换为备选链路。
第二方面,本申请提供一种实时流媒体数据传输方法,应用于目标拉流节点,包括:
接收拉流客户端发送的第一拉流请求,所述第一拉流请求携带媒体流信息、拉流客户端的访问地址及是否支持备份链路的信息,其中所述媒体流信息包含流媒体数据的域名;
向直播中心发送携带所述媒体流信息的第一链路请求,并在确定所述拉流客户端支持备份链路时向直播中心发送备选节点请求,所述备选节点请求携带流媒体数据的域名和拉流客户端的访问地址;
接收直播中心发送的第二通信链路的信息,并根据所述第二通信链路的信息建立与推流节点的第二通信链路;
在接收到直播中心发送的备选节点的信息的情况下,向所述拉流客户端发送所述备选节点的信息。
第三方面,本申请提供一种实时流媒体数据传输方法,应用于直播中心,包括:
接收目标拉流节点发送的第一链路请求和备选节点请求,所述第一链路请求携带媒体流信息,所述备选节点请求携带流媒体数据的域名和拉流客户端的访问地址;
当接收到所述第一链路请求时,根据所述媒体流信息生成所述目标拉流节点与推流节点间的第二通信链路的信息,并向所述目标拉流节点发送所述第二通信链路的信息;
当接收到所述备选节点请求时,根据所述流媒体数据的域名和拉流客户端的访问地址,选取至少一个备选节点,并向所述目标拉流节点发送所述备选节点的信息。
第四方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现上述任一方面提供的方法。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述任一方面提供的方法。
本申请提供的实时流媒体数据传输的方法中,通过将拉流客户端分别与多个拉流节点建立通信链路,并建立拉流节点与推流节点间的通信链路,形成多条用于拉流的链路,不同链路中使用不同的拉流节点。其中一条链路作为主链路,其他链路作为备选链路。当主链路中拉流客户端与拉流节点间的通信链路不符合预设条件时,通过将一个备选链路切换为主链路,通过切换后的主链路拉取流媒体数据,能够在拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞时,及时地切换拉流使用的拉流节点,从而能避免因拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞造成的卡顿延迟、丢包等状况,提高了流媒体数据的传输质量和实时性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的一种通信链路的示例图;
图2为本申请一实施例提供的拉流客户端执行实时流媒体数据传输方法的流程图;
图3为本申请提供的一种流媒体数据传输主链路的建立流程的框架图;
图4为本申请提供的一种拉流节点与推流节点间的通信链路的示例图;
图5为本申请提供的一种目标拉流节点作为中继节点的通信链路的示例图;
图6为本申请一实施例提供的目标拉流节点执行实时流媒体数据传输方法的流程图;
图7为本申请一实施例提供的直播中心执行实时流媒体数据传输方法的流程图;
图8为本申请一实施例提供的实时流媒体数据传输方法的流程图;
图9为本申请一实施例提供的一种实时流媒体数据传输装置的结构示意图;
图10为本申请另一实施例提供的一种实时流媒体数据传输装置的结构示意图;
图11为本申请另一实施例提供的一种实时流媒体数据传输装置的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
拉流客户端:也称为播放客户端,是指从CDN中拉流以获取流媒体数据的客户端。
拉流节点:CDN中与拉流客户端建立通信链路的边缘节点,拉流客户端从拉流节点拉流。
推流客户端:向CDN推送流媒体数据的客户端。
推流节点:CDN中与推流客户端建立通信链路的边缘节点,推流客户端向推流节点推送流媒体数据。
本申请中,为了区分同一拉流客户端对应的多个拉流节点,用目标拉流节点指代DNS服务器第一次为拉流客户端指定的拉流节点,用备选拉流节点指代在目标拉流节点之后与拉流客户端建立通信链路的拉流节点。
为了区分不同的通信链路,第一通信链路指代拉流客户端与目标拉流节点间的通信链路,第二通信链路指代目标拉流节点与推流节点间的通信链路,第三通信链路指代拉流客户端与备选拉流节点之间的通信链路,第四通信链路指代备选拉流节点与推流节点间的通信链路。
另外,第一拉流请求指代拉流客户端向目标拉流节点发送的拉流请求,第二拉流请求指代拉流客户端向备选拉流节点发送的拉流请求。第一链路请求指代目标拉流节点向直播中心发送的链路请求,第二链路请求指代备选拉流节点向直播中心发送的链路请求。
目前,CDN主要包括CDN的中心和部署在各地的节点。其中,CDN的中心包括直播中心、调度系统等。部署在各地的节点通常分为两部分:一部分是边缘节点,通常可以作为拉流节点、推流节点与客户端建立通信连接;另一部分节点包括只承担在拉流节点与推流节点间的通信中继角色的中继节点。
传统的基于CDN的流媒体数据传输方法中,拉流客户端与一个拉流节点建立通信连接,拉流客户端与拉流节点间采用单链路方式进行数据传输,在拉流客户端与拉流节点间通信链路发生抖动等状况时,会造成数据传输出现诸如卡顿延迟、丢包等现象,流媒体数据传输的质量差,难以满足RTC、RTS等场景中流媒体数据传输的实时性要求。
本申请提供的实时流媒体数据传输方法,可以应用于RTS、RTC等对实时性要求高的场景中,如视频直播、音视频会议等场景。本申请的方法,将拉流客户端分别与多个拉流节点建立通信链路,并建立拉流节点与推流节点间的通信链路,形成多条用于拉流的链路,不同链路中使用不同的拉流节点。其中一条链路作为主链路,其他链路作为备选链路。当主链路中拉流客户端与拉流节点间的通信链路不符合预设条件时,通过将一个备选链路切换为主链路,通过切换后的主链路拉取流媒体数据,能够在拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞时,及时地切换拉流使用的拉流节点,从而能避免因拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞造成的卡顿延迟、丢包等,提高了流媒体数据的传输质量和实时性。
示例性地,图1为本申请提供的一种通信链路的示例图,如图1所示,拉流客户端100与拉流节点20间具有第一通信链路,拉流节点20与推流节点30间具有第二通信链路,第一通信链路与第二通信链路一起构成一条用于拉流的链路。拉流客户端100与拉流节点40间具有第三通信链路,拉流节点40与推流节点30间具有第四通信链路,第三通信链路和第四通信链路一起构成另一条用于拉流的链路。其中,拉流节点20和拉流节点40是CDN中两个不同的边缘节点,拉流客户端100分别与两个不同的边缘节点建立通信链路。上述两条用于拉流的链路中,一条链路作为主链路,另一条作为备选链路,拉流客户端100通过主链路拉取流媒体数据,备选链路处于保持连接的状态。当主链路中第一段链路(如第一通信链路或第三通信链路)不符合预设条件时,将备选链路切换为主链路,拉流客户端100通过切换后的主链路拉取流媒体数据,并将切换前的主链路切换为备选链路,进入保持连接的状态。
另外,图1中的第二通信链路和第四通信链路用使用虚线,表示拉流节点与推流节点间的通信链路中拉流节点与推流节点可以直接连接,或者通过一个或多个中继节点连接。图1中仅以建立一条备选链路作为示例进行说明,在其他实例中还可以建立多条备选链路。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请一实施例提供的拉流客户端执行实时流媒体数据传输方法的流程图。如图2所示,该方法具体步骤如下:
步骤S201、接收DNS服务器提供的目标拉流节点的信息,与目标拉流节点建立第一通信链路。
在实际应用中,用户想要播放流媒体数据时,通过拉流客户端访问流媒体数据的域名,拉流客户端向DNS服务器发送对该流媒体数据的域名的解析请求,DNS服务器解析该流媒体数据的域名,并在CDN中选择一个边缘节点作为拉流客户端对应的目标拉流节点,将该目标拉流节点的信息返回给拉流客户端。
其中,DNS服务器提供的目标拉流节点的信息至少包括目标拉流节点的IP。拉流客户端根据目标拉流节点的IP与目标拉流节点建立通信链路。
步骤S202、向目标拉流节点发送第一拉流请求,以使目标拉流节点建立与推流节点间的第二通信链路,第一通信链路和第二通信链路构成用于拉取流媒体数据的主链路。
在与目标拉流节点建立第一通信链路之后,拉流客户端通过第一通信链路向目标拉流节点发送第一拉流请求。其中,第一拉流请求携带拉流客户端想要拉取的流媒体数据的媒体流信息。目标拉流节点在接收到第一拉流请求后,会解析出媒体流信息,并向CDN的直播中心发送携带该媒体流信息的第一链路请求。直播中心在接收到第一链路请求后,解析出流媒体信息,基于该流媒体信息确定推流节点的信息,并生成目标拉流节点与推流节点间的第二通信链路的信息,将第二通信链路的信息反馈给目标拉流节点。目标拉流节点根据第二通信链路的信息建立与推流节点间的第二通信链路。
第一通信链路和第二通信链路构成了拉流客户端与推流节点间的一条用于拉流的链路,作为拉流客户端拉取流媒体数据的主链路。推流客户端与推流节点间的通信链路与该主链路一起,形成了一条“推流客户端→推流节点→目标拉流节点→拉流客户端”这样一条流媒体数据传输的全链路。另外,目标拉流节点与推流节点间的第二通信链路可以不包括中继节点,或者包括至少一个中继节点。
在主链路建立之后,拉流客户端即可通过主链路拉取流媒体数据。
示例性地,以视频直播场景为例,流媒体数据传输主链路的建立流程的框架如图3所示,主播作为直播视频发布者,将所采集的直播视频数据通过推流客户端200发布到CDN中的一个推流节点30上。用户想要观看直播视频时,可以通过拉流客户端100访问直播视频的域名,比如该直播视频的域名为“www.######.com”,拉流客户端100会向DNS服务器11发起对该直播视频域名的解析请求,DNS服务器11解析该直播视频域名并在CDN中选择一个边缘节点作为拉流客户端100对应的目标拉流节点20,并将该目标拉流节点20的IP返回给拉流客户端100。拉流客户端100根据目标拉流节点20的IP与目标拉流节点20建立第一通信链路。拉流客户端100向目标拉流节点20发送拉流请求。接收到该拉流请求后,目标拉流节点20向直播中心12发送链路请求。直播中心12基于链路请求生成目标拉流节点20与推流节点30间的第二通信链路的信息,将第二通信链路的反馈给目标拉流节点20。目标拉流节点20根据第二通信链路的信息建立与推流节点30间的第二通信链路。目标拉流节点20可以通过第二通信链路从推流节点30拉取直播视频流,并将直播视频流发送给拉流客户端100。拉流客户端100播放直播视频流以供观看者在线观看。
需要说明的是,目标拉流节点20与推流节点30间的第二通信链路可以不包含中继节点、或者包括一个或多个中继节点,图3中以第二通信链路包括一个中继节点40为例进行示例性地说明。
步骤S203、接收目标拉流节点发送的备选节点的信息,备选节点的信息是由直播中心确定并发送给目标拉流节点的。
本实施例中,直播中心根据目标拉流节点的请求,可以从CDN的边缘节点中选择一个或多个边缘节点作为备选节点,并将备选节点的信息发送给目标拉流节点,目标拉流节点将备选节点的信息转发给拉流客户端。
另外,直播中心选择备选节点时,可以采用与DNS服务器为拉流客户端选择拉流节点的相同的选择策略实现,此处不再赘述。
步骤S204、根据备选节点的信息,选择至少一个备选节点作为备选拉流节点,与每一备选拉流节点建立第三通信链路。
在接收到备选节点的信息之后,拉流客户端从中选择一个或多个备选节点作为备选拉流节点,与每一备选拉流节点建立通信链路,使得拉流客户端与多个拉流节点建立通信链路,实现拉流客户端与多个拉流节点的多链路的连接方式。
一种可能的情况下,拉流客户端只接收到的一个备选节点的信息,该步骤中拉流客户端直接将该备选节点作为备选拉流节点,并与该备选拉流节点建立第三通信链路。
步骤S205、向每一备选拉流节点发送第二拉流请求,以使每一备选拉流节点建立与推流节点间的第四通信链路,第三通信链路和第四通信链路构成拉取流媒体数据的备选链路。
在与备选拉流节点建立第三通信链路之后,拉流客户端通过第三通信链路向备选拉流节点发送第二拉流请求。其中,第二拉流请求携带拉流客户端想要拉取的流媒体数据的媒体流信息。在接收到第二拉流请求后,备选拉流节点解析出媒体流信息,并向CDN的直播中心发送携带该媒体流信息的第二链路请求。直播中心在接收到第二链路请求后,解析出流媒体信息,基于该流媒体信息确定推流节点的信息,并生成备选拉流节点与推流节点间的第四通信链路的信息,将第四通信链路的信息反馈给备选拉流节点。备选拉流节点根据第四通信链路的信息建立与推流节点间的第四通信链路。
通过第三通信链路和第四通信链路,拉流客户端与推流节点间建立了一条用于拉取流媒体数据的备选链路。推流客户端与推流节点间的通信链路与每一备选链路一起,形成一条“推流客户端→推流节点→备选拉流节点→拉流客户端”这样一条流媒体数据传输的全链路。其中,备选拉流节点与推流节点间的第四通信链路可以不包括中继节点,也可以包括至少一个中继节点。
在建立备选链路之后,备选链路处于保持连接状态,暂时不用于传输流媒体数据。
步骤S206、当第一通信链路不符合预设条件时,选择一个备选链路切换为主链路,通过切换后的主链路拉取流媒体数据,并将切换前的主链路切换为备选链路。
其中,预设条件用于约束通信链路的质量信息。当通信链路不符合预设条件时,说明该通信链路的质量较差;当通信链路符合预设条件时,说明通信链路的质量较好。
示例性地,通信链路的质量信息可以是对该通信链路的质量探测结果,或者是基于该通信链路传输流媒体数据的真实情况计算的传输质量指标(如传输质量指标可以包括卡顿率、延迟、丢包率中的至少一项),或者是其他能够衡量通信链路的通信质量的信息。
预设条件可以根据具体应用场景中拉流客户端与拉流节点间的通信链路的要求进行设置,不同的应用场景中可以设置不同的预设条件。
该步骤中,预设条件用于约束第一通信链路的质量信息。当拉流客户端与目标拉流节点之间的第一通信链路发生抖动、或者网络拥塞等状况,导致第一通信链路不符合预设条件时,可以确定第一通信链路的通信质量较差,不符合当前应用场景对该段通信链路的质量要求,拉流客户端选择一个该段通信链路符合预设条件的备选链路,将该备选链路切换为主链路,通过切换后的主链路拉取流媒体数据。
在切换主链路之后,拉流客户端将切换前的主链路切换为备选链路,该链路进入保持连接状态,暂不用于流媒体数据的传输。
需要说明的是,在当前用于拉取流媒体数据的主链路中拉流客户端与拉流节点间的这段链路不符合预设条件时,可以继续进行链路切换,将一个备选链路切换为主链路,将切换前的主链路切换为备选链路。
本实施例中,在建立“推流节点→目标拉流节点→拉流客户端”这样一条主链路之后,选择至少一个备选拉流节点,基于每一备选拉流节点建立一条“推流节点→备选拉流节点→拉流客户端”这样的备选链路,当主链路中拉流客户端与目标拉流节点间这段通信链路不符合预设条件时,可以将一条这段通信链路符合预设条件的备选链路切换为主链路,也即,在拉流客户端与一个拉流节点间的通信链路因发生抖动、网络拥塞等状况导致符合预设条件时,可以及时地切换使用另一拉流节点,通过拉流客户端与另一拉流节点间的通信链路进行拉流,能够避免因拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞造成的卡顿延迟、丢包等,提高了流媒体数据的传输质量和实时性。
一种可选实施例中,可以通过配置CDN中的边缘节点的属性信息,使得边缘节点具有可作为中继节点的属性。这样,在建立通信链路时可选用的中继节点更多,并且两个边缘节点之间可以直接建立通信链路,链路的组合方式更加灵活,能够建立通信质量更好的通信链路。
示例性地,在一种可能的情况下,拉流节点与要建立通信链路的推流节点间的距离很近时,拉流节点直接与推流节点建立的通信链路(不包含中继节点),可能比包含中继节点的通信链路的通信质量更好,此时,拉流节点直接与推流节点建立通信链路。
例如,如图4所示,边缘节点A为拉流节点20,边缘节点B为拉流节点20要建立通信链路的推流节点30,实线(1)表示边缘节点A与边缘节点B间直接建立的通信链路,该通信链路不包括中继节点。虚线(2)和(3)组成的通信链路为边缘节点A与边缘节点B间的基于传统方式组件的另一通信链路,该通信链路包括中继节点C。当边缘节点A与边缘节点B距离很近时,实线(1)的通信链路优于虚线(2)和(3)组成的通信链路,在拉流节点建立与推流节点间的通信链路时,建立实线(1)所示的通信链路。
具体地,在备选拉流节点建立与推流节点间的第四通信链路时,可以将CDN中的其他拉流节点或推流节点作为中继节点。
一种可能的情况下,在备选拉流节点与推流节点间的第四通信链路中,可以不包含任何中继节点,以使所建立的备选拉流节点与推流节点间的第四通信链路的质量更好的。
另一种可能的情况下,在各个备选拉流节点与推流节点间的第四通信链路中,可以有至少一个第四通信链路包含中继节点,中继节点中包括CDN中的拉流节点或推流节点。这样,链路的组合方式更加灵活,确定第四通信链路时可选的链路更多,能够提高建立的第四通信链路的质量。
再一种可能的情况下,备选拉流节点与推流节点间的第四通信链路包括中继节点,中继节点包括目标拉流节点。这样,在拉流客户端与目标拉流节点间的通信质量较差,但目标拉流节点与推流节点间的第二通信链路的通信质量较好时,拉流客户端可以通过备选拉流节点与目标拉流节点建立通信链路,仍然利用第二通信链路拉取流媒体数据,以提高流媒体数据传输的质量和实时性。
例如,如图5所示,虚线(4)表示目标拉流节点20与推流节点30间的第二通信链路,虚线(4)和实线(5)构成备选拉流节点40与推流节点30间的第四通信链路。当第一通信链路通信质量较好时,拉流客户端100可以通过(4)和第一通信链路拉取流媒体数据。当第一通信链路通信质量较差时,拉流客户端100可以通过(4)、(5)和第三通信链路拉取流媒体数据。
一种可选实施例中,拉流客户端可以实时地获取第一通信链路和第三通信链路的通信质量信息,以实现对主链路和备选链路中拉流客户端与拉流节点间的这段通信链路的实时质量监测,使得当主链路中这段通信链路的质量较差时,能够及时地切换到这段通信链路质量更好的备选链路,从而提高流媒体数据传输的质量和实时性。
可选地,备选链路处于保持连接状态,并且具有实现质量探测的能力。拉流客户端可以实时地接收第一通信链路和第三通信链路的质量探测结果,基于质量探测结果和预设条件,拉流客户端可以确定第一通信链路和第三通信链路的通信质量状况。
可选地,拉流客户端可以基于与目标拉流节点间传输数据的真实情况,计算丢包率、延迟等指标信息,作为第一通信链路的通信质量信息。同理,拉流客户端还可以基于与备选拉流节点间传输数据的真实情况,计算丢包率、延迟等指标信息,作为第三通信链路的通信质量信息。
一种可选地实施例中,第一拉流请求携带媒体流信息、拉流客户端的访问地址及拉流客户端是否支持备份链路的信息。
其中,第一拉流请求携带的媒体流信息用于生成第二通信链路的信息。通过在第一拉流请求中携带媒体流信息,使得目标拉流节点接收到第一拉流请求后,基于媒体流信息向直播中心发送第一链路请求。在接收到第一链路请求后,直播中心会根据媒体流信息生成第二通信链路的信息,并将第二通信链路的信息反馈给目标拉流节点。目标拉流节点接收到第二通信链路的信息后,建立与推流节点的第二通信链路。
拉流客户端的访问地址及拉流客户端是否支持备份链路的信息是选择备选节点所依据的信息。通过在第一拉流请求中携带拉流客户端的访问地址及拉流客户端是否支持备份链路的信息,使得目标拉流节点接收到第一拉流请求后,基于拉流客户端是否支持备份链路的信息决定是否向直播中心请求备选节点的信息。若拉流客户端支持备份链路,则目标拉流节点向直播中心发送备选节点请求,使得直播中心向目标拉流节点反馈备选节点的信息。目标拉流节点接收到备选节点的信息后,将备选节点的信发送给拉流客户端。另外,若拉流客户端不支持备份链路,则目标拉流节点不向直播中心发送备选节点请求。
第二拉流请求携带媒体流信息和备份链路标记信息。其中,第二拉流请求携带的媒体流信息用于生成第二通信链路的信息。通过在第二拉流请求中携带媒体流信息,使得备选拉流节点接收到第二拉流请求后,基于媒体流信息向直播中心发送第二链路请求。在接收到第二链路请求后,直播中心会根据媒体流信息生成第四通信链路的信息,并将第四通信链路的信息反馈给备选拉流节点。备选拉流节点接收到第四通信链路的信息后,建立与推流节点的第四通信链路。
备份链路标记信息用于告知备选拉流节点即将建立的第四通信链路属于备选链路,无需请求备选节点的信息。
通过在向目标拉流节点和备选拉流节点发送的拉流请求中携带不同的信息,使得目标拉流节点具有获取备选节点的信息的能力,备选拉流节点可以正常建立与推流节点间的通信链路,并且不会进行不必要的请求备选节点信息的处理。
一种可选地实施例中,备选节点的信息可以包括备选节点的访问地址(IP)和选择优先级。
其中,备选节点是由直播中心根据备选拉流节点的IP,结合CDN中边缘节点的位置、所属运营商、负载和健康状态等信息中的至少一项,确定与拉流客户端通信质量较好的边缘节点。选择优先级是指备选节点被选为备选拉流节点的优先级。
拉流客户端接收到备选节点的信息后,可以基于备选节点的选择优先级,择优选择至少一个备选节点作为备选拉流节点,能够建立更高通信质量的第三通信链路。
在与每一备选拉流节点建立第三通信链路时,拉流客户端根据每一备选拉流节点的访问地址,与每一备选拉流节点建立第三通信链路。
图6为本申请一实施例提供的目标拉流节点执行实时流媒体数据传输方法的流程图。如图6所示,该方法具体步骤如下:
步骤S601、接收拉流客户端发送的第一拉流请求,第一拉流请求携带媒体流信息、拉流客户端的访问地址及是否支持备份链路的信息,其中媒体流信息包含流媒体数据的域名。
其中,第一拉流请求携带的媒体流信息用于生成第二通信链路的信息。
拉流客户端的访问地址及拉流客户端是否支持备份链路的信息,用于确定备选节点的信息。
接收到第一拉流请求后,目标拉流节点解析第一拉流请求,以获取其中携带的媒体流信息、拉流客户端的访问地址及是否支持备份链路的信息。
步骤S602、向直播中心发送携带媒体流信息的第一链路请求。
解析到媒体流信息后,目标拉流节点可以向直播中心发送携带媒体流信息的第一链路请求。在接收到第一链路请求后,直播中心会根据媒体流信息生成第二通信链路的信息,并将第二通信链路的信息反馈给目标拉流节点。
步骤S603、在确定拉流客户端支持备份链路时向直播中心发送备选节点请求,备选节点请求携带流媒体数据的域名和拉流客户端的访问地址。
解析到拉流客户端是否支持备份链路的信息后,确定拉流客户端支持备份链路,并解析到拉流客户端的访问地址和媒体流信息中的流媒体数据的域名时,目标拉流节点向直播中心发送备选节点请求。直播中心接收到备选节点请求后,根据流媒体数据的域名和拉流客户端的访问地址,结合CDN中边缘节点的位置、所属运营商、负载和健康状态等信息,选择可以作为目标拉流节点的备选的边缘节点,作为备选节点,并将备选节点的信息反馈给目标拉流节点。
步骤S604、接收直播中心发送的第二通信链路的信息,并根据第二通信链路的信息建立与推流节点的第二通信链路。
其中,第二通信链路的信息包括第二通信链路的路径信息,具体可以包括第二通信链路中的每一跳节点的地址信息。
目标拉流节点接收到第二通信链路的信息后,根据第二通信链路的信息建立与推流节点的第二通信链路。
步骤S605、在接收到直播中心发送的备选节点的信息的情况下,向拉流客户端发送备选节点的信息。
目标拉流节点接收到备选节点的信息后,将备选节点的信息发送给拉流客户端,使得拉流客户端根据备选节点的信息,选择至少一个备选节点作为备选拉流节点,与每一备选拉流节点建立第三通信链路,并向每一备选拉流节点发送第二拉流请求,以使每一备选拉流节点建立与推流节点间的第四通信链路,从而实线至少一条备选链路的建立。
本实施例中,目标拉流节点可以向直播中心请求备选节点的信息,并将接收到的备选节点的信息发送给拉流客户端,从而向拉流客户端提供至少一个备选节点,使得拉流客户端从中选与至少一个备选节点作为备选拉流节点,建立第三通信链路,并请求备选拉流节点建立与推流节点的第四通信链路,第三通信链路和第四通信链路一起构成备选链路。当主链路中拉流客户端与目标拉流节点间这段通信链路因发生抖动、网络拥塞等状况导致不符合预设条件时,拉流客户端可以将一条这段通信链路符合预设条件的备选链路切换为主链路,从而及时地切换拉取流媒体数据所用的备选拉流节点,能够避免因拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞造成的卡顿延迟、丢包等状况,提高了流媒体数据的传输质量和实时性。
一种可选地实施方式中,第四通信链路包括中继节点,中继节点包括目标拉流节点。
一种可能的情况下,第四通信链路中,目标拉流节点是与备选拉流节点直接连接的中继节点,第四通信链路可以表示为“备选拉流节点←目标拉流节点←…←推流节点”,其中箭头的方向表示拉流时流媒体数据的流向。目标拉流节点与推流节点之间可以不包括中继节点,或者包括至少一个其他中继节点。
作为中继节点,目标拉流节点可以接收备选拉流节点发送的拉流链路建立请求,与备选拉流节点建立通信链路;解析拉流链路建立请求得到其携带的第四通信链路的信息,根据第四通信链路的信息,向第四通信链路中的下一个节点发送拉流链路建立请求,与下一个节点间的通信链路。
具体地,根据第四通信链路信息,目标拉流节点可以确定需要建立连接的下一个节点的信息。在建立第四通信链路时,按照“备选拉流节点→目标拉流节点→…→推流节点”的顺序依次建立相邻两个节点间的通信链路,下一个节点是指“备选拉流节点→目标拉流节点→…→推流节点”链路中按照箭头的方向目标拉流节点的下一个节点,可能是中继节点或者推流节点。
这样,目标拉流节点作为了第四通信链路中的中继节点,在拉流客户端与目标拉流节点间的通信链路通信质量较差,但目标拉流节点与推流节点间的第二通信链路的通信质量却很好时,拉流客户端可以通过备选拉流节点与目标拉流节点建立连接,仍然利用通信质量很好的第二通信链路拉取流媒体数据,以建立通信质量更好的第四通信链路。
图7为本申请一实施例提供的直播中心执行实时流媒体数据传输方法的流程图。本实施例提供的实时流媒体数据传输方法具体可以应用于CDN中的直播中心。如图7所示,该方法具体步骤如下:
步骤S701、接收目标拉流节点发送的第一链路请求和备选节点请求,第一链路请求携带媒体流信息,备选节点请求携带流媒体数据的域名和拉流客户端的访问地址。
步骤S702、当接收到第一链路请求时,根据媒体流信息生成目标拉流节点与推流节点间的第二通信链路的信息,并向目标拉流节点发送第二通信链路的信息。
在接收到携带媒体流信息的第一链路请求后,直播中心根据媒体流信息生成第二通信链路的信息,并将第二通信链路的信息反馈给目标拉流节点,使得目标拉流节点根据第二通信链路的信息建立与推流节点的第二通信链路。
步骤S703、当接收到备选节点请求时,根据流媒体数据的域名和拉流客户端的访问地址,选取至少一个备选节点,并向目标拉流节点发送备选节点的信息。
其中,备选节点的信息至少包括备选节点的访问地址,使得拉流客户端可以根据备选节点的访问地址与备选节点建立通信链路。
在接收到备选节点请求时,直播中心根据流媒体数据的域名和拉流客户端的访问地址,从CDN中选取至少一个可以作为目标拉流节点的备选的边缘节点,作为备选节点,并将备选节点的信息发送给目标拉流节点,以使目标拉流节点将备选节点的信息转发给拉流客户端。拉流客户端接收到备选节点的信息后,会根据备选节点的信息选择至少一个备选节点作为备选拉流节点,与每一备选拉流节点建立第三通信链路,并向每一备选拉流节点发送第二拉流请求,以使每一备选拉流节点建立与推流节点间的第四通信链路,从而实现至少一条备选链路的建立。
本实施例中,直播中心具备选择并提供备选节点的信息的功能,使得拉流客户端与备选节点中的至少一个备选拉流节点建立第三通信链路,并请求备选拉流节点建立与推流节点间的第四通信链路,第二通信链路和第四通信链路构成用于拉取流媒体数据的一条备选链路。当主链路中拉流客户端与目标拉流节点间这段通信链路因发生抖动、网络拥塞等状况导致不符合预设条件时,拉流客户端可以将一条这段通信链路符合预设条件的备选链路切换为主链路,从而及时地切换使用备选拉流节点,能够避免因拉流客户端与拉流节点间的通信链路发生抖动、或网络拥塞造成的卡顿延迟、丢包等,提高了流媒体数据的传输质量和实时性。
一种可选实施例中,根据流媒体数据的域名和所流客户端的访问地址,选取至少一个备选节点,具体可以采用如下方式实现:
根据拉流客户端的访问地址,以及CDN中边缘节点的位置信息、所属运营商信息、负载信息和健康状态信息,从流媒体数据的域名的调度域覆盖的边缘节点中选择至少一个边缘节点作为备选节点。
具体地,根据流媒体数据的域名可以确定流媒体数据的域名的调度域,进而确定CDN中被该调度域覆盖的边缘节点,在这些边缘节点中,根据拉流客户端的访问地址确定拉流客户端所在的位置和所属运营商,结合CDN中边缘节点的位置信息、所属运营商信息、负载信息和健康状态信息,可以选择与拉流客户端通信质量较好的边缘节点,作为备选节点。
示例性地,在流媒体数据的域名的调度域覆盖的边缘节点中,可以根据拉流客户端的访问地址可以确定拉流客户端所在的位置和所属运营商,结合CDN中边缘节点的位置信息、所属运营商信息,确定与拉流客户端在同一运营商的同一区域内的边缘节点,再根据负载信息和健康状态信息选择负载较少、健康状态较好的边缘节点,作为备选节点。
其中,对边缘节点所在区域的划分,可以按照行政区域、城市等进行地域上的划分,或者按照其他方式进行划分,此处不做具体限定。
本实施例中,直播中心可以针对拉流客户端就近选择负载较少、健康状态较好的边缘节点作为备选节点,使得拉流客户端与每一备选节点间均可建立通信质量较好的第三通信链路。
一种可选实施例中,直播中心向目标拉流节点发送备选节点的信息,具体包括:
获取备选节点的访问地址,并根据拉流客户端的访问地址,以及备选节点的位置信息、所属运营商信息、负载信息和健康状态信息,确定备选节点的选择优先级;向目标拉流节点发送备选节点的访问地址和选择优先级。
本实施例中,直播中心可以确定并提供备选节点的选择优先级,使得拉流客户端可以根据备选节点的选择优先级,择优选择备选拉流节点。
一种可选实施例中,直播中心还可以向备选拉流节点提供所需的第四通信链路的信息,以辅助备选拉流节点与推流节点建立第四通信链路。
具体地,直播中心接收备选拉流节点发送的第二链路请求,第二链路请求携带媒体流信息和备份链路标记信息。直播中心解析第二链路请求可以得到备份链路标记信息时,则可以确定该链路请求所请求的通信链路的信息是用于建立备选链路中的第四通信链路的,无需获取备选节点的信息,只需生成并反馈第四通信链路的信息。
进一步地,直播中心根据媒体流信息生成备选拉流节点与推流节点间的第四通信链路的信息,向备选拉流节点发送第四通信链路的信息。
通过在备选拉流节点发送的第二链路请求中携带备份链路标记信息,能告知直播中心当前的链路请求是来自于备选拉流节点的请求,所请求的通信链路的信息是用于建立备选链路中的第四通信链路的,直播中心无需反馈备选节点的信息,从而将备选拉流节点与目标拉流节点的链路请求进行区分。
一种可选实施例中,可以通过配置CDN中的边缘节点的属性信息,使得边缘节点具有可作为中继节点的属性。这样,在建立通信链路时可选用的中继节点更多,并且两个边缘节点之间可以直接建立通信链路,链路的组合方式更加灵活,能够提高建立的通信链路的质量。
具体地,在根据媒体流信息,生成备选拉流节点与推流节点间的第四通信链路的信息时,直播中心可以根据媒体流信息,将内容分发网络中的拉流节点或推流节点作为可用的中继节点,生成第四通信链路的信息。
一种可能的情况下,在生成的第四通信链路的信息中,第四通信链路可以不包含任何中继节点,以确定通信质量更优的第四通信链路。
另一种可能的情况下,在生成的第四通信链路的信息中,第四通信链路可以包含中继节点,这些中继节点中包括CDN中的拉流节点或推流节点,这样,第四通信链路的组合方式更加灵活,可选的链路更多,能够确定通信质量更优的第四通信链路。
再一种可能的情况下,在生成第四通信链路的信息时,可以将目标拉流节点作为中继节点,建立“备选拉流节点←目标拉流节点←…←推流节点”这样一条第四通信链路。在拉流客户端与目标拉流节点间的通信质量较差,但目标拉流节点与推流节点间的第二通信链路的通信质量却很好时,拉流客户端可以通过备选拉流节点与目标拉流节点建立连接,仍然利用通信质量很好的第二通信链路拉取流媒体数据,以建立通信质量更好的第四通信链路。
图8为本申请一实施例提供的实时流媒体数据传输方法的流程图。如图8所示,该方法具体步骤如下:
步骤S801、拉流客户端接收DNS服务器提供的目标拉流节点的信息。
步骤S802、拉流客户端与目标拉流节点建立第一通信链路。
步骤S803、拉流客户端向目标拉流节点发送第一拉流请求。
其中,第一拉流请求携带媒体流信息、拉流客户端的访问地址及是否支持备份链路的信息,媒体流信息包含流媒体数据的域名。
步骤S804、目标拉流节点向直播中心发送携带媒体流信息的第一链路请求。
其中,第一链路请求携带媒体流信息。
步骤S805、目标拉流节点在确定拉流客户端支持备份链路时向直播中心发送备选节点请求。
其中,备选节点请求携带流媒体数据的域名和拉流客户端的访问地址。
步骤S806、当接收到第一链路请求时,直播中心根据媒体流信息生成目标拉流节点与推流节点间的第二通信链路的信息。
步骤S807、直播中心向目标拉流节点发送第二通信链路的信息。
步骤S808、目标拉流节点根据第二通信链路的信息建立与推流节点的第二通信链路,第一通信链路和第二通信链路构成拉取流媒体数据的主链路。
步骤S809、当接收到备选节点请求时,直播中心根据流媒体数据的域名和拉流客户端的访问地址,选取至少一个备选节点。
步骤S810、直播中心向目标拉流节点发送备选节点的信息。
步骤S811、目标拉流节点在接收到直播中心发送的备选节点的信息的情况下,向拉流客户端发送备选节点的信息。
步骤S812、拉流客户端根据备选节点的信息,选择至少一个备选节点作为备选拉流节点。
步骤S813、拉流客户端与备选拉流节点建立第三通信链路。
步骤S814、拉流客户端向备选拉流节点发送第二拉流请求。
其中,第二拉流请求携带媒体流信息和备份链路标记信息。
步骤S815、直播中心根据媒体流信息生成备选拉流节点与推流节点间的第四通信链路的信息。
步骤S816、直播中心向备选拉流节点发送第四通信链路的信息。
步骤S817、备选拉流节点根据第四通信链路的信息建立与推流节点的第四通信链路,第三通信链路和第四通信链路构成拉取流媒体数据的备选链路。
步骤S818、当第一通信链路不符合预设条件时,选择一个备选链路切换为主链路,通过切换后的主链路拉取流媒体数据,并将切换前的主链路切换为备选链路。
本实施例中,各个步骤的具体实现方式参见前述实施例中的内容,此处不再赘述。
图9为本申请实施例提供的一种实时流媒体数据传输装置的结构示意图,本实施例提供的装置应用于拉流客户端,如图9所示,实时流媒体数据传输装置90包括:通信模块91、备选链路建立模块92和链路切换模块93。
其中,通信模块91用于接收DNS服务器提供的目标拉流节点的信息,与目标拉流节点建立第一通信链路;向目标拉流节点发送第一拉流请求,以使目标拉流节点建立与推流节点间的第二通信链路,第一通信链路和第二通信链路构成用于拉取流媒体数据的主链路;接收目标拉流节点发送的备选节点的信息,备选节点的信息是由直播中心确定并发送给目标拉流节点的。
备选链路建立模块92用于根据备选节点的信息,选择至少一个备选节点作为备选拉流节点,与每一备选拉流节点建立第三通信链路。
通信模块91还用于向每一备选拉流节点发送第二拉流请求,以使每一备选拉流节点建立与推流节点间的第四通信链路,第三通信链路和第四通信链路构成拉取流媒体数据的备选链路。
链路切换模块93用于当第一通信链路不符合预设条件时,选择一个备选链路切换为主链路,通过切换后的主链路拉取流媒体数据,并将切换前的主链路切换为备选链路。
一种可选实施例中,至少一个第四通信链路包括中继节点,中继节点包括内容分发网络中的拉流节点或推流节点。
一种可选实施例中,中继节点包括目标拉流节点。
一种可选实施例中,通信模块还用于实时获取第一通信链路和第三通信链路的通信质量信息。
一种可选实施例中,第一拉流请求携带媒体流信息、拉流客户端的访问地址及拉流客户端是否支持备份链路的信息;第二拉流请求携带媒体流信息和备份链路标记信息。
一种可选实施例中,备选节点的信息包括备选节点的访问地址和选择优先级,
在实现根据备选节点的信息,选择至少一个备选节点作为备选拉流节点时,备选链路建立模块还用于:根据备选节点的选择优先级,选择至少一个备选节点作为备选拉流节点。
在实现与每一备选拉流节点建立第三通信链路时,备选拉流节点确定模块还用于:根据每一备选拉流节点的访问地址,与每一备选拉流节点建立第三通信链路。
本实施例提供的装置具体可以用于执行上述任一方法实施例中拉流客户端所执行的方案,具体功能和所能实现的技术效果此处不再赘述。
图10为本申请另一实施例提供的一种实时流媒体数据传输装置的结构示意图,本实施例提供的装置应用于目标拉流节点,如图10所示,实时流媒体数据传输装置1000包括:通信模块1001、备选节点请求模块1002和链路建立模块1003。
通信模块1001用于接收拉流客户端发送的第一拉流请求,第一拉流请求携带媒体流信息、拉流客户端的访问地址及是否支持备份链路的信息,其中媒体流信息包含流媒体数据的域名。
通信模块1001还用于向直播中心发送携带媒体流信息的第一链路请求。
备选节点请求模块1002用于在确定拉流客户端支持备份链路时向直播中心发送备选节点请求,备选节点请求携带流媒体数据的域名和拉流客户端的访问地址。
通信模块1001还用于接收直播中心发送的第二通信链路的信息。
链路建立模块1003用于根据第二通信链路的信息建立与推流节点间的第二通信链路。
通信模块1001还用于在接收到直播中心发送的备选节点的信息的情况下,向拉流客户端发送备选节点的信息。
一种可选实施例中,通信模块还用于接收备选拉流节点发送的拉流链路建立请求,拉流链路建立请求携带备选拉流节点与推流节点间的第四通信链路的信息,第四通信链路包括中继节点,中继节点包括目标拉流节点;
链路建立模块还用于:与备选拉流节点建立通信链路。
通信模块还用于根据第四通信链路的信息,向第四通信链路中的下一个节点发送拉流链路建立请求。
链路建立模块还用于:与下一个节点建立通信链路。
本实施例提供的装置具体可以用于执行上述任一方法实施例中目标拉流节点所执行的方案,具体功能和所能实现的技术效果此处不再赘述。
图11为本申请另一实施例提供的一种实时流媒体数据传输装置的结构示意图,本实施例提供的装置应用于CDN的直播中心,如图11所示,实时流媒体数据传输装置1100包括:通信模块1101、链路信息生成模块1102和备选节点确定模块1103。
通信模块1101用于接收目标拉流节点发送的第一链路请求和备选节点请求,第一链路请求携带媒体流信息,备选节点请求携带流媒体数据的域名和拉流客户端的访问地址。
链路信息生成模块1102用于当接收到第一链路请求时,根据媒体流信息生成目标拉流节点与推流节点间的第二通信链路的信息。
通信模块1101还用于向目标拉流节点发送第二通信链路的信息。
备选节点确定模块1103用于当接收到备选节点请求时,根据流媒体数据的域名和拉流客户端的访问地址,选取至少一个备选节点。
通信模块1101还用于向目标拉流节点发送备选节点的信息。
一种可选实施例中,在实现根据流媒体数据的域名和所流客户端的访问地址,选取至少一个备选节点时,备选节点确定模块还用于:
根据拉流客户端的访问地址,以及内容分发网络中边缘节点的位置信息、所属运营商信息、负载信息和健康状态信息,从流媒体数据的域名的调度域覆盖的边缘节点中选择多个边缘节点作为备选节点。
一种可选实施例中,备选节点确定模块1103还用于获取备选节点的访问地址,并根据拉流客户端的访问地址,以及备选节点的位置信息、所属运营商信息、负载信息和健康状态信息,确定备选节点的选择优先级。
在实现向目标拉流节点发送备选节点的信息时,包括:
通信模块1101还用于向目标拉流节点发送备选节点的访问地址和选择优先级。
一种可选实施例中,通信模块还用于接收备选拉流节点发送的第二链路请求,第二链路请求携带媒体流信息和备份链路标记信息。
链路信息生成模块还用于根据媒体流信息,生成备选拉流节点与推流节点间的第四通信链路的信息,向备选拉流节点发送第四通信链路的信息。
一种可选实施例中,在实现根据媒体流信息,生成备选拉流节点与推流节点间的第四通信链路的信息时,链路信息生成模块还用于:
根据媒体流信息,将内容分发网络中的拉流节点或推流节点作为可用的中继节点,生成第四通信链路的信息。
一种可选实施例中,在实现根据媒体流信息,生成备选拉流节点与推流节点间的第四通信链路的信息时,链路信息生成模块还用于:
根据媒体流信息,将目标拉流节点作为中继节点,生成第四通信链路的信息。
本实施例提供的装置具体可以用于执行上述任一方法实施例中直播中心所执行的方案,具体功能和所能实现的技术效果此处不再赘述。
本申请还提供用于实现实时流媒体数据传输得到电子设备,包括装载有拉流客户端的设备、CDN中作为目标拉流节点的边缘节点、或者CDN的直播中心。
本申请提供一种装载有拉流客户端的设备,包括:处理器,以及与处理器通信连接的存储器,存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现上述任一方法实施例中拉流客户端所执行的方案,具体功能和所能实现的技术效果此处不再赘述。
本申请提供一种边缘节点,包括:处理器,以及与处理器通信连接的存储器,存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现上述任一方法实施例中目标拉流节点所执行的方案,具体功能和所能实现的技术效果此处不再赘述。
本申请提供一种直播中心,包括:处理器,以及与处理器通信连接的存储器,存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现上述任一方法实施例中直播中心所执行的方案,具体功能和所能实现的技术效果此处不再赘述。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述任一方法实施例中拉流客户端、目标拉流节点、或者直播中心所执行的方案,具体功能和所能实现的技术效果此处不再赘述。
本申请还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一方法实施例中拉流客户端、目标拉流节点、或者直播中心所执行的方案,具体功能和所能实现的技术效果此处不再赘述,具体功能和所能实现的技术效果此处不再赘述。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。“多个”的含义是两个以上,除非另有明确具体的限定。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (16)

1.一种实时流媒体数据传输方法,其特征在于,应用于拉流客户端,包括:
接收DNS服务器提供的目标拉流节点的信息,与所述目标拉流节点建立第一通信链路;
向所述目标拉流节点发送第一拉流请求,以使所述目标拉流节点建立与推流节点间的第二通信链路,所述第一通信链路和所述第二通信链路构成用于拉取流媒体数据的主链路;
接收所述目标拉流节点发送的备选节点的信息,所述备选节点的信息是由直播中心确定并发送给所述目标拉流节点的;
根据所述备选节点的信息,选择至少一个备选节点作为备选拉流节点,与每一所述备选拉流节点建立第三通信链路;
向每一所述备选拉流节点发送第二拉流请求,以使每一所述备选拉流节点建立与推流节点间的第四通信链路,所述第三通信链路和所述第四通信链路构成拉取流媒体数据的备选链路;
当所述第一通信链路不符合预设条件时,选择一个备选链路切换为主链路,通过切换后的主链路拉取流媒体数据,并将切换前的主链路切换为备选链路。
2.根据权利要求1所述的方法,其特征在于,至少一个所述第四通信链路包括中继节点,所述中继节点包括内容分发网络中的拉流节点或推流节点。
3.根据权利要求2所述的方法,其特征在于,所述中继节点包括所述目标拉流节点。
4.根据权利要求1所述的方法,其特征在于,还包括:
实时获取所述第一通信链路和所述第三通信链路的通信质量信息。
5.根据权利要求1的方法,其特征在于,所述第一拉流请求携带媒体流信息、所述拉流客户端的访问地址及所述拉流客户端是否支持备份链路的信息;
所述第二拉流请求携带媒体流信息和备份链路标记信息。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述备选节点的信息包括所述备选节点的访问地址和选择优先级,
所述根据所述备选节点的信息,选择至少一个备选节点作为备选拉流节点,包括:
根据所述备选节点的选择优先级,选择至少一个备选节点作为备选拉流节点;
所述与每一所述备选拉流节点建立第三通信链路,包括:
根据每一所述备选拉流节点的访问地址,与每一所述备选拉流节点建立第三通信链路。
7.一种实时流媒体数据传输方法,其特征在于,应用于目标拉流节点,包括:
接收拉流客户端发送的第一拉流请求,所述第一拉流请求携带媒体流信息、拉流客户端的访问地址及是否支持备份链路的信息,其中所述媒体流信息包含流媒体数据的域名;
向直播中心发送携带所述媒体流信息的第一链路请求,并在确定所述拉流客户端支持备份链路时向直播中心发送备选节点请求,所述备选节点请求携带流媒体数据的域名和拉流客户端的访问地址;
接收直播中心发送的第二通信链路的信息,并根据所述第二通信链路的信息建立与推流节点间的第二通信链路;
在接收到直播中心发送的备选节点的信息的情况下,向所述拉流客户端发送所述备选节点的信息。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第二通信链路的信息建立与推流节点的第二通信链路之后,还包括:
接收备选拉流节点发送的拉流链路建立请求,所述拉流链路建立请求携带所述备选拉流节点与推流节点间的第四通信链路的信息,所述第四通信链路包括中继节点,所述中继节点包括所述目标拉流节点;
与所述备选拉流节点建立通信链路;
根据所述第四通信链路的信息,向所述第四通信链路中的下一个节点发送拉流链路建立请求;
与所述下一个节点建立通信链路。
9.一种实时流媒体数据传输方法,其特征在于,应用于直播中心,包括:
接收目标拉流节点发送的第一链路请求和备选节点请求,所述第一链路请求携带媒体流信息,所述备选节点请求携带流媒体数据的域名和拉流客户端的访问地址;
当接收到所述第一链路请求时,根据所述媒体流信息生成所述目标拉流节点与推流节点间的第二通信链路的信息,并向所述目标拉流节点发送所述第二通信链路的信息;
当接收到所述备选节点请求时,根据所述流媒体数据的域名和拉流客户端的访问地址,选取至少一个备选节点,并向所述目标拉流节点发送所述备选节点的信息。
10.根据权利要求9所述的方法,其特征在于,所述根据所述流媒体数据的域名和所流客户端的访问地址,选取至少一个备选节点,包括:
根据所述拉流客户端的访问地址,以及内容分发网络中边缘节点的位置信息、所属运营商信息、负载信息和健康状态信息中的至少一项,从所述流媒体数据的域名的调度域覆盖的边缘节点中选择至少一个边缘节点作为备选节点。
11.根据权利要求10所述的方法,其特征在于,所述向所述目标拉流节点发送所述备选节点的信息,包括:
获取所述备选节点的访问地址,并根据所述拉流客户端的访问地址,以及所述备选节点的位置信息、所属运营商信息、负载信息和健康状态信息,确定所述备选节点的选择优先级;
向所述目标拉流节点发送所述备选节点的访问地址和选择优先级。
12.根据权利要求9-11中任一项所述的方法,其特征在于,还包括:
接收备选拉流节点发送的第二链路请求,所述第二链路请求携带媒体流信息和备份链路标记信息;
根据所述媒体流信息,生成所述备选拉流节点与推流节点间的第四通信链路的信息,向所述备选拉流节点发送所述第四通信链路的信息。
13.根据权利要求12所述的方法,其特征在于,所述根据所述媒体流信息,生成所述备选拉流节点与推流节点间的第四通信链路的信息,包括:
根据所述媒体流信息,将内容分发网络中的拉流节点或推流节点作为可用的中继节点,生成所述第四通信链路的信息。
14.根据权利要求13所述的方法,其特征在于,所述根据所述媒体流信息,生成所述备选拉流节点与推流节点间的第四通信链路的信息,包括:
根据所述媒体流信息,将所述目标拉流节点作为中继节点,生成所述第四通信链路的信息。
15.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-14中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-14中任一项所述的方法。
CN202210567651.3A 2022-05-23 2022-05-23 实时流媒体数据传输的方法、设备及存储介质 Active CN115002083B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210567651.3A CN115002083B (zh) 2022-05-23 2022-05-23 实时流媒体数据传输的方法、设备及存储介质
PCT/CN2023/095623 WO2023226949A1 (zh) 2022-05-23 2023-05-22 实时流媒体数据传输的方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210567651.3A CN115002083B (zh) 2022-05-23 2022-05-23 实时流媒体数据传输的方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115002083A true CN115002083A (zh) 2022-09-02
CN115002083B CN115002083B (zh) 2024-04-02

Family

ID=83027219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210567651.3A Active CN115002083B (zh) 2022-05-23 2022-05-23 实时流媒体数据传输的方法、设备及存储介质

Country Status (2)

Country Link
CN (1) CN115002083B (zh)
WO (1) WO2023226949A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023226949A1 (zh) * 2022-05-23 2023-11-30 阿里巴巴(中国)有限公司 实时流媒体数据传输的方法、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146136A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Peer-to-Peer Packet Scheduling Algorithm
CA2773342A1 (en) * 2012-03-30 2013-09-30 Disternet Technology, Inc. System and method for managing streaming services
CN106331642A (zh) * 2016-08-31 2017-01-11 浙江大华技术股份有限公司 一种视频云系统中的数据处理方法及装置
CN106850581A (zh) * 2017-01-04 2017-06-13 网宿科技股份有限公司 互动直播流媒体数据的分发备份方法、系统及服务器
EP3614786A1 (en) * 2018-08-23 2020-02-26 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data transmission method and apparatus
CN113364587A (zh) * 2021-06-29 2021-09-07 中国电信股份有限公司 流媒体数据的处理系统、方法、装置、介质与设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712343A (zh) * 2018-05-14 2018-10-26 网宿科技股份有限公司 流媒体资源的分发方法、系统、边缘节点及中心调度系统
CN112218100B (zh) * 2019-07-09 2023-05-26 阿里巴巴集团控股有限公司 内容分发网络、数据处理方法、装置、设备及存储介质
CN112752115B (zh) * 2020-12-29 2023-09-08 广州博冠信息科技有限公司 直播数据传输方法、装置、设备及介质
CN115002083B (zh) * 2022-05-23 2024-04-02 阿里巴巴(中国)有限公司 实时流媒体数据传输的方法、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146136A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Peer-to-Peer Packet Scheduling Algorithm
CA2773342A1 (en) * 2012-03-30 2013-09-30 Disternet Technology, Inc. System and method for managing streaming services
CN106331642A (zh) * 2016-08-31 2017-01-11 浙江大华技术股份有限公司 一种视频云系统中的数据处理方法及装置
CN106850581A (zh) * 2017-01-04 2017-06-13 网宿科技股份有限公司 互动直播流媒体数据的分发备份方法、系统及服务器
EP3614786A1 (en) * 2018-08-23 2020-02-26 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data transmission method and apparatus
CN113364587A (zh) * 2021-06-29 2021-09-07 中国电信股份有限公司 流媒体数据的处理系统、方法、装置、介质与设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023226949A1 (zh) * 2022-05-23 2023-11-30 阿里巴巴(中国)有限公司 实时流媒体数据传输的方法、设备及存储介质

Also Published As

Publication number Publication date
CN115002083B (zh) 2024-04-02
WO2023226949A1 (zh) 2023-11-30

Similar Documents

Publication Publication Date Title
US7975282B2 (en) Distributed cache algorithms and system for time-shifted, and live, peer-to-peer video streaming
EP3595268A1 (en) Streaming media resource distribution method, system, edge node and central dispatching system
CN105075218B (zh) 分发内容的方法、网络设备和计算机可读存储介质
EP2874116A1 (en) Communication method between content requester and content provider for providing content and real-time streaming content in content name-based content centric network
EP1806870B1 (en) Method for providing data and data transmission system
CN113301096B (zh) 内容分发网络中节点间数据传输方法、系统及节点设备
US20100198977A1 (en) Automatic live stream trees
TW201112708A (en) Light host management protocol on multicast capable router
US20150326444A1 (en) Network topology discovery
JP2007104193A (ja) 映像配信システム、映像配信方法および映像同期共有装置
CN112367527A (zh) 一种传送流文件生成方法、装置、设备及存储介质
CN112788053A (zh) 一种实时通信方法、装置、服务器、系统及存储介质
CN115002083B (zh) 实时流媒体数据传输的方法、设备及存储介质
US20120072604A1 (en) technique for delivering content to a user
US10575065B2 (en) Message sending method and device, code stream processing method and device
JP2004088315A (ja) コンテンツ配信システム、エッジサーバ及び端末装置
JP2008294784A (ja) ストリーム通信品質測定方法、ストリーム通信品質測定システム並びに受信端末およびルータ
US8612613B2 (en) Method for setting plurality of sessions and node using same
KR101176285B1 (ko) 채널변경을 위한 아이피 티비 서비스 방법 및 장치
CN114584561A (zh) 一种信息处理方法、装置和电子设备
JP2008278261A (ja) 中継装置、中継装置制御方法、通信システムおよび中継プログラム
JP5218202B2 (ja) 端末情報収集システム、端末情報収集方法および端末情報収集プログラム
CN116938907B (zh) 一种实时音视频传输网络的数据传输方法及系统
US20180206003A1 (en) Distributed architecture for mobile streaming content delivery
CN102347937B (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
GR01 Patent grant
GR01 Patent grant