一种高效的基于nginx的多进程直播流共享方法

文档序号:1908594 发布日期:2021-11-30 浏览:13次 >En<

阅读说明:本技术 一种高效的基于nginx的多进程直播流共享方法 (Efficient nginx-based multi-process live stream sharing method ) 是由 蔡坤松 于 2021-08-31 设计创作,主要内容包括:本发明公开了一种高效的基于nginx的多进程直播流共享方法,包括如下步骤:S1:调度中心收到播放APP的播放服务请求,并获取到播放服务请求的直播地址;S2:调度中心将各worker进程上报的直播流数据与直播地址匹配,并查找到与直播地址相匹配的worker进程;S3:匹配的worker进程向播放APP推送直播流数据,同时匹配的worker进程向未匹配的worker进程发出回源请求;S4:未匹配的worker进程向匹配的worker进程实时推送播放APP请求但匹配的worker进程不含有的直播流数据。各worker进程分开协同工作,不再互推流,只有在播放APP观看时发现匹配的worker进程没有当前请求的流数据时才发起回源拉流,降低服务器负载,保证推流工作的稳定性。(The invention discloses an efficient nginx-based multi-process live stream sharing method, which comprises the following steps: s1: the scheduling center receives a playing service request for playing the APP and obtains a live broadcast address of the playing service request; s2: the scheduling center matches live broadcast stream data reported by each worker process with a live broadcast address, and searches for the worker process matched with the live broadcast address; s3: the matched worker process pushes live streaming data to the playing APP, and meanwhile, the matched worker process sends a source returning request to an unmatched worker process; s4: and the unmatched worker process pushes and plays the APP request to the matched worker process in real time, but the matched worker process does not contain live streaming data. Each worker process is separated and cooperated to work, mutual flow pushing is not performed, and source return flow pulling is initiated only when the matched worker process is found to have no current requested flow data when the APP is played for watching, so that the load of a server is reduced, and the stability of flow pushing work is ensured.)

一种高效的基于nginx的多进程直播流共享方法

技术领域

本发明涉及通信技术领域,更具体地说,涉及一种高效的基于nginx的多进程直播流共享方法。

背景技术

媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕。由于流媒体技术的优越性,该技术广泛应用于视频点播、视频会议、远程教育、远程医疗和在线直播系统中。

流媒体服务器由一个master,多个worker的架构实现,master负责管理worker进程的运行情况,负责worker进程退出重新拉起,记录worker进程生死状态的任务。worker进程收到摄像机推流后,互推给别的worker进程,以保证在当前nginx服务器中每个worker进程都包含有当前流数据。上述推流方式使得每个worker进程都需要额外负担别的worker进程推流负载,对服务器造成额外的负担,且影响推流效率,易出现服务器瘫痪等情况。

发明内容

本发明的目的在于提供一种高效的基于nginx的多进程直播流共享方法,用以解决上述背景技术中存在的技术问题。

本发明技术方案一种高效的基于nginx的多进程直播流共享方法,包括如下步骤:

S1:调度中心收到播放APP的播放服务请求,并获取到播放服务请求的直播地址;

S2:调度中心将各worker进程上报的直播流数据与直播地址匹配,并查找到与直播地址相匹配的worker进程;

S3:匹配的worker进程向播放APP推送直播流数据,同时匹配的worker进程向未匹配的worker进程发出回源请求;

S4:未匹配的worker进程向匹配的worker进程实时推送播放APP请求但匹配的worker进程不含有的直播流数据。

在一个优选地实施例中,各进程的直播流数据通过推流摄像机推送,每个worker进程接收推流数据后单独存储,且每一个worker进程内存储的直播流数据互不相同。

在一个优选地实施例中,直播地址中附带有直播流id,每个直播流id有唯一对应的直播流数据。

在一个优选地实施例中,各worker进程相互回源的过程为:

A1:匹配的worker进程中不含有播放APP实时请求的直播流数据;

A2:调度中心根据未匹配的worker进程上报的直播流数据查找到播放APP实时请求的直播流数据所对应的worker进程;

A3:匹配的worker进程向对应的未匹配worker进程发起回源请求;

A4:对应的未匹配worker进程向匹配的worker进程推送直播流数据。

在一个优选地实施例中,推流摄像机实时向未使用的worker进程推送直播数据流,每个worker进程在进行一次进程间推送服务后自动清空,并接收推流摄像机的下一推流。

本发明技术方案的有益效果是:

1.各worker进程分开协同工作,不再互推流,只有在播放APP观看时发现匹配的worker进程没有当前请求的流数据时才发起回源拉流,降低服务器负载,保证推流工作的稳定性。

2.各worker线程各自管理直播流数据并实时向调度中心上报调度,以便调度中心获取到播放APP请求的直播流数据,保证推流的实效性。

3.各worker进程单独监听域套接字端口,提供worker进程之间回源服务,提升回源的准确性和安全性。

附图说明

图1为现有技术整体流程图,

图2为本发明整体流程图,

图3为本发明步骤框体,

图4为本发明各worker进程相互回源的流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述方便起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

图1为现有技术中多进程直播流的共享方法的流程图,orker进程收到摄像机推流后,互推给别的worker进程,以保证在当前nginx服务器中每个worker进程都包含有当前流数据。上述推流方式使得每个worker进程都需要额外负担别的worker进程推流负载,对服务器造成额外的负担,且影响推流效率,易出现服务器瘫痪等情况。因此本申请提供改变worker进程之间的推流方式和推流时机,以降低服务器负载,提升推流效率。

参照图2-图4,本发明技术方案一种高效的基于nginx的多进程直播流共享方法,包括如下步骤:

S1:调度中心收到播放APP的播放服务请求,并获取到播放服务请求的直播地址。直播地址中附带有直播流id,每个直播流id有唯一对应的直播流数据。

S2:调度中心将各worker进程上报的直播流数据与直播地址匹配,并查找到与直播地址相匹配的worker进程。

S3:匹配的worker进程向播放APP推送直播流数据,同时匹配的worker进程向未匹配的worker进程发出回源请求。只有在匹配的worker进程中不含有播放APP实时请求的直播流数据时,匹配的worker进程才会向未匹配的worker发起回源请求。

S4:未匹配的worker进程向匹配的worker进程实时推送播放APP请求但匹配的worker进程不含有的直播流数据。

各worker进程相互回源的过程为:

A1:匹配的worker进程中不含有播放APP实时请求的直播流数据;

A2:调度中心根据未匹配的worker进程上报的直播流数据查找到播放APP实时请求的直播流数据所对应的worker进程;

A3:匹配的worker进程向对应的未匹配worker进程发起回源请求;

A4:对应的未匹配worker进程向匹配的worker进程推送直播流数据。

各进程的直播流数据通过推流摄像机推送,每个worker进程接收推流数据后单独存储,且每一个worker进程内存储的直播流数据互不相同。推流摄像机实时向未使用的worker进程推送直播数据流,每个worker进程在进行一次进程间推送服务后自动清空,并接收推流摄像机的下一推流。

各worker进程分开协同工作,不再互推流,只有在播放APP观看时发现匹配的worker进程没有当前请求的流数据时才发起回源拉流,降低服务器负载,保证推流工作的稳定性。

各worker线程各自管理直播流数据并实时向调度中心上报调度,以便调度中心获取到播放APP请求的直播流数据,保证推流的实效性。

各worker进程单独监听域套接字端口,提供worker进程之间回源服务,提升回源的准确性和安全性。

显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。本发明中未具体描述和解释说明的结构、装置以及操作方法,如无特别说明和限定,均按照本领域的常规手段进行实施。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种超高清视频分布式实时处理系统、方法、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类