用于智慧高速的大屏实时视频流播放方法以及装置与流程

文档序号:29690594发布日期:2022-04-16 11:26阅读:140来源:国知局
用于智慧高速的大屏实时视频流播放方法以及装置与流程

1.本技术涉及计算机技术领域,尤其涉及信息流领域以及智能交通领域,特别涉及一种用于智慧高速的大屏实时视频流播放方法以及装置。


背景技术:

2.监控视频是高速用来安全保障的一个主要手段,其中视频源来自路侧摄像头。相关技术中,通常是采用比较传统的方式实现视频监控,比如,采用多级多域联网架构,按“交通运输部中心-省级监控中心-路段监控中心-基层监控单元”四级联网结构,逐级上传视频数据。然而,这种方式往往存在视频延迟大等问题。


技术实现要素:

3.本技术提供了一种用于智慧高速的大屏实时视频流播放方法以及装置。
4.根据本技术的第一方面,提供了一种用于智慧高速的大屏实时视频流播放方法,包括:
5.响应于接收到网页前端发送的拉流请求,获取所述拉流请求中携带的目标摄像头信息和所述网页前端的标识信息;
6.根据所述目标摄像头信息和所述标识信息,向直播流服务器发送推流信息,令所述直播流服务器基于所述推流信息向视频服务平台拉取所述目标摄像头的视频流数据,并将所述视频流数据转码成基于实时消息传输协议的实时视频流数据;
7.接收所述直播流服务器发送的所述实时视频流数据的直播流播放地址;
8.基于所述标识信息,将所述直播流播放地址发送给所述网页前端,令所述网页前端基于所述直播流播放地址从所述直播流服务器拉取所述实时视频流数据进行播放。
9.根据本技术的第二方面,提供了一种用于智慧高速的大屏实时视频流播放方法,包括:
10.向后端服务器发送网页前端的拉流请求;所述拉流请求中携带目标摄像头信息和所述网页前端的标识信息,所述拉流请求用于指示所述后端服务器根据所述目标摄像头信息和所述标识信息向直播流服务器发送推流信息,令所述直播流服务器基于所述推流信息向视频服务平台拉取所述目标摄像头的视频流数据,并将所述视频流数据转码成基于实时消息传输协议的实时视频流数据;
11.确定所述实时视频流数据的直播流播放地址;
12.基于所述直播流播放地址从所述直播流服务器拉取所述实时视频流数据进行播放。
13.根据本技术的第三方面,提供了一种用于智慧高速的大屏实时视频流播放装置,包括:
14.获取模块,用于响应于接收到网页前端发送的拉流请求,获取所述拉流请求中携带的目标摄像头信息和所述网页前端的标识信息;
15.推流模块,用于根据所述目标摄像头信息和所述标识信息,向直播流服务器发送推流信息,令所述直播流服务器基于所述推流信息向视频服务平台拉取所述目标摄像头的视频流数据,并将所述视频流数据转码成基于实时消息传输协议的实时视频流数据;
16.第一接收模块,用于接收所述直播流服务器发送的所述实时视频流数据的直播流播放地址;
17.发送模块,用于基于所述标识信息,将所述直播流播放地址发送给所述网页前端,令所述网页前端基于所述直播流播放地址从所述直播流服务器拉取所述实时视频流数据进行播放。
18.根据本技术的第四方面,提供了一种用于智慧高速的大屏实时视频流播放装置,包括:
19.第一发送模块,用于向后端服务器发送网页前端的拉流请求;所述拉流请求中携带目标摄像头信息和所述网页前端的标识信息,所述拉流请求用于指示所述后端服务器根据所述目标摄像头信息和所述标识信息向直播流服务器发送推流信息,令所述直播流服务器基于所述推流信息向视频服务平台拉取所述目标摄像头的视频流数据,并将所述视频流数据转码成基于实时消息传输协议的实时视频流数据;
20.确定模块,用于确定所述实时视频流数据的直播流播放地址;
21.播放模块,用于基于所述直播流播放地址从所述直播流服务器拉取所述实时视频流数据进行播放。
22.根据本技术的第五方面,提供了一种高速公路视频监控系统,包括:前述第三方面所述的大屏实时视频流播放装置;前述第四方面所述的大屏实时视频流播放装置;直播流服务器以及视频服务平台。
23.根据本技术的第六方面,提供了一种电子设备,包括:
24.至少一个处理器;以及
25.与所述至少一个处理器通信连接的存储器;其中,
26.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的大屏实时视频流播放方法,或者执行前述第二方面所述的大屏实时视频流播放方法。
27.根据本技术的第七方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的大屏实时视频流播放方法,或者执行前述第二方面所述的大屏实时视频流播放方法。
28.根据本技术的第八方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述第一方面所述方法的步骤,或者前述第二方面所述方法的步骤。
29.根据本技术的技术方案,可以解决传统视频监控系统中存在的视频延迟大的问题。
30.应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
31.附图用于更好地理解本方案,不构成对本技术的限定。其中:
32.图1为本技术实施例所提供的一种高速公路视频监控系统的架构示意图;
33.图2为本技术实施例所提供的另一种用于智慧高速的大屏实时视频流播放方法的流程图;
34.图3为本技术实施例提供的大屏幕显示设备的屏幕显示效果示例图;
35.图4为本技术实施例所提供的又一种高速公路视频监控系统的架构示意图;
36.图5为本技术实施例所提供的又一种高速公路视频监控系统的架构示意图;
37.图6为本技术实施例所提供的又一种用于智慧高速的大屏实时视频流播放方法的流程图;
38.图7为本技术实施例所提供的一种用于智慧高速的大屏实时视频流播放装置的结构框图;
39.图8为本技术实施例所提供的另一种用于智慧高速的大屏实时视频流播放装置的结构框图;
40.图9为本技术实施例所提供的又一种用于智慧高速的大屏实时视频流播放装置的结构框图;
41.图10为本技术实施例所提供的再一种用于智慧高速的大屏实时视频流播放装置的结构框图;
42.图11为本技术实施例提供的高速公路视频监控系统的交互示例图;
43.图12是根据本技术实施例的大屏实时视频流播放方法的电子设备的框图。
具体实施方式
44.以下结合附图对本技术的示范性实施例做出说明,其中包括本技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
45.需要说明的是,在本技术的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
46.其中,在本技术的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
47.为了更好的理解本技术实施例公开的一种用于智慧高速的大屏实时视频流播放方法,下面首先对本技术实施例适用的高速公路视频监控系统进行描述。
48.请参见图1,图1为本技术实施例所提供的一种高速公路视频监控系统的架构示意图。该高速公路视频监控系统可包括但不限于网页前端、后端服务器、直播流服务器和视频服务平台。图1所示的设备数量和形态仅用于举例并不构成对本技术实施例的限定,实际应用中可以包括两个或两个以上网页前端。图1所示的高速公路视频监控系统以包括一个网
页前端101、后端服务器102、直播流服务器103和视频服务平台104。作为一种示例,直播流服务器103可集成在后端服务器102上,可以理解,后端服务器作为业务的统一出口,可以控制直播流服务器。
49.需要说明的是,本技术实施例中的网页前端可分布在大屏幕显示设备。该大屏幕显示设备具有高速道路地图显示区域和网页前端展示区域。网页前端可以理解为运行在大屏显示设备等浏览器上展现给用户浏览的网页,即在大屏幕显示设备上的展示区域基于网页播放某摄像头的实时视频流。可选地,高速道路地图上具有各高速路侧的摄像头标识,通过点击高速道路地图上的摄像头标识,网页前端展示区域内可以显示对应摄像头的实时视频流,从而实现即切即现的目的。
50.还需要说明的是,本技术实施例中的高速公路视频监控系统为局域网架构,从而可以保证高速公路视频监控系统的安全性。
51.可以理解的是,本技术实施例描述的高速公路视频监控系统是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
52.下面结合附图对本技术所提供的用于智慧高速的大屏实时视频流播放方法及其装置进行详细地介绍。
53.请参见图2,图2为本技术实施例所提供的一种用于智慧高速的大屏实时视频流播放方法的流程图。需要说明的是,本技术实施例的大屏实时视频流播放方法可应用于本技术实施例的大屏实时视频流播放装置,该大屏实时视频流播放装置可被配置于电子设备上。
54.还需要说明的是,本技术实施例的大屏实时视频流播放方法可从后端服务器侧进行描述。如图2所示,该大屏实时视频流播放方法可以包括但不限于如下步骤。
55.步骤201,响应于接收到网页前端发送的拉流请求,获取拉流请求中携带的目标摄像头信息和网页前端的标识信息。
56.需要说明的是,在本技术一些实施例中,后端服务器可以先通过视频服务平台获取到摄像头信息,并将获得的摄像头信息存入数据库。例如,视频服务平台与高速道路侧的摄像头连接,视频服务平台上具有各摄像头的相关信息,该摄像头相关信息可包括但不限于摄像头ip(internet protocol,网际互连协议)地址、摄像头id(identity document,身份标识)、rtsp(real time streaming protocol,实时流传输协议)直播流地址等信息。
57.在本技术的实施例中,网页前端可以向后端服务器发送摄像头信息获取请求。后端服务器在接收到网页前端发送的摄像头信息获取请求时,可以将数据库中存储的所有摄像头信息发送给网页前端,以使得网页前端了解到都有哪些摄像头。这样,网页前端可以携带某摄像头信息向后端服务器发送拉流请求,即请求播放该某摄像头的实时视频流。
58.在本技术的实施例中,后端服务器在接收到网页前端发送的携带有摄像头信息的拉流请求时,可以从该拉流请求中获取目标摄像头信息和该网页前端的标识信息。其中,该目标摄像头信息可理解为网页前端欲获取的摄像头实时视频流的摄像头信息;该标识信息可理解为用于区别网页前端唯一的标识。
59.步骤202,根据目标摄像头信息和标识信息,向直播流服务器发送推流信息,令直
播流服务器基于推流信息向视频服务平台拉取目标摄像头的视频流数据,并将视频流数据转码成基于实时消息传输协议的实时视频流数据。
60.在本技术的实施例中,该目标摄像头信息可以但不限于目标摄像头ip地址和/或目标摄像头id等,或者,该目标摄像头信息还可以包括目标摄像头视频流的rtsp直播流地址。
61.举例而言,在获得网页前端发送的拉流请求中所携带的目标摄像头信息和网页前端的标识信息之后,可以根据目标摄像头信息之中目标摄像头ip地址和/或目标摄像头id,携带目标摄像头视频流的rtsp直播流地址和网页前端的标识信息,开始向直播流服务器推流,即向直播流服务器发送推流信息。其中,该推流信息可以包括但不限于网页前端的标识信息、目标摄像头视频流的rtsp直播流地址、网页前端用于播放目标摄像头视频流时所使用的流媒体传输协议等信息。直播流服务器在接收到该推流信息时,可以从该推流信息中获取到目标摄像头视频流的rtsp直播流地址,基于该rtsp直播流地址从视频服务平台拉取该目标摄像头的视频流数据。直播流服务器可以基于网页前端用于播放目标摄像头视频流时所使用的流媒体传输协议,将从视频服务平台拉取到的目标摄像头的视频流数据转码成对应流媒体传输协议的实时视频流数据。
62.在本技术一些实施例中,实时消息传输协议至少包括但不限于rtmp(real time messaging protocol,实时消息传输协议)和webrtc(web real-time communication,网页实时通信)协议等中的任意一种。其中,webrtc可以实现基于网页的视频会议,标准是whatwg协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(real-time communications(rtc))能力。
63.举例而言,以实时消息传输协议为rtmp为例,直播流服务器基于目标摄像头视频流的rtsp直播流地址拉取该目标摄像头视频流,其中,该目标摄像头视频流可以是基于rtsp协议传输的。为了降低延迟,直播流服务器在获得目标摄像头视频流数据时,可以将该目标摄像头视频流数据转码成基于rtmp的实时视频流数据,并确定该实时视频流数据的rtmp直播流播放地址。
64.在本技术的实施例中,直播流服务器可以将该直播流播放地址发送给后端服务器。或者,直播流服务器还可以基于网页前端交互通信,将该直播流播放地址发送给网页前端,以便网页前端基于该直播流播放地址从直播流服务器拉取对应实时视频流数据进行播放。
65.需要说明的是,本技术实施例中的直播流服务器可以是srs(simple real-time video service,简单实时视频服务)直播流服务器。srs是一个简单高效的实时视频服务器,支持rtmp/webrtc/hls(http live streaming,基于http的自适应码率流媒体传输协议)/http-flv(一种将rtmp等负载信息携带在http协议之上的码流传递协议)/srt(secure reliable transport,安全可靠传输协议)。
66.步骤203,接收直播流服务器发送的实时视频流数据的直播流播放地址。
67.可选地,直播流服务器可以将该直播流播放地址发送给后端服务器,从而使得后端服务器可以接收到直播流服务器发送的实时视频流数据的直播流播放地址。
68.步骤204,基于标识信息,将直播流播放地址发送给网页前端,令网页前端基于直播流播放地址从直播流服务器拉取实时视频流数据进行播放。
69.可选地,可以基于网页前端的标识信息,将上述实时视频流数据的直播流播放地址发送给网页前端。网页前端在得到该直播流播放地址时,可以基于该直播流播放地址从直播流服务器拉取实时视频流数据进行播放。
70.在本技术一些实施例中,网页前端可为多个,多个网页前端可分布在同一个大屏幕显示设备上,或者,多个网页前端可以分别分布在不同大屏幕显示设备上。举例而言,如图3所示,大屏幕显示设备具有高速道路地图显示区域和网页前端展示区域。其中,该网页前端展示区域可以具有多个展示子区域,每个展示子区域处呈放一个网页前端,从而实现多个网页前端分屏展示的目的。如图3所示,由于每个网页前端具有各自的标识信息,这样,网页前端在请求推流时,可以获得各自所请求的摄像头视频流,从而实现多屏不同摄像头视频流监控的目的。
71.在本技术一些实施例中,网页前端的标识信息可以包含网页前端所在大屏幕显示设备的网络标识和时间戳信息;该时间戳信息可以为网页前端第一次发送拉流请求时的当前时间戳信息。其中,该网络标识可以包括但不限于mac(media access control address,媒体存取控制位址)地址、ip地址等中任意一种或多种。
72.举例而言,当网页前端的页面重新启动,可视为该网页前端向后端服务器第一次发送拉流请求。此时网页前端可以通过该网页前端所在大屏幕显示设备的mac地址和当前毫秒值生成一个md5(message digest algorithm md5,消息摘要算法)值,将该md5值视为该网页前端的标识信息。这样,网页前端每次请求都携带该md5值发送给后端服务器,由后端服务器缓存,后续可以将此md5值作为该网页前端与后端服务器间的会话id。
73.根据本技术实施例的大屏实时视频流播放方法,可以应用于智慧高速,在网页前端开始请求推流时,获取该网页前端基于该请求所携带的目标摄像头信息和网页前端的标识信息,并根据目标摄像头信息和网页前端的标识信息从直播流服务器获取该目标摄像头实时视频流,该实时视频流为基于rtmp或webrtc传输协议的实时视频流数据,并将该目标摄像头实时视频流的直播流播放地址,并基于标识信息将该直播流播放地址发送给该网页前端,由网页前端基于该直播流播放地址从直播流服务器拉取实时视频流数据进行播放,从而可以实现基于网页的实时视频流播放,达到智慧高速实时监控的目的。另外,通过网页前端基于rtmp或webrtc传输协议实现实时视频流的播放,可以保证视频低延迟,从而可以解决传统视频监控系统中存在的视频延迟大的问题。
74.值得注意的是,当对摄像头个数和请求数变多时,后端服务器推流操作也会增加,直播流服务器的资源和性能会达到瓶颈,因此需要采取有效的限制措施,否则随着cpu(central processing unit,中央处理器)和内存的占有率增加,直播流服务器会崩溃,整个高速公路视频监控系统会处于瘫痪状态。
75.为了解决该问题,本技术提出了一套有效的策略,即后端服务器可以缓存摄像头标识与网页前端标识间的映射关系,这样,后端服务器在接收到网页前端的拉流请求时,可以基于请求中携带的目标摄像头信息、标识信息以及该映射关系,来判断是否存在相同摄像头已被推流,若存在,则无需增加推流操作,直接将该摄像头的直播流播放地址发送给该网页前端,由网页前端拉流即可。如图4所示,该用于智慧高速的大屏实时视频流播放方法可以包括不限于如下步骤。
76.步骤401,响应于接收到网页前端发送的拉流请求,获取拉流请求中携带的目标摄
像头信息和网页前端的标识信息。
77.在本技术的实施例中,步骤401可以分别采用本技术的各实施例中的任一种方式实现,本技术实施例并不对此作出限定,也不再赘述。
78.步骤402,获取缓存的摄像头标识与网页前端标识间的映射关系。
79.需要说明的是,后端服务器可以缓存摄像头标识与网页前端标识间的映射关系。举例而言,当网页前端a开始请求推流时,携带此网页前端a的md5标识,获取某一摄像头实时视频,后端服务器会开始推流到直播流服务器,同时缓存摄像头id和md5的映射关系。网页前端从直播流服务器拉取视频流开始播放。依此类推,增加一路摄像头的拉流,则后端服务器会开启一份推流,同时缓存一份摄像头id和md5的映射关系。即摄像头id和md5的映射关系为1对多。
80.依此类推,当网页前端b开始请求推流时,同样执行以上操作,只是在推送时,后端服务器可以获取当前已经缓存的摄像头标识与网页前端标识间的映射关系,即已经缓存的摄像头id和md5的映射关系。
81.步骤403,根据目标摄像头信息、标识信息和映射关系,确定是否存在相同摄像头已被推流。
82.可选地,由于该映射关系中存在有摄像头id和标识信息的对应关系,所以后端服务器可以基于目标摄像头信息、标识信息和映射关系,判断是否同样的摄像头已经被推流。如果存在同样的摄像头已经被推流,则执行步骤406;如果不存在同样的摄像头已被推流,则执行步骤404。
83.步骤404,响应于未存在相同摄像头已被推流,根据目标摄像头信息和标识信息,向直播流服务器发送推流信息,令直播流服务器基于推流信息向视频服务平台拉取目标摄像头的视频流数据,并将视频流数据转码成基于实时消息传输协议的实时视频流数据。
84.可选地,在确定未存在相同摄像头已被推流,可以根据目标摄像头信息和标识信息,向直播流服务器发送推流信息,令直播流服务器基于推流信息向视频服务平台拉取目标摄像头的视频流数据,并将视频流数据转码成基于实时消息传输协议的实时视频流数据。之后可执行步骤405。
85.在本技术的实施例中,步骤“根据目标摄像头信息和标识信息,向直播流服务器发送推流信息,令直播流服务器基于推流信息向视频服务平台拉取目标摄像头的视频流数据,并将视频流数据转码成基于实时消息传输协议的实时视频流数据”可以分别采用本技术的各实施例中的任一种方式实现,本技术实施例并不对此作出限定,也不再赘述。
86.在本技术的一些实施例中,响应于存在相同摄像头已被推流,直接执行所述基于标识信息,将直播流播放地址发送给网页前端的步骤,即执行步骤406。
87.步骤405,接收直播流服务器发送的实时视频流数据的直播流播放地址。
88.在本技术的实施例中,步骤405可以分别采用本技术的各实施例中的任一种方式实现,本技术实施例并不对此作出限定,也不再赘述。
89.步骤406,基于标识信息,将直播流播放地址发送给网页前端,令网页前端基于直播流播放地址从直播流服务器拉取实时视频流数据进行播放。
90.在本技术的实施例中,步骤406可以分别采用本技术的各实施例中的任一种方式实现,本技术实施例并不对此作出限定,也不再赘述。
91.举例而言,当网页前端a开始请求推流时,携带此网页前端a的md5标识,获取某一摄像头实时视频,后端服务器会开始推流到直播流服务器,同时缓存摄像头id和md5的映射关系。网页前端从直播流服务器拉取视频流开始播放。依此类推,增加一路摄像头的拉流,则后端服务器会开启一份推流,同时缓存一份摄像头id和md5的映射关系。即摄像头id和md5的映射关系为1对多。
92.依此类推,当网页前端b开始请求推流时,同样执行以上操作,只是在推送时,后端服务器需要判断下是否同样的摄像头id是否已经推流,如果开始推流则无需增加推流操作,直接将该摄像头的直播流播放地址发送给网页前端b,由网页前端b拉流即可,但同样会增加一份摄像头id和md5的映射关系。由此,可以降低直播流服务器的cpu和内存的占有率,从而可以避免由于摄像头个数和请求书变多而导致直播流服务器崩溃。
93.根据本技术实施例的大屏实时视频流播放方法,可以保证高速公路视频监控系统的正常运行,同时还可以降低直播流服务器的cpu和内存的占有率,从而可以避免由于摄像头个数和请求书变多而导致直播流服务器崩溃。
94.为了进一步保障推流服务健壮的运行,可选地,在本技术一些实施例中,在上述实施例的基础上,如图5所示,本技术实施例的大屏实时视频流播放方法还可包括如下步骤:
95.步骤501,接收网页前端定期发送的保活请求。
96.例如,在启动推流后,网页前端可以携带标识信息定期给后端服务器发送保活请求,从而使得后端服务器能够接收到网页前端定期发送的保活请求。
97.步骤502,响应于当前接收到网页前端发送的保活请求,距离上一次接收到网页前端发送的保活请求超过预设时长,根据缓存的摄像头标识与网页前端标识间的映射关系,确定是否存在有其他网页前端请求对与目标摄像头信息对应的摄像头推流。
98.可选地,后端服务器在接收到网页前端发送的保活请求时,可以判断当前保活请求举例上一次保活请求是否超过预设时长(如2分钟),若是,则代表网页前端与后端服务器间的会话session的所有拉流停止。后端服务器需要判断该会话session上的摄像头推流是否需要停止,当其他网页前端与后端服务器的会话session的映射关系中也无此摄像头时,则可停止该摄像头的推流操作。
99.步骤503,响应于未存在有其他网页前端请求对与目标摄像头信息对应的摄像头推流,停止与目标摄像头信息对应的摄像头的推流操作。
100.由此,通过使用保活机制,可以进一步保障推流服务健壮运行。
101.可以理解,上述实施例是从后端服务器侧描述本技术实施例的用于智慧高速的大屏实时视频流播放方法的实现方式。本技术实施例还提出了另一种用于智慧高速的大屏实时视频流播放方法,下面将从网页前端侧描述该用于智慧高速的大屏实时视频流播放方法的实现方式。请参见图6,图6为本技术实施例所提供的又一种用于智慧高速的大屏实时视频流播放方法的流程图。需要说明的是,本技术实施例的用于智慧高速的大屏实时视频流播放方法可应用于网页前端。如图6所示,该用于智慧高速的大屏实时视频流播放方法可以包括但不限于如下步骤。
102.步骤601,向后端服务器发送网页前端的拉流请求。
103.其中,在本技术的实施例中,该拉流请求中携带目标摄像头信息和网页前端的标识信息。该拉流请求可用于指示后端服务器根据目标摄像头信息和标识信息向直播流服务
器发送推流信息,令直播流服务器基于推流信息向视频服务平台拉取目标摄像头的视频流数据,并将视频流数据转码成基于实时消息传输协议的实时视频流数据。
104.在本技术一些实施例中,实时消息传输协议至少包括但不限于rtmp和webrtc协议等中的任意一种。其中,webrtc可以实现基于网页的视频会议,标准是whatwg协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯能力。
105.在本技术一些实施例中,网页前端的标识信息可以包含网页前端所在大屏幕显示设备的网络标识和时间戳信息;该时间戳信息可以为网页前端第一次发送拉流请求时的当前时间戳信息。其中,该网络标识可以包括但不限于mac地址、ip地址等中任意一种或多种。
106.在一种实现方式中,响应于网页前端的页面重新启动,向后端服务器发送网页前端的拉流请求。举例而言,当网页前端的页面重新启动,可视为该网页前端向后端服务器第一次发送拉流请求。此时网页前端可以通过该网页前端所在大屏幕显示设备的mac地址和当前毫秒值生成一个md5值,将该md5值视为该网页前端的标识信息。这样,网页前端每次请求都携带该md5值发送给后端服务器,由后端服务器缓存,后续可以将此md5值作为该网页前端与后端服务器间的会话id。
107.在另一种实现方式中,响应于对高速道路地图上目标摄像头的触发操作,在大屏幕显示设备之上视频流播放界面中的目标区域创建网页前端,并向后端服务器发送网页前端的拉流请求。举例而言,如图3所示,大屏幕显示设备具有高速道路地图显示区域和网页前端展示区域。其中,该网页前端展示区域可以具有多个展示子区域,每个展示子区域处呈放一个网页前端,从而实现多个网页前端分屏展示的目的。如图3所示,由于每个网页前端具有各自的标识信息,这样,当用户对高速道路地图上目标摄像进行选中触发操作时,大屏幕显示设备可以在网页前端展示区域之中某个子区域处创建网页前端,基于该网页前端向后端服务器发送该网页前端的拉流请求。
108.步骤602,确定实时视频流数据的直播流播放地址。
109.在本技术的实施例中,直播流服务器在接收到后端服务器发送的网页前端推流信息时,可以从该推流信息中获取到目标摄像头视频流的rtsp直播流地址,基于该rtsp直播流地址从视频服务平台拉取该目标摄像头的视频流数据。直播流服务器可以基于网页前端用于播放目标摄像头视频流时所使用的流媒体传输协议,将从视频服务平台拉取到的目标摄像头的视频流数据转码成对应流媒体传输协议的实时视频流数据。在本技术的实施例中,直播流服务器可以将该直播流播放地址发送给后端服务器。或者,直播流服务器还可以基于网页前端交互通信,将该直播流播放地址发送给网页前端,以便网页前端基于该直播流播放地址从直播流服务器拉取对应实时视频流数据进行播放。
110.步骤603,基于直播流播放地址从直播流服务器拉取实时视频流数据进行播放。
111.在一种实现方式中,可以基于直播流播放地址从直播流服务器拉取实时视频流数据,并在目标区域处,基于网页前端播放实时视频流数据。其中,该目标区域可理解为网页前端在大屏幕显示设备上用于呈现该网页前端的区域。
112.根据本技术实施例的大屏实时视频流播放方法,可以应用于智慧高速,在网页前端开始请求推流时,获取该网页前端基于该请求所携带的目标摄像头信息和网页前端的标识信息,并根据目标摄像头信息和网页前端的标识信息从直播流服务器获取该目标摄像头实时视频流,该实时视频流为基于rtmp或webrtc传输协议的实时视频流数据,并将该目标
摄像头实时视频流的直播流播放地址,并基于标识信息将该直播流播放地址发送给该网页前端,由网页前端基于该直播流播放地址从直播流服务器拉取实时视频流数据进行播放,从而可以实现基于网页的实时视频流播放,达到智慧高速实时监控的目的。另外,通过网页前端基于rtmp或webrtc传输协议实现实时视频流的播放,可以保证视频低延迟,从而可以解决传统视频监控系统中存在的视频延迟大的问题。
113.为了进一步保障推流服务健壮的运行,可选地,在本技术一些实施例中,可以定期向后端服务器发送保活请求,令后端服务器基于定期收到的保活请求确定是否需要停止目标摄像头的推流。
114.举例而言,在启动推流后,网页前端可以携带标识信息定期给后端服务器发送保活请求,从而使得后端服务器能够接收到网页前端定期发送的保活请求。后端服务器在接收到网页前端发送的保活请求时,可以判断当前保活请求举例上一次保活请求是否超过预设时长(如2分钟),若是,则代表网页前端与后端服务器间的会话session的所有拉流停止。后端服务器需要判断该会话session上的摄像头推流是否需要停止,当其他网页前端与后端服务器的会话session的映射关系中也无此摄像头时,则可停止该摄像头的推流操作。由此,通过使用保活机制,可以进一步保障推流服务健壮运行。
115.上述本技术提供的实施例中,分别从后端服务器和网页前端的角度对本技术实施例提供的方法进行了介绍。为了实现上述本技术实施例提供的方法中的各功能,后端服务器和网页前端可以包括硬件结构、软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能可以以硬件结构、软件模块、或者硬件结构加软件模块的方式来执行。
116.请参见图7,为本技术实施例所提供的一种用于智慧高速的大屏实时视频流播放装置的结构框图。如图7所示,该用于智慧高速的大屏实时视频流播放装置可以包括:获取模块701、推流模块702、第一接收模块703和发送模块704。
117.其中,获取模块701用于响应于接收到网页前端发送的拉流请求,获取拉流请求中携带的目标摄像头信息和网页前端的标识信息。
118.在本技术的实施例中,网页前端为多个,多个网页前端分布在同一个大屏幕显示设备上,或者,多个网页前端分布在不同大屏幕显示设备上。
119.在本技术的实施例中,标识信息包含网页前端所在大屏幕显示设备的网络标识和时间戳信息;时间戳信息为网页前端第一次发送拉流请求时的当前时间戳信息。
120.推流模块702用于根据目标摄像头信息和标识信息,向直播流服务器发送推流信息,令直播流服务器基于推流信息向视频服务平台拉取目标摄像头的视频流数据,并将视频流数据转码成基于实时消息传输协议的实时视频流数据。
121.在一种实现方式中,推流模块702具体用于:获取缓存的摄像头标识与网页前端标识间的映射关系;根据目标摄像头信息、标识信息和映射关系,确定是否存在相同摄像头已被推流;响应于未存在相同摄像头已被推流,根据目标摄像头信息和标识信息,向直播流服务器发送推流信息。
122.在本技术的实施例中,实时消息传输协议至少包括但不限于实时消息传输协议rtmp和网页实时通信webrtc协议等中的任意一种。其中,该实时消息传输协议具有低延迟的特点。
123.第一接收模块703用于接收直播流服务器发送的实时视频流数据的直播流播放地址。
124.发送模块704用于基于标识信息,将直播流播放地址发送给网页前端,令网页前端基于直播流播放地址从直播流服务器拉取实时视频流数据进行播放。
125.在一种可能的实现方式中,发送模块704还可用于响应于存在相同摄像头已被推流,直接执行所述基于标识信息,将直播流播放地址发送给网页前端的步骤。
126.根据本技术实施例的大屏实时视频流播放装置,可以应用于智慧高速,在网页前端开始请求推流时,获取该网页前端基于该请求所携带的目标摄像头信息和网页前端的标识信息,并根据目标摄像头信息和网页前端的标识信息从直播流服务器获取该目标摄像头实时视频流,该实时视频流为基于rtmp或webrtc传输协议的实时视频流数据,并将该目标摄像头实时视频流的直播流播放地址,并基于标识信息将该直播流播放地址发送给该网页前端,由网页前端基于该直播流播放地址从直播流服务器拉取实时视频流数据进行播放,从而可以实现基于网页的实时视频流播放,达到智慧高速实时监控的目的。另外,通过网页前端基于rtmp或webrtc传输协议实现实时视频流的播放,可以保证视频低延迟,从而可以解决传统视频监控系统中存在的视频延迟大的问题。
127.为了进一步保障推流服务健壮的运行,可选地,在本技术一些实施例中,在上述实施例的基础上,如图8所示,本技术实施例的大屏实时视频流播放装置还可包括:第二接收模块805、确定模块806和停止模块807。
128.其中,第二接收模块805用于接收所述网页前端定期发送的保活请求;
129.确定模块806用于响应于当前接收到所述网页前端发送的保活请求,距离上一次接收到所述网页前端发送的保活请求超过预设时长,根据缓存的摄像头标识与网页前端标识间的映射关系,确定是否存在有其他网页前端请求对与所述目标摄像头信息对应的摄像头推流;
130.停止模块807用于响应于未存在有其他网页前端请求对与所述目标摄像头信息对应的摄像头推流,停止与所述目标摄像头信息对应的摄像头的推流操作。其中,图8中801-804和图7中701-704具有相同功能和结构。
131.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
132.本技术实施例还提出了又一种用于智慧高速的大屏实时视频流播放装置。
133.图9为本技术实施例所提供的又一种用于智慧高速的大屏实时视频流播放装置的结构框图。如图9所示,该用于智慧高速的大屏实时视频流播放装置可以包括:第一发送模块901、确定模块902和播放模块903。
134.其中,第一发送模块901用于向后端服务器发送网页前端的拉流请求;拉流请求中携带目标摄像头信息和网页前端的标识信息,拉流请求用于指示后端服务器根据目标摄像头信息和标识信息向直播流服务器发送推流信息,令直播流服务器基于推流信息向视频服务平台拉取目标摄像头的视频流数据,并将视频流数据转码成基于实时消息传输协议的实时视频流数据。
135.在本技术的实施例中,网页前端为多个,多个网页前端分布在同一个大屏幕显示设备上,或者,多个网页前端分布在不同大屏幕显示设备上。
136.在本技术的实施例中,标识信息包含网页前端所在大屏幕显示设备的网络标识和时间戳信息;时间戳信息为网页前端第一次发送拉流请求时的当前时间戳信息。
137.在本技术的实施例中,实时消息传输协议至少包括实时消息传输协议rtmp和网页实时通信webrtc协议中的任意一种。
138.在一种实现方式中,第一发送模块901响应于网页前端的页面重新启动,向后端服务器发送网页前端的拉流请求。
139.在另一种实现方式中,第一发送模块901响应于对高速道路地图上目标摄像头的触发操作,在大屏幕显示设备之上视频流播放界面中的目标区域创建网页前端,并向后端服务器发送网页前端的拉流请求。
140.确定模块902用于确定实时视频流数据的直播流播放地址。
141.播放模块903用于基于直播流播放地址从直播流服务器拉取实时视频流数据进行播放。在一种实现方式中,播放模块903可以基于直播流播放地址从直播流服务器拉取实时视频流数据,并在目标区域处,基于网页前端播放实时视频流数据。
142.根据本技术实施例的大屏实时视频流播放装置,可以应用于智慧高速,在网页前端开始请求推流时,获取该网页前端基于该请求所携带的目标摄像头信息和网页前端的标识信息,并根据目标摄像头信息和网页前端的标识信息从直播流服务器获取该目标摄像头实时视频流,该实时视频流为基于rtmp或webrtc传输协议的实时视频流数据,并将该目标摄像头实时视频流的直播流播放地址,并基于标识信息将该直播流播放地址发送给该网页前端,由网页前端基于该直播流播放地址从直播流服务器拉取实时视频流数据进行播放,从而可以实现基于网页的实时视频流播放,达到智慧高速实时监控的目的。另外,通过网页前端基于rtmp或webrtc传输协议实现实时视频流的播放,可以保证视频低延迟,从而可以解决传统视频监控系统中存在的视频延迟大的问题。
143.为了进一步保障推流服务健壮的运行,可选地,在本技术一些实施例中,在上述实施例的基础上,如图10所示,本技术实施例的大屏实时视频流播放装置还可包括:第二发送模块1004。其中,第二发送模块,用于定期向后端服务器发送保活请求,令后端服务器基于定期收到的保活请求确定是否需要停止目标摄像头的推流。其中,图10中1001-1003和图9中901-903具有相同功能和结构。
144.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
145.为了方便本领域技术人员更加清楚地了解本技术,下面将结合图11详细描述下高速公路视频监控系统的交互过程。
146.如图11所示,后端服务器1102通过视频服务平台1104获取到摄像头信息,并存入数据库db中,包含摄像头信息,比如摄像头ip地址,摄像头id,rtsp直播流地址等信息(s1)。网页前端1101发起请求以从后端服务器1102获取所有摄像头信息。网页前端1101可以携带目标摄像头信息向后端服务器1102发起拉流请求(s2)。后端服务器1102通过网页前端1101发起的请求,根据目标摄像头信息,携带rtsp直播流地址,开始向直播流服务器1103推流(s3)。直播流服务器1103开始向视频服务平台1104拉取视频流,并转码为指定的rtmp协议(s4)。网页前端1101从后端服务器1102中获取该摄像头视频流的rtmp直播流播放地址(s5)。网页前端1101基于该rtmp直播流播放地址从直播流服务器1103拉取对应实时视频流
数据并播放(s7)。
147.当对摄像头个数和请求数变多时,服务端推流增加,直播流服务器的资源和性能会达到瓶颈,需要采取有效的限制措施,否则随着cpu和内存的占有率增加,直播流服务器会崩溃,整个视频播放系统会处于瘫痪状态。因此,为了解决该问题,提出了一套有效的策略。具体如下:
148.当网页前端1101的界面重新启动,视为第一次请求,通过mac地址+当前毫秒值生成md5,如3c:06:30:03:26:69&1629859960000,md5为b399f4877901ddba5c8767b116898df6,每次请求都携带此md5,给到后端服务器1102,由后端服务器1102缓存,后续此md5作为sessionid。
149.当网页前端a开始请求推流时,携带此md5标识,获取某一摄像头实时视频,后端会开始推流到直播流服务器,同时缓存camera_id(摄像头id)和md5的映射关系,网页前端a从直播流服务器拉取视频流开始播放。依此类推,增加一路摄像头的拉流,则后端会开启一份推流,同时缓存一份camera_id和md5的映射关系。即md5与camera_id的映射关系为多对1。
150.依此类推,当网页前端b开始请求推流时,同样执行以上操作,在推送时,后端服务器需要判断下是否同样的camera_id是否已经推流,如果开始推流则无需增加推流操作,直接将直播流播放地址给到网页前端b,由网页前端b拉流即可,但同样会增加一份md5与camera_id的映射关系。
151.为了进一步保障推流服务健壮的运行,在启动推流后,网页前端携带md5定期给后端服务器发送保活请求,由后端服务器判断当保活请求距离上次请求,超过2分钟,则代表此session的所有拉流停止,后端服务器则需要判断此session上的摄像头推流是否需要停止,当其他session的映射中也无此摄像头时,则可停止其推流操作。
152.根据本技术的实施例,本技术还提供了一种电子设备和一种可读存储介质。
153.如图12所示,是根据本技术实施例的大屏实时视频流播放方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
154.如图12所示,该电子设备包括:一个或多个处理器1201、存储器1202,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图12中以一个处理器1201为例。
155.存储器1202即为本技术所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本技术所提供的大屏实时视频流播放方法。本技术的非瞬时计算机可读存储介质存储计算机指令,该计算机
指令用于使计算机执行本技术所提供的大屏实时视频流播放方法。
156.存储器1202作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本技术实施例中的大屏实时视频流播放方法对应的程序指令/模块。处理器1201通过运行存储在存储器1202中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的大屏实时视频流播放方法。
157.存储器1202可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据大屏实时视频流播放的电子设备的使用所创建的数据等。此外,存储器1202可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1202可选包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至xxx的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
158.用以实现大屏实时视频流播放方法的电子设备还可以包括:输入装置1203和输出装置1204。处理器1201、存储器1202、输入装置1203和输出装置1204可以通过总线或者其他方式连接,图12中以通过总线连接为例。
159.输入装置1203可接收输入的数字或字符信息,以及产生与大屏实时视频流播放的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1204可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
160.此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
161.这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
162.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来
将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
163.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。
164.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
165.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本技术公开的技术方案所期望的结果,本文在此不进行限制。
166.上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1