CN110392020B - 一种流媒体资源的传输方法及系统 - Google Patents
一种流媒体资源的传输方法及系统 Download PDFInfo
- Publication number
- CN110392020B CN110392020B CN201810350528.XA CN201810350528A CN110392020B CN 110392020 B CN110392020 B CN 110392020B CN 201810350528 A CN201810350528 A CN 201810350528A CN 110392020 B CN110392020 B CN 110392020B
- Authority
- CN
- China
- Prior art keywords
- streaming media
- request
- response
- processing request
- media resource
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/288—Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种流媒体资源的传输方法及系统,其中,所述方法包括:接收客户端发来的指向目标流媒体资源的处理请求,并将所述处理请求调度至第一进程;将所述处理请求转发至所述第一进程所处层级中的第二进程;通过所述第二进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第二进程生成的用于访问所述目标流媒体资源的访问地址;将所述响应请求反馈给所述第一进程,并通过所述第一进程将所述响应请求反馈给所述客户端,以使得所述客户端与所述第二进程之间建立连接,并通过建立的所述连接传输所述目标流媒体资源。本申请提供的技术方案,能够提高流媒体资源的传输效率。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种流媒体资源的传输方法及系统。
背景技术
WebRTC(Web Real-Time Communication,源自网页实时通信)协议由于具有跨平台、高实时性的特点,被广泛用于基于网络的视频会议、视频通话等应用场景。
请参阅图1,标准的WebRTC协议中,通常可以在用户A和用户B之间建立点对点的通信链路。具体的过程可以包括以下多个步骤:
步骤1:用户A向P2P服务器发起查询,获得自己的公网地址;
步骤2:用户A根据自身的硬件采集到的流媒体信息,生成Offer SDP,通过信令服务器中转,将Offer SDP发送给用户B;
步骤3:用户B接受并处理Offer SDP,同时根据自身的硬件采集到的流媒体信息,生成Answer SDP,通过信令服务器中转,将Answer SDP发送给用户A;
步骤4:用户B向P2P服务器发起查询,获得自己的公网地址。
步骤5:用户A根据自身的公网地址生成ICE Candidate,通过信令服务器中转,发送给用户B。
步骤6:用户B根据自身的公网地址生成ICE Candidate,通过信令服务器中转,发送给用户A。
步骤7:用户A和用户B双方根据交换的SDP和ICE Candidate,从而可以发送自身的流媒体给对方,同时接收对方发送来的流媒体。
由上可见,WebRTC提供的是一种点对点的通信方式,建立该通信方式需要经过复杂的流程,同时,这种通信方式与当前的许多网络架构无法兼容。例如,在内容分发网络(Content Delivery Network,CDN)中通常是基于RTMP(Real Time Messaging Protocol,实时消息传输协议)和HTTP(HyperText Transfer Protocol,超文本传输协议)通信的。为了使得大量的终端设备能够在较低的延时下观看流媒体资源,目前亟需一种将WebRTC标准应用在CDN中的技术,以提高流媒体资源的传输效率。
发明内容
本申请的目的在于提供一种流媒体资源的传输方法及系统,能够提高流媒体资源的传输效率。
为实现上述目的,本申请一方面提供一种流媒体资源的传输方法,所述方法包括:接收客户端发来的指向目标流媒体资源的处理请求,并将所述处理请求调度至第一进程;判断是否由所述第一进程处理所述处理请求,若否,将所述处理请求转发至所述第一进程所处层级中的第二进程;判断是否由所述第二进程处理所述处理请求,若是,通过所述第二进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第二进程生成的用于访问所述目标流媒体资源的访问地址;将所述响应请求反馈给所述第一进程,并通过所述第一进程将所述响应请求反馈给所述客户端,以使得所述客户端与所述第二进程之间建立连接,并通过建立的所述连接传输所述目标流媒体资源。
为实现上述目的,本申请另一方面还提供一种流媒体资源的传输系统,所述系统包括客户端和边缘节点,其中:所述客户端用于向所述边缘节点发送指向目标流媒体资源的处理请求;所述边缘节点用于将所述处理请求调度至第一进程;判断是否由所述第一进程处理所述处理请求,若否,将所述处理请求转发至所述第一进程所处层级中的第二进程;判断是否由所述第二进程处理所述处理请求,若是,通过所述第二进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第二进程生成的用于访问所述目标流媒体资源的访问地址;将所述响应请求反馈给所述第一进程,并通过所述第一进程将所述响应请求反馈给所述客户端,以使得所述客户端与所述第二进程之间建立连接,并通过建立的所述连接传输所述目标流媒体资源。
由上可见,本申请提供的技术方案中,可以将HTTP协议和WebRTC协议进行融合,一方面简化了通信连接的建立过程,同时还能适应CDN中的路由和转发规定。在CDN中可以包括多个层级,例如接入层(边缘节点)、中转层(父节点)、核心层(源节点)等。在层级内部或者层级之间,通常会涉及路由和转发的过程。具体地,当某个层级中的第一进程接收到客户端发来的处理请求后,根据CDN中的路由规则,可以判断该处理请求是否应该由第一进程处理,若不是,可以按照路由规则,将该处理请求转发至同一层级的第二进程。第二进程可以构建该处理请求的响应请求,在该响应请求中,可以包括第二进程生成的ICE candidate,该ICE candidate可以作为访问目标流媒体资源的访问地址。该响应请求通过第一进程反馈至客户端之后,在客户端与第二进程之间可以建立WebRTC通信连接,客户端从而可以将流媒体资源上传至第二进程,或者从第二进程处获取流媒体资源。此外,若第二进程依然无法处理该处理请求,可以将该处理请求发送至下一层级中的第三进程。第三进程可以按照类似的方式构建响应请求,只不过该响应请求中包含的是第三进程生成的访问地址。该响应请求被反馈至第二进程之后,第二进程可以将其中的访问地址改写为自身的访问地址,并将改写了访问地址的响应请求通过第一进程反馈至客户端。这样,客户端与第二进程,以及第二进程与第三进程之间可以分别建立WebRTC连接,从而可以传输流媒体资源。由上可见,本申请提供的技术方案,能够将WebRTC标准与CDN进行有效结合,既能够发挥CDN的快速分发功能,又能够实现WebRTC的低延时功能,从而能够提高流媒体资源的传输效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中标准WebRTC流程的交互示意图;
图2是本发明实施例中流媒体资源的传输方法流程图;
图3是本发明实施例中流媒体资源的传输方法交互示意图;
图4是本发明实施例中流媒体资源的上传方法交互示意图;
图5是本发明实施例中流媒体资源的下载方法交互示意图;
图6是本发明实施例中流媒体资源的传输方法流程图;
图7是本发明实施例中流媒体资源的传输应用场景示意图;
图8是本发明实施例中计算机终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本申请提供一种流媒体资源的传输方法,所述方法可以应用于CDN中,请参阅图2和图3,所述方法可以包括以下步骤。
S1:接收客户端发来的指向目标流媒体资源的处理请求,并将所述处理请求调度至第一进程。
在本实施方式中,当客户端需要上传或者下载目标流媒体资源时,可以发送指向所述目标流媒体资源的处理请求,所述处理请求可以包括资源获取请求和资源上传请求。在本实施方式中,每一个流媒体资源均可以具备唯一标识,所述唯一标识的命名规则可以不作限定,只要能唯一地表征对应的流媒体资源即可。在实际应用中,所述唯一标识可以是统一资源定位符(Uniform Resource Locator,URL),在本实施方式中的统一资源定位符的命名规则可以与RTMP(Real Time Messaging Protocol,实时消息传输协议)、HTTP(HyperText Transfer Protocol,超文本传输协议)中流媒体资源的URL的命名规则一致。例如,某个流媒体资源的URL可以是http://www.a.com/live/test。
在本实施方式中,客户端发出的处理请求可以是HTTP POST请求或者HTTP GET请求。所述处理请求可以被CDN中的负载均衡服务器接收,并通过所述负载均衡服务器分发至边缘节点中的一个边缘服务器处。所述负载均衡服务器可以按照预设的负载均衡策略分发所述处理请求。例如,可以将所述处理请求调度至当前负载最小的边缘服务器处。在边缘服务器中,通常都是通过进程来处理接收到的请求,因此,所述处理请求可以被调度至边缘服务器中的第一进程。
S3:判断是否由所述第一进程处理所述处理请求,若否,将所述处理请求转发至所述第一进程所处层级中的第二进程。
在CDN中可以包括多个层级,例如接入层(边缘节点)、中转层(父节点)、核心层(源节点)等。客户端发来的处理请求,通常会根据实际情况,在层级内部或者层级之间转发。因此,CDN中可以具备一定的路由规则,该路由规则可以限定客户端发来的处理请求应当被哪个层级中的哪个进程处理。这样,第一进程在接收到负载均衡服务器调度来的处理请求后,可以根据该路由规则,判断该处理请求是否应该由自己处理。在本实施方式中,针对不同的处理请求,路由规则的表现形式也可以不同。例如,对于资源获取请求,路由规则可以表现为:判断所述第一进程关联的本地资源中是否包含所述目标流媒体资源,若包含,则可以判定由所述第一进程处理所述处理请求,若不包含,则可以判定不由所述第一进程处理所述处理请求。又例如,针对资源上传请求,该路由规则可以表现为:根据资源上传请求中包含的所述目标流媒体资源的唯一标识,计算该唯一标识对应的散列值。在实际应用中,可以采取哈希算法计算目标流媒体资源的URL的哈希值,计算得到的该哈希值便可以是上述的散列值。在本实施方式中,各个进程可以预先与一定数量的散列值进行关联,这样,当计算得到唯一标识的散列值之后,可以判断该散列值关联的进程是否是所述第一进程。若是,表明该散列值表征的是第一进程,那么可以判定由所述第一进程处理所述处理请求,若否,表明该散列值表征的不是第一进程,那么可以判定不由所述第一进程处理所述处理请求。
在本实施方式中,若所述第一进程不负责处理所述处理请求,则可以按照路由规则,将所述处理请求转发至同一层级中的第二进程处。
S5:判断是否由所述第二进程处理所述处理请求,若是,通过所述第二进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第二进程生成的用于访问所述目标流媒体资源的访问地址。
在本实施方式中,第二进程在接收到所述处理请求之后,同样可以按照路由规则判断是否该由自己处理所述处理请求。如果路由规则表示第二进程依然无法处理该处理请求,那么表明该层级的进程均无法处理该请求,此时,可以将该请求转发至另一个层级中。举例来说,上海的一个客户端发起了下载某个流媒体资源的请求,该请求被负载均衡服务器调度至了边缘节点中空闲的第一进程。通过计算该请求对应的散列值,表明该请求实际应当由边缘节点中的第二进程处理,因此可以将该处理请求转发至第二进程。但是在第二进程关联的本地资源中,并不存在该客户端想要下载的流媒体资源,因此,第二进程也无法处理该请求。此时,则可以将该请求发送至核心层中的另一个进程处,由核心层中的进程来处理该请求。
在本实施方式中,若第二进程判定自身能够处理该请求,那么第二进程可以尝试与客户端建立WebRTC通信连接,后续可以通过建立的WebRTC通信连接来传输目标流媒体资源。在本实施方式中,针对不同的处理请求,建立WebRTC通信连接的过程也可以不同。请参阅图4,当客户端需要将目标流媒体资源上传给第二进程时,可以发起资源上传请求。此时,客户端首先可以基于自身的硬件采集到的流媒体信息,生成Offer SDP。在所述Offer SDP中,可以包括客户端支持的视频编码方式、音频编码方式、音视频是否加密等信息。例如,所述Offer SDP的一个简单示例可以如下:
Offer SDP{
现在要发送一路媒体流资源;
视频编码可以使用H264、VP8、VP9;
音频编码可以使用AAC、MP3、OPUS;
可以启用加密;
}
由此可见,在Offer SDP中可以例举出客户端所支持的多种视频编码方式以及多种音频编码方式。这样,生成的Offer SDP便可以是上述的候选流媒体信息。
在本实施方式中,客户端发送的资源上传请求例如可以是HTTP POST请求。该请求的请求消息体便可以是上述的Offer SDP,这样,所述资源上传请求中便可以包含所述客户端支持的候选流媒体信息。
在本实施方式中,第二进程接收到所述资源上传请求后,可以从中提取出包含的候选流媒体信息。然后,第二进程可以根据自身的硬件条件,在所述候选流媒体信息中确定自身支持的目标视频编码方式和目标音频编码方式,并基于所述目标视频编码方式和目标音频编码方式构建应答流媒体信息。例如,第二进程可以确定当前能够接收客户端准备上传的目标流媒体资源,并指定视频编码方式为H264,音频编码方式为OPUS,并且可以对目标流媒体资源进行加密。那么,第二进程生成的应答流媒体信息Answer SDP的一个示例可以如下所示:
Answer SDP{
可以接收你发送的媒体流;
视频编码请使用H264;
音频编码请使用OPUS;
请启用加密;
}
在本实施方式中,为了建立WebRTC,除了SDP信息之外,还需要ICEcandidate信息,所述ICE candidate信息可以基于公网IP地址来构建。具体地,第二进程可以获取自身的公网IP地址和端口地址,该公网IP地址可以存储于第二进程所处的边缘服务器内,无需从其它服务器中读取。然后,第二进程可以将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。例如,所述公网IP地址可以为10.8.114.195,用于接收流媒体资源的端口地址可以为54225,那么最终生成的访问地址便可以为10.8.114.195:54225。该访问地址便可以作为上述的ICE candidate。这样,第二进程便可以得到建立WebRTC通信连接所需的应答流媒体信息(Answer SDP)和访问地址(ICE candidate)。
在本实施方式中,第二进程可以响应于接收到的资源上传请求构建响应报文。该响应报文可以是状态码为200的HTTP响应报文。在该响应报文的响应消息体中,可以包括所述应答流媒体信息以及所述访问地址。
在另一个实施方式中,请参阅图5,所述处理请求可以是资源获取请求,客户端可以通过发起该资源获取请求下载目标流媒体资源。该资源获取请求例如可以是HTTP GET请求。该请求的URL可以是所述目标流媒体资源的唯一标识。第二进程接收到该资源获取请求之后,可以根据其携带的唯一标识,从关联的本地资源中确定客户端想要下载的目标流媒体资源。此时,第二进程可以获取自身的公网IP地址和端口地址,该公网IP地址可以存储于第二进程所处的边缘服务器内,无需从其它服务器中读取。然后,第二进程可以将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。例如,所述公网IP地址可以为10.8.114.195,用于传输流媒体资源的端口地址可以为54225,那么最终生成的访问地址便可以为10.8.114.195:54225。该访问地址便可以作为建立WebRTC通信连接时所需的ICE candidate。
在本实施方式中,第二进程关联的本地资源中的流媒体资源可以是其它的客户端上传的,客户端在上传流媒体资源之后,第二进程可以将该流媒体资源以及对应的应答流媒体信息关联存储。这样,第二进程可以根据目标流媒体资源的唯一标识,查询到与其关联的应答流媒体信息,并将该应答流媒体信息作为所述目标流媒体资源关联的目标流媒体信息。这样,第二进程可以将所述目标流媒体信息作为Offer SDP。这样,所述第二进程便生成了Offer SDP和ICE candidate。此时,第二进程可以构建响应报文,该响应报文例如可以是状态码为200的HTTP响应报文。所述响应报文的响应消息体中可以包括上述的访问地址(ICE candidate)以及所述目标流媒体资源关联的目标流媒体信息(Offer SDP)。
S7:将所述响应请求反馈给所述第一进程,并通过所述第一进程将所述响应请求反馈给所述客户端,以使得所述客户端与所述第二进程之间建立连接,并通过建立的所述连接传输所述目标流媒体资源。
在本实施方式中,第二进程构建了所述处理请求对应的响应请求之后,可以将该响应请求反馈给第一进程,第一进程从而可以继续将该响应请求转发给客户端。这样,具备了SDP信息和ICE candidate,客户端与第二进程之间便可以建立起WebRTC通信连接。
在本实施方式中,通过建立的WebRTC通信连接,客户端与第二进程之间可以传输所述目标流媒体资源。具体地,针对资源上传请求而言,所述客户端可以根据所述应答流媒体信息对所述目标流媒体资源进行处理,并按照所述访问地址向所述第二进程上传经过处理的目标流媒体资源。对于资源获取请求而言,所述客户端可以通过所述访问地址下载所述目标流媒体资源,并通过所述目标流媒体信息对下载的所述目标流媒体资源进行处理。
在一个实施方式中,请参阅图6,若第二进程无法处理所述处理请求时,可以按照路由规则,将该处理请求转发至另一个层级的负载均衡服务器处。这样,另一个层级的负载均衡服务器便可以将该处理请求调度至第三进程。这样,第一进程和第二进程处于同一层级,而第三进程处于另一个不同的层级。
在本实施方式中,第三进程接收到所述处理请求之后,同样可以按照路由规则判断自身是否可以处理该请求。若可以,那么所述第三进程可以构建所述处理请求对应的响应请求。构建所述响应请求的方式与上述的方式类似,针对不同的处理请求,可以构建不同的响应请求。例如,所述处理请求包括资源上传请求,所述资源上传请求中可以包括所述客户端支持的候选流媒体信息。那么第三进程构建所述处理请求对应的响应请求时,可以基于所述候选流媒体信息和自身的硬件条件,生成应答流媒体信息。然后,第三进程可以获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。这样,基于应答流媒体信息和访问地址,所述第三进程可以构建响应请求,并将所述应答流媒体信息以及所述访问地址作为所述响应请求的响应消息体。
此外,针对资源获取请求,所述资源获取请求中可以包括所述目标流媒体资源的唯一标识。所述第三进程在构建所述处理请求对应的响应请求时,可以获取与所述唯一标识相关联的目标流媒体信息,同时,还可以获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。这样,所述第三进程可以构建响应请求,并将所述目标流媒体信息以及所述访问地址作为所述响应请求的响应消息体。
在本实施方式中,第三进程在构建了响应请求之后,可以将构建的响应请求反馈给所述第二进程。第二进程接收到的该响应请求中包含SDP信息和ICE candidate,因此所述第二进程可以与所述第三进程建立WebRTC通信连接。
在本实施方式中,接收到第三进程发来的响应请求后,第二进程可以获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为第二进程生成的访问地址。然后,第二进程可以将所述第三进程构建的响应请求中的访问地址改写为所述第二进程生成的访问地址,并将改写了访问地址的响应请求反馈给所述客户端。客户端接收到的响应请求中包含SDP信息以及第二进程的ICE candidate,因此所述客户端可以与所述第二进程建立WebRTC通信连接。这样,后续便可以通过所述客户端与所述第二进程之间建立的连接以及所述第二进程与所述第三进程之间建立的连接,传输所述目标流媒体资源。具体地,针对资源上传请求,所述客户端可以根据所述应答流媒体信息对所述目标流媒体资源进行处理,并按照所述第二进程生成的访问地址向所述第二进程上传经过处理的目标流媒体资源。所述第二进程可以将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储,并按照所述第三进程生成的访问地址,将所述经过处理的目标流媒体资源上传至所述第三进程。同样地,所述第三进程可以将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。这样,在第二进程和第三进程各自关联的资源中,均可以包含此次上传的目标流媒体资源。
此外,针对资源获取请求,所述第二进程可以先按照所述第三进程生成的访问地址,从所述第三进程处下载所述目标流媒体资源,并将下载的所述目标流媒体资源和所述目标流媒体信息关联存储。然后,所述客户端可以按照所述第二进程生成的访问地址,从所述第二进程处下载所述目标流媒体资源,从而完成资源下载过程。
需要说明的是,根据路由规则判断之后,第三进程可能也无法处理所述处理请求,此时,可以继续将所述处理请求转发至与所述第三进程处于同一层级的第四进程。具体地,请参阅图7,在图7所示的场景中,客户端发出的处理请求,在边缘节点中先后经历了边缘服务器2(第一进程)和边缘服务器3(第二进程),后来在中心节点中又经历了中心服务器1(第三进程)之后,才到达了能够处理该请求的中心服务器2(第四进程)。在这种情况下,所述第四进程可以按照上述的方式,构建所述处理请求对应的响应请求,所述响应请求中包括所述第四进程生成的用于访问所述目标流媒体资源的访问地址。然后,可以将所述第四进程构建的响应请求通过所述第三进程反馈给所述第二进程,以使得所述第二进程与所述第四进程建立连接。此时,所述第二进程可以将所述第四进程构建的响应请求中的访问地址改写为所述第二进程生成的访问地址,并将改写了访问地址的响应请求反馈给所述客户端,以使得所述客户端与所述第二进程建立连接。这样,后续可以通过所述客户端与所述第二进程之间建立的连接以及所述第二进程与所述第四进程之间建立的连接,传输所述目标流媒体资源。
实施例二
本申请还提供一种流媒体资源的传输系统,所述系统包括客户端和边缘节点,其中:
所述客户端用于向所述边缘节点发送指向目标流媒体资源的处理请求;
所述边缘节点用于将所述处理请求调度至第一进程;判断是否由所述第一进程处理所述处理请求,若否,将所述处理请求转发至所述第一进程所处层级中的第二进程;判断是否由所述第二进程处理所述处理请求,若是,通过所述第二进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第二进程生成的用于访问所述目标流媒体资源的访问地址;将所述响应请求反馈给所述第一进程,并通过所述第一进程将所述响应请求反馈给所述客户端,以使得所述客户端与所述第二进程之间建立连接,并通过建立的所述连接传输所述目标流媒体资源。
在一个实施方式中,所述系统还包括中心节点,所述中心节点中至少包括第三进程,所述第三进程用于在所述第二进程无法处理所述处理请求时,接收调度来的所述处理请求,并构建所述处理请求对应的响应请求。
具体地,所述响应请求中包括所述第三进程生成的用于访问所述目标流媒体资源的访问地址;将所述第三进程构建的响应请求反馈给所述第二进程,以使得所述第二进程与所述第三进程建立连接;
相应地,所述第二进程还用于将所述第三进程构建的响应请求中的访问地址改写为所述第二进程生成的访问地址,并将改写了访问地址的响应请求反馈给所述客户端,以使得所述客户端与所述第二进程建立连接。
在一个实施方式中,所述中心节点中还包括第四进程,其中,所述第四进程用于在所述第三进程无法处理所述处理请求时,接收从所述第三进程转发来的所述处理请求,并构建所述处理请求对应的响应请求。
具体地,所述响应请求中包括所述第四进程生成的用于访问所述目标流媒体资源的访问地址;将所述第四进程构建的响应请求通过所述第三进程反馈给所述第二进程,以使得所述第二进程与所述第四进程建立连接;
相应地,所述第二进程还用于将所述第四进程构建的响应请求中的访问地址改写为所述第二进程生成的访问地址,并将改写了访问地址的响应请求反馈给所述客户端,以使得所述客户端与所述第二进程建立连接。
请参阅图8,在本申请中,上述实施例中的技术方案可以应用于如图8所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
由上可见,本申请提供的技术方案中,可以将HTTP协议和WebRTC协议进行融合,一方面简化了通信连接的建立过程,同时还能适应CDN中的路由和转发规定。在CDN中可以包括多个层级,例如接入层(边缘节点)、中转层(父节点)、核心层(源节点)等。在层级内部或者层级之间,通常会涉及路由和转发的过程。具体地,当某个层级中的第一进程接收到客户端发来的处理请求后,根据CDN中的路由规则,可以判断该处理请求是否应该由第一进程处理,若不是,可以按照路由规则,将该处理请求转发至同一层级的第二进程。第二进程可以构建该处理请求的响应请求,在该响应请求中,可以包括第二进程生成的ICE candidate,该ICE candidate可以作为访问目标流媒体资源的访问地址。该响应请求通过第一进程反馈至客户端之后,在客户端与第二进程之间可以建立WebRTC通信连接,客户端从而可以将流媒体资源上传至第二进程,或者从第二进程处获取流媒体资源。此外,若第二进程依然无法处理该处理请求,可以将该处理请求发送至下一层级中的第三进程。第三进程可以按照类似的方式构建响应请求,只不过该响应请求中包含的是第三进程生成的访问地址。该响应请求被反馈至第二进程之后,第二进程可以将其中的访问地址改写为自身的访问地址,并将改写了访问地址的响应请求通过第一进程反馈至客户端。这样,客户端与第二进程,以及第二进程与第三进程之间可以分别建立WebRTC连接,从而可以传输流媒体资源。由上可见,本申请提供的技术方案,能够将WebRTC标准与CDN进行有效结合,既能够发挥CDN的快速分发功能,又能够实现WebRTC的低延时功能,从而能够提高流媒体资源的传输效率。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种流媒体资源的传输方法,其特征在于,所述方法包括:
负载均衡服务器接收客户端发来的指向目标流媒体资源的处理请求,并将所述处理请求调度至第一进程;
所述第一进程判断是否由所述第一进程处理所述处理请求,若否,将所述处理请求转发至所述第一进程所处层级中的第二进程;
所述第二进程判断是否由所述第二进程处理所述处理请求,若是,通过所述第二进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第二进程生成的用于访问所述目标流媒体资源的访问地址和所述第二进程反馈的应答流媒体信息;
所述第二进程将所述响应请求反馈给所述第一进程,并通过所述第一进程将所述响应请求反馈给所述客户端,以使得所述客户端根据所述访问地址和所述应答流媒体信息与所述第二进程之间建立WebRTC连接,并通过建立的所述WebRTC连接传输所述目标流媒体资源;
其中,若所述第二进程无法处理所述处理请求,所述第二进程通过另一个层级的负载均衡服务器将所述处理请求调度至第三进程,其中,所述第三进程与所述第二进程处于内容分发网络中的不同层级,并且通过所述客户端与所述第二进程之间建立的WebRTC连接以及所述第二进程与所述第三进程之间建立的WebRTC连接,传输所述目标流媒体资源。
2.根据权利要求1所述的方法,其特征在于,所述处理请求包括资源获取请求;相应地,判断是否由所述第一进程处理所述处理请求包括:
判断所述第一进程关联的本地资源中是否包含所述目标流媒体资源,若包含,判定由所述第一进程处理所述处理请求,若不包含,判定不由所述第一进程处理所述处理请求。
3.根据权利要求1所述的方法,其特征在于,所述处理请求包括资源上传请求,所述资源上传请求中包括所述目标流媒体资源的唯一标识;相应地,判断是否由所述第一进程处理所述处理请求包括:
计算所述唯一标识对应的散列值,并判断所述散列值是否表征所述第一进程;若是,判定由所述第一进程处理所述处理请求,若否,判定不由所述第一进程处理所述处理请求。
4.根据权利要求1所述的方法,其特征在于,所述处理请求包括资源上传请求,所述资源上传请求中包括所述客户端支持的候选流媒体信息,所述响应请求中还包括由所述第二进程基于所述候选流媒体信息生成的应答流媒体信息;相应地,通过建立的所述连接传输所述目标流媒体资源包括:
所述客户端根据所述应答流媒体信息对所述目标流媒体资源进行处理,并按照所述访问地址向所述第二进程上传经过处理的目标流媒体资源。
5.根据权利要求1所述的方法,其特征在于,所述处理请求包括资源获取请求,所述资源获取请求中包括所述目标流媒体资源的唯一标识,所述响应请求中还包括所述目标流媒体资源关联的目标流媒体信息;相应地,通过建立的所述连接传输所述目标流媒体资源包括:
所述客户端通过所述访问地址下载所述目标流媒体资源,并通过所述目标流媒体信息对下载的所述目标流媒体资源进行处理。
6.根据权利要求1所述的方法,其特征在于,所述访问地址由所述第二进程按照以下方式生成:
所述第二进程获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断是否由所述第三进程处理所述处理请求,若是,通过所述第三进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第三进程生成的用于访问所述目标流媒体资源的访问地址;
将所述第三进程构建的响应请求反馈给所述第二进程,以使得所述第二进程与所述第三进程建立连接;
通过所述第二进程将所述第三进程构建的响应请求中的访问地址改写为所述第二进程生成的访问地址,并将改写了访问地址的响应请求反馈给所述客户端,以使得所述客户端与所述第二进程建立连接。
8.根据权利要求7所述的方法,其特征在于,所述处理请求包括资源上传请求,所述资源上传请求中包括所述客户端支持的候选流媒体信息;相应地,通过所述第三进程构建所述处理请求对应的响应请求包括:
所述第三进程基于所述候选流媒体信息,生成应答流媒体信息;
所述第三进程获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址;
所述第三进程构建响应请求,并将所述应答流媒体信息以及所述访问地址作为所述响应请求的响应消息体。
9.根据权利要求8所述的方法,其特征在于,传输所述目标流媒体资源包括:
所述客户端根据所述应答流媒体信息对所述目标流媒体资源进行处理,并按照所述第二进程生成的访问地址向所述第二进程上传经过处理的目标流媒体资源;
所述第二进程将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储,并按照所述第三进程生成的访问地址,将所述经过处理的目标流媒体资源上传至所述第三进程;
所述第三进程将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。
10.根据权利要求7所述的方法,其特征在于,所述处理请求包括资源获取请求,所述资源获取请求中包括所述目标流媒体资源的唯一标识;相应地,通过所述第三进程构建所述处理请求对应的响应请求包括:
所述第三进程获取与所述唯一标识相关联的目标流媒体信息;
所述第三进程获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址;
所述第三进程构建响应请求,并将所述目标流媒体信息以及所述访问地址作为所述响应请求的响应消息体。
11.根据权利要求10所述的方法,其特征在于,传输所述目标流媒体资源包括:
所述第二进程按照所述第三进程生成的访问地址,从所述第三进程处下载所述目标流媒体资源,并将下载的所述目标流媒体资源和所述目标流媒体信息关联存储;
所述客户端按照所述第二进程生成的访问地址,从所述第二进程处下载所述目标流媒体资源。
12.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述第三进程无法处理所述处理请求,将所述处理请求转发至与所述第三进程处于同一层级的第四进程,以通过所述第四进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第四进程生成的用于访问所述目标流媒体资源的访问地址;
将所述第四进程构建的响应请求通过所述第三进程反馈给所述第二进程,以使得所述第二进程与所述第四进程建立连接;
相应地,所述第二进程将所述第四进程构建的响应请求中的访问地址改写为所述第二进程生成的访问地址,并将改写了访问地址的响应请求反馈给所述客户端,以使得所述客户端与所述第二进程建立连接;
通过所述客户端与所述第二进程之间建立的连接以及所述第二进程与所述第四进程之间建立的连接,传输所述目标流媒体资源。
13.一种流媒体资源的传输系统,其特征在于,所述系统包括客户端和边缘节点,其中:
所述客户端用于向所述边缘节点发送指向目标流媒体资源的处理请求;
所述边缘节点用于将所述处理请求调度至第一进程;判断是否由所述第一进程处理所述处理请求,若否,将所述处理请求转发至所述第一进程所处层级中的第二进程;判断是否由所述第二进程处理所述处理请求,若是,通过所述第二进程构建所述处理请求对应的响应请求,所述响应请求中包括所述第二进程生成的用于访问所述目标流媒体资源的访问地址和所述第二进程反馈的应答流媒体信息;将所述响应请求反馈给所述第一进程,并通过所述第一进程将所述响应请求反馈给所述客户端,以使得所述客户端根据所述访问地址和所述应答流媒体信息与所述第二进程之间建立WebRTC连接,并通过建立的所述WebRTC连接传输所述目标流媒体资源;其中,若所述第二进程无法处理所述处理请求,将所述处理请求调度至第三进程,其中,所述第三进程与所述第二进程处于内容分发网络中的不同层级,并且通过所述客户端与所述第二进程之间建立的WebRTC连接以及所述第二进程与所述第三进程之间建立的WebRTC连接,传输所述目标流媒体资源。
14.根据权利要求13所述的系统,其特征在于,所述系统还包括中心节点,所述中心节点中至少包括第三进程,所述第三进程用于在所述第二进程无法处理所述处理请求时,接收调度来的所述处理请求,并构建所述处理请求对应的响应请求。
15.根据权利要求14所述的系统,其特征在于,所述响应请求中包括所述第三进程生成的用于访问所述目标流媒体资源的访问地址;将所述第三进程构建的响应请求反馈给所述第二进程,以使得所述第二进程与所述第三进程建立连接;
相应地,所述第二进程还用于将所述第三进程构建的响应请求中的访问地址改写为所述第二进程生成的访问地址,并将改写了访问地址的响应请求反馈给所述客户端,以使得所述客户端与所述第二进程建立连接。
16.根据权利要求14所述的系统,其特征在于,所述中心节点中还包括第四进程,其中,所述第四进程用于在所述第三进程无法处理所述处理请求时,接收从所述第三进程转发来的所述处理请求,并构建所述处理请求对应的响应请求。
17.根据权利要求16所述的系统,其特征在于,所述响应请求中包括所述第四进程生成的用于访问所述目标流媒体资源的访问地址;将所述第四进程构建的响应请求通过所述第三进程反馈给所述第二进程,以使得所述第二进程与所述第四进程建立连接;
相应地,所述第二进程还用于将所述第四进程构建的响应请求中的访问地址改写为所述第二进程生成的访问地址,并将改写了访问地址的响应请求反馈给所述客户端,以使得所述客户端与所述第二进程建立连接。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810350528.XA CN110392020B (zh) | 2018-04-18 | 2018-04-18 | 一种流媒体资源的传输方法及系统 |
PCT/CN2018/086180 WO2019200630A1 (zh) | 2018-04-18 | 2018-05-09 | 一种流媒体资源的传输方法及系统 |
EP18869461.6A EP3576371B1 (en) | 2018-04-18 | 2018-05-09 | Method and system for transmitting streaming media resource |
US16/099,850 US20210227034A1 (en) | 2018-04-18 | 2018-05-09 | A method and system for transmitting streaming media resources |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810350528.XA CN110392020B (zh) | 2018-04-18 | 2018-04-18 | 一种流媒体资源的传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110392020A CN110392020A (zh) | 2019-10-29 |
CN110392020B true CN110392020B (zh) | 2021-05-07 |
Family
ID=67139583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810350528.XA Expired - Fee Related CN110392020B (zh) | 2018-04-18 | 2018-04-18 | 一种流媒体资源的传输方法及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210227034A1 (zh) |
EP (1) | EP3576371B1 (zh) |
CN (1) | CN110392020B (zh) |
WO (1) | WO2019200630A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112261057A (zh) * | 2020-10-28 | 2021-01-22 | 湖南天琛信息科技有限公司 | 一种音视频通话的加密处理系统 |
CN113204721A (zh) * | 2021-05-14 | 2021-08-03 | 网宿科技股份有限公司 | 请求处理方法、节点及存储介质 |
CN113209632B (zh) * | 2021-06-08 | 2022-08-12 | 腾讯科技(深圳)有限公司 | 一种云游戏的处理方法、装置、设备及存储介质 |
CN114500436B (zh) * | 2021-12-22 | 2024-07-05 | 天翼云科技有限公司 | 一种数据传输方法及装置、电子设备 |
CN115242798B (zh) * | 2022-06-30 | 2023-09-26 | 阿里巴巴(中国)有限公司 | 一种基于边缘云的任务调度方法、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1322094B1 (en) * | 2001-12-21 | 2005-04-06 | Castify Networks SA | Process for selecting a server in a content delivery network |
US9576070B2 (en) * | 2014-04-23 | 2017-02-21 | Akamai Technologies, Inc. | Creation and delivery of pre-rendered web pages for accelerated browsing |
CN105516238B (zh) * | 2015-11-23 | 2019-03-19 | 网易(杭州)网络有限公司 | 数据请求方法、装置、节点服务器及cdn系统 |
CN105872044A (zh) * | 2016-03-30 | 2016-08-17 | 华南理工大学 | 基于WebRTC的流媒体多级缓存网络加速系统和方法 |
CN105959711A (zh) * | 2016-04-21 | 2016-09-21 | 乐视控股(北京)有限公司 | 一种直播流媒体的上传方法及装置 |
CN107864228B (zh) * | 2017-12-22 | 2020-11-27 | 网宿科技股份有限公司 | 一种内容分发网络中的连接建立方法及系统 |
-
2018
- 2018-04-18 CN CN201810350528.XA patent/CN110392020B/zh not_active Expired - Fee Related
- 2018-05-09 EP EP18869461.6A patent/EP3576371B1/en active Active
- 2018-05-09 WO PCT/CN2018/086180 patent/WO2019200630A1/zh unknown
- 2018-05-09 US US16/099,850 patent/US20210227034A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP3576371A4 (en) | 2019-12-04 |
EP3576371B1 (en) | 2020-08-05 |
CN110392020A (zh) | 2019-10-29 |
EP3576371A1 (en) | 2019-12-04 |
WO2019200630A1 (zh) | 2019-10-24 |
US20210227034A1 (en) | 2021-07-22 |
EP3576371A8 (en) | 2020-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110392020B (zh) | 一种流媒体资源的传输方法及系统 | |
CN110392071B (zh) | 流媒体资源的上传、下载方法、分发系统及流媒体服务器 | |
US9712408B2 (en) | Bandwidth management in a content distribution network | |
US20210368239A1 (en) | Distributing method, system, edge node, and central scheduling system for streaming media resource | |
US9300733B2 (en) | System and/or method for client-driven server load distribution | |
US20100268789A1 (en) | Network caching for multiple contemporaneous requests | |
US10893086B2 (en) | Node type based control of assistance for data streaming | |
US20130219441A1 (en) | Method, server and terminal for audio and video on demand | |
US11102319B2 (en) | Method, system and server for stream-pushing | |
CN103826139A (zh) | Cdn系统、观看服务器以及流媒体数据传输方法 | |
JP2023547256A (ja) | データダウンロード方法、装置、及びコンピュータ機器 | |
US8650313B2 (en) | Endpoint discriminator in network transport protocol startup packets | |
US20150074234A1 (en) | Content system and method for chunk-based content delivery | |
US20130238767A1 (en) | Method and system for downloading real-time streaming media in peer-to-peer network | |
WO2016180284A1 (zh) | 服务节点分配方法、装置、cdn管理服务器及系统 | |
CN110708293B (zh) | 多媒体业务的分流方法和装置 | |
KR20220116201A (ko) | 재생기에 오디오 및/또는 비디오 콘텐츠를 전달하기 위한 방법 | |
KR101525471B1 (ko) | 비디오제공방법 및 비디오제공시스템 | |
CN113934916A (zh) | Cdn业务的实现方法、终端设备、节点服务器及存储介质 | |
Hundeboll et al. | Peer-assisted content distribution with random linear network coding | |
CN117880542A (zh) | 基于长连接的cdn集群回源方法及基于长连接的cdn集群 | |
TW202327370A (zh) | 用於串流資料存取之系統、方法及電腦可讀媒體 | |
CN118612223A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210507 |