一种RTMP发布主备快速切换方法技术

技术编号:23992206 阅读:36 留言:0更新日期:2020-04-29 16:41
本发明专利技术公开了一种RTMP发布主备快速切换方法。它具体包括如下步骤:(1)主转码器在向RTMP服务器推流时在发送publish消息时,在streamName增加第一特殊标志,指示该流需要支持主备切换;(2)RTMP服务器检测到该第一特殊标志后,记录该第一特殊标记用于后续处理;(3)主转码器宕机时备转码器监测到心跳超时,把自己升级为主转码器,开始连接RTMP服务器推流;(4)如果RTMP服务器建立连接后,在发送publish消息时增加第二特殊标志,指示该流需要紧急切换;(5)RTMP服务器检测到该第二特殊标记后断开之前的TCP连接,把原来连接的处理逻辑切换到备转码器的连接上,并准备接收数据。本发明专利技术的有益效果是:做到无缝切换,不影响下游拉流观看。

A fast switching method of master and standby for RTMP release

【技术实现步骤摘要】
一种RTMP发布主备快速切换方法
本专利技术涉及音视频转码处理相关
,尤其是指一种RTMP发布主备快速切换方法。
技术介绍
现场事件性直播(演唱会)、比赛直播(足球赛,篮球赛)中,常会用到RTMP服务器做中转。如果现场转码设备配备主备机,当主机宕机时,切换到备机转码输出,但是由于主机非正常退出,RTMP服务器原有的链接仍未断开,从而导致备机无法连接,影响直播效果。
技术实现思路
本专利技术是为了克服现有技术中存在上述的不足,提供了一种能够实现无缝切换的RTMP发布主备快速切换方法。为了实现上述目的,本专利技术采用以下技术方案:一种RTMP发布主备快速切换方法,具体包括如下步骤:(1)主转码器在向RTMP服务器推流时在发送publish消息时,在streamName增加第一特殊标志,指示该流需要支持主备切换;(2)RTMP服务器检测到该第一特殊标志后,记录该第一特殊标记用于后续处理;(3)主转码器宕机时备转码器监测到心跳超时,把自己升级为主转码器,开始连接RTMP服务器推流;(4)如果RTMP服务器建立连接后,在发送publish消息时增加第二特殊标志,指示该流需要紧急切换;(5)RTMP服务器检测到该第二特殊标记后断开之前的TCP连接,把原来连接的处理逻辑切换到备转码器的连接上,并准备接收数据。本方法引入一个主动夺取连接的命令,如果RTMP服务器收到这个连接命令,停止原有的连接,直接使用现有连接,可以做到无缝切换,不影响下游拉流观看。作为优选,转码器与RTMP服务器推流的方法如下:(a)转码器向RTMP服务器建立TCP连接,RTMP服务器在端口监听;(b)连接TCP建立后进行RTMP握手,RTMP握手完成两件事,即校验客户端和服务器端的RTMP协议版本号以及测试网络状况;(c)RTMP握手完成后,建立RTMP连接,转码器通知RTMP服务器流相关编码信息;(d)转码器向RTMP服务器发送创建流命令;(e)转码器向RTMP服务器发送发布流命令。作为优选,主转码器与备转码器采用双机热备的方式,双机热备指的是:对于重要的服务,使用两台转码器互相备份,共同执行同一服务;当一台转码器出现故障时,由另一台转码器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务,由备用的转码器解决了在主转码器故障时服务不中断的问题。作为优选,双机热备具体为:基于active/standby方式的转码器热备,在同一时间内只有一台转码器运行,当其中运行着的一台active转码器出现故障无法运行时,另一台备份standby转码器会通过通过心跳诊断将standby转码器激活,保证应用在短时间内完全恢复正常使用。作为优选,所述的心跳诊断指的是:备转码器通过网络监听主转码器,备转码器与主转码器之间的监听采取请求与应答的方式,备转码器以预先设定的时间间隔向主转码器发出请求,主转码器应答表示工作正常,主转码器如果没有作出应答并超过设定的应答时限,备转码器将切断与主转码器的网络数据传输,转入活动状态,并产生报警和事件信息;之后备转码器还会定时监听主转码器状态,一旦主转码器恢复,就切换到热备状态。本专利技术的有益效果是:引入一个主动夺取连接的命令,如果RTMP服务器收到这个连接命令,停止原有的连接,直接使用现有连接,可以做到无缝切换,不影响下游拉流观看。附图说明图1是本专利技术的方法框图。具体实施方式下面结合附图和具体实施方式对本专利技术做进一步的描述。如图1所述的实施例中,一种RTMP发布主备快速切换方法,具体包括如下步骤:(1)主转码器在向RTMP服务器推流时在发送publish消息时,在streamName增加特殊标志,指示该流需要支持主备切换;(2)RTMP服务器检测到该特殊标志后,记录该特殊标记用于后续处理;(3)主转码器宕机时备转码器监测到心跳超时,把自己升级为主转码器,开始连接RTMP服务器推流;(4)如果RTMP服务器建立连接后,在发送publish消息时同样增加特殊标志,指示该流需要紧急切换;(5)RTMP服务器检测到该特殊标记后断开之前的TCP连接,把原来连接的处理逻辑(如buffer等)切换到备转码器的连接上,并准备接收数据。其中:转码器与RTMP服务器推流的方法如下:(a)转码器向RTMP服务器建立TCP连接,RTMP服务器在端口监听;(b)连接TCP建立后进行RTMP握手,RTMP握手完成两件事,即校验客户端和服务器端的RTMP协议版本号以及测试网络状况;(c)RTMP握手完成后,建立RTMP连接,转码器通知RTMP服务器流相关编码信息;(d)转码器向RTMP服务器发送创建流命令;(e)转码器向RTMP服务器发送发布流命令。主转码器与备转码器采用双机热备的方式,双机热备指的是:对于重要的服务,使用两台转码器互相备份,共同执行同一服务;当一台转码器出现故障时,由另一台转码器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务,由备用的转码器解决了在主转码器故障时服务不中断的问题。双机热备具体为:基于active/standby方式的转码器热备,在同一时间内只有一台转码器运行,当其中运行着的一台active转码器出现故障无法运行时,另一台备份standby转码器会通过通过心跳诊断将standby转码器激活,保证应用在短时间内完全恢复正常使用。心跳诊断指的是:备转码器通过网络监听主转码器,备转码器与主转码器之间的监听采取请求与应答的方式,备转码器以预先设定的时间间隔向主转码器发出请求,主转码器应答表示工作正常,主转码器如果没有作出应答并超过设定的应答时限,备转码器将切断与主转码器的网络数据传输,转入活动状态,并产生报警和事件信息;之后备转码器还会定时监听主转码器状态,一旦主转码器恢复,就切换到热备状态。本方法引入一个主动夺取连接的命令,如果RTMP服务器收到这个连接命令,停止原有的连接,直接使用现有连接,可以做到无缝切换,不影响下游拉流观看。此方法可以实现RTMP推流快速切换,切换时长控制在1秒以内。后端几乎无感。本文档来自技高网...

【技术保护点】
1.一种RTMP发布主备快速切换方法,其特征是,具体包括如下步骤:/n(1)主转码器在向RTMP服务器推流时在发送publish消息时,在streamName增加第一特殊标志,指示该流需要支持主备切换;/n(2)RTMP服务器检测到该第一特殊标志后,记录该第一特殊标记用于后续处理;/n(3)主转码器宕机时备转码器监测到心跳超时,把自己升级为主转码器,开始连接RTMP服务器推流;/n(4)如果RTMP服务器建立连接后,在发送publish消息时增加第二特殊标志,指示该流需要紧急切换;/n(5)RTMP服务器检测到该第二特殊标记后断开之前的TCP连接,把原来连接的处理逻辑切换到备转码器的连接上,并准备接收数据。/n

【技术特征摘要】
1.一种RTMP发布主备快速切换方法,其特征是,具体包括如下步骤:
(1)主转码器在向RTMP服务器推流时在发送publish消息时,在streamName增加第一特殊标志,指示该流需要支持主备切换;
(2)RTMP服务器检测到该第一特殊标志后,记录该第一特殊标记用于后续处理;
(3)主转码器宕机时备转码器监测到心跳超时,把自己升级为主转码器,开始连接RTMP服务器推流;
(4)如果RTMP服务器建立连接后,在发送publish消息时增加第二特殊标志,指示该流需要紧急切换;
(5)RTMP服务器检测到该第二特殊标记后断开之前的TCP连接,把原来连接的处理逻辑切换到备转码器的连接上,并准备接收数据。


2.根据权利要求1所述的一种RTMP发布主备快速切换方法,其特征是,转码器与RTMP服务器推流的方法如下:
(a)转码器向RTMP服务器建立TCP连接,RTMP服务器在端口监听;
(b)连接TCP建立后进行RTMP握手,RTMP握手完成两件事,即校验客户端和服务器端的RTMP协议版本号以及测试网络状况;
(c)RTMP握手完成后,建立RTMP连接,转码器通知RTMP服务器流相关编码信息;
(d)转码器向RTMP服务器发送创建流命令;
(e)转码器向RTMP服务器发送发布流命令。

【专利技术属性】
技术研发人员:孙伟涛应鸣徐扬法
申请(专利权)人:杭州当虹科技股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1