一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种监控视频流在多端上实时流畅播放的方法与流程

2022-06-29 14:34:53 来源:中国专利 TAG:


1.本发明属于视频数据处理技术领域,具体的是涉及一种监控视频流在多端上实时流畅播放的方法。


背景技术:

2.流媒体是指采用流式传输的方式在internet播放的媒体格式。流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上,并可以由各终端获取并处理后进行观看。
3.目前常用的流媒体播放解决方案有以下三种:
4.1.以海康为例,可通过海康定制的平台进行摄像头的直播;
5.2.公共视频云服务平台,这种方式比较新,目前看到海康的萤石云是这种方式;
6.3.单独集成各家sdk,如海康、大华的sdk,利用ffmpeg将视频流推入流媒体服务器。
7.然而第一种方案成本较高一般用户很难承受;第二种方案延迟较大,存在5到10秒的延迟,同时第一种第二种无法实现自己控制视频流;第三种方案开发难度较大,需要底层如c语言开发人员,和应用层的实现人员。而且这样的集成会导致没有通用的通信协议,不利于三方扩展。


技术实现要素:

8.(一)要解决的技术问题
9.本发明旨在解决现有技术架构的缺陷,为了解决成本高和扩展性差的问题,提出一种监控视频流在多端上实时流畅播放方案。
10.(二)技术方案
11.为解决上述技术问题,本发明的一方面提出一种监控视频流在多端上实时流畅播放的方法,其特征在于,方法包括:
12.客户端向视频服务器发送业务请求;
13.所述视频服务器向所述消息中间件服务器转发所述业务请求;
14.所述消息中间件服务器在本地缓存所述业务请求,根据订阅关系向相应的视频推流服务器转发所述业务请求;
15.所述视频推流服务器根据所述业务请求从视频终端获取视频数据,将所述视频数据以及所述业务请求推送到流媒体服务器;
16.所述流媒体服务器接收所述视频数据和所述业务请求,生成业务响应,将所述业务响应发送至所述视频服务器;
17.所述视频服务器向所述客户端转发业务响应;
18.所述客户端根据所述业务响应播放视频。
19.根据本发明的优选实施方式,所述业务请求包括业务类型,客户端地址,时间戳,
优先级,以及视频终端地址。
20.根据本发明的优选实施方式,所述消息中间件服务器管理所述业务请求的方法包括:
21.判断所述业务请求的优先级是否一样,如果是则采用先进先出的策略,否则优先处理优先级高的业务请求。
22.根据本发明的优选实施方式,所述业务请求采用json格式。
23.根据本发明的优选实施方式,所述消息中间件服务器基于activemq搭建。
24.根据本发明的优选实施方式,所述订阅关系为所述业务类型、所述视频终端地址与所述视频推流服务器的对应关系。
25.根据本发明的优选实施方式,所述视频终端包括硬盘录像机和/或网络摄像头。
26.根据本发明的优选实施方式,所述流媒体服务器接收所述商品数据生成视频播放链接;
27.所述流媒体服务器从所述业务请求中获取客户端地址和视频终端地址;
28.所述流媒体服务器根据所述视频播放链接、客户端地址以及视频终端地址生成业务响应。
29.根据本发明的优选实施方式,方法进一步包括:
30.所述视频服务器接收并解析所述业务响应,存储所述视频播放链接和视频终端的对应关系。
31.根据本发明的优选实施方式,所述流媒体服务器为流媒体本地服务器或流媒体云服务器。
32.(三)有益效果
33.本发明采用视频服务器和视频推流服务器的组合解决自己控制视频流的问题,规避了延迟过高的问题,消息采用json格式统一了标准,易于功能的扩展。
附图说明
34.图1是本发明的一个实施例的监控视频流在多端上实时流畅播放的场景示意图;
35.图2是本发明的一个实施例的监控视频流在多端上实时流畅播放的方法流程示意图;
36.图3是本发明的一个实施例的电子设备的结构示意图;
37.图4是本发明的一个实施例的计算机可读记录介质的示意图。
具体实施方式
38.在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
39.附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/ 步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
40.附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理单元装置和/或微控制器装置中实现这些功能实体。
41.各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
42.为解决上述技术问题,本发明提出一种监控视频流在多端上实时流畅播放方案,方案的场景如图1所示,包括多个客户端,视频服务器,消息中间件服务器,一个或多个视频推流服务器,多个视频终端,多个流媒体服务器。
43.客户端向视频服务器发送业务请求,视频服务器将业务请求转发到消息中间件服务器。消息中间件服务器再根据业务请求发送的内容将业务请求发送到对应的视频推流服务器,视频推流服务器根据业务请求内容获取对应视频终端的视频数据。视频推流服务器获取多个流媒体服务器的延迟,将视频数据和业务请求推送到延迟最低的流媒体服务器。流媒体服务器根据视频数据生成url链接,解析业务请求获取客户端地址,根据url链接和客户端地址生成业务响应。视频服务器将业务响应转发给客户端。客户端根据url链接进行操作。
44.在本实施方式中,客户端包括但不限于移动电话、平板电脑、计算机,笔记本电脑、pda等等终端设备。
45.本发明提出一种监控视频流在多端上实时流畅播放方法流程图如图2 所示,包括:
46.s1、客户端向视频服务器发送业务请求;
47.s2、所述视频服务器向所述消息中间件服务器转发所述业务请求;
48.s3、所述消息中间件服务器在本地缓存所述业务请求,根据订阅关系向相应的视频推流服务器转发所述业务请求;
49.s4、所述视频推流服务器根据所述业务请求从视频终端获取视频数据,将所述视频数据以及所述业务请求推送到流媒体服务器;
50.s5、所述流媒体服务器接收所述视频数据和所述业务请求,生成业务响应,将所述业务响应发送至所述视频服务器;
51.s6、所述视频服务器向所述客户端转发业务响应;
52.s7、所述客户端根据所述业务响应播放视频。
53.在上述技术方案的基础上进一步地,所述业务请求包括业务类型,客户端地址,时间戳,优先级,以及视频终端地址。
54.在本实施方式中,客户端地址用于定位客户端,时间戳和优先级适用于消息中间件服务器对业务请求进行管理使用,视频终端地址为所要观看监控的录像或摄像头的地址。业务类型包括视频播放、视频截图、摄像头控制、注册、查询视频等命令。
55.在本实施方式中,视频服务器接收业务请求后首先对业务请求进行解析,确定业务类型,如果业务类型为注册则不再向后转发业务请求,直接在视频服务器中完成客户端的注册操作。如果业务类型为其他则继续向后转发。
56.在上述技术方案的基础上进一步地,所述消息中间件服务器管理所述业务请求的方法包括:
57.判断所述业务请求的优先级是否一样,如果是则采用先进先出的策略,否则优先处理优先级高的业务请求。
58.在本实施方式中,由于业务请求数量很多,无法同时发送或转发,因此采用先进先出策略对业务请求进行管理。为了区分紧急任务和一般任务,设置优先级,优先级高的有限处理,保证紧急任务能够优先执行。
59.在上述技术方案的基础上进一步地,所述业务请求采用json格式。
60.在本实施方式中,json(javascript object notation,js对象简谱)是一种轻量级的数据交换格式。它基于ecmascript(欧洲计算机协会制定的js 规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言。业务请求采用json格式的消息使得视频服务器以及视频推流服务器采用的消息格式一致,易于功能的扩展。
61.在上述技术方案的基础上进一步地,所述消息中间件服务器基于 activemq搭建。
62.在上述技术方案的基础上进一步地,所述订阅关系为所述业务类型、所述视频终端地址与所述视频推流服务器的对应关系。
63.在本实施方式中,视频推流服务器启动的时候就将视频推流服务器与视频终端地址、业务类型的对应关系,即订阅关系发送至消息中间件服务器,比如1-5号网络摄像头,业务类型为视频播放、视频截图、摄像头控制与第一视频推流服务器对应;6-10号网络摄像头,业务类型为视频播放与第二视频推流服务器对应。消息中间件服务器获取到业务请求时,根据携带的视频终端地址确定视频推流服务器,将业务请求发送至对应的视频推流服务器。
64.在上述技术方案的基础上进一步地,所述视频终端包括硬盘录像机和 /或网络摄像头。
65.在上述技术方案的基础上进一步地,所述流媒体服务器接收所述商品数据生成视频播放链接;
66.所述流媒体服务器从所述业务请求中获取客户端地址和视频终端地址;
67.所述流媒体服务器根据所述视频播放链接、客户端地址以及视频终端地址生成业务响应。
68.在本实施方式中视频播放链接为url链接。
69.在本实施方式中,由于流媒体服务器有多个,视频推流服务器选择流媒体服务器的时候先向流媒体服务器发送查询指令,查询各个流媒体服务器的延迟,将视频数据推送到延迟最低的流媒体服务器。
70.在上述技术方案的基础上进一步地,方法进一步包括:
71.所述视频服务器接收并解析所述业务响应,存储所述视频播放链接和视频终端的对应关系。
72.在本实施方式中,视频服务器存储视频播放链接与视频终端的对应关系,在后续接收的业务请求中,如果携带的视频终端地址已经存在于视频服务器的缓存中,则可以直接调取对应的视频播放链接发送给客户端,客户端不用再等待,可以直接观看。
73.在上述技术方案的基础上进一步地,所述流媒体服务器为流媒体本地服务器或流媒体云服务器。
74.在本实施方式中,目前利用云服务已经是比较普遍的做法,我们在做实现的时候可对这些云服务进行自由切换,可寻找延迟最低、价格最合适的厂家的服务,作为自建流媒体服务器的替代,节省设备维护的成本和减少流媒体服务器端的问题风险。
75.在该方案中,视频推流服务器封装海康、大华等主流设备提供sdk,提供统一的接口,方便数据的获取和推流,降低了视频的延时。在视频服务器中缓存链接,使得同一个视频终端可以直接观看,不用再重新执行一遍流程,大大降低了用户的等待时间。
76.图3是本发明的一个实施例的电子设备的结构示意图,该电子设备包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行基于旋转角监测的车辆智能助力推行方法。
77.如图3所示,电子设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。
78.所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者方法中的至少部分步骤。
79.所述存储器包括易失性存储器,例如随机存取存储单元(ram)和/ 或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(rom)。
80.可选的,该实施例中,电子设备还包括有i/o接口,其用于电子设备与外部的设备进行数据交换。i/o接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
81.应当理解,图3显示的电子设备仅仅是本发明的一个示例,本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按钮、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。
82.图4是本发明的一个实施例的计算机可读记录介质的示意图。如图4 所示,计算机可读记录介质中存储有计算机可执行程序,所述计算机可执行程序被执行时,实现本发明上述的基于旋转角监测的车辆智能助力推行方法。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的
任意合适的组合。
83.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
84.通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的系统,以及系统中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等,本发明也可以由包含上述系统或部件的至少一部分的车辆来实现。本发明也可以由执行本发明的方法的计算机软件来实现,例如由机车端的微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现,例如计算机程序执行的某些方法步骤可以在机车端执行,另一部分可以在移动终端或智能头盔等中执行。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是cd-rom,u盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得电子设备执行根据本发明的方法。
85.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献