CN109348257B - 拉流控制方法、装置及直播*** - Google Patents
拉流控制方法、装置及直播*** Download PDFInfo
- Publication number
- CN109348257B CN109348257B CN201811354455.8A CN201811354455A CN109348257B CN 109348257 B CN109348257 B CN 109348257B CN 201811354455 A CN201811354455 A CN 201811354455A CN 109348257 B CN109348257 B CN 109348257B
- Authority
- CN
- China
- Prior art keywords
- node
- pull
- flow
- nodes
- server
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012797 qualification Methods 0.000 claims abstract description 95
- 238000011144 upstream manufacturing Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004080 punching Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26291—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种拉流控制方法、装置及直播***,应用于直播***的对等网络P2P服务器中,所述方法包括:周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到最新订阅资格要求;若判定从CDN服务器拉流的根拉流节点中存在上行能力不符合所述最新订阅资格要求的根拉流节点,则释放上行能力不符合最新订阅资格要求的根拉流节点;根据释放的根拉流节点的数量,确定CDN服务器的剩余子流配额;将剩余子流配额以及最新订阅资格要求发送至一个或多个拉流节点中,以通知拉流节点在上行能力满足最新订阅资格要求时,向CDN服务器请求拉流。本申请可以动态调整连接入CDN服务器拉流的节点,及时释放上行能力差的节点,使得上行能力越强的节点成为根节点。
Description
技术领域
本申请涉及直播领域,尤其涉及拉流控制方法、装置及直播***。
背景技术
随着网络技术的发展,网络直播越来越普及,各式各样的社会活动都可以借助网络直播方式进行传播。
目前,直播***采用的直播方式如下:主播端(终端)单方面推流到直播平台,然后通过直播平台的中转***、CDN(Content Delivery Network,内容分发)服务器的分发,最终在观众端(终端)拉流并播放流媒体内容。而通常拉流的观众端往往数量庞大,如何提高众多观众端拉流的效率,降低观众端的拉流成本成为评价直播***的重要指标。
发明内容
有鉴于此,本申请提供拉流控制方法、装置及直播***。
根据本申请实施例的第一方面,提供了一种拉流控制方法,所述方法应用于直播***的对等网络P2P服务器中,所述方法包括:
周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到最新订阅资格要求;
若判定从所述CDN服务器拉流的根拉流节点中存在上行能力不符合所述最新订阅资格要求的根拉流节点,则释放所述上行能力不符合所述最新订阅资格要求的根拉流节点;
根据释放的根拉流节点的数量,确定所述CDN服务器的剩余子流配额;
将所述剩余子流配额以及所述最新订阅资格要求发送至一个或多个拉流节点中,以通知所述拉流节点在上行能力满足所述最新订阅资格要求时,向所述CDN服务器请求拉流。
根据本申请实施例的第二方面,提供了一种拉流控制装置,所述装置应用于直播***的对等网络P2P服务器中,所述装置包括:
订阅资格要求更新模块,用于周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到最新订阅资格要求;
根拉流节点释放模块,用于若判定从所述CDN服务器拉流的根拉流节点中存在上行能力不符合所述最新订阅资格要求的根拉流节点,则释放所述上行能力不符合所述最新订阅资格要求的根拉流节点;
剩余子流配额确定模块,用于根据释放的根拉流节点的数量,确定所述CDN服务器的剩余子流配额;
信息发送模块,用于将所述剩余子流配额以及所述最新订阅资格要求发送至一个或多个拉流节点中,以通知所述拉流节点在上行能力满足所述最新订阅资格要求时,向所述CDN服务器请求拉流。
根据本申请实施例的第三方面,提供了一种直播***,所述直播***包括主播端、主播侧CDN服务器、主播侧网络服务器、切片服务器、观众侧CDN服务器以及观众侧对等网络,其中,所述观众侧对等网络中包括对等网络服务器以及多个拉流节点;
所述主播端用于采集音视频流并向所述主播侧CDN服务器推流;
所述主播侧CDN服务器用于将接收到的主播端发送的音视频流发送至所述主播侧网络服务器中;
所述主播侧网络服务器用于对接收到的音视频流进行处理,并将处理后的音视频流发送至切片服务器中;
所述切片服务器用于对接收到的主播侧网络服务器发送的音视频流进行切片处理,生成多个切片子流,并将所述切片子流发送至观众侧CDN服务器中;
所述观众侧CDN服务器用于将接收到的切片子流分发至接入的拉流节点中;所述对等网络服务器用于接收拉流节点的注册,以及对所述观众侧的CDN服务器的切片子流分发情况进行管理;
其中,所述对等网络服务器进一步用于执行上述的拉流控制方法的步骤;
所述拉流节点用于向所述观众侧CDN服务器请求切片子流。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的拉流控制方法的步骤。
根据本申请实施例的第五方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的拉流控制方法的步骤。
本申请实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,P2P服务器可以周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到该CDN服务器的最新订阅资格要求,然后将CDN服务器的根拉流节点中上行能力不符合该最新订阅资格要求的节点释放,并根据释放的节点的数量确定CDN服务器的剩余子流配额,随后将该CDN服务器的剩余子流配额以及该最新订阅资格要求发送至一个或多个拉流节点中,以通知该一个或多个拉流节点在上行能力满足最新订阅资格要求时,可以向CDN服务器请求拉流,无需P2P服务器进行节点的资格审核,从而降低了P2P服务器的处理压力,提高了处理效率。另外,通过P2P服务器上述的处理,可以动态调整连接入CDN服务器拉流的节点,及时释放上行能力差的节点,使得上行能力越强的节点成为根节点,同时使得CDN服务器的资源分配更加合理化。
附图说明
图1是本申请一示例性实施例示出的一种拉流控制方法实施例的步骤流程图;
图2是本申请一示例性实施例示出的直播***的架构示意图;
图3是本申请一示例性实施例示出的节点订阅的示意图;
图4是本申请一示例性实施例示出的环订阅示意图;
图5是本申请的装置所在服务器的一种硬件结构图;
图6是本申请一示例性实施例示出的一种拉流控制装置实施例的结构框图;
图7是本申请一示例性实施例示出的一种直播***实施例的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参考图1,示出了本申请一示例性实施例示出的一种拉流控制方法实施例的步骤流程图,其中,本申请实施例可以应用在直播***的对等网络P2P服务器。
以下首先对直播***的架构进行说明:
参考图2一示例性实施例示出的直播***的架构示意图,直播***中可以包括主播端、主播侧CDN网络(包括分布在各地的多个CDN服务器)、主播网络、P2P(Peer-to-Peer,对等网络)源站(切片服务器)、观众侧CDN网络(包括分布在各地的多个CDN服务器)、观众侧P2P服务器(又称对等网络服务器)以及观众端。需要说明的是,由于本申请实施例着重于观众侧的描述,图2中把主播侧的CDN网络和主播网络画在一起,但实际上两者是分开的。
基于图2的直播***的架构图,直播***大致的工作流程如下:主播端可以通过RTMP(Real Time Messaging Protocol,实时消息传输协议)或者UDP(User DatagramProtocol,用户数据包协议)向主播侧CDN服务器推流,各地的CDN服务器将收到的音视频流都发到同一个主播网络服务器中,主播网络服务器会对接收到的音视频流进行处理,然后将处理后的音视频流转发至P2P源站进行切片,切片的大概过程是由P2P源站将接收的音视频流切割成1KB大小的数据包,并将每个数据包编号后按照自定义的格式封装成切片子流,P2P源站完成切片后将切片子流交由观众测的CND网络进行分发。观众端加入直播间后,会连接到CDN服务器,从CDN服务器中拉流。同时向P2P接入服务器上报接入消息,以与其他观众端进行P2P连接,最终组成P2P网络(即对等网络)。
在上述直播***中,本申请实施例着重于观众侧的描述,在本申请实施例中,将P2P网络中的各个观众端称为拉流节点(简称节点)。
在一种实施方式中,组成P2P网络的过程可以包括如下过程:节点发现的过程以及节点之间建立连接的过程。
节点发现的过程:
当新节点接入CDN服务器(下文如无特别说明,该CDN服务器均指观众侧的CDN服务器)后,会主动向P2P服务器进行注册,完成注册以后,新节点可以向P2P服务器发送查询节点的请求,以请求从P2P服务器中获取已注册的节点组成的节点列表。随后,新节点根据自身的出度(本节点主动连接别的节点称为出度,别的节点主动连接本节点(即本节点被动连接)称为入度)能力、节点列表中各个待连接节点的上行质量等从返回的节点列表选择至少一个目标节点主动进行P2P连接。
节点之间建立连接的过程:
当新节点从P2P服务器获得的节点列表中选择至少一个目标节点以后,新节点会向至少一个目标节点发送P2P连接请求,目标节点收到P2P连接请求后,可以根据自身的入度和出度情况,决定是否回应。如果回应了,即代表可以与新节点进行P2P连接。如果新节点没有收到目标节点的回应,则说明打洞不成功,此时新节点会告诉P2P服务器需要向目标节点打洞,由P2P服务器告诉目标节点,此时目标节点就知道有新节点请求打洞,在符合接入条件情况下,目标节点就会主动和该新节点打洞,或者P2P服务器会重新发一份新的节点列表给新节点,新节点从该新的节点列表中重新选择目标节点进行主动连接。
在实际中,当节点间建立连接以后,可以按照一定时间间隔发送心跳包来维护该连接,其中,该心跳包可以包含节点的带宽上行能力(如带宽上行速率)。
此外,可以根据通信的两节点在预设时间段内发出的字节数量和接收的字节数量的比例来计算节点在该时间段内的丢包率。在具体实现中,针对发出数据的发出节点,其会统计两次心跳包间隔内发出的字节数量,并将该字节数量附加在下一次心跳包中传输至接收节点,则对于接收节点而言,其也会统计收到的两次心跳包间隔内接收到的字节数量,然后计算接收到的字节数量以及从心跳包中读取的该心跳间隔中发送节点发出的字节数量的比值作为发出节点的丢包率。同理,接收节点也会将心跳间隔内发送至发送节点的字节数量附加到下一次的心跳包中传输给发送节点,发送节点根据自身在该心跳间隔内接收的字节数量与接收节点传输的字节数量计算接收节点的丢包率。例如,两次心跳包(例如第一个心跳包与第二个心跳包)间隔内,A向B发送了10K字节。A在第二个心跳包告诉B自己发送了10K字节。B会计算两次心跳包间隔内自己收到的数据包个数,比如是9K字节。那么这次心跳间隔期间,A到B的丢包率就是(10K-9K)/10K=10%。
基于上述的直播***和P2P组网的描述,本申请实施例提出的一种拉流控制方法实施例,着重在于说明基于P2P网络,P2P服务器动态调整从CDN服务器中拉流的拉流节点的过程,如图1所示,本申请实施例可以包括如下步骤:
步骤101,周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到最新订阅资格要求;
在具体实现中,当拉流节点想要从CDN服务器中拉流时,其拉流请求首先发送至P2P服务器中,由P2P服务器判断该拉流节点是否能够从CDN服务器中拉流,若是,则P2P向该拉流节点返回允许响应,若否,则P2P向该拉流节点返回拒绝响应,以此实现对CDN服务器的子流分发管理。
其中,CDN服务器的最新订阅资格要求是指拉流节点能够从CDN服务器中拉流的最低上行能力要求。
在具体实现中,P2P服务器可以按照预设的更新频率周期性地对CDN服务器的订阅资格要求进行更新,从而获得该CDN服务器的最新订阅资格要求。例如,1秒或2秒更新一次CDN服务器的订阅资格要求。
在本申请实施例的一种优选实施例中,步骤101进一步可以包括如下子步骤:
子步骤S11,接收与所述P2P服务器连接的多个拉流节点按照预设时间间隔发送的心跳包,其中,所述心跳包包括所述拉流节点的上行能力;
其中,P2P服务器与其连接的拉流节点通过心跳包维护连接关系,该心跳包中可以包括拉流节点最新的上行能力。
作为一种示例,该上行能力可以为拉流节点的带宽上行速率(即每秒输出的字节数)。
子步骤S12,周期性地基于所述上行能力,对所述拉流节点进行排序;
在实现时,可以预先设定更新周期,在达到更新周期时,P2P服务器可以基于所有拉流节点的上行能力,对拉流节点进行排序。其中,该排序可以为降序排序。
子步骤S13,按照预设的子流配额,获取排序在前的与所述子流配额对应数量的拉流节点,作为计算节点;
其中,上述预设的子流配额对应数量可以根据预设子流配额(即一条流可以分成多少条子流)、与P2P服务器连接的拉流节点的数量以及预设子流百分比计算获得。在实现中,可以首先根据预设子流配额以及与P2P服务器连接的拉流节点的数量(即拉流节点数量),计算需要拉流的子流总数量,然后计算预设的CDN拉流比例与所述需要拉流的子流总数量的乘积,从而得到CDN服务器负责的子流数量;根据上述CDN服务器负责的子流数量以及每个节点可以拉流的数量(即子流配额),可以得到能够从CDN服务器中拉流的根节点数量,即子流配额对应的数量。例如,假设共有100个节点与P2P服务器连接,预设子流配额为10。那么,100个节点共计需要拉1000条子流。假如可以直接从CDN拉的子流百分比是10%,那么CDN的子流配额是1000*10%=100。P2P服务器获知所有节点的上行能力之后,对上行能力从高到低排序,挑选(100(直接从服务器拉流的配额)/10(每个节点可以拉的子流数))=10个拉流节点作为计算节点。
子步骤S14,根据所述计算节点的上行能力,确定所述CDN服务器的最新订阅资格要求。
当确定计算节点以后,P2P服务器可以结合计算节点的上行能力,确定CDN服务器的最新订阅资格要求。
在一种实施方式中,可以将计算节点中最小的上行能力作为CDN服务器的最新订阅资格要求。
当然,本申请实施例并不限于上述确定最新订阅资格要求的方式,本领域技术人员采用其他方式确定最新订阅资格要求均是可以的,例如,将计算节点的上行能力的均值作为CDN服务器的最新订阅资格要求。
在本申请实施例中,由于是各个拉流节点的上行能力是会发送变化的,则根据上行能力的排序得到的计算节点也会跟着变化,从而导致根据计算节点的上行能力确定的最新订阅资格要求也会动态调整,后续则可以根据动态调整的最新订阅资格要求,筛选上行能力适配的节点作为根拉流节点。
步骤102,若判定从所述CDN服务器拉流的根拉流节点中存在上行能力不符合所述最新订阅资格要求的根拉流节点,则释放所述上行能力不符合所述最新订阅资格要求的根拉流节点;
在具体实现中,CDN服务器的初始根拉流节点根据子流配额采取先到先得的原则确定,即当P2P服务器接收到拉流请求以后,若判定CDN服务器的子流配额没满,则向对应的拉流节点发送允许响应,以允许该拉流节点从CDN服务器中拉流。
但随着各个拉流节点的上行能力的变化,初始根拉流节点中可能会存在上行能力较差的节点,针对这些上行能力较差的根拉流节点,本申请实施例可以通过P2P服务器将其释放掉,从而让其他上行能力强的节点能够从CDN服务器中拉流。
例如,如图3所示,假设为CDN服务器配置的子流配额为3,基于先到先得的原则,开始接入的节点1、2、3都可以直接从CDN服务器中拉流,当节点4加入时,它先询问P2P服务器拉流,P2P服务器因CDN服务器的子流配额饱和而把节点4拒绝,此时若节点4连到上行质量最好的节点1中拉流,则节点1的上行能力变强了(其他节点没有上行,而节点1有1个上行节点,所以变强了)。假如此时再有个节点5接进来,它连到上行质量最好的节点1和节点2中拉流,那么节点1的上行能力变成2,节点2的上行能力变成1,节点3的上行能力还是0。则此时节点3为上行能力较差的根拉流节点。
在本实施例中,可以将上行能力不符合最新订阅资格要求的根拉流节点作为上行能力较差的根拉流节点。
在一种实施方式中,上述释放上行能力不符合最新订阅资格要求的根拉流节点,具体可以为:当接收到所述上行能力不符合所述最新订阅资格要求的根拉流节点发送的订阅请求时,向所述根拉流节点返回拒绝响应,以拒绝所述根拉流节点向所述CDN服务器拉流的请求。
步骤103,根据释放的根拉流节点的数量,确定所述CDN服务器的剩余子流配额;
例如,在图3的例子中,当根拉流节点3因为上行能力差而被P2P服务器释放掉时,则P2P服务器可以确定CDN服务器的剩余子流配额为1。以此类推,当释放两个根拉流节点时,CDN服务器的剩余子流配额为2,即将释放的根拉流节点的数量作为CDN服务器的剩余子流配额。
步骤104,将所述剩余子流配额以及所述最新订阅资格要求发送至一个或多个拉流节点中,以通知所述拉流节点在上行能力满足所述最新订阅资格要求时,向所述CDN服务器请求拉流。
当确定剩余子流配额以及最新订阅资格要求以后,P2P服务器可以将该剩余子流配额以及最新订阅资格要求发送至一个或多个与其连接的拉流节点中。如果拉流节点发现自己符合连接CDN服务器拉流的最新订阅资格要求,则会主动和CDN服务器连接成为根拉流节点。
例如,针对图4的例子,当根拉流节点3因为上行能力差而被P2P服务器释放掉时,则P2P服务器会将剩余子流配额为1和最新订阅资格要求告诉连接的节点,如果连接的节点发现自己符合CDN服务器的最新资格要求,则会主动和CDN服务器连接成为根节点。
在本申请实施例的一种优选实施例中,步骤104进一步可以包括如下子步骤:
将所述剩余子流配额以及所述最新订阅资格要求封装在心跳响应包中,并将所述心跳响应包发送至对应的拉流节点。
具体的,P2P服务器可以将剩余子流配额以及最新订阅资格要求封装在针对接收到的心跳包返回的心跳响应包中,而由于P2P接收到各个拉流节点发送的心跳包的时间是不一样的,因此向拉流节点返回心跳响应包的时间也不同,这样可以错开向拉流节点发送剩余子流配额以及最新订阅资格要求的时间,降低P2P服务器的压力。
在本申请实施例中,P2P服务器可以周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到该CDN服务器的最新订阅资格要求,然后将CDN服务器的根拉流节点中上行能力不符合该最新订阅资格要求的节点释放,并根据释放的节点的数量确定CDN服务器的剩余子流配额,随后将该CDN服务器的剩余子流配额以及该最新订阅资格要求发送至一个或多个拉流节点中,以通知该一个或多个拉流节点在上行能力满足最新订阅资格要求时,可以向CDN服务器请求拉流,无需P2P服务器进行节点的资格审核,从而降低了P2P服务器的处理压力,提高了处理效率。另外,通过P2P服务器上述的处理,可以动态调整连接入CDN服务器拉流的节点,及时释放上行能力差的节点,使得上行能力越强的节点成为根节点,同时使得CDN服务器的资源分配更加合理化。
在具体实现中,当拉流节点从CDN服务器拉流以后,还可以主动向订阅本节点的拉流节点发送该切片子流。例如,如图3的所示,若本节点为节点1,当其从CDN服务器中获得切片子流以后,可以主动向订阅其的节点4和节点5发送该切片子流。本实施例采用主动向订阅的节点推流的方式,好处是时延较低,适于低延时场景,比如直播场景。
针对被P2P服务器释放的拉流节点(为了更好地区分,后称请求节点),其可以从与本节点处于连接状态的拉流节点(即可用节点)中选择至少一个拉流节点作为目标拉流节点进行拉流。在具体实现中,请求节点可以选择上行质量较强的至少一个可用节点作为目标拉流节点。其中,可用节点的上行质量通过该可用节点的丢包率以及子流时延确定。
其中,可用节点的丢包率可以参照上述的丢包率计算方式,此处不再赘述。
可用节点的子流时延可用根据该可用节点到CDN服务器的路径长度来确定,路径长度越长子流时延越大。例如,如图4所示,CDN服务器的切片子流到达节点4需要经过2跳,对应的路径长度为2;而CDN服务器的切片子流到达节点2需要经过1跳,对应的路径长度为1,则节点4的路径长度大于节点2的路径长度。可以按照预先设定的每一跳所需的时长,计算该路径长度对应的子流时延。
当请求节点获得各个可用节点的丢包率以及子流时延以后,可以根据预设的评分算法,将每个可用节点的丢包率和子流时延进行融合得到该可用节点的评分。最终本节点选取评分排序在前的M个可用节点作为目标拉流节点,其中,M大于或等于1。
在实际中,请求节点在向目标拉流节点发出拉流请求之前,还会先检查其与目标拉流节点间是否存在直接或间接的订阅关系,只有在不存在直接或间接的订阅关系时才向目标拉流节点发出拉流请求,以避免出现订阅环的问题(订阅环会导致数据出现死等状态)。例如,如图4的环订阅示意图所示,假设请求节点为节点1,节点1因上行能力不足被CDN服务器放弃了,那节点1就找可以连接的节点,假设目标拉流节点为节点7,当节点1订阅了节点7时,由于节点7与节点1存在间接的订阅关系(节点2和节点3与节点1存在直接的订阅关系),那么就形成了一个订阅环,这个订阅环是一个孤立的P2P订阅***。同理,当节点1订阅节点2-6任何一个时都会形成订阅环。
在一种实施方式中,请求节点可以获取请求节点的订阅关系列表,其中,该订阅关系列表中包括所有订阅请求节点的已订阅节点的标识(即直接订阅请求节点的节点),以及,所有订阅该已订阅节点的节点的标识(即间接订阅请求节点的节点)。随后,可以在该订阅关系列表中查找目标拉流节点的标识;若查找成功,则判定目标拉流节点与请求节点存在订阅关系;若查找不成功,则判定目标拉流节点与请求节点不存在订阅关系。
其中,可以采用如下两种方式获取请求节点的订阅关系列表,但本实施例并不限于此:
方式一:在请求节点中接收已订阅本节点的已订阅节点上报的订阅关系,汇总本节点与所述已订阅节点的订阅关系以及所述已订阅节点上报的订阅关系,得到订阅关系列表。即在每个节点中都会维护一份其他节点从本节点中订阅切片子流的订阅关系列表。在该订阅关系数据表中,记录了直接或间接订阅本节点的拉流节点的标识。
方式二:所有的节点都可向P2P服务器上报自己的订阅关系,由P2P服务器维护每个节点的订阅关系列表,则当请求节点需要该订阅关系列表时,可以从P2P服务器中请求该订阅关系列表。
在另一种实施方式中,请求节点还可以向P2P服务器发送订阅关系查询请求,该订阅关系查询请求包括目标拉流节点的标识,以将目标拉流节点的标识发送至P2P服务器,请求P2P服务器从本地维护的该请求节点对应的订阅关系列表中查找该目标拉流节点的标识。如果查找成功,表示两者存在订阅关系,则P2P服务器向本节点返回拒绝订阅响应,以通知所述请求节点拒绝向所述目标拉流节点订阅切片子流,避免订阅环的出现;否则,如果查找失败,表示两者不存在订阅关系,则P2P服务器向本节点返回允许订阅响应。
例如,图4对应的各个节点的订阅关系列表如下表1所示:
表1
当请求节点确定与目标拉流节点不存在订阅关系以后,可以向目标拉流节点发送拉流请求。针对目标拉流节点而言,当接收到拉流请求以后,也会判断自身的上行能力够不够空闲带宽来接受该拉流请求。
在一种实施方式中,目标拉流节点可以采用如下方式判断自身是否存在空闲带宽:
获取目标拉流节点一定时间段内的丢包率;根据所述丢包率,确定目标拉流节点能传输的最大子流数;确定目标拉流节点的已被订阅子流数;若所述已被订阅子流数小于所述最大子流数,则判定目标拉流节点有空闲带宽;若所述已被订阅子流数大于或等于所述最大子流数,则判定目标拉流节点没有空闲带宽。
具体的,目标拉流节点可以周期性计算自身的丢包率,具体计算方式为计算两次心跳包发送间隔内目标拉流节点向各个可用节点发出的字节数量与收到的字节数量的比值。例如,节点1统计两次心跳包发送间隔内分别向与本节点连接的可用节点2、3、4发送10K字节,则节点1在该时间段内发出的字节数量为30K。对应的接收到节点2返回的字节数量为8K,接收到节点3返回的字节数量为6K,接收到节点4返回的字节数量为6K,则节点1在该时间段内收到的字节数量为30K,则节点1的丢包率为(30-20)/30=33%。
获得丢包率以后,可以进一步根据该丢包率动态调整目标拉流节点能传输的最大子流数。一种实施方式可以为:若所述丢包率低于第一预设丢包率阈值,则按照预设增量增加子流,得到最大子流数;若所述丢包率高于第二预设丢包率阈值,则按照预设增量减少子流,得到最大子流数,其中,所述第二预设丢包率阈值大于或等于所述第一预设丢包率阈值。
例如,若当前被订阅的子流有3个,对应的丢包率比较低(低于第一预设丢包率阈值),则可以按照预设增量增加子流,例如,增量为1,增加1个子流,使得最大子流数为4。或者,当对应的丢包率比较高(高于第二预设丢包率阈值),则可以按照预设增量减少子流,例如,减少1个子流,使得最大子流数为2。
同时,目标拉流节点还可以根据已订阅节点的数量,确定已被订阅子流数量。如果已被订阅子流数小于最大子流数,则表示目标拉流节点有空闲带宽,例如,根据上例,最大子流数为4,已被订阅子流数为3,则目标拉流节点还有一个子流空闲可以被订阅。如果已被订阅子流数大于或等于最大子流数,则表示目标拉流节点没有空闲带宽,例如,若最大子流数为3,已被订阅子流数为3,则目标拉流节点没有空闲的子流可以被订阅。
如果目标拉流节点有空闲带宽,则可以接受该拉流请求,并向请求节点发送与拉流请求对应的切片子流。
如果没有空闲带宽,此时目标拉流节点可以进一步查询订阅自己的所有节点(即已订阅节点)的上行能力。例如,2号节点从1号节点中订阅获得1号切片子流,那么1号节点就是订阅节点,2号节点就是1号节点的已订阅节点。
其中,已订阅节点的上行能力可以为该已订阅节点的带宽上行速率。可以从节点间维护连接的心跳包中获得各个已订阅节点的带宽上行速率。
随后,可以将所有已订阅节点中最小的上行能力与发送拉流请求的节点(即请求节点)的上行能力(该上行能力在拉流请求中携带)比较,即比较已订阅节点中最小的带宽上行速率与请求节点的带宽上行速率。
如果该最小的上行能力小于请求节点的上行能力,则表示请求节点的上行能力比该最小的上行能力对应的已订阅节点的上行能力强,此时目标拉流节点可以释放该最小的上行能力对应的已订阅节点的订阅,并接受请求节点的订阅。
其中,释放该最小的上行能力对应的已订阅节点的订阅可以实现为,向该最小的上行能力对应的已订阅节点发送取消订阅消息,以通知该已订阅节点无需从本节点拉流。
当目标拉流节点接受本请求节点的订阅时,可以向本请求节点发送同意消息,同时可以直接向请求节点下发与订阅请求对应的切片子流。
在实际中,目标拉流节点在接受请求节点的订阅之前,还可以先判断本节点与请求节点之间是否存在订阅关系,如果在两者之间不存在订阅关系时才向请求节点发送同意消息,否则,则拒绝请求节点的订阅。关于目标拉流节点判断本节点与请求节点之间是否存在订阅关系的方式可以参照上述请求节点侧的订阅关系的判断。
需要说明的是,本申请实施例可以在接收订阅请求的目标拉流节点侧进行订阅关系的判断,也可以在请求节点侧进行订阅关系的判断,或者同时在两侧进行订阅关系的判断,本申请实施例对此不作限制。
在本申请实施例的一种优选实施例中,当请求节点接收到目标拉流节点发送的同意订阅消息时或者接收到目标拉流节点发送的切片子流时,请求节点可以将本节点与目标拉流节点的订阅关系上报至P2P服务器中,以便于P2P服务器维护订阅关系列表。
另外,对于目标拉流节点而言,如果其丢包率比较高,则表示该节点的能力下降,此时可以减少最大子流数,如将最大子流数减少为2个,而已订阅子流数有3个,则可以剔除最差的子流。具体可以为将已订阅节点的上行能力最差的已订阅节点释放,以此提高目标拉流节点上行能力。
另一方面,如果已订阅节点中最小的带宽上行速率大于请求节点的带宽上行速率,则表示请求节点的上行能力比该最小的带宽上行速率对应的已订阅节点的上行能力弱,此时目标拉流节点可以向请求节点发送订阅失败响应,以拒绝请求节点的订阅。则针对请求节点而言,需要从与其连接的节点中选取其他节点发送订阅请求。
与前述方法的实施例相对应,本申请还提供了拉流控制装置实施例。
本申请的装置实施例可以应用在P2P服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请的装置所在服务器的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的服务器通常根据该装置的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图6,示出了本申请一示例性实施例示出的一种拉流控制装置实施例的结构框图,所述装置应用于直播***的对等网络P2P服务器中,所述装置包括如下模块:
订阅资格要求更新模块601,用于周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到最新订阅资格要求;
根拉流节点释放模块602,用于若判定从所述CDN服务器拉流的根拉流节点中存在上行能力不符合所述最新订阅资格要求的根拉流节点,则释放所述上行能力不符合所述最新订阅资格要求的根拉流节点;
剩余子流配额确定模块603,用于根据释放的根拉流节点的数量,确定所述CDN服务器的剩余子流配额;
信息发送模块604,用于将所述剩余子流配额以及所述最新订阅资格要求发送至一个或多个拉流节点中,以通知所述拉流节点在上行能力满足所述最新订阅资格要求时,向所述CDN服务器请求拉流。
在本申请实施例的一种优选实施例中,所述订阅资格要求更新模块601具体可以包括如下子模块:
心跳包接收子模块,用于接收与所述P2P服务器连接的多个拉流节点按照预设时间间隔发送的心跳包,其中,所述心跳包包括所述拉流节点的上行能力;
排序子模块,用于周期性地基于所述上行能力,对所述拉流节点进行排序;
计算节点确定子模块,用于按照预设的子流配额,获取排序在前的与所述子流配额对应数量的拉流节点,作为计算节点;
最新订阅资格要求确定子模块,用于根据所述计算节点的上行能力,确定所述CDN服务器的最新订阅资格要求。
在本申请实施例的一种优选实施例中,所述最新订阅资格要求确定子模块具体用于:
将所述计算节点中最小的上行能力作为所述CDN服务器的最新订阅资格要求。
在本申请实施例的一种优选实施例中,所述计算节点确定子模块具体用于:
确定与所述P2P服务器连接的拉流节点的数量,记作拉流节点数量;
根据所述拉流节点数量与所述预设的子流配额,计算子流总数量;
根据所述子流总数量与预设的CDN拉流比例,确定CDN服务器负责的子流数量;
根据所述CDN服务器负责的子流数量以及所述子流配额,确定能够从CDN服务器拉流的节点的数量;
获取排序在前的与所述能够从CDN服务器拉流的节点的数量对应的拉流节点,作为计算节点。
在本申请实施例的一种优选实施例中,所述信息发送模块604具体用于:
将所述剩余子流配额以及所述最新订阅资格要求封装在心跳响应包中,并将所述心跳响应包发送至对应的拉流节点。
在本申请实施例的一种优选实施例中,所述根拉流节点释放模块602具体用于:
当接收到所述上行能力不符合所述最新订阅资格要求的根拉流节点发送的拉流请求时,向所述根拉流节点返回拒绝响应,以拒绝所述根拉流节点向所述CDN服务器拉流的请求。
在本申请实施例的一种优选实施例中,所述装置还包括:
订阅关系查询请求接收模块,用于接收请求节点发送的订阅关系查询请求,其中,所述请求节点为被P2P服务器拒绝从CDN服务器中拉流的拉流节点,所述查询请求包括目标拉流节点的标识,所述目标拉流节点为所述请求节点从与其连接的拉流节点中选择的上行质量最强的节点;
订阅关系列表获取模块,用于根据所述订阅关系查询请求,获取所述请求节点对应的订阅关系列表,其中,所述订阅关系列表为接收到直接或间接订阅所述请求节点的节点上报的订阅关系后生成的列表;
订阅关系查询模块,用于从所述请求节点对应的订阅关系列表中查找所述目标拉流节点的标识;若查找成功,则向所述请求节点发送拒绝订阅响应,以通知所述请求节点拒绝向所述目标拉流节点订阅切片子流,避免订阅环的出现;若查找失败,则向所述请求节点发送允许订阅响应,以通知所述请求节点向所述目标拉流节点订阅切片子流。
与前述方法的实施例相对应,本申请还提供了直播***的实施例。
请参考图7,示出了本申请一示例性实施例示出的一种直播***实施例的结构框图,所述直播***包括主播端701、主播侧CDN服务器702、主播侧网络服务器703、切片服务器704、观众侧CDN服务器705以及观众侧对等网络,其中,所述观众侧对等网络中包括对等网络服务器706以及多个拉流节点707;
所述主播端701用于采集音视频流并向所述主播侧CDN服务器推流;
所述主播侧CDN服务器702用于将接收到的主播端发送的音视频流发送至所述主播侧网络服务器中;
所述主播侧网络服务器703用于对接收到的音视频流进行处理,并将处理后的音视频流发送至切片服务器中;
所述切片服务器704用于对接收到的主播侧网络服务器发送的音视频流进行切片处理,生成多个切片子流,并将所述切片子流发送至观众侧CDN服务器中;
所述观众侧CDN服务器705用于将接收到的切片子流分发至接入的拉流节点中;
所述对等网络服务器706用于接收拉流节点的注册,以及对所述观众侧的CDN服务器的切片子流分发情况进行管理;
其中,所述对等网络服务器706进一步可以用于执行图1实施例的拉流控制方法中的步骤;
所述拉流节点707用于接收观众侧CDN服务器发送的切片子流。
对于装置及直播***实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例以及直播***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述方法实施例的步骤。
本申请还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法实施例的步骤。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如车载终端、移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位***(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和***通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (11)
1.一种拉流控制方法,其特征在于,所述方法应用于直播***的对等网络P2P服务器中,所述方法包括:
周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到最新订阅资格要求;
若判定从所述CDN服务器拉流的根拉流节点中存在上行能力不符合所述最新订阅资格要求的根拉流节点,则释放所述上行能力不符合所述最新订阅资格要求的根拉流节点;
根据释放的根拉流节点的数量,确定所述CDN服务器的剩余子流配额;
将所述剩余子流配额以及所述最新订阅资格要求发送至一个或多个拉流节点中,以通知所述拉流节点在上行能力满足所述最新订阅资格要求时,向所述CDN服务器请求拉流。
2.根据权利要求1所述的方法,其特征在于,所述周期性地对CDN服务器的订阅资格要求进行更新,得到最新订阅资格要求,包括:
接收与所述P2P服务器连接的多个拉流节点按照预设时间间隔发送的心跳包,其中,所述心跳包包括所述拉流节点的上行能力;
周期性地基于所述上行能力,对所述拉流节点进行排序;
按照预设的子流配额,获取排序在前的与所述子流配额对应数量的拉流节点,作为计算节点;
根据所述计算节点的上行能力,确定所述CDN服务器的最新订阅资格要求。
3.根据权利要求2所述的方法,其特征在于,所述根据所述计算节点的上行能力,确定所述CDN服务器的最新订阅资格要求,包括:
将所述计算节点中最小的上行能力作为所述CDN服务器的最新订阅资格要求。
4.根据权利要求2或3所述的方法,其特征在于,所述按照预设的子流配额,获取排序在前的与所述子流配额对应数量的拉流节点,作为计算节点,包括:
确定与所述P2P服务器连接的拉流节点的数量,记作拉流节点数量;
根据所述拉流节点数量与所述预设的子流配额,计算子流总数量;
根据所述子流总数量与预设的CDN拉流比例,确定CDN服务器负责的子流数量;
根据所述CDN服务器负责的子流数量以及所述子流配额,确定能够从CDN服务器拉流的节点的数量;
获取排序在前的与所述能够从CDN服务器拉流的节点的数量对应的拉流节点,作为计算节点。
5.根据权利要求2或3所述的方法,其特征在于,所述将所述剩余子流配额以及所述最新订阅资格要求发送至一个或多个拉流节点中,包括:
将所述剩余子流配额以及所述最新订阅资格要求封装在心跳响应包中,并将所述心跳响应包发送至对应的拉流节点。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述释放所述上行能力不符合所述最新订阅资格要求的根拉流节点,包括:
当接收到所述上行能力不符合所述最新订阅资格要求的根拉流节点发送的拉流请求时,向所述根拉流节点返回拒绝响应,以拒绝所述根拉流节点向所述CDN服务器拉流的请求。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收请求节点发送的订阅关系查询请求,其中,所述请求节点为被P2P服务器拒绝从CDN服务器中拉流的拉流节点,所述查询请求包括目标拉流节点的标识,所述目标拉流节点为所述请求节点从与其连接的拉流节点中选择的上行质量最强的节点;
根据所述订阅关系查询请求,获取所述请求节点对应的订阅关系列表,其中,所述订阅关系列表为接收到直接或间接订阅所述请求节点的节点上报的订阅关系后生成的列表;
从所述请求节点对应的订阅关系列表中查找所述目标拉流节点的标识;
若查找成功,则向所述请求节点发送拒绝订阅响应,以通知所述请求节点拒绝向所述目标拉流节点订阅切片子流,避免订阅环的出现;
若查找失败,则向所述请求节点发送允许订阅响应,以通知所述请求节点向所述目标拉流节点订阅切片子流。
8.一种拉流控制装置,其特征在于,所述装置应用于直播***的对等网络P2P服务器中,所述装置包括:
订阅资格要求更新模块,用于周期性地对所管理的CDN服务器的订阅资格要求进行更新,得到最新订阅资格要求;
根拉流节点释放模块,用于若判定从所述CDN服务器拉流的根拉流节点中存在上行能力不符合所述最新订阅资格要求的根拉流节点,则释放所述上行能力不符合所述最新订阅资格要求的根拉流节点;
剩余子流配额确定模块,用于根据释放的根拉流节点的数量,确定所述CDN服务器的剩余子流配额;
信息发送模块,用于将所述剩余子流配额以及所述最新订阅资格要求发送至一个或多个拉流节点中,以通知所述拉流节点在上行能力满足所述最新订阅资格要求时,向所述CDN服务器请求拉流。
9.一种直播***,其特征在于,所述直播***包括主播端、主播侧CDN服务器、主播侧网络服务器、切片服务器、观众侧CDN服务器以及观众侧对等网络,其中,所述观众侧对等网络中包括对等网络服务器以及多个拉流节点;
所述主播端用于采集音视频流并向所述主播侧CDN服务器推流;
所述主播侧CDN服务器用于将接收到的主播端发送的音视频流发送至所述主播侧网络服务器中;
所述主播侧网络服务器用于对接收到的音视频流进行处理,并将处理后的音视频流发送至切片服务器中;
所述切片服务器用于对接收到的主播侧网络服务器发送的音视频流进行切片处理,生成多个切片子流,并将所述切片子流发送至观众侧CDN服务器中;
所述观众侧CDN服务器用于将接收到的切片子流分发至接入的拉流节点中;
所述对等网络服务器用于接收拉流节点的注册,以及对所述观众侧CDN服务器的切片子流分发情况进行管理;
其中,所述对等网络服务器进一步用于执行权利要求1-7任一项所述的拉流控制方法的步骤;
所述拉流节点用于向所述观众侧CDN服务器请求切片子流。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811354455.8A CN109348257B (zh) | 2018-11-14 | 2018-11-14 | 拉流控制方法、装置及直播*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811354455.8A CN109348257B (zh) | 2018-11-14 | 2018-11-14 | 拉流控制方法、装置及直播*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109348257A CN109348257A (zh) | 2019-02-15 |
CN109348257B true CN109348257B (zh) | 2021-02-26 |
Family
ID=65315550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811354455.8A Active CN109348257B (zh) | 2018-11-14 | 2018-11-14 | 拉流控制方法、装置及直播*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109348257B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951723B (zh) * | 2019-03-26 | 2021-06-29 | 广州华多网络科技有限公司 | 对等网络直播***中根节点的调整方法、装置及存储介质 |
CN109889543B (zh) * | 2019-03-26 | 2020-11-13 | 广州华多网络科技有限公司 | 视频传输的方法、根节点、子节点、p2p服务器和*** |
CN110505280B (zh) * | 2019-07-29 | 2022-10-25 | 网宿科技股份有限公司 | P2p传输的控制方法及p2p节点 |
CN110493327B (zh) * | 2019-08-05 | 2022-06-10 | 网宿科技股份有限公司 | 一种数据传输方法及装置 |
CN111770355B (zh) * | 2020-07-09 | 2022-07-01 | 北京达佳互联信息技术有限公司 | 媒体服务器确定方法、装置、服务器以及存储介质 |
CN112866985B (zh) * | 2021-02-20 | 2023-06-23 | 百度在线网络技术(北京)有限公司 | 流量控制方法、资源下载方法、装置、设备和存储介质 |
CN118250264A (zh) * | 2022-12-22 | 2024-06-25 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394182A (zh) * | 2014-03-21 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 一种实现内容分发网络加速的方法及源服务器 |
US9942290B2 (en) * | 2015-09-09 | 2018-04-10 | Ericsson Ab | Fast channel change in a multicast adaptive bitrate (MABR) streaming network using HTTP download segment recovery in a shared progressive ABR download pipe |
MY201315A (en) * | 2015-09-10 | 2024-02-16 | Verency Holdings Ltd | Proxy device for representing multiple credentials |
CN107645485B (zh) * | 2016-07-22 | 2021-11-05 | 中兴通讯股份有限公司 | 一种网络直播的分发方法、***和装置 |
CN107241398B (zh) * | 2017-05-24 | 2019-09-03 | 中广热点云科技有限公司 | 一种基于内容分发网络的视频下载方法 |
-
2018
- 2018-11-14 CN CN201811354455.8A patent/CN109348257B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109348257A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109348257B (zh) | 拉流控制方法、装置及直播*** | |
CN109348243B (zh) | 订阅处理方法、装置、直播***、存储介质及计算机设备 | |
TWI827622B (zh) | 用於對即時上行鏈路串流服務的高效操作的上行鏈路和下行鏈路方法 | |
US9130958B2 (en) | Terminal, seed server, and tracker server for reducing delay in streaming service | |
EP3595268A1 (en) | Streaming media resource distribution method, system, edge node and central dispatching system | |
US8612621B2 (en) | Method for constructing network topology, and streaming delivery system | |
Guo et al. | Scalable live video streaming to cooperative clients using time shifting and video patching | |
CN109863796B (zh) | eMBMS MooD的高级切换策略 | |
US20150263916A1 (en) | Bandwidth management in a content distribution network | |
CN109525869B (zh) | 拉流的方法、装置及直播*** | |
US20060098668A1 (en) | Managing membership within a multicast group | |
Sweha et al. | Angelcast: cloud-based peer-assisted live streaming using optimized multi-tree construction | |
US20150040162A1 (en) | Dynamic splitting of evolved multicast broadcast multimedia service (embms) | |
US10084883B2 (en) | Content distribution system and method | |
US9313268B2 (en) | Methods and arrangements for prioritization in a peer-to-peer network | |
US10484440B2 (en) | Content distribution system and method | |
US20100118758A1 (en) | Distributing content in a communication network | |
CN109561137B (zh) | 建立p2p网络的方法、装置、终端设备及介质 | |
US7296071B2 (en) | Service transmission in a packet data network | |
KR100745531B1 (ko) | 채널 병합 방법, 채널 스트리밍 장치 및 컴퓨터 판독가능 저장 매체 | |
US8605640B2 (en) | Network aware content pre-delivery over a radio access network | |
CN111372103A (zh) | 一种组播方法、装置、设备和计算机存储介质 | |
US10893234B2 (en) | System and method of dynamic playback variation for multimedia communication | |
US10356482B2 (en) | Content distribution system and method | |
CN115412740B (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 |