CN117676179A - 分布式推流方法和装置 - Google Patents
分布式推流方法和装置 Download PDFInfo
- Publication number
- CN117676179A CN117676179A CN202311705388.0A CN202311705388A CN117676179A CN 117676179 A CN117676179 A CN 117676179A CN 202311705388 A CN202311705388 A CN 202311705388A CN 117676179 A CN117676179 A CN 117676179A
- Authority
- CN
- China
- Prior art keywords
- stream
- slice
- slices
- node
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 238000003860 storage Methods 0.000 claims description 28
- 238000011144 upstream manufacturing Methods 0.000 claims description 28
- 238000012546 transfer Methods 0.000 abstract description 5
- 230000005540 biological transmission Effects 0.000 description 12
- 238000004519 manufacturing process Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供了一种分布式推流方法,所述分布式推流方法用于目标边缘计算上行节点中,所述目标边缘计算上行节点为分布式推流系统中的任意一个上行节点。该分布式推流方法包括:接收主播端的直播数据流。在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片。将各个所述切片的元数据上报给中心流状态机。其中,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。本申请实施例的技术方案可以节省转推的带宽消耗以及降低直播在观众端的播放延迟。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种分布式推流方法、装置、计算机设备、计算机可读存储介质、系统。
背景技术
随着互联网技术的迅速普及,网络直播正在被越来越多的人接收和喜爱。网络直播一般涉及到:直播平台、主播端和观众端,其中主播端可以经由直播平台向观众端提供多媒体内容(如,视频内容)。
然而,在当前的直播中,直播时延较高且耗费的带宽成本也较高,影响直播的性能。
需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
发明内容
本申请实施例提供一种分布式推流方法、装置、计算机设备、计算机可读存储介质、系统,以解决或缓解上面提出的一项或更多项技术问题。
本申请实施例的一个方面提供了一种分布式推流方法,用于目标边缘计算上行节点中,所述目标边缘计算上行节点为分布式推流系统中的任意一个上行节点;所述方法包括:
接收主播端的直播数据流;
在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片;
将各个所述切片的元数据上报给中心流状态机;
其中,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。
可选地,目标边缘计算上行节点在本地配置有目标切片服务单元;
对应地,在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片,包括:
将所述直播数据流转推到所述目标切片服务单元,以便所述目标切片服务单元执行切片操作。
可选地,目标边缘计算上行节点在本地配置有目标回源服务单元;
对应地,所述方法还包括:
在目标切片服务得到多个切片的情况下,将该多个切片存储到所述目标回源服务单元,以用于回源。
可选地,所述方法还包括:
响应于观众端或CDN节点发送的回源请求,通过所述目标回源服务单元推送回源请求中指定切片。
可选地,将各个所述切片的元数据上报给中心流状态机,包括:
确定各个切片的标识以及所述目标边缘计算上行节点的节点标识;
将各个切片的标识以及所述目标边缘计算上行节点的节点标识作为各个切片的元数据上报至中心流状态机。
本申请实施例的另一个方面提供了一种分布式推流装置,所述装置包括:
接收模块,用于接收主播端的直播数据流;
切片模块,用于在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片;
上报模块,用于将各个所述切片的元数据上报给中心流状态机;其中,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。
本申请实施例的另一个方面提供了一种分布式推流系统,所述系统包括:
多个边缘计算上行节点,用于接收主播端的直播数据流;
中心流状态机,与所述多个边缘计算上行节点网络连接;
其中,边缘计算上行节点用于在接收到所述直播数据流的情形下,在本地对直播数据流进行切片操作以得到多个切片,并将多个切片的元数据上报至所述中心流状态机;
其中,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。
可选地,每个边缘计算上行节点在在本地分别配置有切片服务单元和/或回源服务单元;和/或系统还包括多个CDN节点;
边缘计算上行节点用于:通过本地的切片服务单元对直播数据流进行切片操作;
边缘计算上行节点用于:通过回源服务单元存储所述多个切片,以用于切片的回源;
所述多个CDN节点用于缓存所述多个切片;
在所述多个CDN节点没有所述多个切片中的目标切片的情况下,由相应的回源服务单元提供。
本申请实施例的另一个方面提供了一种计算机设备,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;
其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本申请实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
本申请实施例采用上述技术方案可以包括如下优势:
在主播端进行直播并将直播数据流推送至目标边缘计算上行节点时,目标边缘计算上行节点可以直接本地进行切片操作,并将切片的元数据实时上报给中心流状态机,以使中心流状态机保存相应切片的元数据。若有观众端想要观看该主播端的直播,则可以发送拉流请求至中心流状态机,以根据元数据获取拉流信息。观众端获取到拉流信息之后,便可以拉取相应切片以进行播放。这样做的好处:一方面,在目标边缘计算上行节点的本地对直播数据流进行切片操作,无需将直播流数据转推至其他专门负责切片生产的源站,从而节省了转推的带宽消耗。另一方面,直接在边缘计算上行节点的本地对直播数据流进行切片,无需通过传输时延高的公网将直播数据流转推至其他专门负责切片生产的源站进行切片,可以减少生成切片所耗费的时间,进而降低直播在观众端的播放延迟。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示意性示出了根据本申请实施例一的分布式推流系统的框架图;
图2示意性示出了根据本申请实施例二的分布式推流方法的流程图;
图3示意性示出了根据本申请实施例二的分布式推流方法的应用示例图;
图4示意性示出了图3中步骤304的子步骤流程图;
图5示意性示出了根据本申请实施例二的分布式推流方法的另一应用示例图;
图6示意性示出了根据本申请实施例三的分布式推流装置的框图;及
图7示意性示出了根据本申请实施例四中的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
首先,提供本申请涉及的术语解释:
直播推流:将主播端的多媒体数据流从主播端发送到直播平台流媒体服务器的过程。
边缘计算(Edge Computing):在靠近数据源头等的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供服务。边缘计算是将一部分计算任务和数据处理从传统的中央数据中心推向网络边缘。
HLS(HTTP Live Streaming):一种流媒体传输协议和技术,可以用于在线视频和音频流媒体的分发。
上行节点:负责从终端设备(如计算机、智能手机、传感器等)向网络传输数据、信息或请求的节点。上行节点可以用于将数据从终端设备上传到网络、互联网或其他远程服务器,以供进一步处理、存储或分发。
分布式系统:由多个独立计算机节点组成的计算机系统,计算机节点可以通过网络相互连接,共同协作完成某种任务或提供某种服务。在分布式系统中,各个计算机节点可以位于不同的地理位置。
其次,为方便本领域技术人员理解本申请实施例提供的技术方案,下面对相关技术进行说明:
在直播中,可以通过集中式的方式来生产和回源切片,如可以集中部署一个源站,通过该源站来负责切片生产以及播放回源。然而,上述方式存在较多不足:(1)转推带宽成本高;(2)直播流在公网上转推的传输时延高,导致播放延迟增加。
为此,本申请实施例提供了一种分布式推流技术方案。在该技术方案中,(1)将切片的生产、回源与直播推流的服务器通过在内网部署一起,通过流状态机来维护回源点,从而实现高可用的分布式切片系统。这样做的好处:极大地节省边缘计算的转推的带宽,降低了网络传输延迟。(2)分布式和推流点通过内网的方式一起部署,可以节省带宽的消耗,降低切片下行观看的延迟。具体见后文。
最后,为了方便理解,下面提供一个示例性运行环境。
图1示意性示出了根据本申请实施例的环境应用示意图。
如图1所示,运行环境图包括:主播端、观众端、中心流状态机以及多个边缘计算上行节点。所述多个边缘计算上行节点可以构成分布式推流系统。在直播场景下,主播端通过边缘计算上行节点以及中心流状态机将直播数据实时推送至观众端。
边缘计算上行节点可以用于提供切片服务、推流服务、回源服务。其中,所述切片服务可以用于将直播流切片,所述推流服务可以用于将直播流对应的切片推送给CND节点或观众端,所述回源服务可以用于将生成的切片存储,以用于回源。
所述中心流状态机可以用于存储切片的元数据并向观众端返回相应的拉流信息。
主播端,用于实时生成直播数据,并进行直播数据的推流操作。所述直播数据可以包括音频数据或视频数据。主播端可以是智能手机、平板电脑等电子设备。
观众端,可以被配置为实时接收主播端的直播数据。观众端可以是任意类型的计算设备,诸如智能手机、平板设备、膝上型计算机、智能电视、车载终端等。观众端可以内置浏览器或专门程序,通过浏览器或专门程序接收所述直播数据以向用户输出内容。所述内容可以包括视频、音频、评论、文本数据和/或类似物。
观众端可以包括播放器。播放器向用户输出(如,展示,呈现)内容。其中所述内容可以包括视频,音频,评论,文本数据和/或类似物。观众端可以包括接口,该接口可以包括输入元件(触摸屏)。例如,输入元件可以被配置为接收用户指令,所述用户指令可以使观众端执行各类操作,如发送弹幕、输入评论、赠送礼物等。
主播端、观众端、中心流状态机和多个边缘计算上行节点可以通过一个或多个网络连接。网络可以包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙和/或代理设备等。网络可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路及其组合和/或类似物。网络可以包括无线链路,例如蜂窝链路、卫星链路、Wi-Fi链路和/或类似物。
需要说明的是,图中的主播端、观众端、边缘计算上行节点等的数量仅是示意性的,不用于限制本申请的专利保护范围。根据实际情况,上述设备可以具有任意数目。
下面通过多个实施例介绍本申请的技术方案。须知,这些实施例可以由多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。
实施例一
图1示意性示出了根据本申请实施例一的分布式推流系统的架构示意图。
如图1所示,所述分布式推流传输系统可以包括多个边缘计算上行节点以及中心流状态机。多个边缘计算上行节点用于接收主播端的直播数据流。中心流状态机与所述多个边缘计算上行节点网络连接。
其中,边缘计算上行节点用于在接收到所述直播数据流的情形下,在本地对直播数据流进行切片操作以得到多个切片,并将多个切片的元数据上报至所述中心流状态机。
其中,所述中心流状态机用于响应观众端的拉流请求,根据相应切片的元数据返回拉流信息。
以下结合图1,对分布式推流系统中的多个边缘计算上行节点以及中心流状态机进行详细阐述。具体地:
①多个边缘计算上行节点:
多个边缘计算上行节点用于接收主播端的直播数据流。
边缘计算是一种分布式计算模型,边缘计算是指在网络的边缘侧(即靠近数据源的地方)提供服务。即将直播数据流的处理任务尽可能地靠近主播端,而不是集中在远程数据中心,从而减少直播流数据的传输延迟,提高响应速度,并降低对网络传输带宽的消耗。
边缘计算上行节点可以为边缘计算体系结构中的上行节点,接收主播端推流的节点,即接收主播端(例如摄像头、编码设备、电脑等)产生的实时音频、视频或其他媒体数据。
所述直播数据流是指主播端实时传输的数据流,所述直播数据流可以包括音频数据流和视频数据流等。
在示例性的应用中,若主播端A需要进行直播,则主播端A开播之后,可以将产生的直播数据流推送至多个边缘计算上行节点中的其中一个边缘计算上行节点,如可以选择距离最近或状态最优的边缘计算上行节点进行直播数据流的推送。假设边缘计算上行节点1为主播端A的推流节点,边缘计算上行节点1接收到主播端A的直播数据流之后,可以在本地对直播数据流进行切片操作以得到相应的切片。
在接收到直播流数据后,边缘计算上行节点可以直接在本地做进一步的处理(如切片),无需将直播流数据转推至其他专门负责切片生产的源站,从而节省边缘计算上行节点转推的带宽消耗。此外,直接在边缘计算上行节点的本地对直播数据流进行切片,无需通过传输时延高的公网将直播数据流转推至其他专门负责切片生产的源站进行切片,可以减少生成切片所耗费的时间,进而降低直播在观众端的播放延迟。
在可选的实施例中,每个边缘计算上行节点在本地分别配置有切片服务单元。边缘计算上行节点用于:通过本地的切片服务单元对直播数据流进行切片操作。
所述切片服务单元可以是边缘计算上行节点内部的功能单元,也可以是通过内网(局域网)连接的外部切片服务器。所述切片服务单元可以用于HLS(HTTP Live Streaming)切片、DASH(Dynamic Adaptive Streaming over HTTP)切片、RTMP(Real-Time MessagingProtocol)切片等。需要说明的是,不同格式的直播数据流可以被转推到本地不同的切片服务单元。若直播数据流为HLS直播流,则转推到用于HLS切片的切片单元。切片可以以.ts(Transport Stream)格式存储。
在示例性的应用中,假设边缘计算上行节点1为主播端A的推流节点,则边缘计算上行节点1在接收到直播数据流之后,可以通过本地的切片服务单元对直播数据流进行切片操作。即可以通过内网直接把直播数据推流至本地的切片服务单元,以对直播数据流进行切片操作。
在上述可选的实施例中,在边缘计算上行节点的本地配置切片服务单元,使得边缘计算上行节点在本地(即通过本地的切片服务单元)就可以对直播数据流进行切片操作,无需将直播流数据转推至其他专门负责切片生产的源站,从而节省边缘计算上行节点的转推转出带宽。此外,相较于通过传输时延高的公网将直播数据流转推至其他专门负责切片生产的源站进行切片,本实施例通过将直播数据流内网推流至切片服务单元进行切片,可以降低直播数据流的转推时延,进而减小直播在观众端的播放延迟。
在可选的实施例中,每个边缘计算上行节点在本地分别配置有回源服务单元。边缘计算上行节点用于:通过回源服务单元存储所述多个切片,以用于切片的回源。
所述回源服务单元可以用来存储直播数据流对应的切片。在示例性的应用中,当主播端1将直播流数据推流至边缘计算上行节点1时,边缘计算上行节点1会通过设置在本地的切片服务单元对直播数据流进行切片操作,以获取对应的切片。本地的切片服务单元生产出来的切片可以直接存储在边缘计算上行节点1本地的回源服务单元中,即进行分布式存储,以无需集中存储到中央服务器集群,减小切片的传输时延和网络带宽资源,也分散了数据集中存储的风险。当有观众拉流时,可以拉取回源服务单元中存储的切片,从而使得观众端可以播放对应切片。
在上述可选的实施例中,在边缘计算上行节点本地配置回源服务单元,通过本地的切片服务单元生成切片后,继而通过本地的回源服务单元进行切片进行存储,进而可以快速地通过回源服务单元将切片推送至观众端,减小直播的延迟。
在可选的实施例中,所述分布式推流传输系统还包括多个CDN(Content DeliveryNetwork)节点。
所述多个CDN节点用于缓存所述多个切片。
在所述多个CDN节点没有所述多个切片中的目标切片的情况下,由相应的回源服务单元提供。
CDN节点可以用于提供内容分发网络服务,如,可以响应观众端的拉流请求,将缓存的切片推送给观众端。CDN节点中缓存的切片可以由边缘计算上行节点上的回源服务单元提供,具体地:边缘计算上行节点在本地对直播数据流进行切片之后,可以将相应的切片提供给CDN节点,以使CDN节点缓存所述切片。在有观众端想要观看该直播的时候,可以从其中一个CDN节点,如可以选择一个距离最近的CDN节点去拉取相应切片,观众端根据拉取到的切片实现直播播放。
所述目标切片可以为观众端发送的拉流请求所要拉取的切片。
在示例性的应用中,若观众端想要拉取目标切片但在CDN节点(如距离观众最近的CDN节点)均未存在目标切片的情况下,可以通过该CDN节点去边缘计算上行节点上去拉取相应的切片,即从边缘计算上行节点上的回源服务单元拉取。该CDN节点拉取到相应的切片之后,可以对切片进行缓存,即将切片缓存在该CDN节点中。之后,CDN节点可以将切片推送给观众端,以实现在观众端播放目标切片。
在上述可选的实施例中,边缘计算上行节点上生成的切片可以推送给相应的CDN节点,以在CDN节点中缓存切片。在观众端要观看直播时,可以从距离较近观众端较近的CDN节点拉取,无需从边缘计算上行节点上拉取,减小直播的延迟。
②中心流状态机:
中心流状态机与所述多个边缘计算上行节点网络连接。
所述中心流状态机可以接收并存储边缘计算上行节点上报的切片的元数据。若有观众端对想要对切片拉流时,所述中心流状态机可以根据观众端的拉流请求中指定切片的元数据返回拉流信息。
所述元数据可以是切片的描述性信息,以用于描述切片的属性、特征等。例如,所述元数据可以包括切片名称、时间戳、URL(Uniform Resource Locator,统一资源定位符)地址、切片大小、切片所在边缘计算上行节点的节点IP(Internet Protocol)等信息。
所述拉流信息可以包括切片地址、切片名称等。观众端根据返回的拉流信息可以去相应的边缘计算上行节点或CDN节点拉取相应的切片,以在观众端进行直播播放。
在示例性的应用中,边缘计算上行节点在本地对直播数据流执行切片操作之后,可以实时地将切片的元数据(如所在边缘计算上行节点的节点IP,切片名称等)上报到中心流状态机。中心流状态机接收到切片的元数据之后,会对切片的元数据进行存储。当有观众端要观看该直播时,可以发送拉流请求至中心流状态机。中心流状态机根据拉流请求以及拉流请求中指定切片的元数据返回拉流信息给观众端。观众端根据拉流信息,便可以去相应的边缘计算上行节点或CDN节点拉取相应切片。
在本实施例中,通过中心流状态机来统一管理和存储切片的元数据,以便后续观众端可以通过中心流状态机快速地获取切片的元数据(拉流信息),进而可以根据元数据(拉流信息)正确快速地从相应边缘计算上行节点拉取相应切片,以实时观看直播。
实施例二
本实施例以某个边缘计算上行节点为执行主体进行描述,技术细节及效果可参考实施例一。
图3示意性示出了根据本申请实施例一的分布式推流方法的流程图。
如图2、3所示,所述分布式推流方法可以用于目标边缘计算上行节点中,所述目标边缘计算上行节点为分布式推流系统中的任意一个上行节点。该分布式推流方法可以包括步骤S300~S304,其中:
步骤S300,接收主播端的直播数据流。
步骤S302,在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片。
步骤S304,将各个所述切片的元数据上报给中心流状态机。
其中,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。
所述目标边缘计算上行节点可以为所述分布式推流系统中与主播端距离较近的上行节点。当然,也可以根据与主播端的距离以及边缘计算上行节点的负载情况等共同确定。
本实施例提供的分布式推流方法,在主播端进行直播并将直播数据流推送至目标边缘计算上行节点时,目标边缘计算上行节点可以直接本地进行切片操作,并将切片的元数据实时上报给中心流状态机,以使中心流状态机保存相应切片的元数据。若有观众端想要观看该主播端的直播,则可以发送拉流请求至中心流状态机,以根据元数据获取拉流信息。观众端获取到拉流信息之后,便可以拉取相应切片以进行播放。这样做的好处:一方面,在目标边缘计算上行节点的本地对直播数据流进行切片操作,无需将直播流数据转推至其他专门负责切片生产的源站,从而节省了转推的带宽消耗。另一方面,直接在边缘计算上行节点的本地对直播数据流进行切片,无需通过传输时延高的公网将直播数据流转推至其他专门负责切片生产的源站进行切片,可以减少生成切片所耗费的时间,进而降低直播在观众端的播放延迟。
在可选的实施例中,目标边缘计算上行节点在本地配置有目标切片服务单元。所述步骤S302可以包括:将所述直播数据流转推到所述目标切片服务单元,以便所述目标切片服务单元执行切片操作。
在上述可选的实施例中,在目标边缘计算上行节点的本地配置目标切片服务单元,使得目标边缘计算上行节点在本地(即通过本地的目标切片服务单元)就可以对直播数据流进行切片操作,无需将直播流数据转推至其他专门负责切片生产的源站,从而节省边缘计算上行节点转推带宽消耗。此外,相较于通过传输时延高的公网将直播数据流转推至其他专门负责切片生产的源站进行切片,本实施例通过将直播数据流内网推流至目标切片服务单元进行切片,可以降低直播数据流的转推时延,进而减小直播在观众端的播放延迟。
在可选的实施例中,目标边缘计算上行节点在本地配置有目标回源服务单元;对应地,所述方法还包括:在目标切片服务得到多个切片的情况下,将该多个切片存储到所述目标回源服务单元,以用于回源。
在上述可选的实施例中,在边缘计算上行节点本地配置回源服务单元,通过本地的切片服务单元生成切片后,继而通过本地的回源服务单元进行切片进行存储,进而可以快速地通过回源服务单元将切片推送至观众端,减小直播的延迟。
在可选的实施例中,所述方法还包括:响应于观众端或CDN节点发送的回源请求,通过所述目标回源服务单元推送回源请求中指定切片。
示例性地,若观众端想要观看直播1时,可以先通过CDN节点获取直播1的目标切片以进行播放。若该CDN节点中未缓存有该目标切片时,该CDN节点可以向目标边缘计算上行节点发送回源请求,以获取目标切片,然后将这些目标切片推送给观众端。此外,观众端也可以发送回源请求至目标边缘计算上行节点,以使目标回源服务单元推送相应的切片至观众端。
在上述可选的实施例中,若目标边缘计算上行节点接收到回源请求时,可以通过目标回源服务单元有效地推送回源请求中指定切片,以保障观众端可以获取到相应切片以观看直播。
在可选的实施例中,如图4所示,所述步骤304可以包括:
步骤S400,确定各个切片的标识以及所述目标边缘计算上行节点的节点标识。
步骤S402,将各个切片的标识以及所述目标边缘计算上行节点的节点标识作为各个切片的元数据上报至中心流状态机。
切片的标识可以为用于唯一标识或定位切片的标识符,如可以为切片名称等。
所述节点标识可以为用于唯一标识或定位网络中节点的标识符,如可以为目标边缘计算上行节点的节点IP、节点ID(Identifier)、MAC(Media Access Control)地址等,在此不做限定。
在上述可选的实施例中,将切片的标识以及目标边缘计算上行节点的节点标识作为切片的元数据上报至中心流状态机,使得观众拉流时,可以通过中心流状态机获取到切片的标识以及目标边缘计算上行节点的节点标识(即元数据)。根据该元数据,可以确定切片地址,进而可以根据该切片地址拉取相应的切片。具体地:首先,根据节点标识,确定从哪个边缘计算上行节点进行切片拉取,即确定哪个边缘计算上行节点为目标边缘计算上行节点。之后,根据切片的标识,从目标边缘计算上行节点存储的所有切片中确定目标切片,进而拉取目标切片,以播放该目标切片。
在上述可选的实施例中,通过中心流状态机来管理和存储切片的元数据(即切片的标识以及目标边缘计算上行节点的节点标识),以便后续观众端可以通过中心流状态机快速地获取切片的元数据,进而可以根据元数据(拉流信息)正确快速地从相应边缘计算上行节点拉取相应切片,以实时观看直播。
为了使得本申请更加容易理解,以下结合图5提供一个示例性应用。
在该示例性应用中,主播端、观众端、中心流状态机以及边缘计算上行节点可以通过网络连接。每个边缘计算上行节点在本地配置有切片服务单元以及回源服务单元。
S11,主播端直播推流;
S12,边缘计算上行节点接收直播数据流并通过本地的切片服务单元对直播数据流切片;
S13,将切片服务单元生成的切片存储到回源服务单元;
S14,边缘计算上行节点将切片状态(元数据)上报给中心流状态机;
S15,中心流状态机保存上报的切片元数据;
S16,当有观众要观看该主播端的直播时,发送拉流请求至中心流状态机;
S17,中心流状态机响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息给观众端;
S18,观众端根据拉流信息拉取相应的切片,进行直播播放。
实施例三
图6示意性示出了根据本申请实施例三的分布式推流装置的框图,该装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图6所示,该装置600可以包括:接收模块610、切片模块620、上报模块630,其中:
接收模块610,用于接收主播端的直播数据流;
切片模块620,用于在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片;
上报模块630,用于将各个所述切片的元数据上报给中心流状态机,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。
在可选的实施例中,目标边缘计算上行节点在本地配置有目标切片服务单元;对应地,所述切片模块620还用于:
将所述直播数据流转推到所述目标切片服务单元,以便所述目标切片服务单元执行切片操作。
在可选的实施例中,目标边缘计算上行节点在本地配置有目标回源服务单元;对应地,所述分布式推流装置还可以包括存储模块,所述存储模块用于:
在目标切片服务得到多个切片的情况下,将该多个切片存储到所述目标回源服务单元,以用于回源。
在可选的实施例中,对应地,所述分布式推流装置还可以包括推送模块,所述推送模块用于:
响应于观众端或CDN节点发送的回源请求,通过所述目标回源服务单元推送回源请求中指定切片。
在可选的实施例中,所述上报模块630还用于:
确定各个切片的标识以及所述目标边缘计算上行节点的节点标识;
将各个切片的标识以及所述目标边缘计算上行节点的节点标识作为各个切片的元数据上报至中心流状态机。
实施例四
图7示意性示出了根据本申请实施例四的适于实现分布式推流方法的计算机设备10000的硬件架构示意图。在一些实施例中,计算机设备10000可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或多个服务器所组成的服务器集群)等。如图7所示,所述计算机设备10000包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(如,SD或DX存储器)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如分布式推流方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(WidebandCode Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件10010-10030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代地实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的分布式推流方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(如处理器10020)所执行,以完成本申请实施例。
实施例四
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,其中,计算机程序被处理器执行时实现实施例中的分布式推流方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中分布式推流方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算机设备来实现,它们可以集中在单个的计算机设备上,或者分布在多个计算机设备所组成的网络上,可选地,它们可以用计算机设备可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算机设备来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,以上仅为本申请的优选实施例,并非因此限制本申请的专利保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种分布式推流方法,其特征在于,用于目标边缘计算上行节点中,所述目标边缘计算上行节点为分布式推流系统中的任意一个上行节点;所述方法包括:
接收主播端的直播数据流;
在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片;
将各个所述切片的元数据上报给中心流状态机;
其中,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。
2.根据权利要求1所述的方法,其特征在于,目标边缘计算上行节点在本地配置有目标切片服务单元;
对应地,在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片,包括:
将所述直播数据流转推到所述目标切片服务单元,以便所述目标切片服务单元执行切片操作。
3.根据权利要求2所述的方法,其特征在于,目标边缘计算上行节点在本地配置有目标回源服务单元;
对应地,所述方法还包括:
在目标切片服务得到多个切片的情况下,将该多个切片存储到所述目标回源服务单元,以用于回源。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于观众端或CDN节点发送的回源请求,通过所述目标回源服务单元推送回源请求中指定切片。
5.根据权利要求3所述的方法,其特征在于,将各个所述切片的元数据上报给中心流状态机,包括:
确定各个切片的标识以及所述目标边缘计算上行节点的节点标识;
将各个切片的标识以及所述目标边缘计算上行节点的节点标识作为各个切片的元数据上报至中心流状态机。
6.一种分布式推流装置,其特征在于,所述装置包括:
接收模块,用于接收主播端的直播数据流;
切片模块,用于在本地对直播数据流进行切片操作以得到多个切片,以得到多个切片;
上报模块,用于将各个所述切片的元数据上报给中心流状态机;其中,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。
7.一种计算机设备,其特征在于,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至5中任一项所述的方法。
9.一种分布式推流系统,其特征在于,所述系统包括:
多个边缘计算上行节点,用于接收主播端的直播数据流;
中心流状态机,与所述多个边缘计算上行节点网络连接;
其中,边缘计算上行节点用于在接收到所述直播数据流的情形下,在本地对直播数据流进行切片操作以得到多个切片,并将多个切片的元数据上报至所述中心流状态机;
其中,所述中心流状态机用于响应观众端的拉流请求,根据拉流请求中指定切片的元数据返回拉流信息。
10.根据权利要求9所述的系统,其特征在于,每个边缘计算上行节点在在本地分别配置有切片服务单元和/或回源服务单元;和/或系统还包括多个CD N节点;
边缘计算上行节点用于:通过本地的切片服务单元对直播数据流进行切片操作;
边缘计算上行节点用于:通过回源服务单元存储所述多个切片,以用于切片的回源;
所述多个CDN节点用于缓存所述多个切片;
在所述多个CDN节点没有所述多个切片中的目标切片的情况下,由相应的回源服务单元提供。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311705388.0A CN117676179A (zh) | 2023-12-12 | 2023-12-12 | 分布式推流方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311705388.0A CN117676179A (zh) | 2023-12-12 | 2023-12-12 | 分布式推流方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117676179A true CN117676179A (zh) | 2024-03-08 |
Family
ID=90080608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311705388.0A Pending CN117676179A (zh) | 2023-12-12 | 2023-12-12 | 分布式推流方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117676179A (zh) |
-
2023
- 2023-12-12 CN CN202311705388.0A patent/CN117676179A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566786B (zh) | 一种获取监控视频的方法、装置及终端设备 | |
US11356748B2 (en) | Method, apparatus and system for slicing live streaming | |
CN108063769B (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
US8824676B2 (en) | Streaming video to cellular phones | |
CN108810657B (zh) | 一种设置视频封面的方法和系统 | |
US11863841B2 (en) | Video playing control method and system | |
EP3001692A1 (en) | Streaming media processing method, apparatus and system | |
US20220060532A1 (en) | Method for transmitting resources and electronic device | |
CN112188454B (zh) | 基于NB-IoT网络的短距通信方法、系统、设备及存储介质 | |
WO2023061060A1 (zh) | 音视频码流的调度方法、系统、介质及电子装置 | |
CN112243158B (zh) | 媒体文件处理方法、装置、计算机可读介质及电子设备 | |
CN109218764A (zh) | 一种直播数据传输的方法、服务器及系统 | |
CN113727189A (zh) | 支持多种流媒体传输协议的媒体播放方法和系统 | |
CN101958934B (zh) | 一种电子节目指南增量内容同步方法、装置及系统 | |
CN108259576B (zh) | 一种软硬件实时信息传输系统和方法 | |
CN117676179A (zh) | 分布式推流方法和装置 | |
US20190227866A1 (en) | Information processing device and method | |
CN113301100A (zh) | 基于内容分发网络的数据容灾方法、装置、设备及介质 | |
CN113438313B (zh) | 视频续播处理方法、相关装置及可读存储介质 | |
CN110572703A (zh) | 多媒体数据同步播放方法、系统、终端及存储介质 | |
US20200128103A1 (en) | Methods, network node and client device for acquisition and delivery of resources in a communications network | |
CN117714815A (zh) | 直播时移方法和装置 | |
CN117750052A (zh) | 资源回源调度方法和装置 | |
CN113891174B (zh) | 一种直播视频的带宽统计方法和系统 | |
CN111711826B (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 |