流媒体直播录制冗余热备的方法及系统与流程

文档序号:11147612阅读:626来源:国知局
流媒体直播录制冗余热备的方法及系统与制造工艺

本发明涉及流媒体处理技术领域,尤其涉及一种流媒体直播录制冗余热备的方法及系统。



背景技术:

随着互联网直播的蓬勃发展,越来越多的直播平台开始涌现,如网络电视、网络收音机等,用户可以通过直播平台提供的播放终端,不需要亲临现场就可以很方便的实时播放远端的直播内容,比如赛事、会议、教学、手术等等。不管是由于监管、内容审查的要求,还是为了后期可以直接支持时移和回看,直播录制的需求已经变得越来越广泛。

但目前的直播平台,还没有提供有效的直播录制冗余热备技术方案。其主要原因是由于中心服务器自身的带宽、存储容量有限,在服务成千上万的用户特别是有大量用户请求瞬间拥入时,很容易成为整个网络服务的瓶颈。现有的最常见的流媒体传输技术手段是使用单独的服务器来固定录制若干频道,而且由于不支持冗余热备的方式,当其中一台录播服务器出现故障或宕机时则导致整个业务中断,并且需要人工手工切换到另外一台冷备份的录播服务器,业务中断时间较长,非常影响数据传输效率和终端用户体验。

而现有的直播录制备份的方法,通常采用双机热备的方式,即备用设备将会录制与主设备完全相同的流媒体数据副本,导致大量的冗余存储,浪费了有限的存储资源和存储I/O(输入/输出)访问带宽,还会明显地降低整个系统读写性能和服务并发数;此外,额外的磁盘读写操作也会损害磁盘寿命,进而会降低服务器的MTBF(平均故障间隔时间),也间接提高了整个系统投入的硬件成本。



技术实现要素:

本发明所要解决的技术问题是,提供一种支持流媒体直播录制冗余热备的技术方案,实现快速的冗余热备,减少系统发生故障和宕机后业务中断的时间,提高流媒体直播录制冗余热备的效率,降低硬件占用资源和成本。

为解决以上技术问题,一方面,本发明实施例提供一种支持流媒体直播录制冗余热备的方法,包括:

通过端口级备份的方式,将直播编码器编码后的码流同步输入到主网络和备用网络;

通过后台管理系统发布直播频道和配置输入源信息;

流媒体控制器采用主备冗余机制,根据所述直播频道和所述输入源信息,创建直播收录任务,并对外部设备提供虚拟IP的访问方式;

所述流媒体控制器通过API接口控制收录任务控制器启动或停止直播收录任务;

所述收录任务控制器启动所述直播收录任务时,将主网络和备用网络接入的直播编码器的直播码流进行收录和分布式存储,并且定时向所述流媒体控制器发送心跳报文信息;

所述流媒体控制器通过主动查询或者根据所述心跳报文信息,对所有直播收录任务的状态进行监控,并对直播收录任务的状态数据进行分布式存储。

进一步地,所述收录任务控制器启动所述直播收录任务时,还包括:

检测当前的直播频道目录是否为空;

若是,则将主网络和备用网络接入的流媒体进行收录和分布式存储;

若否,则加载当前的直播频道目录已有的播放列表文件,保留已完成的切片,启动接收主网络和备用网络接入的流媒体数据进行继续切片,并在所述播放列表文件上设定新增切片的标签。

进一步地,所述的流媒体直播录制冗余热备的方法还包括:

当所述流媒体控制器中的主设备所在节点出现故障时,将所述流媒体控制器切换至其内部的备用设备进行工作;

从分布式存储器中加载所述流媒体控制器中的主设备记录的任务信息数据;

监控和检测当前所有直播收录任务的状态;在发现直播收录任务中不存在心跳报文信息,且多次查询后仍未接收到反馈信息时,向所述收录任务控制器重新下发直播收录任务。

优选地,所述的流媒体直播录制冗余热备的方法,还包括:

源服务器接收到播放终端发出的直播播放请求时,根据本地存储路径,查找出与所述直播播放请求相对应的直播频道录制的数据,动态生成播放列表文件,并将所述播放列表文件返给所述播放终端。

进一步地,所述的流媒体直播录制冗余热备的方法,还包括:

对直播录制的频道和节目参数配置,通过API接口为播放终端生成直播播放地址;

所述播放终端请求所述直播播放地址,并根据播放列表文件的索引开始下载切片文件,基于HLS协议播放直播录制的频道的流媒体。

另一方面,本发明实施例还提供了一种流媒体直播录制冗余热备的系统,包括:

直播编码器,用于输出待录制的直播流媒体;

主网络和备用网络,用于通过端口级备份的方式,将直播编码器编码后的码流同步输入到主网络和备用网络;

后台管理系统,用于发布直播频道和配置输入源信息;

采用主备冗余机制的流媒体控制器,用于根据所述直播频道和所述输入源信息,创建直播收录任务,并对外部设备提供虚拟IP的访问方式;

收录任务控制器,用于通过API接口接收所述流媒体控制器的控制信号,启动或停止直播收录任务;

所述收录任务控制器,还用于在启动所述直播收录任务时,将主网络和备用网络接入的直播编码器的直播码流进行收录和分布式存储,并且定时向所述流媒体控制器发送心跳报文信息;

所述流媒体控制器,还用于通过主动查询或者根据所述心跳报文信息,对所有直播收录任务的状态进行监控,并对直播收录任务的状态数据进行分布式存储;

分布式存储器,用于对所述收录任务控制器和所述流媒体控制器记录的数据进行存储。

进一步地,所述收录任务控制器,还用于:

检测当前的直播频道目录是否为空;若是,则将主网络和备用网络接入的流媒体进行收录和分布式存储;若否,则加载当前的直播频道目录已有的播放列表文件,保留已完成的切片,启动接收主网络和备用网络接入的流媒体数据进行继续切片,并在所述播放列表文件上设定新增切片的标签。

进一步地,所述的流媒体直播录制冗余热备的系统还包括:

采用主备冗余机制的流媒体控制器包括主设备和备用设备;

所述备用设备,用于当所述流媒体控制器中的主设备所在节点出现故障时,接替流媒体控制器的主设备进行工作;

所述备用设备,还用于从分布式存储器中加载所述流媒体控制器中的主设备记录的任务信息数据;并监控和检测当前所有直播收录任务的状态;在发现直播收录任务中不存在心跳报文信息,且多次查询后仍未接收到反馈信息时,向所述收录任务控制器重新下发直播收录任务。

进一步地,所述的流媒体直播录制冗余热备的系统,还包括:源服务器和播放终端;

所述源服务器,用于在接收到播放终端发出的直播播放请求时,根据本地存储路径,查找出与所述直播播放请求相对应的直播频道录制的数据,动态生成播放列表文件,并将所述播放列表文件返给所述播放终端。

优选地,所述的流媒体直播录制冗余热备的系统,还包括:

所述后台管理系统,还用于对直播录制的频道和节目参数配置,通过API接口为播放终端生成直播播放地址;

所述播放终端,用于请求所述直播播放地址,并根据播放列表文件的索引开始下载切片文件,基于HLS协议播放直播录制的频道的流媒体。

本发明实施例提供的流媒体直播录制冗余热备的技术方案,克服现有技术的缺陷,充分利用现有的流媒体服务器资源,在不额外增加服务器和减少不必要的冗余存储空间的情况下,实现快速的冗余热备,减少系统发生故障和宕机后业务中断的时间(控制在2秒以内)。在本发明提供的技术方案中,可以将收录任务控制器、流媒体控制器均部署在流媒体服务器上,不需要专门的录制服务器或控制服务器,降低系统硬件资源和构建成本;此外,为了保证在流媒体控制器出现故障或所在服务器宕机等情况下,已经下发收录任务要继续运行,新下发的收录任务还可以继续接收,流媒体控制器采用主备冗余机制,对直播收录任务的状态数据进行分布式存储;此外,启动直播收录任务时收录的流媒体同样采用分布式存储,可以很容易实现多个媒体服务器之间进行负载均衡的调度,同时可以在动态下发收录任务到相对空闲的流媒体服务器上,便于随业务量增长的存储容量的无限扩展。

附图说明

图1是本发明提供的流媒体直播录制冗余热备的方法的一个实施例的步骤流程图。

图2是本发明提供的流媒体直播录制冗余热备的系统的一个实施例的结构示意图。

图3是本发明提供的启动收录任务的一种实现方式的步骤流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

参见图1,是本发明提供的流媒体直播录制冗余热备的方法的一个实施例的步骤流程图。参看图2,是本发明提供的流媒体直播录制冗余热备的系统的一个实施例的结构示意图。

在本实施例中,所述的流媒体直播录制冗余热备的方法,主要包括以下六个步骤:

步骤S1:通过端口级备份的方式,,将直播编码器100编码后的码流接入至主网络201和备用网络202;

步骤S2:通过后台管理系统300发布直播频道和配置输入源信息;

步骤S3:流媒体控制器400采用主备冗余机制,根据所述直播频道和所述输入源信息,创建直播收录任务,并对外部设备提供虚拟IP的访问方式;

步骤S4:所述流媒体控制器400通过API接口控制收录任务控制器500启动或停止直播收录任务;

步骤S5:所述收录任务控制器500启动所述直播收录任务时,将主网络201和备用网络202接入的直播编码器的直播码流进行收录和分布式存储,并且定时向所述流媒体控制器400发送心跳报文信息;

步骤S6:所述流媒体控制器400通过主动查询或者根据所述心跳报文信息,对所有直播收录任务的状态进行监控,并对直播收录任务的状态数据进行分布式存储。当所述流媒体控制器检测到一个或多个直播频道的直播收录任务发生中断或故障时,搜索出相对空闲的节点重新下发所述直播频道对应的直播收录任务。

与上述实施例提供的流媒体直播录制冗余热备的方法相对应,本发明实施例还提供了一种流媒体直播录制冗余热备的系统,包括:

直播编码器100,用于输出待录制的直播流媒体;其中,为了保证输入源不会出现单点故障,直播编码器100需要支持端口级备份和N+M冗余备份机制,以便在当前使用的直播编码器出现故障或宕机的情况下,可以自动切换到备用直播编码器输出备份流。如图2所示,直播编码器100中至少设有主直播编码器101和备用直播编码器102,实现对流媒体数据的双机备份。其中,端口级备份,在本实施例中是指直播编码器100采用多个(如,2个)网络接口进行绑定以实现端口级的备份,其目的是实现更完整的数据备份;而N+M冗余备份是指多台直播编码器与多个网络之间的备份机制。

主网络201和备用网络202,用于通过分别绑定的网络接口,接入直播编码器直播码流,并通过所述备用网络202对待录制的直播流媒体进行实时备份。

后台管理系统300,用于发布直播频道和配置输入源信息。

采用主备冗余机制的流媒体控制器400,用于根据所述直播频道和所述输入源信息,创建直播收录任务,并对外部设备提供虚拟IP的访问方式,以便主备发生切换时,外部设备可以正常的访问。

收录任务控制器500,用于通过API接口接收所述流媒体控制器400的控制信号,启动或停止直播收录任务;

所述收录任务控制器500,还用于在启动所述直播收录任务时,将主网络201和备用网络202接入的流媒体进行收录和分布式存储,并且定时向所述流媒体控制器400发送心跳报文信息。

所述流媒体控制器400,还用于通过主动查询或者根据所述心跳报文信息,对所有直播收录任务的状态进行监控,并对直播收录任务的状态数据进行分布式存储。

分布式存储器600,用于对所述收录任务控制器500和所述流媒体控制器400记录的数据进行存储。

当所述流媒体控制器400中的主设备401所在节点出现故障时,将所述流媒体控制器切换至其内部的备用设备402进行工作;从分布式存储器600中加载所述流媒体控制器400中的主设备401记录的任务信息数据;监控和检测当前所有直播收录任务的状态;在发现直播收录任务中不存在心跳报文信息,且多次查询后仍未接收到反馈信息时,向所述收录任务控制器500重新下发直播收录任务。

在本实施例中,直播编码器100通过UDP(User Datagram Protocol,用户数据报协议)等多种协议将多播输出内容相同的节目源到两个配置为主备冗余绑定的网口到主网络201和备用网络202,避免网络的单点故障,并通过HLS(HTTP Live Streaming)协议将进行冗余热备后的流媒体数据输出至播放终端800中进行播放。HLS是一种基于HTTP的流媒体传输协议,广泛运用在流媒体服务器和客户端之间(主要应用于iOS终端和安卓终端),可实现流媒体的直播、时移、回看和点播。

用户可以通过后台管理系统300的管理页面创建和发布直播频道,配置输入源的多播地址和端口,并设置有是否打开回看录制等选项,后台管理系统300将通过HTTP REST(Representational State Transfer,表述性状态转移)API(Application Programming Interface,应用程序接口)接口将下发创建直播收录任务给流媒体控制器400;同时可以通过API接口从流媒体控制器400获取直播的播放URL(Uniform/Universal Resource Locator,统一资源定位符)播放地址,以供给播放终端800来访问。

具体实施时,流媒体控制器400采用HTTP协议和REST API接口,可以提供频道直播收录任务的启动,停止或重启功能。收录任务启动后,需要通过收录任务控制器500定时发送心跳报文信息给流媒体控制器400,同时流媒体控制器400也可以主动查询所有收录任务的状态信息,在发现收录任务出现中断或故障的情况下,按优化的算法查找出相对空闲的节点,重新下发该频道的收录任务。

在本实施例中,流媒体控制器400主要提供收录任务的管理,包括下发、状态监控和任务在各节点负载均衡等,其可部署在已有的流媒体服务器上,为了保证在流媒体控制器出现故障或所在服务器宕机等情况下,已经下发收录任务要继续运行,新下发的收录任务还可以继续接收,流媒体控制器400需要部署到两台服务器做主备冗余。

如图2所示,采用主备冗余机制的流媒体控制器400包括主设备401和备用设备402。流媒体控制器可以采用多种技术(如keepalived技术)实现自身主备的支持,只会提供虚拟IP的方式对外部设备来实现访问。Keepalived是一个基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)来实现的WEB服务高可用方案,可以利用其来避免单点故障。流媒体控制器400(包括主设备401和备用设备402)需要记录所有频道的收录任务状态等数据,存储在分布式存储磁盘上,以便主设备401所在节点出现故障或宕机,再切换到备用设备402的节点后,可以继续监控和管理所有的收录任务情况,假定主设备401所在的节点出现故障时也有部分收录任务在运行,主备切换后,备用设备402需要重新从分布式存储器600上加载主设备401记录的任务信息数据,检测所有收录任务状态,有出现故障和中断的,就需要重新协调下发收录任务。

所述备用设备402,用于当所述流媒体控制器400中的主设备401所在节点出现故障时,接替流媒体控制器400的主设备401进行工作;

所述备用设备402,还用于从分布式存储器600中加载所述流媒体控制器400中的主设备401记录的数据;并检测当前所有直播收录任务的状态;在存在直播收录任务中断时,向所述收录任务控制器500重新下发直播收录任务。

进一步地,所述收录任务控制器500,还用于:

检测当前的直播频道目录是否为空;若是,则将主网络201和备用网络202接入的流媒体进行收录和分布式存储,并且定时向所述流媒体控制器400发送心跳报文信息;若否,则加载当前的直播频道目录已有的播放列表文件,保留已完成的切片,启动接收主网络201和备用网络202接入的流媒体数据进行继续切片,并在所述播放列表文件上设定新增切片的标签。

参看图3,是本发明提供的启动收录任务的一种实现方式的步骤流程图。

具体地,收录任务启动后,如果发现当前的直播频道目录为空,就按首次启动方式进行流媒体记录;若检测到当前目录下有残余的播放列表文件盒切片,说明这是重新下发的收录任务,这时需要先加载已有的播放列表文件,如M3U8格式的索引文件,保留所有已经完成的切片,然后再从直播编码器100中接收输入数据,继续切片;切片的序号在已有的序号基础上继续增加,M3U8格式的索引文件则需要根据HLS的协议添加相应的标签(如,EXT-X-DISCONTINUITY标签),以区分各个切片。实际测试证明,可以控制热切换中间丢失的数据在2秒以内,对业务来说基本没有影响。

进一步地,所述的流媒体直播录制冗余热备的系统,还包括:源服务器700和播放终端800。具体实施时,流媒体的源服务器700为一个或多个源服务器集群1~N中的设备,其主要提供录制码流的直播、时移、回看点播的码流的点播推送,可以与收录任务控制器500共同部署在相同和不同的流媒体服务器上。此外,源服务器700,用于在接收到播放终端800发出的直播播放请求时,根据本地存储路径,查找出与所述直播播放请求相对应的直播频道录制的数据,动态生成播放列表文件(如以M3U8为格式后缀的索引文件),并将所述播放列表文件返给所述播放终端800。

此外,所述后台管理系统300,还用于对直播录制的频道和节目参数配置,通过API接口为播放终端800生成直播播放地址;

所述播放终端800,用于请求所述直播播放地址,并根据播放列表文件的索引开始下载切片文件,基于HLS协议播放直播录制的频道的流媒体。

在本实施例中,收录任务控制器500需要与流媒体控制器400建立心跳机制,以实时监控收录任务的执行状态;并且,在流媒体控制器400因为故障切换到备用节点402后,还需要有软件机制重新来建立心跳链路。

分布式存储器需要先挂载到所有的流媒体服务器的本地目录下,并未点播数据和直播数据分别分配收录路径。譬如,将“/media”将作为虚拟的根目录,则可以在“/media/vod”目录存放点播数据,采用“/media/live”目录存储直播的数据。并可以将直播收录的路径结构定义为:“根目录:/media/live,直播频道路径:channel[n]”;将直播收录的目录结构定义为:“/media/live/channel[n]/”下的子目录。切片文件名规则定义可以根据具体的流媒体传输协议执行,并且,切片分段时长优选采用10秒。

播放终端800请求直播播放地址时,后台管理系统300对直播录制的频道和节目参数配置,通过API接口为播放终端800生成直播播放地址,例如,播放地址格式可以为:http://streaming_domain/live/chan[n]/playlist.m3u8。

在本实施例中,假定所述播放请求已经发送到集群中的所有源服务器700中,故不考虑边缘服务器的情况。在具体的实际直播平台系统中,集群的源服务器700通过负载均衡的技术重定向播放终端800的请求到其中一台源服务器,该源服务器根据路径定义规则,查找到该直播频道录制的数据,动态生成以M3U8为后缀的索引文件返给播放终端800。播放终端800按M3U8文件的索引开始下载切片文件,以滑动窗口的方式,基于HLS协议开启流媒体的播放流程。

本发明实施例提供的流媒体直播录制冗余热备的技术方案,克服现有技术的缺陷,充分利用现有的流媒体服务器资源,在不额外增加服务器和减少不必要的冗余存储空间的情况下,实现快速的冗余热备,减少系统发生故障和宕机后业务中断的时间(控制在2秒以内)。在本发明提供的技术方案中,可以将收录任务控制器、流媒体控制器均部署在流媒体服务器上,不需要专门的录制服务器或控制服务器,降低系统硬件资源和构建成本;此外,为了保证在流媒体控制器出现故障或所在服务器宕机等情况下,已经下发收录任务要继续运行,新下发的收录任务还可以继续接收,流媒体控制器采用主备冗余机制,对直播收录任务的状态数据进行分布式存储;此外,启动直播收录任务时收录的流媒体同样采用分布式存储,可以很容易实现多个媒体服务器之间进行负载均衡的调度,同时可以在动态下发收录任务到相对空闲的流媒体服务器上,便于随业务量增长的存储容量的无限扩展。

实施本发明提供的技术方案,可以在(主、备)网络、直播流媒体输入源、收录任务控制器、源服务器和流媒体控制器等其中任何一个环节和设备出现故障,都有冗余热备的机制保障业务不会长时间中断。使用本发明不需要采用专门的直播收录服务器,节约了服务器成本,同时因为没有录制直播冗余的副本,节约了存储的投入,从而节约整个系统投入成本。此外,随着业务量大幅增加,使用本发明可以很容易对系统进行无缝的扩展,而不影响现有的业务的服务。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1