拉流的方法、装置及直播系统制造方法及图纸

技术编号:20687536 阅读:20 留言:0更新日期:2019-03-27 20:44
本申请公开了一种拉流的方法、装置及直播系统,应用于直播系统的拉流节点中,其中所述方法包括:生成拉流请求;从与本节点处于连接状态的拉流节点中选择至少一个拉流节点作为目标拉流节点;判断所述目标拉流节点与本节点是否存在直接或间接的订阅关系;若所述目标拉流节点与本节点不存在订阅关系,则向所述目标拉流节点发送所述拉流请求,以请求从所述目标拉流节点中获取对应的切片子流。本申请实施例可以避免本节点和目标拉流节点因互相订阅产生的订阅环的问题,提高了拉流的效率。

【技术实现步骤摘要】
拉流的方法、装置及直播系统
本申请涉及直播领域,尤其涉及拉流的方法、装置及直播系统。
技术介绍
随着网络技术的发展,网络直播越来越普及,各式各样的社会活动都可以借助网络直播方式进行传播。目前,直播系统采用的直播方式如下:主播端(终端)单方面推流到直播平台,然后通过直播平台的中转系统、CDN(ContentDeliveryNetwork,内容分发)服务器的分发,最终在观众端(终端)拉流并播放流媒体内容。而通常拉流的观众端往往数量庞大,如何提高众多观众端拉流的效率,降低观众端的拉流成本成为评价直播系统的重要指标。
技术实现思路
有鉴于此,本申请提供拉流的方法、装置及直播系统。根据本申请实施例的第一方面,提供了一种拉流的方法,所述方法应用于直播系统的拉流节点中,所述方法包括:生成拉流请求;从与本节点处于连接状态的拉流节点中选择至少一个拉流节点作为目标拉流节点;判断所述目标拉流节点与本节点是否存在直接或间接的订阅关系;若所述目标拉流节点与本节点不存在订阅关系,则向所述目标拉流节点发送所述拉流请求,以请求从所述目标拉流节点中获取对应的切片子流。根据本申请实施例的第二方面,提供了一种拉流的装置,所述装置应用于直播系统的拉流节点中,所述装置包括:拉流请求生成模块,用于生成拉流请求;目标拉流节点确定模块,用于从与本节点处于连接状态的拉流节点中选择至少一个拉流节点作为目标拉流节点;订阅关系判断模块,用于判断所述目标拉流节点与本节点是否存在直接或间接的订阅关系;拉流请求发送模块,用于若所述目标拉流节点与本节点不存在订阅关系,则向所述目标拉流节点发送所述拉流请求,以请求从所述目标拉流节点中获取对应的切片子流。根据本申请实施例的第三方面,提供了一种直播系统,所述直播系统包括主播端、主播侧CDN服务器、主播侧网络服务器、切片服务器、观众侧CDN服务器以及观众侧对等网络,其中,所述观众侧对等网络中包括对等网络服务器以及多个拉流节点;所述主播端用于采集音视频流并向所述主播侧CDN服务器推流;所述主播侧CDN服务器用于将接收到的主播端发送的音视频流发送至所述主播侧网络服务器中;所述主播侧网络服务器用于对接收到的音视频流进行处理,并将处理后的音视频流发送至切片服务器中;所述切片服务器用于对接收到的主播侧网络服务器发送的音视频流进行切片处理,生成多个切片子流,并将所述切片子流发送至观众侧CDN服务器中;所述观众侧CDN服务器用于将接收到的切片子流分发至接入的拉流节点中;所述对等网络服务器用于接收拉流节点的注册,以及对所述观众侧的CDN服务器的切片子流分发情况进行管理;所述拉流节点用于向所述观众侧CDN服务器请求切片子流;其中,所述拉流节点还用于执行上述的拉流的方法的步骤。根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的拉流的方法的步骤。根据本申请实施例的第五方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的拉流的方法的步骤。本申请实施例提供的技术方案可以包括以下有益效果:在本申请实施例中,拉流节点选定目标拉流节点以后,在向目标拉流节点发送拉流请求之前,可以首先判断目标拉流节点与本节点是否存在直接或间接的订阅关系,当两者不存在订阅关系时,才向目标拉流节点发送拉流请求,以请求从目标拉流节点中获取对应的切片子流,这样可以避免本节点和目标拉流节点因互相订阅产生的订阅环的问题,从而避免了拉流的数据因订阅环出现的数据出现死等的情况,提高了拉流的效率。附图说明图1是本申请一示例性实施例示出的一种拉流的方法实施例的步骤流程图;图2是本申请一示例性实施例示出的直播系统的架构示意图;图3是本申请一示例性实施例示出的环订阅示意图;图4是本申请另一示例性实施例示出的一种拉流的方法实施例的步骤流程图;图5是本申请的装置所在拉流节点的一种硬件结构图;图6是本申请一示例性实施例示出的一种拉流装置实施例的结构框图;图7是本申请一示例性实施例示出的一种直播系统实施例的结构框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。参考图1,示出了本申请一示例性实施例示出的一种拉流的方法实施例的步骤流程图,本申请实施例可以应用于直播系统的拉流节点中。以下首先对直播系统的架构进行说明:参考图2一示例性实施例示出的直播系统的架构示意图,直播系统中可以包括主播端、主播侧CDN网络(包括分布在各地的多个CDN服务器)、主播网络、P2P(Peer-to-Peer,对等网络)源站(切片服务器)、观众侧CDN网络(包括分布在各地的多个CDN服务器)、观众侧P2P服务器(又称对等网络服务器)以及观众端。需要说明的是,由于本申请实施例着重于观众侧的描述,图2中把主播侧的CDN网络和主播网络画在一起,但实际上两者是分开的。基于图2的直播系统的架构图,直播系统大致的工作流程如下:主播端可以通过RTMP(RealTimeMessagingProtocol,实时消息传输协议)或者UDP(UserDatagramProtocol,用户数据包协议)向主播侧CDN服务器推流,各地的CDN服务器将收到的音视频流都发到同一个主播网络服务器中,主播网络服务器会对接收到的音视频流进行处理,然后将处理后的音视频流转发至P2P源站进行切片,切片的大概过程是由P2P源站将接收的音视频流切割成1KB大小的数据包,并将每个数据包编号后按照自定义的格式封装成切片子流,P2P源站完成切片后将切片子流交由观众测的CND网络进行分发。观众端加入直播间后,会连接到CDN服务器,从CDN服务器中拉流。同时向P2P接入服务器上报接入消息,以与其他观众端进行P2P连接,最终组成P2P网络(即对等网络)。在上述直播系统中,本申请实施例着重于观众侧的描述,在本申请实施例中,将P2P网络中的各个观众端称为拉流节点(简称节点)。在一种实施方式中,组成P2P网络的过程可以包括如下过程:节点发现的过程以及节点之间建立连接的过程。节点发现的过程:当新节点接入CDN服务器(下文如无特别说明,该CDN服务器均指观众侧的CDN服务器)后,会主动向P2P本文档来自技高网...

【技术保护点】
1.一种拉流的方法,其特征在于,所述方法应用于直播系统的拉流节点中,所述方法包括:生成拉流请求;从与本节点处于连接状态的拉流节点中选择至少一个拉流节点作为目标拉流节点;判断所述目标拉流节点与本节点是否存在直接或间接的订阅关系;若所述目标拉流节点与本节点不存在订阅关系,则向所述目标拉流节点发送所述拉流请求,以请求从所述目标拉流节点中获取对应的切片子流。

【技术特征摘要】
1.一种拉流的方法,其特征在于,所述方法应用于直播系统的拉流节点中,所述方法包括:生成拉流请求;从与本节点处于连接状态的拉流节点中选择至少一个拉流节点作为目标拉流节点;判断所述目标拉流节点与本节点是否存在直接或间接的订阅关系;若所述目标拉流节点与本节点不存在订阅关系,则向所述目标拉流节点发送所述拉流请求,以请求从所述目标拉流节点中获取对应的切片子流。2.根据权利要求1所述的方法,其特征在于,所述从与本节点处于连接状态的拉流节点中选择至少一个拉流节点作为目标拉流节点,包括:获取与本节点处于连接状态的拉流节点的丢包率以及子流时延,并根据所述丢包率以及子流时延确定所述拉流节点的评分;选取评分最高的N个拉流节点作为目标拉流节点,其中,N大于或等于1。3.根据权利要求1或2所述的方法,其特征在于,所述判断所述目标拉流节点与本节点是否存在订阅关系,包括:获取本节点的订阅关系列表,其中,所述订阅关系列表中包括所有订阅本节点的已订阅节点的标识,以及,所有订阅所述已订阅节点的节点的标识;在所述订阅关系列表中查找所述目标拉流节点的标识;若查找成功,则判定所述目标拉流节点与本节点存在订阅关系;若查找不成功,则判定所述目标拉流节点与本节点不存在订阅关系。4.根据权利要求3所述的方法,其特征在于,所述获取本节点的订阅关系列表,包括:接收本节点的已订阅节点上报的订阅关系,汇总本节点与所述已订阅节点的订阅关系以及所述已订阅节点上报的订阅关系,得到所述订阅关系列表,其中,所述已订阅节点上报的订阅关系为所述已订阅节点被其他节点订阅的订阅关系;或者,从对等网络服务器中请求所述订阅关系列表,其中,所述订阅关系列表为所述对等网络服务器接收到各个拉流节点上报的订阅关系后汇总得到的列表。5.根据权利要求1或2所述的方法,其特征在于,所述判断所述目标拉流节点与本节点是否存在订阅关系,包括:根据所述目标拉流节点的标识生成查询请求,并将所述查询请求发送至对等网络服务器中;当接收到所述对等网络服务器发送的允许订阅响应时,判定所述目标拉流节点与本节点不存在订阅关系,其中,所述允许订阅响应为所述对等网络服务器从服务器本地维护的本节点的订阅关系列表中查找不到所述目标拉流节点的标识时返回的响应信息。6.根据权利要求1所述的方...

【专利技术属性】
技术研发人员:冯修杰
申请(专利权)人:广州虎牙信息科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1