掌桥专利:专业的专利平台
掌桥专利
首页

一种使多台HLS服务器切片保持一致性的方法及其装置

文献发布时间:2024-04-18 20:02:18


一种使多台HLS服务器切片保持一致性的方法及其装置

技术领域

本发明属于流媒体领域,特别涉及一种使多台HLS服务器切片保持一致性的方法及其装置。

背景技术

HLS(全称HTTP Live Streaming),是基于HTTP的流媒体网络传输协议。该协议支持客户端在不同的网络带宽环境下,播放不同码率、分辨率的视频。 HLS的实现是把整个多媒体文件切成一个个小的基于HTTP的资源 (MPEG 2Transport Stream格式的文件),也称“切片”,并生成一个包含切片文件uri的扩展M3U(M3U8)Playlist文件,每次只下载列表中的一些资源,客户端根据带宽环境可以选择不同的资源进行下载及播放。

随着流媒体数据流量越来越大,内容分发网络CDN需要支持多台切片服务器生成基于HTTP的自适应码率流媒体传输协议的动态码率自适应音视频数据在(即HLS切片数据),但是目前每台切片服务器从与之相连的同一采集服务器拉取的码流后,生成的切片名及内容都不一致,为后续的HLS切片数据处理带来了诸多不便,如下游对HLS切片数据执行对齐等操作时,需要找对应时间戳的唯一文件时造成诸多不便。

发明内容

本发明提供一种使多台HLS服务器切片保持一致性的方法及装置,旨在至少解决现有技术中存在的技术问题之一。

本发明的技术方案涉及一种使多台HLS服务器切片保持一致性的方法,运行在一种使多台HLS服务器切片保持一致性的装置上,所述使多台HLS服务器切片保持一致性的装置包括依次连接的采集服务器和多个切片服务器,所述采集服务器的前端与内容分发网络的编码服务器连接,所述切片服务器的后端分别与用户云端系统连接,所述方法包括以下步骤:

S100、所述采集服务器从所述编码服务器接收码流,所述码流包括多个传输流文件;

S200、所述采集服务器把采集服务器信息和媒体累计时长信息更新写入到所述传输流文件的PAT表中;

S300、多台所述切片服务器从与之相连接的所述采集服务器中拉取传输流文件;

S400、每台所述切片服务器分别解释所述传输流文件,得到采集服务器信息和媒体累计时长信息,基于切片判别方法,计算所述传输流文件的所有切割点的位置,得到切割后的传输流文件;

S500、所述切片服务器基于切片命名方式,命名所述切割后的传输流文件;

S600、重复步骤S100至步骤S500,直到所述编码服务器输入码流结束。

进一步,所述步骤S200前还包括:

基于mpegts协议,所述采集服务器将传输流文件的adaptation_field_control字段设置为同时带有自适应域和有效负载,所述传输流文件的adaptation_field_control字段为所述传输流文件中ts层的设置字段,所述传输流文件的adaptation_field_control用于设置所述传输流文件是否包含自适应区域。

进一步,所述传输流文件的adaptation_field_control字段设置为11。

进一步,所述步骤S300中,所述切片服务器通过Http方式从与之相连接的采集服务器中拉取传输流文件。

进一步,所述步骤S400中,基于切片判别方法,计算所述传输流文件的所有切割点的位置为:

其中,

进一步,所述步骤S500中,所述切片命名方式包括资源名、所述采集服务器信息和时间戳。

进一步,所述切片命名方式为 “资源名-采集服务器信息-时间戳”。

进一步,本发明还提出一种使多台HLS服务器切片保持一致性的装置,包括:

采集服务器,用于从内容分发网络中获取传输流文件,所述采集服务器与所述内容分发网络的编码器电性连接;

切片服务器,所述切片服务器用于处理所述采集服务器采集的传输流媒体文件,所述切片服务器的个数大于一个,每个所述切片服务器分别与所述采集服务器连接。

进一步,所述的使多台HLS服务器切片保持一致性的装置还包括,用户云端系统,所述用户云端系统的个数至少一个,每个所述用户云端系统与单一个所述切片服务器连接;

用户端,所述用户端与单个所述用户云端系统连接。

本发明还提出一种计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施如上述的方法。

根据本发明的一些实施例,本发明的有益效果如下:

本发明提出的使多台HLS服务器切片保持一致性的方法及其装置,所有的切片服务器均参照采集服务器写入的信息并使用同样的算法,确保切片名及内容的一致,确保内容分发网络CDN集群随意拓展都能保证系统中HLS切片的一致性。

此外,本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1为使多台HLS服务器切片保持一致性的方法的处理流程图。

图2为使多台HLS服务器切片保持一致性的方法的装置示意图。

实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。本文所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。此外,本文所采用的行业术语“位姿”是指某个元件相对于空间坐标系的位置和姿态。

参照图1至图2,本发明实施例提供了一种使多台HLS服务器切片保持一致性的方法,运行在一种使多台HLS服务器切片保持一致性的装置上,所述使多台HLS服务器切片保持一致性的装置包括依次连接的采集服务器和多个切片服务器,所述采集服务器的前端与内容分发网络的编码服务器连接,所述切片服务器的后端分别与用户云端系统连接,所述方法包括以下步骤:

S100、所述采集服务器从所述编码服务器接收码流,所述码流包括多个传输流文件;

S200、所述采集服务器把采集服务器信息和媒体累计时长信息更新写入到所述传输流文件的PAT表中;

S300、多台所述切片服务器从与之相连接的所述采集服务器中拉取传输流文件;

S400、每台所述切片服务器分别解释所述传输流文件,得到采集服务器信息和媒体累计时长信息,基于切片判别方法,计算所述传输流文件的所有切割点的位置,得到切割后的传输流文件;

S500、所述切片服务器基于切片命名方式,命名所述切割后的传输流文件;

S600、重复步骤S100至步骤S500,直到所述编码服务器输入码流结束。

根据本发明的一些实施例,本发明的有益效果如下:

本发明提出的使多台HLS服务器切片保持一致性的方法及其装置,所有的切片服务器均参照采集服务器写入的信息并使用同样的算法,确保切片名及内容的一致,确保内容分发网络CDN集群随意拓展都能保证系统中HLS切片的一致性。

具体地,采集服务器配置传输流文件的adaptation_field_control字段设置为同时带有自适应域和有效负载,并且将采集服务器名、累计可播时长写入所述传输流文件的PAT表中;多台切片服务器从所述采集服务器拉流并解析传输流文件TS包;根据解析出的采集服务器名、时间戳,通过切片判别方法,计算出切片的起始点和结束点;按照资源名-服务器名-时间戳的规则命名传输流文件TS包切片。本申请中所有的切片服务器均参照采集服务器写入的信息并使用同样的切片判别方法,确保了切片名及内容的一致性,为后续的进一步操作提供便利。

在一些实施例中,采集服务器信息和媒体累计时长信息可不写入PAT表中,而是新增私有的传输流文件TS包,所述新增私有的传输流文件TS包包括采集服务器信息和媒体累计时长信息。

进一步,参照图1,所述步骤S200前还包括:

基于mpegts协议,所述采集服务器将传输流文件的adaptation_field_control字段设置为同时带有自适应域和有效负载,所述传输流文件的adaptation_field_control字段为所述传输流文件中ts层的设置字段,所述传输流文件的adaptation_field_control用于设置所述传输流文件是否包含自适应区域。

具体地,所述传输流文件的adaptation_field_control字段为占位2位(bit)的参数,用于设置所述传输流文件是否包含自适应区,包括四种状态,其中,00为保留;01为无自适应域,仅含有效负载;10为仅含自适应域,无有效负载;11为同时带有自适应域和有效负载。

进一步,参照图1,所述传输流文件的adaptation_field_control字段设置为11。

具体地,所述传输流文件的adaptation_field_control字段设置为11表示同时带有自适应域和有效负载,因此可以把采集服务器信息(如采集服务器名)和媒体累计时长信息更新写入到所述传输流文件的PAT表中。

采集服务器解析传输流文件TS包,发现新的切片GOP后,从该切片GOP起始点开始,找到切片GOP内首个PAT包,将传输流文件的adaptation_field_control字段设置成11,并将服务器名、累计可播时长写入PAT表作为自适应字段,需求注意的是,保证添加服务器名和累计可播时长信息后,总长度不要超过188字节,之后再更新累计可播时长,保存下来用于下次操作。

进一步,参照图1,所述步骤S300中,所述切片服务器通过Http方式从与之相连接的采集服务器中拉取传输流文件。

进一步,参照图1,所述步骤S400中,基于切片判别方法,计算所述传输流文件的所有切割点的位置为:

具体地,切片服务器从采集服务器下载流媒体,解析所述传输流文件TS包,发现新的切片GOP后,找到切片GOP内首个PAT包,读取服务器名,累计可播时长。根据读取的累计可播时长,计算出切片的切割点,算法伪代码:分割点=(floor(累计可播时长/切片时长)+1)*切片时长,floor表示向下取整运算。

判断当前累计时长是不是大于或等于切割点,如是,则开始切片,切片按照“资源名_服务器名_累计可播时长”的规则命名。若不是,则等待下一个切片GOP。多台服务器都按上述方式,切片的命名及内容都能保持一致了。

其中,

进一步,参照图1,所述步骤S500中,所述切片命名方式包括资源名、所述采集服务器信息和时间戳。

进一步,参照图1,所述切片命名方式为 “资源名-采集服务器信息-时间戳”。

在一个具体的实施例中,

前置条件:假设切片时长为5秒(即每个TS切片能播放5秒)、GOP时长为1秒,前置条件仅方便举例,实际可根据实际情况更改。

A、采集开始,第一个GOP解析完成,累计时长为一秒,写入PAT表中。

B、第二个GOP解析完成,累计时长为两秒,写入PAT表中,以此类推。

C、切片服务器拉流,第一个GOP解析完成,解析到累计时长为1秒,当前为初始化状态,此时没有码流数据,不用切片,更新切割点=(floor(1/5) + 1)*5=5秒。

D、切片服务器第二个GOP解析完成,解析到累计时长为2秒,当前切割点初始化为5秒,不满足切片条件,更新切割点=(floor(2/5)+ 1)*5=5秒。

E、切片服务器第三个GOP解析完成,解析到累计时长为3秒,当前切割点初始化为5秒,不满足切片条件,更新切割点=(floor(3/5) + 1)*5=5秒。

F、切片服务器第四个GOP解析完成,解析到累计时长为4秒,当前切割点初始化为5秒,不满足切片条件,更新切割点=(floor(4/5) + 1)*5=5秒。

G、切片服务器第五个GOP解析完成,解析到累计时长为5秒,当前切割点初始化为5秒,满足切片条件,生产切片“资源名_服务器名_5”,更新切割点=(floor(5/5) + 1)*5=10秒

H、切片服务器第六个GOP解析完成,解析到累计时长为6秒,当前切割点初始化为10秒,不满足切片条件,更新切割点=(floor(6/5) + 1)*5=10秒。

I、切片服务器第七个GOP解析完成,解析到累计时长为7秒,当前切割点初始化为10秒,不满足切片条件,更新切割点=(floor(7/5) + 1)*5=10秒。

J、切片服务器第八个GOP解析完成,解析到累计时长为8秒,当前切割点初始化为10秒,不满足切片条件,更新切割点=(floor(8/5) + 1)*5=10秒。

K、切片服务器第九个GOP解析完成,解析到累计时长为9秒,当前切割点初始化为10秒,不满足切片条件,更新切割点=(floor(9/5) + 1)*5=10秒。

L、切片服务器第十个GOP解析完成,解析到累计时长为10秒,当前切割点初始化为10秒,满足切片条件,生产切片“资源名_服务器名_10”,更新切割点=(floor(10/5) + 1)*5=15秒,以此类推。

进一步,参照图2,本发明还提出一种使多台HLS服务器切片保持一致性的装置,包括:

采集服务器,用于从内容分发网络中获取传输流文件,所述采集服务器与所述内容分发网络的编码器电性连接;

切片服务器,所述切片服务器用于处理所述采集服务器采集的传输流媒体文件,所述切片服务器的个数大于一个,每个所述切片服务器分别与所述采集服务器连接。

进一步,参照图2,所述的使多台HLS服务器切片保持一致性的装置还包括,用户云端系统,所述用户云端系统的个数至少一个,每个所述用户云端系统与单一个所述切片服务器连接;

用户端,所述用户端与单个所述用户云端系统连接。

本发明还提出一种计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施如上述的方法。

应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还可以包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

相关技术
  • 一种线材切割机的分料收集装置及工艺
  • 一种数控开卷落料生产线用废料处理装置
  • 一种木材切割机刀片连接装置及其使用方法
  • 一种线切割机落料收集装置及其使用方法
  • 一种激光落料线废料收集系统及其使用方法
技术分类

06120116576922