CN111355971B - 直播流传输方法、装置、cdn服务器及计算机可读介质 - Google Patents

直播流传输方法、装置、cdn服务器及计算机可读介质 Download PDF

Info

Publication number
CN111355971B
CN111355971B CN202010105676.2A CN202010105676A CN111355971B CN 111355971 B CN111355971 B CN 111355971B CN 202010105676 A CN202010105676 A CN 202010105676A CN 111355971 B CN111355971 B CN 111355971B
Authority
CN
China
Prior art keywords
domain name
stream
pull
live
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.)
Active
Application number
CN202010105676.2A
Other languages
English (en)
Other versions
CN111355971A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010105676.2A priority Critical patent/CN111355971B/zh
Publication of CN111355971A publication Critical patent/CN111355971A/zh
Application granted granted Critical
Publication of CN111355971B publication Critical patent/CN111355971B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/64Addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种直播流传输方法、装置、CDN服务器及计算机可读介质,涉及数据处理技术领域,该方法应用于CDN服务器,CDN服务器存储有推流域名与拉流域名的关联关系;该方法包括:接收客户端发送的播放请求,该播放请求包括拉流域名信息和直播流名称信息;根据上述关联关系确定拉流域名信息对应的目标推流域名;根据目标推流域名和直播流名称信息,获取目标直播流;将目标直播流发送至客户端。这样基于推流域名与拉流域名的关联关系,客户端只能拉到与拉流域名信息对应的目标推流域名所推的目标直播流,从而缓解了拉流混乱现象,提高了用户体验度。

Description

直播流传输方法、装置、CDN服务器及计算机可读介质
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种直播流传输方法、装置、CDN服务器及计算机可读介质。
背景技术
CDN(Content Delivery Network,内容分发网络)是一种网络架构,其特点是通过部署多层缓存服务器,再加上负载均衡、调度等功能模块,使用户能够就近获取所需的内容,降低网络延迟和拥塞,提高用户访问的响应速度和命中率。
云直播、直播CDN等是依托于CDN技术发展起来的业务,其业务场景是利用CDN来传输、分发直播流,而直播流的传输、分发主要分为推流、拉流两部分:主播将直播流推至CDN服务器,观众从CDN服务器拉取直播流进行播放。具体地,主播通过客户端将直播流推至CDN服务器后,CDN服务器可以得到该直播流的推流地址;观众发送拉流地址至CDN服务器后,CDN服务器基于该拉流地址匹配得到所需直播流的推流地址,并从该推流地址获取直播流,进而将该直播流发送至观众的客户端。
上述推流地址通常包括推流域名、直播流的挂载点和直播流名称,拉流地址通常包括拉流域名、直播流的挂载点和直播流名称;CDN服务器通常基于拉流地址中的直播流的挂载点和直播流名称来匹配推流地址。通常一个直播客户(即直播服务的提供商)的直播流的挂载点是相同的,一个直播客户可能会有多个推流域名和多个拉流域名,不同推流域名所推的直播流(即不同推流域名下的推流地址对应的直播流)是不同的,然而当多个推流域名所推的直播流的直播流名称相同时,会出现拉流混乱的现象,即该直播客户名下相同直播流名称的所有拉流地址都能拉到相同直播流名称的所有推流地址所推的直播流。
发明内容
有鉴于此,本发明的目的在于提供一种直播流传输方法、装置、CDN服务器及计算机可读介质,以缓解拉流混乱现象,提高用户体验度。
本发明实施例提供了一种直播流传输方法,应用于CDN服务器,所述CDN服务器存储有推流域名与拉流域名的关联关系;所述方法包括:
接收客户端发送的播放请求,所述播放请求包括拉流域名信息和直播流名称信息;
根据所述关联关系确定所述拉流域名信息对应的目标推流域名;
根据所述目标推流域名和所述直播流名称信息,获取目标直播流;
将所述目标直播流发送至所述客户端。
进一步地,在接收客户端发送的播放请求之前,所述方法还包括:
通过所述CDN服务器对应的控制台或开放接口,获取推流域名与拉流域名的关联关系;
将所述关联关系存储在所述CDN服务器的配置文件中。
进一步地,通过所述CDN服务器对应的控制台或开放接口,获取推流域名与拉流域名的关联关系的步骤,包括:
通过所述CDN服务器对应的控制台或开放接口,获取预设的服务端提交的域名管理信息;其中,所述域名管理信息包括域名空间创建信息和域名添加信息;
根据所述域名管理信息创建至少一个域名空间,并在已创建的所述域名空间中添加相应的推流域名和拉流域名;
将每个所述域名空间内的推流域名和拉流域名建立关联,得到推流域名与拉流域名的关联关系。
进一步地,根据所述目标推流域名和所述直播流名称信息,获取目标直播流的步骤,包括:
根据所述目标推流域名和所述直播流名称信息,生成目标推流地址,所述目标推流地址中的推流域名为所述目标推流域名;
获取所述目标推流地址对应的目标直播流。
本发明实施例还提供了一种直播流传输装置,应用于CDN服务器,所述CDN服务器存储有推流域名与拉流域名的关联关系;所述装置包括:
接收模块,用于接收客户端发送的播放请求,所述播放请求包括拉流域名信息和直播流名称信息;
确定模块,用于根据所述关联关系确定所述拉流域名信息对应的目标推流域名;
目标获取模块,用于根据所述目标推流域名和所述直播流名称信息,获取目标直播流;
发送模块,用于将所述目标直播流发送至所述客户端。
进一步地,所述装置还包括:
关系获取模块,用于通过所述CDN服务器对应的控制台或开放接口,获取推流域名与拉流域名的关联关系;
存储模块,用于将所述关联关系存储在所述CDN服务器的配置文件中。
进一步地,所述关系获取模块具体用于:
通过所述CDN服务器对应的控制台或开放接口,获取预设的服务端提交的域名管理信息;其中,所述域名管理信息包括域名空间创建信息和域名添加信息;
根据所述域名管理信息创建至少一个域名空间,并在已创建的所述域名空间中添加相应的推流域名和拉流域名;
将每个所述域名空间内的推流域名和拉流域名建立关联,得到推流域名与拉流域名的关联关系。
进一步地,所述目标获取模块具体用于:
根据所述目标推流域名和所述直播流名称信息,生成目标推流地址,所述目标推流地址中的推流域名为所述目标推流域名;
获取所述目标推流地址对应的目标直播流。
本发明实施例还提供了一种CDN服务器,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的直播流传输方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的直播流传输方法。
本发明实施例提供的直播流传输方法、装置、CDN服务器及计算机可读介质中,该方法应用于CDN服务器,CDN服务器存储有推流域名与拉流域名的关联关系;该方法包括:接收客户端发送的播放请求,该播放请求包括拉流域名信息和直播流名称信息;根据上述关联关系确定拉流域名信息对应的目标推流域名;根据目标推流域名和直播流名称信息,获取目标直播流;将目标直播流发送至客户端。这样基于推流域名与拉流域名的关联关系,客户端只能拉到与拉流域名信息对应的目标推流域名所推的目标直播流,从而缓解了拉流混乱现象,提高了用户体验度。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种直播流传输方法的应用环境示意图;
图2为本发明实施例提供的一种直播流传输方法的流程示意图;
图3为本发明实施例提供的一种直播流传输方法的技术架构逻辑图;
图4为本发明实施例提供的另一种直播流传输方法的流程示意图;
图5为本发明实施例提供的一种创建域名空间的用户界面示意图;
图6为本发明实施例提供的一种添加域名的用户界面示意图;
图7为本发明实施例提供的一种直播流传输装置的结构示意图;
图8为本发明实施例提供的另一种直播流传输装置的结构示意图;
图9为本发明实施例提供的一种CDN服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示的一种直播流传输方法的应用环境示意图,该云直播系统包括推流端(即主播的客户端)、CDN系统和拉流端(即观众的客户端),其中,CDN系统可以包括源站(即与推流端连接的边缘推流服务器)、上层节点和边缘拉流节点(即与拉流端连接的边缘拉流服务器)。云直播中,推流端将直播流推到源站,源站再通过上层节点将直播流分发至其他边缘拉流节点;拉流端从边缘拉流节点拉取直播流进行播放。需要说明的是,源站和边缘拉流节点均属于边缘节点,二者可以是不同的服务器,也可以是同一个服务器:在推流端和拉流端处于同一云服务区的情况下(如推流端和拉流端均位于北京市),源站可以作为边缘拉流节点,并为拉流端提供直播服务;在推流端和拉流端处于不同云服务区的情况下(如推流端位于北京市,拉流端位于上海市),源站和边缘拉流节点可以为不同的服务器。
为了方便理解,现列举常见的三种直播协议:RTMP(Real-Time MessagingProtocol,实时消息传输协议),HTTP(Hyper Text Transfer Protocol,超文本传输协议)-FLV(Flash Video,Flash视频),HLS(HTTP Live Streaming,HTTP实时流媒体)。三种直播协议下直播流的URL(Uniform Resource Locator,统一资源定位符)可以分为推流地址和拉流地址两类,推流地址和拉流地址分别示例如下:
1)推流:(目前推流通常采用RTMP协议)
a)RTMP推流地址:rtmp://pushdomain/AppName/StreamName;
2)拉流:
b)RTMP拉流地址:rtmp://pulldomain/AppName/StreamName;
c)HTTP-FLV拉流地址:http://pulldomain/AppName/StreamName.flv;
d)HLS拉流地址:http://pulldomain/AppName/StreamName.m3u8;
其中,pushdomain为推流域名,即主播使用该域名将直播内容(直播流)推到CDN的边缘节点;pulldomain为拉流域名,即观众使用该域名从CDN的边缘节点拉取直播内容进行播放;AppName为直播流的挂载点,可以理解为直播流的挂载路径;StreamName为直播流名称,和文件名称类似。
而一个直播客户可能会有多个推流域名、多个拉流域名,其AppName一般都默认为live,StreamName可能是一些简单随机的字符,举例如下:
推流地址1:rtmp://push.a.com/live/stream01;
推流地址2:rtmp://push.b.com/live/stream01;
……
拉流地址1:http://play.a.com/live/stream01.flv;
拉流地址2:http://play.b.com/live/stream01.flv;
……
假设推流地址1的直播内容为一场游戏直播,推流地址2的直播内容为一场秀场直播。用户想要实现使用拉流地址1拉取推流地址1所推的直播流,拉流地址2拉取推流地址2所推的直播流;不允许拉流地址1拉取推流地址2所推的直播流,不允许拉流地址2拉取推流地址1所推的直播流。
当推流地址1和推流地址2中的StreamName相同时(例如均为stream01),会出现拉流混乱的现象,即该直播客户名下所有拉流域名都能拉到所有推流域名所推的流,从上面的例子来看,拉流地址1能拉到推流地址1和推流地址2所推的直播流,拉流地址2也能拉到推流地址1和推流地址2所推的直播流。
针对上述拉流混乱问题,目前通常需要依靠直播客户自己来确保不同推流域名下不会出现相同StreamName的直播流,然而这样会导致用户体验较差,并且,当直播客户自身业务中出现突发情况(即出现相同StreamName的直播流)时,还是容易产生拉流混乱现象,引起客户报障。基于此,本发明实施例提供的一种直播流传输方法、装置、CDN服务器及计算机可读介质,可以缓解拉流混乱现象,提高用户体验度。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种直播流传输方法进行详细介绍。
本发明实施例提供了一种直播流传输方法,该方法可以由CDN服务器执行,该CDN服务器存储有推流域名与拉流域名的关联关系,该CDN服务器可以是图1所示CDN系统中的边缘拉流节点。参见图2所示的一种直播流传输方法的流程示意图,该方法主要包括如下步骤S202和步骤S208:
步骤S202,接收客户端发送的播放请求,该播放请求包括拉流域名信息和直播流名称信息。
这里的客户端也即上述的拉流端。观众想观看直播,也即想获取目标直播流时,会通过客户端发送播放请求给CDN服务器,该播放请求可以包括拉流地址信息,该拉流地址信息包括拉流域名信息、挂载点信息和直播流名称信息,其中,拉流域名信息用于指示客户端所在的拉流域名,挂载点信息用于指示目标直播流的挂载点,直播流名称信息用于指示目标直播流的直播流名称。
步骤S204,根据预存的关联关系确定拉流域名信息对应的目标推流域名。
CDN服务器内预先存储有推流域名与拉流域名的关联关系,因此可以通过在该关联关系中查找播放请求中的拉流域名信息,得到与该拉流域名信息相关联的目标推流域名。
步骤S206,根据目标推流域名和直播流名称信息,获取目标直播流。
CDN服务器可以查找推流地址包括目标推流域名和直播流名称信息所指示的直播流名称的直播流,并将查找到的直播流确定为目标直播流。
具体实现时,可以先基于目标推流域名、以及播放请求中的挂载点信息和直播流名称信息,生成目标直播流的推流地址,也即生成目标推流地址,该目标推流地址中的推流域名为目标推流域名,该目标推流地址中的直播流的挂载点为挂载点信息所指示的挂载点,该目标推流地址中的直播流名称为直播流名称信息所指示的直播流名称;然后获取该目标推流地址对应的目标直播流。
例如,上述播放请求包含的拉流地址信息为:“拉流地址1:http://play.a.com/live/stream01.flv”,推流域名push.a.com和拉流域名play.a.com相关联,则客户端所在的拉流域名为play.a.com,目标推流域名为push.a.com,挂载点信息所指示的挂载点为live,直播流名称信息所指示的直播流名称stream01,从而可以得到目标推流地址为:“推流地址1:rtmp://push.a.com/live/stream01”。这样在存在两个相同直播流名称的推流地址-推流地址1和推流地址2(rtmp://push.b.com/live/stream01)的情况下,拉流地址1仅能获取到推流地址1对应的目标直播流,而不会获取推流地址2对应的直播流,也即防止了拉流混乱现象的发生。
步骤S208,将目标直播流发送至客户端。
本发明实施例中,基于推流域名与拉流域名的关联关系来确定拉流域名信息对应的目标推流域名,进而基于目标推流域名获取目标直播流,这样即使在多个推流域名所推的直播流的直播流名称相同的情况下,客户端也只能拉到目标推流域名所推的目标直播流,而不会拉到与拉流域名信息无关的其他推流域名所推的直播流,从而缓解了拉流混乱现象,提高了用户体验度。
为了便于理解,本发明实施例还提供了一种直播流传输方法的技术架构逻辑图,参见图3所示的一种直播流传输方法的技术架构逻辑图,引入一个名为“UniqueSpace”(独立空间,也可称域名空间)的软件逻辑模块,此逻辑模块用来关联一组推流域名、拉流域名。可以理解为将推流域名、拉流域名添加到UniqueSpace中,处在同一个UniqueSpace中的推流域名、拉流域名能相互共享直播流,处在不同UniqueSpace中的推流域名、拉流域名不能共享直播流。如图3所示,直播客户将推流域名push.a.com和拉流域名play.a.com添加到UniqueSpace1中,这样拉流域名play.a.com就能够拉取到推流域名push.a.com所推的直播流进行播放;直播客户将推流域名push.b.com和拉流域名play.b.com添加到UniqueSpace2中,这样拉流域名play.b.com就能够拉取到推流域名push.b.com所推的直播流进行播放。相应的,UniqueSpace1中拉流域名play.a.com是无法拉取到UniqueSpace2中推流域名push.b.com所推的直播流的,UniqueSpace2中拉流域名play.b.com是无法拉取到UniqueSpace1中推流域名push.a.com所推的直播流的,这样就解决了上述的拉流混乱问题。
基于图3所示的技术架构逻辑图,本发明实施例还提供了另一种直播流传输方法,与图2所示的步骤相比,该方法更加详细。参见图4所示的另一种直播流传输方法的流程示意图,该方法包括如下步骤S402至步骤S410:
步骤S402,通过CDN服务器对应的控制台或开放接口,获取推流域名与拉流域名的关联关系。
直播客户在使用直播服务时,需要在云厂商的CDN系统中添加推流域名和拉流域名(这些直播域名为直播客户自己在域名服务商处注册并且已在工信部完成备案的域名),并根据期望的直播功能对这些直播域名做相应配置。云厂商为直播客户提供了添加直播域名的控制台或开放接口(Open Application Programming Interface,简称Open API),其中,控制台用于给直播客户提供直播或CDN配置功能,以及查询业务状态功能。本实施例中,CDN服务器可以通过控制台或开放接口来获取推流域名与拉流域名的关联关系。
可选地,基于图3所示的技术架构逻辑图,直播客户可以通过控制台或开放接口建立域名空间,并在域名空间内添加相应的推流域名和拉流域名,使得CDN服务器能够获取到域名空间、推流域名和拉流域名之间的关系,从而得到推流域名与拉流域名的关联关系。因此,上述步骤S402可以通过如下过程实现:通过CDN服务器对应的控制台或开放接口,获取预设的服务端提交的域名管理信息;其中,域名管理信息包括域名空间创建信息和域名添加信息;根据域名管理信息创建至少一个域名空间,并在已创建的域名空间中添加相应的推流域名和拉流域名;将每个域名空间内的推流域名和拉流域名建立关联,得到推流域名与拉流域名的关联关系。上述服务端为直播客户所使用的终端设备。
一个域名空间内可以添加一个或多个推流域名和一个或多个拉流域名,也即推流域名与拉流域名可以是一一对应的关系,也可以是一个推流域名对应多个拉流域名或者多个推流域名对应一个拉流域名,还可以是多个推流域名对应多个拉流域名;其中,通常情况下为一个推流域名对应多个拉流域名;在冗余备份场景下,可以是两个推流域名对应多个拉流域名。
为了便于理解,下面分别对通过控制台和开放接口添加直播域名的具体过程进行详细介绍。
(1)通过控制台添加直播域名:
直播客户可以通过终端设备登录云厂商提供的控制台,在控制台的可视化操作界面上进行域名空间的创建和直播域名的添加,之后控制台会将创建的域名空间以及添加的推流域名和拉流域名上报至CDN服务器。
参见图5所示的一种创建域名空间的用户界面示意图,直播客户可在控制台创建域名空间,亦可单击“域名配置”选择已有的域名空间,给此域名空间添加直播域名。
参见图6所示的一种添加域名的用户界面示意图,可以给“cptest”这个域名空间添加推流域名、添加拉流域名。
这种添加直播域名的方法利用了控制台的可视化操作界面,因此具有简捷直观的优点,适用于不具备开发能力的客户。
(2)通过开放接口添加直播域名:
直播客户可以通过云厂商提供的Open API创建域名空间和添加直播域名,OpenAPI可以分为创建域名空间接口和向域名空间添加域名接口。
以下Open API参数样式示出了如何向指定客户账号(11111111)创建名为“UniqueSpace1”的域名空间:
Figure BDA0002388001560000111
Figure BDA0002388001560000121
以下Open API参数样式示出了如何向名为“UniqueSpace1”的域名空间中添加推流域名“push.a.com”:
Figure BDA0002388001560000122
以下Open API参数样式示出了如何向名为“UniqueSpace1”的域名空间中添加拉流域名“play.a.com”:
Figure BDA0002388001560000123
直播客户可以将Open API集成在其业务系统中,做成自动化的工具,这样就可以通过自身的业务系统调用Open API,实现直播域名的自动化添加。这种添加直播域名的方法适用于具有一定开发能力的客户。
步骤S404,将上述关联关系存储在CDN服务器的配置文件中。
以图3为例,CDN服务器上的配置文件中会存储推流域名push.a.com和拉流域名play.a.com处于UniqueSpace1中,即推流域名push.a.com和拉流域名play.a.com存在关联关系;相应的,CDN服务器上的配置文件中还会存储推流域名push.b.com和拉流域名play.b.com处于UniqueSpace2中,即推流域名push.b.com和拉流域名play.b.com存在关联关系。
步骤S406,接收客户端发送的播放请求,该播放请求包括拉流域名信息和直播流名称信息。
步骤S408,在上述关联关系中查找拉流域名信息,得到拉流域名信息对应的目标推流域名。
步骤S410,根据目标推流域名和直播流名称信息,生成目标推流地址,该目标推流地址中的推流域名为目标推流域名。
步骤S412,获取目标推流地址对应的目标直播流。
若CDN服务器在本地未查找到目标推流地址,则确定本地未存储目标直播流,此时可以通过该CDN服务器的上层节点获取源站存储的目标直播流。
步骤S414,将目标直播流发送至客户端。
例如,推流地址1:rtmp://push.a.com/live/stream01,主播使用此推流域名进行游戏直播推流;推流地址2:rtmp://push.b.com/live/stream01,主播使用此推流域名进行秀场直播。当CDN服务器收到拉流地址1:http://play.a.com/live/stream01.flv请求播放直播内容后,因为推流域名push.a.com和拉流域名play.a.com存在关联关系,因此CDN服务器允许播放的直播内容是推流地址1对应的游戏直播内容,从而避免了拉流地址1拉到推流地址2对应的秀场直播内容的情况发生,也即是避免了拉流混乱的情况发生。
当CDN服务器收到拉流地址2:http://play.b.com/live/stream01.flv请求播放直播内容后,因为推流域名push.b.com和拉流域名play.b.com存在关联关系,因此CDN服务器允许播放的直播内容是推流地址2对应的秀场直播内容。从而避免了拉流地址2拉到推流地址1对应的游戏直播内容的情况发生,也即是避免了拉流混乱的情况发生。
本发明实施例中,当直播客户在云厂商的账号下存在多个推流域名和多个拉流域名时,直播客户可以灵活指定推流域名与拉流域名的关联关系,即通过将推流域名和拉流域名添加到一个域名空间中而产生关联关系,拉流域名只能拉到与它存在关联关系的推流域名所推的直播流,避免了拉流混乱的问题,从而规避了直播客户因拉流混乱而触发的报障投诉;而且直播客户无需确保不同推流域名下不会出现相同直播流名称的直播流,减少了直播客户的工作负担,大大提升了用户体验。
对应于上述的直播流传输方法,本发明实施例还提供了一种直播流传输装置,该装置应用于CDN服务器,该CDN服务器存储有推流域名与拉流域名的关联关系。参见图7所示的一种直播流传输装置的结构示意图,该装置包括:
接收模块72,用于接收客户端发送的播放请求,该播放请求包括拉流域名信息和直播流名称信息;
确定模块74,用于根据上述关联关系确定拉流域名信息对应的目标推流域名;
目标获取模块76,用于根据目标推流域名和直播流名称信息,获取目标直播流;
发送模块78,用于将目标直播流发送至客户端。
本发明实施例提供的直播流传输装置中,基于推流域名与拉流域名的关联关系来确定拉流域名信息对应的目标推流域名,进而基于目标推流域名获取目标直播流,这样即使在多个推流域名所推的直播流的直播流名称相同的情况下,客户端也只能拉到目标推流域名所推的目标直播流,而不会拉到与拉流域名信息无关的其他推流域名所推的直播流,从而缓解了拉流混乱现象,提高了用户体验度。
可选地,参见图8所示的另一种直播流传输装置的结构示意图,在图7的基础上,上述装置还包括:
关系获取模块82,用于通过CDN服务器对应的控制台或开放接口,获取推流域名与拉流域名的关联关系;
存储模块84,用于将上述关联关系存储在CDN服务器的配置文件中。
可选地,上述关系获取模块82具体用于:通过CDN服务器对应的控制台或开放接口,获取预设的服务端提交的域名管理信息;其中,域名管理信息包括域名空间创建信息和域名添加信息;根据域名管理信息创建至少一个域名空间,并在已创建的域名空间中添加相应的推流域名和拉流域名;将每个域名空间内的推流域名和拉流域名建立关联,得到推流域名与拉流域名的关联关系。
可选地,上述目标获取模块76具体用于:根据目标推流域名和直播流名称信息,生成目标推流地址,该目标推流地址中的推流域名为目标推流域名;获取目标推流地址对应的目标直播流。
本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
参见图9,本发明实施例还提供一种CDN服务器100,包括:处理器90,存储器91,总线92和通信接口93,所述处理器90、通信接口93和存储器91通过总线92连接;处理器90用于执行存储器91中存储的可执行模块,例如计算机程序。
其中,存储器91可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory,简称NVM),例如至少一个磁盘存储器。通过至少一个通信接口93(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线92可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器91用于存储程序,所述处理器90在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器90中,或者由处理器90实现。
处理器90可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器90中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器90可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器91,处理器90读取存储器91中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中所述的直播流传输方法。该计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
附图中的流程图和框图显示了根据本发明的多个实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的服务器、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (6)

1.一种直播流传输方法,其特征在于,应用于CDN服务器,所述CDN服务器存储有推流域名与拉流域名的关联关系;所述方法包括:
接收客户端发送的播放请求,所述播放请求包括拉流域名信息和直播流名称信息;
根据所述关联关系确定所述拉流域名信息对应的目标推流域名;
根据所述目标推流域名和所述直播流名称信息,获取目标直播流;
将所述目标直播流发送至所述客户端;
在接收客户端发送的播放请求之前,所述方法还包括:
通过所述CDN服务器对应的控制台或开放接口,获取推流域名与拉流域名的关联关系;
将所述关联关系存储在所述CDN服务器的配置文件中;
通过所述CDN服务器对应的控制台或开放接口,获取推流域名与拉流域名的关联关系的步骤,包括:
通过所述CDN服务器对应的控制台或开放接口,获取预设的服务端提交的域名管理信息;其中,所述域名管理信息包括域名空间创建信息和域名添加信息;
根据所述域名管理信息创建至少一个域名空间,并在已创建的所述域名空间中添加相应的推流域名和拉流域名;
将每个所述域名空间内的推流域名和拉流域名建立关联,得到推流域名与拉流域名的关联关系。
2.根据权利要求1所述的方法,其特征在于,根据所述目标推流域名和所述直播流名称信息,获取目标直播流的步骤,包括:
根据所述目标推流域名和所述直播流名称信息,生成目标推流地址,所述目标推流地址中的推流域名为所述目标推流域名;
获取所述目标推流地址对应的目标直播流。
3.一种直播流传输装置,其特征在于,应用于CDN服务器,所述CDN服务器存储有推流域名与拉流域名的关联关系;所述装置包括:
接收模块,用于接收客户端发送的播放请求,所述播放请求包括拉流域名信息和直播流名称信息;
确定模块,用于根据所述关联关系确定所述拉流域名信息对应的目标推流域名;
目标获取模块,用于根据所述目标推流域名和所述直播流名称信息,获取目标直播流;
发送模块,用于将所述目标直播流发送至所述客户端;
所述装置还包括:
关系获取模块,用于通过所述CDN服务器对应的控制台或开放接口,获取推流域名与拉流域名的关联关系;
存储模块,用于将所述关联关系存储在所述CDN服务器的配置文件中;
所述关系获取模块具体用于:
通过所述CDN服务器对应的控制台或开放接口,获取预设的服务端提交的域名管理信息;其中,所述域名管理信息包括域名空间创建信息和域名添加信息;
根据所述域名管理信息创建至少一个域名空间,并在已创建的所述域名空间中添加相应的推流域名和拉流域名;
将每个所述域名空间内的推流域名和拉流域名建立关联,得到推流域名与拉流域名的关联关系。
4.根据权利要求3所述的装置,其特征在于,所述目标获取模块具体用于:
根据所述目标推流域名和所述直播流名称信息,生成目标推流地址,所述目标推流地址中的推流域名为所述目标推流域名;
获取所述目标推流地址对应的目标直播流。
5.一种CDN服务器,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1或2所述的方法。
6.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1或2所述的方法。
CN202010105676.2A 2020-02-20 2020-02-20 直播流传输方法、装置、cdn服务器及计算机可读介质 Active CN111355971B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010105676.2A CN111355971B (zh) 2020-02-20 2020-02-20 直播流传输方法、装置、cdn服务器及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010105676.2A CN111355971B (zh) 2020-02-20 2020-02-20 直播流传输方法、装置、cdn服务器及计算机可读介质

Publications (2)

Publication Number Publication Date
CN111355971A CN111355971A (zh) 2020-06-30
CN111355971B true CN111355971B (zh) 2021-12-24

Family

ID=71197043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010105676.2A Active CN111355971B (zh) 2020-02-20 2020-02-20 直播流传输方法、装置、cdn服务器及计算机可读介质

Country Status (1)

Country Link
CN (1) CN111355971B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112492329B (zh) * 2020-10-29 2023-06-20 北京达佳互联信息技术有限公司 直播方法和装置
CN113852593B (zh) * 2021-07-20 2023-07-11 浪潮软件科技有限公司 一种分布式流媒体集群的部署系统及方法
CN114584808B (zh) * 2022-03-01 2023-09-22 抖音视界有限公司 一种视频流获取方法、装置、系统、设备和介质
CN114679601A (zh) * 2022-03-29 2022-06-28 湖南快乐阳光互动娱乐传媒有限公司 信号推流方法和装置
CN114760504A (zh) * 2022-04-18 2022-07-15 北京金山云网络技术有限公司 直播服务器的测试方法、装置、存储介质以及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635175A (zh) * 2016-02-04 2016-06-01 北京奇艺世纪科技有限公司 一种rtmp流服务器的负载均衡方法和系统
CN105847874A (zh) * 2016-04-20 2016-08-10 乐视控股(北京)有限公司 直播装置及直播终端
CN109194972A (zh) * 2018-09-10 2019-01-11 广州酷狗计算机科技有限公司 直播流获取方法、装置、计算机设备及存储介质
CN109618241A (zh) * 2018-12-21 2019-04-12 网宿科技股份有限公司 音视频流分发系统中的音视频流分发方法及动态父节点
CN109963162A (zh) * 2017-12-25 2019-07-02 阿里巴巴集团控股有限公司 一种云导播系统及直播处理方法、装置
CN110446054A (zh) * 2018-05-03 2019-11-12 腾讯科技(深圳)有限公司 一种直播流传输方法、装置、相关设备及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058413A (ja) * 2001-08-15 2003-02-28 Sony Corp コンテンツ提供装置、コンテンツ提供方法、ストリームコンテンツの再生プログラム及びストリームコンテンツの再生プログラムを記録した記録媒体
US10582247B2 (en) * 2017-06-01 2020-03-03 RxPrism Health Systems Private Limited Adapter device for television screen or channel extension and a method thereof

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635175A (zh) * 2016-02-04 2016-06-01 北京奇艺世纪科技有限公司 一种rtmp流服务器的负载均衡方法和系统
CN105847874A (zh) * 2016-04-20 2016-08-10 乐视控股(北京)有限公司 直播装置及直播终端
CN109963162A (zh) * 2017-12-25 2019-07-02 阿里巴巴集团控股有限公司 一种云导播系统及直播处理方法、装置
CN110446054A (zh) * 2018-05-03 2019-11-12 腾讯科技(深圳)有限公司 一种直播流传输方法、装置、相关设备及系统
CN109194972A (zh) * 2018-09-10 2019-01-11 广州酷狗计算机科技有限公司 直播流获取方法、装置、计算机设备及存储介质
CN109618241A (zh) * 2018-12-21 2019-04-12 网宿科技股份有限公司 音视频流分发系统中的音视频流分发方法及动态父节点

Also Published As

Publication number Publication date
CN111355971A (zh) 2020-06-30

Similar Documents

Publication Publication Date Title
CN111355971B (zh) 直播流传输方法、装置、cdn服务器及计算机可读介质
US11350139B2 (en) Video live broadcast method and apparatus
US9756361B2 (en) On-demand load balancer and virtual live slicer server farm for program ingest
US20150237113A1 (en) Method and system for file transmission
CN110072122B (zh) 一种视频播放方法及相关设备
US20140165119A1 (en) Offline download method, multimedia file download method and system thereof
JP2015517266A (ja) Isoベースメディアファイルフォーマットに基づく適応ストリーミングについてのセキュアな非同期イベント通知のためのシステム及び方法
CN108810657B (zh) 一种设置视频封面的方法和系统
CN104301741A (zh) 一种数据直播系统和方法
US11212369B2 (en) Distributed storage of state information and session recovery using state information
JP2015525014A (ja) 同じ意味の複数の信号を取り込む方法
CN110958279B (zh) 一种数据处理方法及其装置
US20220046113A1 (en) Distributed state recovery in a system having dynamic reconfiguration of participating nodes
US10750248B1 (en) Method and apparatus for server-side content delivery network switching
CN112243136B (zh) 内容播放方法、视频存储方法和设备
WO2017101363A1 (zh) 视频直播转点播方法及系统
CN112135199B (zh) 基于多类型视频源的视频播放方法及相关设备
CN112860432A (zh) 一种进程管理方法、装置及服务器
KR100835528B1 (ko) 구간정보를 이용한 멀티미디어 콘텐츠의 스트리밍 방법 및그 스트리밍 단말기
CN115134618B (zh) 直播流生命周期信息处理方法、装置及计算设备
CN113438313B (zh) 视频续播处理方法、相关装置及可读存储介质
CN115460471B (zh) 视频播放方法、装置、电子设备和计算机可读介质
CN113271475B (zh) 一种数据处理方法、系统、电子设备及存储介质
KR102007669B1 (ko) 방송 수신기 및 이의 운용 방법
US10750216B1 (en) Method and apparatus for providing peer-to-peer content delivery

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