本发明涉及视联网,具体而言,涉及一种监控视频转发方法、共享服务器、设备及存储介质。
背景技术:
1、视联网是网络发展的重要里程碑,是互联网的更高级形态,是一个实时网络,能够实现互联网无法实现的全网高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。最终将实现世界无距离,实现全球范围内人与人的距离只是一个屏幕的距离。
2、现有技术中,在将视联网监控资源共享给第三方监控平台时,通常是采用单服务器单服务的运行模式,即通过仅能运行一个共享流媒体服务的共享服务器进行监控资源的共享。然而在研究中发现,由于共享服务器在进行数据处理时,可能会出现数据处理量过大或者是服务器资源占用过多的情况,而由于共享服务器中仅通过一个共享流媒体服务进行资源共享,所以该共享流媒体服务很可能会出现卡顿或者终中断等情况,从而降低了监控资源共享的有效性和效率。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种监控视频转发方法、共享服务器、设备及存储介质,以提高监控资源共享的有效性和效率。
2、第一方面,本技术实施例提供了一种监控视频转发方法,应用于共享服务器,所述共享服务器包括多个共享流媒体服务模块和共享信令服务模块,所述方法包括:
3、响应用户端的调取视频信令,通过所述共享信令服务模块根据每个所述共享流媒体服务模块的运行状态判断是否存在能够用于执行本次监控视频转发的目标共享流媒体服务模块;
4、若存在能够用于执行本次监控视频转发的目标共享流媒体服务模块,则通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包,其中,所述目标监控视频数据为所述调取视频信令中所携带的监控视频信息所指示的监控视频数据;
5、通过所述目标共享流媒体服务模块将所述监控视频数据包发送至所述用户端。
6、可选地,通过所述共享信令服务模块根据每个所述共享流媒体服务模块的运行状态判断是否存在能够用于执行本次监控视频转发的目标共享流媒体服务模块,包括:
7、对于每个所述共享流媒体服务模块,通过所述共享信令服务模块判断该共享流媒体服务模块是否在线,且判断该共享流媒体服务模块的历史监控视频转发数量是否超过预设的最大监控视频转发数量;
8、若该共享流媒体服务模块在线,且该共享流媒体服务模块的历史监控视频转发数量未超过预设的最大监控视频转发数量,通过所述共享信令服务模块则确定出存在能够用于执行本次监控视频转发的目标共享流媒体服务模块;
9、通过所述共享信令服务模块将该共享流媒体服务模块确定为所述目标共享流媒体服务模块。
10、可选地,在通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包前,所述方法还包括:
11、通过所述共享信令服务模块将所述调取视频信令转换为视联网信令;
12、通过所述目标共享流媒体服务模块,根据所述视联网信令从监控接入服务器中获取所述目标监控视频数据。
13、可选地,通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包,包括:
14、通过所述目标共享流媒体服务模块对所述目标监控视频数据进行解析得到多个音视频数据包,并根据得到每个音视频数据包的次序将每个音视频数据包依次存入缓存队列中;
15、在所述缓存队列中每存入一个音视频数据包后,通过所述目标共享流媒体服务模块判断当前音视频数据包是否为所述缓存队列中的最后一个数据包;
16、若当前音视频数据包是所述缓存队列中的最后一个数据包,则通过所述目标共享流媒体服务模块保留当前音视频数据包,并等待接收下一个音视频数据包。
17、可选地,在通过所述目标共享流媒体服务模块判断当前音视频数据包是否为所述缓存队列中的最后一个数据包后,所述方法还包括:
18、若当前音视频数据包不是所述缓存队列中的最后一个数据包,则通过所述目标共享流媒体服务模块将当前音视频数据包封装为所述监控视频数据包;
19、所述监控视频数据包包括关键rtp数据包和普通rtp数据包,通过所述目标共享流媒体服务模块则将当前音视频数据包封装为监控视频数据包,包括:
20、通过所述目标共享流媒体服务模块根据当前音视频数据包的数据包序号判断当前音视频数据包是否为其所属于的视频帧的最后一个数据包;
21、若当前音视频数据包是其所属于的视频帧的最后一个数据包,则通过所述目标共享流媒体服务模块将当前音视频数据包封装为关键rtp数据包;
22、若当前音视频数据包不是其所属于的视频帧的最后一个数据包,则通过所述目标共享流媒体服务模块将当前音视频数据包封装为普通rtp数据包。
23、可选地,若存在能够用于执行本次监控视频转发的目标共享流媒体服务模块,所述方法包括:
24、将所述目标共享流媒体服务模块进行初始化,在所述目标共享流媒体服务模块中创建视联网接收缓存队列、视联网数据类型分组线程以及内存池,并为每个视联网虚拟终端创建视联网音视频缓存队列、视联网音视频数据终端分组线程、视联网控制信令缓存队列和视联网控制信令处理线程;
25、在通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包前,所述方法还包括:
26、通过所述共享信令服务模块将所述调取视频信令发送至所述目标共享流媒体服务模块;
27、通过所述目标共享信令服务模块将所述调取视频信令发送至目标视联网控制信令缓存队列,其中,所述目标视联网信令缓存队列为为目标视联网虚拟终端创建的视联网信令缓存队列,所述目标视联网虚拟终端为用于接收所述目标监控视频数据的视联网虚拟终端;
28、通过所述目标共享信令服务模块通过目标视联网控制信令处理线程对所述控制信令类数据进行处理得到视联网信令,并根据所述视联网信令从监控接入服务器中获取所述目标监控视频数据,其中,所述目标视联网控制信令处理线程为为所述目标视联网虚拟终端创建的视联网控制信令处理线程。
29、可选地,所述通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包,包括:
30、通过所述目标共享流媒体服务模块将所述目标监控视频数据存储至所述内存池中,并将所述目标监控视频数据在所述内存池中的存储地址发送至所述视联网接收缓存队列中;
31、通过所述目标共享信令服务模块通过所述视联网接收缓存队列根据所述存储地址从所述内存池中提取出所述目标监控视频数据,并将所述目标监控视频数据发送至所述视联网数据类型分组线程;
32、通过所述目标共享信令服务模块通过所述视联网数据类型分组线程将所述目标监控视频数据发送至目标视联网音视频缓存队列,其中,所述目标视联网音视频缓存队列为为所述目标视联网虚拟终端创建的视联网音视频缓存队列;
33、通过所述目标共享信令服务模块通过目标视联网音视频数据终端分组线程从所述目标视联网音视频缓存队列中提取所述目标监控视频数据,并将所述目标监控视频数据进行拆分为多个所述音视频数据包,其中,所述目标视联网音视频数据终端分组线程为为所述目标视联网虚拟终端创建的视联网音视频数据终端分组线程。
34、第二方面,本技术实施例提供了一种共享服务器,所述共享服务器包括多个共享流媒体服务模块和共享信令服务模块,所述共享服务器用于:
35、响应用户端的调取视频信令,通过所述共享信令服务模块根据每个所述共享流媒体服务模块的运行状态判断是否存在能够用于执行本次监控视频转发的目标共享流媒体服务模块;
36、若存在能够用于执行本次监控视频转发的目标共享流媒体服务模块,则通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包,其中,所述目标监控视频数据为所述调取视频信令中所携带的监控视频信息所指示的监控视频数据;
37、通过所述目标共享流媒体服务模块将所述监控视频数据包发送至所述用户端。
38、可选地,所述共享服务器在用于通过所述共享信令服务模块根据每个所述共享流媒体服务模块的运行状态判断是否存在能够用于执行本次监控视频转发的目标共享流媒体服务模块时,具体用于:
39、对于每个所述共享流媒体服务模块,通过所述共享信令服务模块判断该共享流媒体服务模块是否在线,且判断该共享流媒体服务模块的历史监控视频转发数量是否超过预设的最大监控视频转发数量;
40、若该共享流媒体服务模块在线,且该共享流媒体服务模块的历史监控视频转发数量未超过预设的最大监控视频转发数量,通过所述共享信令服务模块则确定出存在能够用于执行本次监控视频转发的目标共享流媒体服务模块;
41、通过所述共享信令服务模块将该共享流媒体服务模块确定为所述目标共享流媒体服务模块。
42、可选地,所述共享服务器在用于通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包前,还用于:
43、通过所述共享信令服务模块将所述调取视频信令转换为视联网信令;
44、通过所述目标共享流媒体服务模块,根据所述视联网信令从监控接入服务器中获取所述目标监控视频数据。
45、可选地,所述通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包时,具体用于:
46、通过所述目标共享流媒体服务模块对所述目标监控视频数据进行解析得到多个音视频数据包,并根据得到每个音视频数据包的次序将每个音视频数据包依次存入缓存队列中;
47、在所述缓存队列中每存入一个音视频数据包后,通过所述目标共享流媒体服务模块判断当前音视频数据包是否为所述缓存队列中的最后一个数据包;
48、若当前音视频数据包是所述缓存队列中的最后一个数据包,则通过所述目标共享流媒体服务模块保留当前音视频数据包,并等待接收下一个音视频数据包。
49、可选地,所述共享服务器在用于通过所述目标共享流媒体服务模块判断当前音视频数据包是否为所述缓存队列中的最后一个数据包后,还用于:
50、若当前音视频数据包不是所述缓存队列中的最后一个数据包,则通过所述目标共享流媒体服务模块将当前音视频数据包封装为所述监控视频数据包;
51、所述监控视频数据包包括关键rtp数据包和普通rtp数据包,通过所述目标共享流媒体服务模块则将当前音视频数据包封装为监控视频数据包,包括:
52、通过所述目标共享流媒体服务模块根据当前音视频数据包的数据包序号判断当前音视频数据包是否为其所属于的视频帧的最后一个数据包;
53、若当前音视频数据包是其所属于的视频帧的最后一个数据包,则通过所述目标共享流媒体服务模块将当前音视频数据包封装为关键rtp数据包;
54、若当前音视频数据包不是其所属于的视频帧的最后一个数据包,则通过所述目标共享流媒体服务模块将当前音视频数据包封装为普通rtp数据包。
55、可选地,所述共享服务器还用于:
56、若存在能够用于执行本次监控视频转发的目标共享流媒体服务模块,将所述目标共享流媒体服务模块进行初始化,在所述目标共享流媒体服务模块中创建视联网接收缓存队列、视联网数据类型分组线程以及内存池,并为每个视联网虚拟终端创建视联网音视频缓存队列、视联网音视频数据终端分组线程、视联网控制信令缓存队列和视联网控制信令处理线程;
57、所述共享服务器在用于通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包前,还用于:
58、通过所述共享信令服务模块将所述调取视频信令发送至所述目标共享流媒体服务模块;
59、通过所述目标共享信令服务模块将所述调取视频信令发送至目标视联网控制信令缓存队列,其中,所述目标视联网信令缓存队列为为目标视联网虚拟终端创建的视联网信令缓存队列,所述目标视联网虚拟终端为用于接收所述目标监控视频数据的视联网虚拟终端;
60、通过所述目标共享信令服务模块通过目标视联网控制信令处理线程对所述控制信令类数据进行处理得到视联网信令,并根据所述视联网信令从监控接入服务器中获取所述目标监控视频数据,其中,所述目标视联网控制信令处理线程为为所述目标视联网虚拟终端创建的视联网控制信令处理线程。
61、可选地,所述共享服务器在用于通过所述目标共享流媒体服务模块对目标监控视频数据进行处理得到监控视频数据包时,具体用于:
62、通过所述目标共享流媒体服务模块将所述目标监控视频数据存储至所述内存池中,并将所述目标监控视频数据在所述内存池中的存储地址发送至所述视联网接收缓存队列中;
63、通过所述目标共享信令服务模块通过所述视联网接收缓存队列根据所述存储地址从所述内存池中提取出所述目标监控视频数据,并将所述目标监控视频数据发送至所述视联网数据类型分组线程;
64、通过所述目标共享信令服务模块通过所述视联网数据类型分组线程将所述目标监控视频数据发送至目标视联网音视频缓存队列,其中,所述目标视联网音视频缓存队列为为所述目标视联网虚拟终端创建的视联网音视频缓存队列;
65、通过所述目标共享信令服务模块通过目标视联网音视频数据终端分组线程从所述目标视联网音视频缓存队列中提取所述目标监控视频数据,并将所述目标监控视频数据进行拆分为多个所述音视频数据包,其中,所述目标视联网音视频数据终端分组线程为为所述目标视联网虚拟终端创建的视联网音视频数据终端分组线程。
66、第三方面,本技术实施例提供了一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面中任一种可选地实施方式中所述的监控视频转发方法的步骤。
67、第四方面,本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面中任一种可选地实施方式中所述的监控视频转发方法的步骤。
68、本技术提供的技术方案包括但不限于以下有益效果:
69、本技术通过监控接入服务器、共享服务器和用户端的相互配合,在共享信令服务模块接收到用户端的调取视频信令后,根据共享服务器中的每个共享流媒体服务模块的运行状态判断是否存在能够用于执行本次监控视频转发的目标共享流媒体服务模块,从而能够对共享服务器是否能够正常进行监控资源的转发和共享进行确定;在共享服务器能够正常进行监控资源的转发和共享的情况下,由监控接入服务器从监控设备调取目标监控视频数据发送至目标共享流媒体服务模块进行处理后返回至用户端,避免了基于单一共享服务进行资源共享时可能出现的卡顿或者是失败,从而提高监控资源共享的有效性和效率。
70、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。