CN105872856A - 一种流媒体文件分发方法及*** - Google Patents
一种流媒体文件分发方法及*** Download PDFInfo
- Publication number
- CN105872856A CN105872856A CN201610162594.5A CN201610162594A CN105872856A CN 105872856 A CN105872856 A CN 105872856A CN 201610162594 A CN201610162594 A CN 201610162594A CN 105872856 A CN105872856 A CN 105872856A
- Authority
- CN
- China
- Prior art keywords
- file
- server
- edge server
- files
- stream media
- 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
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/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
-
- 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
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
-
- 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/26258—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 generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种流媒体文件分发方法,包括:获取流媒体文件的m3u8文件;确定对所述m3u8文件有订阅服务需求的边缘服务器;主动将所述m3u8文件分发至所述边缘服务器;本发明实施例还提供一种流媒体文件分发***;实现了服务器实时将获得的m3u8文件下发至相应的边缘服务器,同时消除了丢片的可能性,大大提升了用户的播放体验。
Description
技术领域
本发明实施例涉及流媒体技术领域,尤其涉及一种流媒体文件分发方法及***。
背景技术
HLS(Http live streaming)协议是苹果公司实现的基于超文本传输协议Http的流媒体传输协议,HLS协议将容量巨大的连续媒体数据进行分段,分割为数量众多的小文件进行传递,迎合了网页服务器的文件传输性,并采用一个不断更新的轻量级索引文件来控制分割后小媒体文件的下载和播放,可以实现流媒体的直播和点播。HLS协议在优先考虑流畅性的前提下支持码率的自动切换,目前被各大视频网站广泛使用。
通过HLS协议,视频数据经处理后分为视频片段ts文件以及媒体数据索引m3u8文件,并存在于云服务器上。m3u8文件实际上只是一种文件组的组织形式,将视频片段ts文件以播放列表的形式组织在一起以供多媒体播放器下载播放。m3u8文件中通常包括视频片段的多个统一资源定位符URL。多媒体播放器获取m3u8文件后,进而按照其中的URL下载对应的视频片段并进行播放。客户端播放HLS内容的过程,本质上是分别下载索引文件和分片文件的过程。
在现有技术中,流媒体播放***中一般包括中心服务器和多个边缘服务器,客户端需要根据从边缘服务器端查询最新的m3u8文件以获取最新的播放信息。通常,需要中心服务器将m3u8文件下发至边缘服务器,对于实现流媒体文件的下发主要如下几个步骤:首先,制作m3u8文件及视频片段ts文件,并存储上述m3u8文件至中心服务器上;然后,边缘服务器通过不断地轮询中心服务器获取最新的m3u8文件及视频片段ts文件;最后,客户端轮询边缘服务器获取最新的m3u8文件并播放流媒体视频文件。
在上述现有技术中通过各个服务器之间的轮询拉取m3u8文件以获取流媒体文件的方法存在如下问题:
首先,由于边缘服务器轮询中心服务器下载更新m3u8文件存在轮询间隔的问题,增大了边缘服务器更新m3u8文件的延迟;再者,由于边缘服务器不知道中心服务器的m3u8文件更新时间,盲目轮询中心服务器造成了网络带宽资源的浪费;然后,当边缘服务器所接收的请求增多时,边缘服务器向中心服务器轮询的次数也会增多致使中心服务器的压力严重增大,此外由于边缘服务器所接收的请求会越来越多,边缘服务器单机部署的流也会相应地增多,致使边缘服务器的服务能力也大大受限;在一种情况下,当中心服务器的m3u8文件的更新间隔小于边缘服务器轮询的间隔时,边缘服务器出现丢片的几率就会大大增加。
发明内容
本发明实施例提供一种流媒体文件分发方法及***,用以解决上述现有技术中所阐述的至少一个技术问题。
本发明实施例提供一种流媒体文件分发方法,其特征在于,包括:
获取流媒体文件的m3u8文件;
确定对所述m3u8文件有订阅服务需求的边缘服务器;
主动将所述m3u8文件分发至所述边缘服务器。
本发明实施例还提供一种流媒体文件分发***,其特征在于,包括:
流媒体获取单元,用于获取流媒体文件的m3u8文件;
目标服务器确定单元,用于确定对所述m3u8文件有订阅服务需求的边缘服务器;
主动分发单元,用于主动将所述m3u8文件分发至所述边缘服务器。
通过本发明实施例提供的流媒体文件分发方法及***,实现了将更新的m3u8文件下发至有需求的边缘服务器;当将本发明实施例应用在中心服务器中时,相比于现有技术中的服务器之间轮询以获取更新的m3u8文件,本发明实施例具有如下有益效果:
一方面,由于边缘服务器不需要知道中心服务器的m3u8文件更新时间,边缘服务器也不需要盲目轮询中心服务器,大量节约了网络带宽资源的浪费;通过实际工作测试结果可知,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,假定中心服务器的更新的m3u8文件在10s后才生成,按照原有的服务器轮询方案,下层服务器每间隔2s轮询一次中心服务器,每次获取三块m3u8,则在10s内需要传输15片m3u8,而在本实施例方法中只需要传输1片m3u8,则在这10s内所节省的带宽率高达(15-1)/15=93%;
另一方面,相比与现有技术中的边缘服务器间隔轮询中心服务器,理论上消除了丢片的可能性,大大提升了用户的流媒体播放体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出的是本发明一实施例的流媒体文件分发方法的流程图;
图2示出了图1所示方法中的S12步骤的一种具体执行方式的详细执行图;
图3示出的是本发明一实施例的流媒体文件分发***的结构示意图;
图4示出的是本发明另一实施例的流媒体文件分发***的结构示意图;
图5示出的是本发明还一实施例的流媒体文件分发***的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1示出的是本发明一实施例的流媒体文件分发方法的流程图,包括:
S11:获取流媒体文件的m3u8文件;
S12:确定对m3u8文件有订阅服务需求的边缘服务器;
S13:主动将m3u8文件分发至边缘服务器。
作为进一步的优化,在上述S13步骤之后还可以包括:上述边缘服务器根据所接收的m3u8文件在目标边缘服务器本地缓存上述更新的m3u8文件及上述m3u8文件所对应的ts文件。
通过本发明实施例提供的流媒体文件分发方法,实现了将更新的m3u8文件下发至有需求的边缘服务器,当将本发明实施例应用在中心服务器中时,相比于现有技术中的服务器之间轮询以获取更新的m3u8文件,本发明实施例具有如下有益效果:
一方面,由于边缘服务器不需要知道中心服务器的m3u8文件更新时间,边缘服务器也不需要盲目轮询中心服务器,大量节约了网络带宽资源的浪费;通过实际工作测试结果可知,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,中层服务器和下层服务器对应于本发明实施例方法中的边缘服务器,假定中心服务器的更新的m3u8文件在10s后才生成,按照原有的服务器轮询方案,下层服务器每间隔2s轮询一次中心服务器,每次获取三块m3u8,则在10s内需要传输15片m3u8,而在本实施例方法中只需要传输1片m3u8,则在这10s内所节省的带宽率高达(15-1)/15=93%;
另一方面,相比与现有技术中的边缘服务器间隔轮询中心服务器,理论上消除了丢片的可能性,大大提升了用户的流媒体播放体验。
作为本发明实施例方法的一种优选实施方式,获取流媒体文件的m3u8文件包括生成流媒体文件的m3u8文件或接收流媒体文件的m3u8文件。
关于本发明实施例方法的应用,不限于中心服务器,同样也可以是与上述边缘服务器连接的边缘服务器;当将本发明实施例方法应用在边缘服务器时,实现了多个边缘服务器之间共享更新的m3u8文件,使得边缘服务器无需订阅中心服务器便可以获取所需求的更新m3u8文件,减轻了对中心服务器的压力,例如,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,中层服务器和下层服务器对应于本发明实施例方法中的边缘服务器,中心服务器只要向中层服务器传送更新的m3u8文件,不需要向下层服务器传送更新的m3u8文件;作为边缘服务器的中层服务器和下层服务器之间共享更新的m3u8文件,相比于下层服务器直接查询中心服务器降低了对中心服务器的压力,同时也降低了下层服务器获得更新的m3u8文件的延时。
作为本发明实施例方法的一种优选实施方式,参见图2,作为图1所示实施例方法的进一步优化,关于图1中的步骤S12的执行,可以包括如下子步骤:
S121:根据m3u8文件的描述信息确定相应的流媒体文件的节目信息;
S122:查询至少包含节目信息和对应的边缘服务器ID的节目订阅列表,基于确定的相应的流媒体文件的节目信息,确定对m3u8文件有订阅服务需求的相应的边缘服务器ID。
关于本发明实施例方法的应用,不限于中心服务器,同样也可以是与上述边缘服务器连接的边缘服务器;通过本优选实施例方法,实现了当存在多个边缘服务器时,m3u8文件在内容分发网络中的定向发送。
作为本发明实施例方法的一种优选实施方式,关于图2中的步骤S122的执行,可以包括:
节目订阅列表基于边缘服务器的服务订阅请求生成,服务订阅请求中至少包含边缘服务器ID和订阅节目的节目信息。
作为一种优化,在上述步骤节目订阅列表基于边缘服务器的服务订阅请求生成之前还包括:中心服务器接收自边缘服务器的服务订阅请求。
当将本发明实施例方法应用在内容分发网络的中心服务器时,边缘服务器向中心服务器的订阅相应的流媒体文件,中心服务器将符合边缘服务器订阅请求的流媒体文件传输给边缘服务器,实现了m3u8文件在内容分发网络中的按需分配。
作为本发明实施例方法的一种优选实施方式,以TCP长连接的通信方式主动将m3u8文件分发至边缘服务器。
应当解释的是,接收边缘服务器所发送的服务订阅请求与传输m3u8文件可以是两个彼此独立的通信单元分别执行的,例如将本发明实施例方法应用于中心服务器中,一方面中心服务器的长连接通信单元专用于传输m3u8文件,另有一请求接收单元用于接收自边缘服务器的服务订阅请求;另一方面,接收服务订阅请求与传输m3u8文件可以是由同一个通信单元分别执行的,比如中心服务器的长连接通信单元既可以用于接收m3u8文件也又可以用来接收边缘服务器所发送的服务订阅请求。
关于本发明实施例方法的应用,不限于中心服务器,同样也可以是与上述边缘服务器连接的其他的边缘服务器。通过本发明实施例方法实现了实时将m3u8文件下发至有需求的边缘服务器,本发明实施例方法具有如下有益效果:
首先,由于中心服务器和中心服务器下的边缘服务器之间的建立了TCP长连接,保障了中心服务器能够实时将已更新的m3u8文件下发至边缘服务器,大大降低了边缘服务器更新m3u8文件的延迟,通过实际工作测试结果可知,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,本发明实施例中的边缘服务器包含了中层服务器和下层服务器,下层服务器获取一片m3u8文件的理论最大分发延迟从6s变为三层TCP连接的RTT(具体与服务器之间的链路有关),平均分发时延大小在1s之内,通信延迟时间降低了不小于83%;
然后,由于中心服务器和边缘服务器之间是通过TCP长连接实时通信传输m3u8文件的,在边缘服务器的本地所存储的m3u8文件便是最新的m3u8文件,当边缘服务器接收到用户访问请求时也无需查询中心服务器,大大减少了中心服务器的压力,同时也减少了边缘服务器单机部署的流,消除了现有的套接字性能瓶颈,大大提高了边缘服务器的服务能力,通过实际工作测试测试结果可知,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,单台下层服务器所能处理的访问请求数量的上限提升了不小于10倍。
作为本发明实施例方法的一种优选实施方式,关于图2中的步骤S122的进一步优化,根据节目信息建立与节目订阅列表相关联的连接池以优化节目订阅列表的查询响应速度。
数据连接是影响数据查询效率的重要性能指标之一,连接池正是针对这个问题提出来的,连接池是对某一数据库所有连接的“缓冲池”,连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,故连接池技术能明显提高对数据库操作的性能。
关于本实施例更具体地,中心服务器根据节目订阅请求中所包含的节目信息生成连接,并将上述连接保持到连接池中。作为进一步地优化,根据中心服务器的处理能力和节目订阅信息的数量,设置上述连接池中的连接的上限值以充分发挥连接池的工作性能。
通过建立连接池优化节目订阅列表的查询响应速度,缩短了匹配目标边缘服务器所消耗的时间,降低了查询节目订阅列表时对中心服务器资源的占用,同时也提高了中心服务器处理众多服务订阅请求的能力。
作为本发明实施例方法的一种优选实施方式,m3u8文件的描述信息为媒资ID。
作为进一步的优化,订阅节目的节目信息可以是媒资ID的类型;流媒体运营商在部署服务器内容分发网络时,可以利用不同的边缘服务器处理不同的类型的媒资ID所对应的流媒体资源,例如:利用内容分发网络中的A边缘服务器处理综艺类节目,当解析确定新生成的m3u8文件的媒资ID(如:“蒙面歌王”、“超级女声”等)属于综艺类标识时,中心服务器则将新生成的m3u8文件分发至A边缘服务器。
作为本发明实施例方法的一种优选实施方式,边缘服务器为更新的m3u8文件添加时间偏移信息,并将上述更新m3u8文件封装为符合流媒体协议的直播m3u8文件。更优选地,时间偏移信息小于1小时。通过本发明实施例方法执行流媒体文件直播,在理论上消除了丢片的可能性,大大提高了直播时的用户体验。
在本发明的一种具体实施方式中,网络分发网络部署有三层服务器架构(中心服务器-中层服务器-下层服务器),将中心服务器布置在靠近流媒体服务运营商的地区,例如:北京;将中层服务器布置在各级省会城市,例如:湖北武汉;将下层服务器布置在省会城市下一级的各地级市,例如:湖北仙桃。关于流媒体分发方法具体的实施,可以包括如下几个步骤:
中层服务器向中心服务器发出订阅命令,中心服务器根据上述订阅命令关注相应的节目信息,同时,中层服务器将边缘服务器的ip信息也发送至中心服务器,中心服务器记录中层服务器的ip信息和其所关注的节目信息之间的对应关系并存储至服务订阅列表;
生成包含节目信息的连接,并将该连接保持到线程池中;中心服务器的m3u8生产模块hls_creator/m3u8_builder生产出来新的m3u8后,通过消息队列将切片ts文件所对应的m3u8文件实时转发给中心服务器的Receptor模块;将中心服务器和中层服务器之间建立专门用于传输m3u8文件的TCP长连接;
中心服务器的Receptor模块统一将接收到的m3u8文件实时发布到连接池,连接池通过将m3u8的关键词与服务订阅列表中的节目信息做匹配,并进一步将新m3u8文件通过TCP长连接实时发送给相匹配的中层服务器;
中层服务器的Packager模块中维护了通过对每一个节目对应的1小时的历史m3u8信息,实时将m3u8转储为时移信息及符合hls协议的直播m3u8。
进一步地,中层服务器以相同方式将该直播m3u8文件分发至订阅了上述中层服务器的下层服务器,故在此不加以赘述。
通过实际的工作测试结果可知:下层服务器从中心服务器获取一片m3u8文件的理论最大分发延迟从6s变为三层TCP连接的RTT(具体与服务器之间的链路有关),平均分发时延大小在1s之内,通信延迟时间降低了不小于83%;假定中心服务器的更新的m3u8文件在10s后才生成,按照原有的服务器轮询方案,下层服务器每间隔2s轮询一次中心服务器,每次获取三块m3u8,则在10s内需要传输15片m3u8,而在本实施例方法中只需要传输1片m3u8,则在这10s内所节省的带宽率高达(15-1)/15=93%;单台下层服务器所能处理的访问请求数量的上限提升了不小于10倍。
参见图3示出的是本发明一实施例的一种流媒体文件分发***的结构示意图,包括:
流媒体获取单元,用于获取流媒体文件的m3u8文件;
目标服务器确定单元,用于确定对m3u8文件有订阅服务需求的边缘服务器;
主动分发单元,用于主动将m3u8文件分发至边缘服务器。
通过本发明实施例提供的流媒体文件分发***,实现了将更新的m3u8文件下发至有需求的边缘服务器,当将本发明实施例应用在中心服务器中时,相比于现有技术中的服务器之间轮询以获取更新的m3u8文件,本发明实施例具有如下有益效果:
一方面,由于边缘服务器不需要知道中心服务器的m3u8文件更新时间,边缘服务器也不需要盲目轮询中心服务器,大量节约了网络带宽资源的浪费;通过实际工作测试结果可知,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,中层服务器和下层服务器对应于本发明实施例方法中的边缘服务器,假定中心服务器的更新的m3u8文件在10s后才生成,按照原有的服务器轮询方案,下层服务器每间隔2s轮询一次中心服务器,每次获取三块m3u8,则在10s内需要传输15片m3u8,而在本实施例方法中只需要传输1片m3u8,则在这10s内所节省的带宽率高达(15-1)/15=93%;
另一方面,相比与现有技术中的边缘服务器间隔轮询中心服务器,理论上消除了丢片的可能性,大大提升了用户的流媒体播放体验。
作为本发明实施例***的一种优选实施方式,作为本发明实施例方法的一种优选实施方式,继续参见图4,作为图3所示实施例***的进一步优化,图3中的流媒体获取单元为用于生成流媒体文件的m3u8文件流媒体生成单元;继续参见图5,作为图3所示实施例***的进一步优化,图3中的流媒体获取单元为用于接收流媒体文件的m3u8文件流媒体接收单元。
关于本发明实施例***的应用,不限于包含流媒体生成单元的中心服务器,同样也可以是与上述边缘服务器连接的包含流媒体接收单元的边缘服务器;当将本发明实施例方法应用在边缘服务器时,实现了多个边缘服务器之间共享更新的m3u8文件,使得边缘服务器无需订阅中心服务器便可以获取所需求的更新m3u8文件,减轻了对中心服务器的压力,例如,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,中层服务器和下层服务器对应于本发明实施例方法中的边缘服务器,中心服务器只要向中层服务器传送更新的m3u8文件,不需要向下层服务器传送更新的m3u8文件;作为边缘服务器的中层服务器和下层服务器之间共享更新的m3u8文件,相比于下层服务器直接查询中心服务器降低了对中心服务器的压力,同时也降低了下层服务器获得更新的m3u8文件的延时。
作为本发明实施例***的一种优选实施方式,目标服务器确定单元用于根据m3u8文件的描述信息确定相应的流媒体文件的节目信息;查询至少包含节目信息和对应的边缘服务器ID的节目订阅列表,基于确定的相应的流媒体文件的节目信息,确定对m3u8文件有订阅服务需求的相应的边缘服务器ID。
关于本发明实施例方法的应用,不限于中心服务器,同样也可以是与上述边缘服务器连接的边缘服务器;通过本优选实施例方法,实现了当存在多个边缘服务器时,m3u8文件在内容分发网络中的定向发送。
作为本发明实施例***的一种优选实施方式,目标服务器确定单元包括:
节目订阅列表生成模块,用于根据边缘服务器的服务订阅请求生成节目订阅列表,服务订阅请求至少包含边缘服务器ID和订阅节目的节目信息。
作为进一步优化,还包括与节目订阅列表生成模块连接的请求接收模块,用于接收边缘服务器所发送的服务订阅请求;
当将本发明实施例方法应用在内容分发网络的中心服务器时,边缘服务器向中心服务器的订阅相应的流媒体文件,中心服务器将符合边缘服务器订阅请求的流媒体文件传输给边缘服务器,实现了m3u8文件在内容分发网络中的按需分配。
作为本发明实施例***的一种优选实施方式,还包括:主动分发单元采用TCP长连接的通信方式。
应当解释的是,请求接收模块与主动分发单元可以是彼此独立执行通信连接,主动分发单元专用于TCP长连接传输m3u8文件,请求接收模块用于接收自边缘服务器所发送的服务订阅请求;此外,请求接收模块也可以包含于主动分发单元,主动分发单元既可以用来接收边缘服务器所发送的服务订阅请求也可以用于TCP长连接传输m3u8文件。
关于本发明实施例***的应用,不限于中心服务器,同样也可以是与上述边缘服务器连接的边缘服务器;通过本发明实施例方法实现了实时将m3u8文件下发至有需求的边缘服务器,本发明实施例方法具有如下有益效果:
首先,由于中心服务器和中心服务器下的边缘服务器之间的建立了TCP长连接,保障了中心服务器能够实时将已更新的m3u8文件下发至边缘服务器,大大降低了边缘服务器更新m3u8文件的延迟,通过实际工作测试结果可知,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,本发明实施例中的边缘服务器包含了中层服务器和下层服务器,下层服务器从中心服务器获取一片m3u8文件的理论最大分发延迟从6s变为三层TCP连接的RTT(具体与服务器之间的链路有关),平均分发时延大小在1s之内,通信延迟时间降低了不小于83%;
然后,由于中心服务器和边缘服务器之间是通过TCP长连接实时通信传输m3u8文件的,在边缘服务器的本地所存储的m3u8文件便是最新的m3u8文件,当边缘服务器接收到用户访问请求时也无需查询中心服务器,大大减少了中心服务器的压力,同时也减少了边缘服务器单机部署的流,消除了现有的套接字性能瓶颈,大大提高了边缘服务器的服务能力,通过实际工作测试测试结果可知,按照“中心服务器-中层服务器-下层服务器”的三层部署架构下,单台下层服务器所能处理的访问请求数量的上限提升了不小于10倍。
作为本发明实施例***的一种优选实施方式,目标服务器确定单元还包括:用于根据节目信息建立的连接池以优化节目订阅列表的查询响应速度。
通过建立连接池优化节目订阅列表的查询响应速度,缩短了匹配目标边缘服务器所消耗的时间,降低了查询节目订阅列表时对中心服务器资源的占用,同时也提高了中心服务器处理众多服务订阅请求的能力。
作为本发明实施例***的一种优选实施方式,m3u8文件的描述信息为媒资ID。
本发明实施例中可以通过硬件处理器来实现相关功能模块和单元。
在本发明一方面的应用上,本发明实施例***适于应用在流媒体内容分发网络的中心服务器和/或边缘服务器中。从流媒体网站类型和运营方向考虑,当本发明实施例***应用在流媒体直播平台或流媒体轮播平台时,能更显著地提高直播或轮播时的响应速度并优化用户体验。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种流媒体文件分发方法,其特征在于,包括:
获取流媒体文件的m3u8文件;
确定对所述m3u8文件有订阅服务需求的边缘服务器;
主动将所述m3u8文件分发至所述边缘服务器。
2.根据权利要求1所述的方法,其特征在于,所述获取流媒体文件的m3u8文件包括生成流媒体文件的m3u8文件或接收流媒体文件的m3u8文件。
3.根据权利要求1所述的方法,其特征在于,所述确定对所述m3u8文件有订阅服务需求的边缘服务器包括:
根据所述m3u8文件的描述信息确定相应于流媒体文件的节目信息;
查询至少包含节目信息和对应的边缘服务器ID的节目订阅列表,基于确定的所述相应于流媒体文件的节目信息,确定对所述m3u8文件有订阅服务需求的相应的边缘服务器ID。
4.根据权利要求3所述的方法,其特征在于,所述节目订阅列表基于所述边缘服务器的服务订阅请求生成,所述服务订阅请求中至少包含边缘服务器ID和订阅节目的节目信息。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述主动将所述m3u8文件分发至所述边缘服务器包括:
以TCP长连接的通信方式主动将所述m3u8文件分发至所述边缘服务器。
6.一种流媒体文件分发***,其特征在于,包括:
流媒体获取单元,用于获取流媒体文件的m3u8文件;
目标服务器确定单元,用于确定对所述m3u8文件有订阅服务需求的边缘服务器;
主动分发单元,用于主动将所述m3u8文件分发至所述边缘服务器。
7.根据权利要求6所述的***,其特征在于,所述流媒体获取单元为用于生成流媒体文件的m3u8文件流媒体生成单元,或用于接收流媒体文件的m3u8文件流媒体接收单元。
8.根据权利要求6所述的***,其特征在于,所述目标服务器确定单元用于根据所述m3u8文件的描述信息确定相应于流媒体文件的节目信息;查询至少包含节目信息和对应的边缘服务器ID的节目订阅列表,基于确定的所述相应于流媒体文件的节目信息,确定对所述m3u8文件有订阅服务需求的相应的边缘服务器ID。
9.根据权利要求8所述的***,其特征在于,所述目标服务器确定单元包括:
节目订阅列表生成模块,用于根据所述边缘服务器的服务订阅请求生成节目订阅列表,所述服务订阅请求至少包含边缘服务器ID和订阅节目的节目信息。
10.根据权利要求6-9任一项所述的***,其特征在于,所述主动分发单元采用TCP长连接的通信方式。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610162594.5A CN105872856A (zh) | 2016-03-21 | 2016-03-21 | 一种流媒体文件分发方法及*** |
PCT/CN2016/088897 WO2017161757A1 (zh) | 2016-03-21 | 2016-07-06 | 一种流媒体文件分发方法及*** |
US15/246,224 US20170272498A1 (en) | 2016-03-21 | 2016-08-24 | Streaming media file distribution method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610162594.5A CN105872856A (zh) | 2016-03-21 | 2016-03-21 | 一种流媒体文件分发方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105872856A true CN105872856A (zh) | 2016-08-17 |
Family
ID=56625410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610162594.5A Pending CN105872856A (zh) | 2016-03-21 | 2016-03-21 | 一种流媒体文件分发方法及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105872856A (zh) |
WO (1) | WO2017161757A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330917A (zh) * | 2016-08-26 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 数据展示方法及装置 |
CN109218447A (zh) * | 2018-10-29 | 2019-01-15 | 中国建设银行股份有限公司 | 媒体文件分发方法及文件分发平台 |
CN110300339A (zh) * | 2018-03-22 | 2019-10-01 | 贵州白山云科技股份有限公司 | 一种直播多媒体回播方法、装置及*** |
CN110635969A (zh) * | 2019-09-30 | 2019-12-31 | 浪潮软件集团有限公司 | 一种流媒体直存***的高并发测试方法 |
CN111064997A (zh) * | 2018-10-16 | 2020-04-24 | 深圳市云帆加速科技有限公司 | 一种资源预分发方法及装置 |
CN111935246A (zh) * | 2020-07-21 | 2020-11-13 | 山东省计算中心(国家超级计算济南中心) | 一种基于云边协作的用户生成内容上传方法和*** |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115189998B (zh) * | 2022-07-11 | 2024-05-17 | 北京蔚领时代科技有限公司 | 基于PaaS平台进行服务器维护的方法与***以及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938483A (zh) * | 2010-09-03 | 2011-01-05 | 中兴通讯股份有限公司 | 一种直播内容分发方法和*** |
US20120198089A1 (en) * | 2011-01-31 | 2012-08-02 | Cbs Interactive, Inc. | System and method for custom segmentation for streaming video |
CN104320681A (zh) * | 2014-11-07 | 2015-01-28 | 百视通网络电视技术发展有限责任公司 | 一种cdn回源服务的方法及*** |
CN104320410A (zh) * | 2014-11-11 | 2015-01-28 | 南京优速网络科技有限公司 | 基于http的全业务cdn***及其工作方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125229B (zh) * | 2014-07-31 | 2016-09-21 | 合一网络技术(北京)有限公司 | 流媒体的播放方法与播放装置 |
CN104902343B (zh) * | 2015-05-26 | 2018-11-23 | 北京微吼时代科技有限公司 | 一种传输和播放音视频与消息的方法、服务器及终端 |
-
2016
- 2016-03-21 CN CN201610162594.5A patent/CN105872856A/zh active Pending
- 2016-07-06 WO PCT/CN2016/088897 patent/WO2017161757A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938483A (zh) * | 2010-09-03 | 2011-01-05 | 中兴通讯股份有限公司 | 一种直播内容分发方法和*** |
US20120198089A1 (en) * | 2011-01-31 | 2012-08-02 | Cbs Interactive, Inc. | System and method for custom segmentation for streaming video |
CN104320681A (zh) * | 2014-11-07 | 2015-01-28 | 百视通网络电视技术发展有限责任公司 | 一种cdn回源服务的方法及*** |
CN104320410A (zh) * | 2014-11-11 | 2015-01-28 | 南京优速网络科技有限公司 | 基于http的全业务cdn***及其工作方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330917A (zh) * | 2016-08-26 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 数据展示方法及装置 |
CN106330917B (zh) * | 2016-08-26 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 数据展示方法及装置 |
CN110300339A (zh) * | 2018-03-22 | 2019-10-01 | 贵州白山云科技股份有限公司 | 一种直播多媒体回播方法、装置及*** |
CN110300339B (zh) * | 2018-03-22 | 2022-03-29 | 贵州白山云科技股份有限公司 | 一种直播多媒体回播方法、装置及*** |
CN111064997A (zh) * | 2018-10-16 | 2020-04-24 | 深圳市云帆加速科技有限公司 | 一种资源预分发方法及装置 |
CN111064997B (zh) * | 2018-10-16 | 2021-11-16 | 深圳市云帆加速科技有限公司 | 一种资源预分发方法及装置 |
CN109218447A (zh) * | 2018-10-29 | 2019-01-15 | 中国建设银行股份有限公司 | 媒体文件分发方法及文件分发平台 |
CN109218447B (zh) * | 2018-10-29 | 2021-09-17 | 中国建设银行股份有限公司 | 媒体文件分发方法及文件分发平台 |
CN110635969A (zh) * | 2019-09-30 | 2019-12-31 | 浪潮软件集团有限公司 | 一种流媒体直存***的高并发测试方法 |
CN110635969B (zh) * | 2019-09-30 | 2022-09-13 | 浪潮软件股份有限公司 | 一种流媒体直存***的高并发测试方法 |
CN111935246A (zh) * | 2020-07-21 | 2020-11-13 | 山东省计算中心(国家超级计算济南中心) | 一种基于云边协作的用户生成内容上传方法和*** |
Also Published As
Publication number | Publication date |
---|---|
WO2017161757A1 (zh) | 2017-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105872856A (zh) | 一种流媒体文件分发方法及*** | |
US10491523B2 (en) | Load distribution in data networks | |
CN103108008B (zh) | 一种下载文件的方法及文件下载*** | |
CN101141459B (zh) | 使用http与p2p相结合实现数据传输或流媒体传输的方法 | |
CN106330997B (zh) | 一种用于移动终端应用的内容分发的方法和*** | |
CN110336843A (zh) | 一种用于众包的内容分发方法、中心节点及边缘节点 | |
JP2016006671A (ja) | データ送受信システム及びデータ送受信方法 | |
CN104246737A (zh) | 在内容分发网络中使用视频流的连接池技术的***和方法 | |
US20170272498A1 (en) | Streaming media file distribution method and system | |
CN101406060A (zh) | 应用对等(p2p)内容分发网络延时下载视频服务 | |
KR20130062462A (ko) | 스트리밍 게임 서비스를 위한 분산 서버 시스템 및 방법 | |
CN105897850A (zh) | 用于cdn平台的响应处理方法、调度代理服务器及*** | |
CN103685511B (zh) | 一种数据分发方法、装置及*** | |
CN105915945A (zh) | 用于cdn平台的内容分发方法及调度代理服务器 | |
US20160381127A1 (en) | Systems and methods for dynamic networked peer-to-peer content distribution | |
CN102255942A (zh) | 一种多媒体量子流及云处理技术与实现方法 | |
CN104735044A (zh) | 一种流媒体直播方法及*** | |
CN103248666A (zh) | 一种离线下载资源的***、方法及装置 | |
CN105978936A (zh) | Cdn服务器及其缓存数据的方法 | |
CN104539982A (zh) | 一种视频点对点资源共享调度方法、***及节点终端 | |
CN103281382A (zh) | 一种基于p2p的文件传输方法和节点 | |
CN104202386B (zh) | 一种高并发量分布式文件***及其二次负载均衡方法 | |
CN110324406A (zh) | 一种获取业务数据的方法和云服务*** | |
CN102394898A (zh) | 基于p2p的文件下载方法及*** | |
CN108833554A (zh) | 一种面向大规模网络的实时高可靠消息分发***及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160817 |