CN115567693B - 遥控驾驶实时视频获取方法、装置、电子设备及存储介质 - Google Patents
遥控驾驶实时视频获取方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115567693B CN115567693B CN202211471093.7A CN202211471093A CN115567693B CN 115567693 B CN115567693 B CN 115567693B CN 202211471093 A CN202211471093 A CN 202211471093A CN 115567693 B CN115567693 B CN 115567693B
- Authority
- CN
- China
- Prior art keywords
- video
- video stream
- target
- address information
- remote control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/183—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source
- H04N7/185—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source from a mobile camera, e.g. for remote control
Abstract
本公开涉及遥控驾驶实时视频获取方法、装置、电子设备及存储介质,涉及遥控驾驶技术领域,其方法包括:接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,以使遥控驾驶客户端基于目标地址信息从目标视频流服务器获取目标视频流。这样目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,可以避免因视频流服务器运行异常而导致获取目标视频流失败的问题,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
Description
技术领域
本公开涉及视频传输技术领域,尤其涉及遥控驾驶实时视频获取方法、装置、电子设备及存储介质。
背景技术
随着汽车行业以及互联网技术的发展,用户对车辆驾驶过程中的可操作性有了更高的需求。并且,用户可以通过电脑等遥控驾驶客户端,智能化地运程操控无人驾驶车辆。
在通过遥控驾驶客户端远程操控无人驾驶车辆时,遥控驾驶客户端需要获取其所要操控无人驾驶车辆行驶过程的视频流。
相关技术中,安装在无人驾驶车辆上的摄像头采集到视频流后,将所采集的视频流上传到视频流服务器,遥控驾驶客户端从视频流服务器中获取其所要控制无人驾驶车辆的视频流。但是如果视频流服务器出现异常,可能会导致遥控驾驶客户端无法成功获取其所要控制无人驾驶车辆的视频流,进而导致用户无法通过遥控驾驶客户端远程操作无人驾驶车辆。
发明内容
本公开提供了一种遥控驾驶实时视频获取方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种遥控驾驶实时视频获取方法,所述方法包括:
接收遥控驾驶客户端发送的视频获取请求;其中,所述视频获取请求用于请求获取目标无人驾驶车辆采集到的目标视频流,所述视频获取请求携带所述目标视频流的目标视频标识信息;
响应于所述视频获取请求,在共享缓存中查找所述目标视频标识信息对应的目标视频流服务器的目标地址信息;其中,所述共享缓存用于存储多个无人驾驶车辆所采集到的视频流的视频标识信息,以及每个视频标识信息对应的视频流服务器的地址信息,并在任一视频标识信息对应的视频流服务器运行异常时,更新所述视频标识信息对应的视频流服务器的地址信息,更新后的地址信息对应的视频流服务器运行正常;
向所述遥控驾驶客户端发送所述目标地址信息,以使所述遥控驾驶客户端基于所述目标地址信息从所述目标视频流服务器获取所述目标视频流。
可选的,所述方法还包括:
接收推流端推送的视频流,所述视频流携带所述推流端的源IP地址、所述推流端的源端口信息和所述视频流的视频标识信息;
基于所述源IP地址和所述源端口信息确定视频流服务器的地址信息;
基于所述地址信息将所述视频流发送到所述视频流服务器,以使得所述视频流服务器将所述视频标识信息和所述视频流服务器的地址信息注册到所述共享缓存中。
可选的,所述方法还包括:
在所述视频流服务器运行异常的情况下,停止向所述视频流服务器发送所述视频流;
基于所述源IP地址和所述源端口信息,确定更新后的视频流服务器的地址信息;其中,所述更新后的视频流服务器运行正常;
基于所述更新后的视频流服务器的地址信息,将所述视频流发送到所述更新后的视频流服务器,以使得所述更新后的视频流服务器将所述更新后的视频流服务器的地址信息,更新注册到所述共享缓存。
可选的,所述基于所述源IP地址和所述源端口信息,确定更新后的视频流服务器的地址信息,包括:
通过一致性哈希算法,将所述源IP地址信息和所述源端口信息映射到更新后的视频流服务器的地址信息;其中,在当前正常运行的视频流服务器中,更新后的视频流服务器为负载量小于其他视频流服务器的负载量。
可选的,所述方法还包括:
监测多个遥控驾驶客户端的工作状态;其中,所述工作状态包括空闲状态或非空闲状态;
在获取到推流端推送的无人驾驶车辆采集到的视频流时,向所述多个遥控驾驶客户端中处于空闲状态的遥控驾驶客户端发送所述视频流的视频标识信息,以使所述处于空闲状态的遥控驾驶客户端在需要获取所述视频流时,生成携带所述视频标识信息的视频获取请求。
可选的,所述接收推流端推送的视频流,包括:
接收推送端通过目标协议发送的视频流;所述目标协议用于检测在传输所述视频流的过程中是否存在数据包传输失败;
在所述目标协议检测到传输所述视频流的过程中,存在数据包传输失败的情况下,重新发送所述数据包。
可选的,所述遥控驾驶客户端基于所述目标地址信息从所述目标视频流服务器获取所述目标视频流,包括:
所述遥控驾驶客户端通过所述目标协议,向所述目标地址信息对应的目标视频流服务器发送视频流获取请求;
接收所述目标视频流服务器发送的目标视频流;
在所述目标协议检测到传输所述目标视频流的过程中,存在数据包传输失败的情况下,重新通过所述目标协议,再次向所述目标视频流服务器发送视频流获取请求;
接收所述目标视频流服务器发送的上次传输失败的数据包。
根据本公开的另一方面,提供了一种遥控驾驶实时视频获取装置,所述装置包括:
视频获取请求接收模块,用于接收遥控驾驶客户端发送的视频获取请求;其中,所述视频获取请求用于请求获取目标无人驾驶车辆采集到的目标视频流,所述视频获取请求携带所述目标视频流的目标视频标识信息;
目标地址信息查找模块,用于响应于所述视频获取请求,在共享缓存中查找所述目标视频标识信息对应的目标视频流服务器的目标地址信息;其中,所述共享缓存用于存储多个无人驾驶车辆所采集到的视频流的视频标识信息,以及每个视频标识信息对应的视频流服务器的地址信息,并在任一视频标识信息对应的视频流服务器运行异常时,更新所述视频标识信息对应的视频流服务器的地址信息,更新后的地址信息对应的视频流服务器运行正常;
目标地址信息发送模块,用于向所述遥控驾驶客户端发送所述目标地址信息,以使所述遥控驾驶客户端基于所述目标地址信息从所述目标视频流服务器获取所述目标视频流。
可选的,所述装置还包括:
视频流接收模块,用于接收推流端推送的视频流,所述视频流携带所述推流端的源IP地址、所述推流端的源端口信息和所述视频流的视频标识信息;
地址信息确定模块,用于基于所述源IP地址和所述源端口信息确定视频流服务器的地址信息;
视频流发送模块,用于基于所述地址信息将所述视频流发送到所述视频流服务器,以使得所述视频流服务器将所述视频标识信息和所述视频流服务器的地址信息注册到所述共享缓存中。
可选的,视频流发送模块,还用于在所述视频流服务器运行异常的情况下,停止向所述视频流服务器发送所述视频流;
地址信息确定模块,用于基于所述源IP地址和所述源端口信息,确定更新后的视频流服务器的地址信息;其中,所述更新后的视频流服务器运行正常;
视频流发送模块,用于基于所述更新后的视频流服务器的地址信息,将所述视频流发送到所述更新后的视频流服务器,以使得所述更新后的视频流服务器将所述更新后的视频流服务器的地址信息,更新注册到所述共享缓存。
可选的,所述地址信息确定模块,具体用于:
通过一致性哈希算法,将所述源IP地址信息和所述源端口信息映射到更新后的视频流服务器的地址信息;其中,在当前正常运行的视频流服务器中,更新后的视频流服务器为负载量小于其他视频流服务器的负载量。
可选的,所述装置还包括:
状态监测模块,用于监测多个遥控驾驶客户端的工作状态;其中,所述工作状态包括空闲状态或非空闲状态;
视频标识信息发送模块,用于在获取到推流端推送的无人驾驶车辆采集到的视频流时,向所述多个遥控驾驶客户端中处于空闲状态的遥控驾驶客户端发送所述视频流的视频标识信息,以使所述处于空闲状态的遥控驾驶客户端在需要获取所述视频流时,生成携带所述视频标识信息的视频获取请求。
可选的,所述视频流接收模块,具体用于:
接收推送端通过目标协议发送的视频流;所述目标协议用于检测在传输所述视频流的过程中是否存在数据包传输失败;
在所述目标协议检测到传输所述视频流的过程中,存在数据包传输失败的情况下,重新发送所述数据包。
可选的,所述遥控驾驶客户端,包括:
请求发送模块,用于所述遥控驾驶客户端通过所述目标协议,向所述目标地址信息对应的目标视频流服务器发送视频流获取请求;
视频流接收模块,用于接收所述目标视频流服务器发送的目标视频流;
请求发送模块,还用于在所述目标协议检测到传输所述目标视频流的过程中,存在数据包传输失败的情况下,重新通过所述目标协议,再次向所述目标视频流服务器发送视频流获取请求;
视频流接收模块,还用于接收所述目标视频流服务器发送的上次传输失败的数据包。
根据本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开的上述方法。
本公开实施例提供的技术方案,接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,遥控驾驶客户端可以基于目标地址信息从目标视频流服务器获取目标视频流。
本公开的技术方案中,由于任一视频标识信息对应的视频流服务器运行异常时,会更新该视频标识信息对应的视频流服务器的地址信息,且更新后的地址信息对应的视频流服务器运行正常。因此,目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,可以避免因视频流服务器运行异常而导致获取目标视频流失败的情况出现,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1为本公开实施例提供的整体技术架构示意图;
图2为本公开一示例性实施例提供的一种遥控驾驶实时视频获取方法的流程图;
图3为本公开一示例性实施例提供的在共享缓存中注册视频流信息的一种实施方式的流程图;
图4为本公开一示例性实施例提供的一种在共享缓存中更新视频流信息一种实施方式的流程图;
图5为本公开一示例性实施例提供的一种遥控驾驶实时视频获取装置的结构框图;
图6为本公开一示例性实施例提供的电子设备的结构框图;
图7为本公开一示例性实施例提供的计算机系统的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
随着汽车行业以及互联网技术的发展,用户对车辆驾驶过程中的可操作性有了更高的需求。并且,用户可以通过电脑等遥控驾驶客户端,智能化地运程操控无人驾驶车辆。
在通过遥控驾驶客户端远程操控无人驾驶车辆时,遥控驾驶客户端需要获取其所要操控无人驾驶车辆行驶过程的视频流。
相关技术中,安装在无人驾驶车辆上的摄像头采集到视频流后,将所采集的视频流上传到视频流服务器,遥控驾驶客户端从视频流服务器中获取其所要控制无人驾驶车辆的视频流。但是如果视频流服务器出现异常,可能会导致遥控驾驶客户端无法成功获取其所要控制无人驾驶车辆的视频流,进而导致用户无法通过遥控驾驶客户端远程操作无人驾驶车辆。
因此,为了解决上述技术问题,本公开实施例提供了一种遥控驾驶实时视频获取方法、装置、电子设备及存储介质。
为了方案描述清楚,下面首先结合整体技术架构来对本公开实施例提供的技术方案进行详细阐述。如图1所示,本公开实施例的技术方案涉及到推流端、代理服务器Nginx、视频流服务器ZLMediaKit以及遥控驾驶客户端。
其中,在实际应用中,推流端通常为多个,在图1中以两个推流端为例进行说明,两个推流端分别为推流端1和推流端2。
代理服务器可以分两个服务器,也可以是一个服务器中的两个不同的模块,这都是合理的,在图1中,分别称为Nginx1和Nginx2。
视频流服务器通常为多个,在图1中以3个视频流服务器为例进行说明,3个视频流服务器分别为ZLMediaKit1、ZLMediaKit2和ZLMediaKit3。其中,ZLMediaKit是开源的流媒体服务器。
遥控驾驶客户端通常也为多个,在图1中以2个遥控驾驶客户端为例进行说明,2个遥控驾驶客户端分别为遥控驾驶客户端1和遥控驾驶客户端2。
在对推流端、代理服务器Nginx、视频流服务器ZLMediaKit以及遥控驾驶客户端进行简单介绍之后,下面将对代理服务器Nginx、视频流服务器ZLMediaKit以及遥控驾驶客户端之间的交互过程进行详细阐述。
具体的,无人驾驶车辆中安装有摄像头,摄像头可以实时采集无人驾驶车辆行驶过程的视频流。推流端1可以对无人驾驶车辆1安装的摄像头所采集的视频流进行编码以及封装处理,例如,将视频流编码为HEVC格式,并按照rtp(Real-time Transport Protoco,实时传输协议)或者srt(Secure Reliable Transport,安全可靠传输协议)协议对视频流进行封装,并将编码封装后的视频流推送到代理服务器Nginx1,该视频流可以携带推流端1的源IP地址、推流端1的源端口信息,以及视频流的视频标识信息,该视频标识信息可以是无人驾驶车辆1的车辆标识信息,还可以是无人驾驶车辆1中安装的摄像头的摄像头标识信息等,这都是合理的,本公开实施例对此不做具体限定。
同样的,推流端2也可以对无人驾驶车辆2安装的摄像头所采集的视频流进行编码以及封装处理,例如,将视频流编码为HEVC格式,并按照rtp或者srt协议对视频流进行封装,并将编码封装后的视频流推送到代理服务器Nginx1,该视频流可以携带推流端2的源IP地址、推流端2的源端口信息,以及视频流的视频标识信息,该视频标识信息可以是无人驾驶车辆2的车辆标识信息,还可以是无人驾驶车辆2中安装的摄像头的摄像头标识信息等,这都是合理的,本公开实施例对此不做具体限定。
由于srt协议自带丢包重传功能,因此,可以解决视频流在传输过程中的丢包问题,有助于避免遥控驾驶客户端因视频流数据丢失,而导致直播视频流的过程中出现花屏的问题。
Nginx1接收到推流端1发送的视频流1后,可以得到视频流1所携带的推流端1的源IP地址1、源端口信息1以及视频流标识信息1。Nginx1可以通过一致性哈希算法,将源IP地址1和源端口信息1映射到视频流服务器的地址信息。在实际应用中,该视频流服务器的地址信息可以是ZLMediaKit1、ZLMediaKit2或者ZLMediaKit3。假设映射所得的视频流服务器的地址信息为ZLMediaKit1,那么,可以将视频流1发送到ZLMediaKit1,ZLMediaKit1收到视频流1后,将该视频流1的视频标识信息1以及其自身的地址信息即ZLMediaKit1注册到共享缓存中,共享缓存接收到视频标识信息1和ZLMediaKit1,可以将视频标识信息1和ZLMediaKit1进行对应存储。
同样的,Nginx1接收到推流端2发送的视频流2后,可以得到视频流21所携带的推流端2的源IP地址2、源端口信息2以及视频流标识信息2。Nginx1可以通过一致性哈希算法,将源IP地址2和源端口信息2映射到视频流服务器的地址信息。在实际应用中,该视频流服务器的地址信息可以是ZLMediaKit1、ZLMediaKit2或者ZLMediaKit3。假设映射所得的视频流服务器的地址信息为ZLMediaKit2中,那么,可以将视频流2发送到ZLMediaKit2,ZLMediaKit2收到视频流2后,将该视频流2的视频标识信息2以及其自身的地址信息即ZLMediaKit2注册到共享缓存,共享缓存接收到视频标识信息1和ZLMediaKit1,可以将视频标识信息1和ZLMediaKit1进行对应存储。
假设用户1需要通过遥控驾驶客户端1来获取视频流1,用户2需要通过遥控驾驶客户端2来获取视频流2。
遥控驾驶客户端1可以通过gateway去共享缓存中查找视频标识信息1对应的视频流服务器1的地址信息ZLMediaKit1,然后通过srt协议向ZLMediaKit1请求视频流1,并播放视频流1,用户1可以基于播放的视频流1来遥控对应的无人驾驶车辆。
同样的,遥控驾驶客户端2可以通过gateway去共享缓存中查找视频标识信息2对应的视频流服务器2的地址信息ZLMediaKit2,然后通过srt协议向ZLMediaKit2请求视频流2,并播放视频流2,用户2可以基于播放的视频流2来遥控对应的无人驾驶车辆。
并且,由于在本公开的系统架构中存在多个视频流服务器,即存在多个ZLMediaKit,这多个ZLMediaKit可以组成视频流服务器集群,可以满足大并发量的需求。
具体的,如果某些ZLMediaKit宕机,这些ZLMediaKit上的视频流会被自动切换到其他ZLMediaKit。切换ZLMediaKit的过程可以为:代理服务器Nginx1可以对视频流携带的推流端的源IP地址和源端口信息进行再一次的一致性哈希,得到更新后的ZLMediaKit的地址信息,并将原本发送至宕机的ZLMediaKit的视频流,发送至更新后的ZLMediaKit。更新后的ZLMediaKit会将发送至其的视频流的视频标识信息,以及其自身的地址信息存储于共享缓存中,遥控驾驶客户端需要播放该视频流时,可以再次通过gateway在共享缓存中查询到该更新后的ZLMediaKit的地址信息,并基于该地址信息,向更新后的ZLMediaKit重新请求视频流,以恢复到正常播放视频流。
需要说明的是,一致性哈希算法可以实现多个视频流服务器即ZLMediaKit的负载均衡,在实际应用中,如果已经在某个ZLMediaKit存储了较多无人驾驶车辆的视频流,那么,再次需要存储其他无人驾驶车辆的视频流时,可以通过一致性哈希算法,将该视频流中携带的源IP地址和源端口信息,映射到其他ZLMediaKit的地址信息,以通过其他ZLMediaKit来存储该其他无人驾驶车辆的视频流,从而实现了多个ZLMediaKit的负载均衡。
在实际应用中,遥控驾驶客户端中设置有Libvlc模块,本公开中,可以对Libvlc模块参数进行优化:a、将参数network-caching从5000ms改成100ms,从而降低缓存导致的延时;b.将参数 clock-jitter 设置为0,以实现最低延时;c.将avcodec-hw设置为any可以自动选择最适合的硬解码方式;d.将avcodec-threads设置为1,从而只使用一个线程进行解码,避免多个线程各自缓存帧导致延时增大;e.设置--no-audio不使用音频模块从而避免音频解码导致的延时;f.设置--no-osd 不使用字幕模块避免字幕渲染导致的延时,
视频流服务器ZLMediaKit中的参数可以进行如下优化:a.转协议全局关闭音频:general.enble_audio 设置0;b.关闭全局添加静音aac音频:general.addMuteAudio设置为0。
在对本公开实施例的整体技术方案进行详细阐述后,下面将对本公开实施例提供的一种遥控驾驶实时视频获取方法、装置、电子设备及存储介质进行详细阐述。
需要说明的是,本公开实施例提供的一种遥控驾驶实时视频获取方法的执行主体可以为代理服务器nginx。
本公开实施例首先提供了一种遥控驾驶实时视频获取方法,如图2所示,该方法可以包括如下步骤:
在步骤S210中,接收遥控驾驶客户端发送的视频获取请求。
其中,视频获取请求用于请求获取目标无人驾驶车辆采集到的目标视频流,视频获取请求携带目标视频流的目标视频标识信息。
具体的,用户需要通过遥控驾驶客户端远程遥控无人驾驶车辆时,可以通过遥控驾驶客户端向作为执行主体的代理服务器发送视频获取请求,该视频获取请求用于请求获取目标无人驾驶车辆中的摄像头所采集到的目标视频流,该目标无人驾驶车辆即为用户需要通过遥控驾驶客户端远程控制的无人驾驶车辆。在实际应用中,可能有很多辆无人驾驶车辆,例如,可能有10辆无人驾驶车辆,目标无人驾驶车辆可以是10辆无人驾驶车辆中的任一辆无人驾驶车辆。目标视频流为目标无人驾驶车辆行驶过程中,摄像头采集到的视频流。
并且,视频获取请求携带目标视频流的视频标识信息,为了方案描述清楚,将该视频标识信息称为目标视频标识信息。该目标视频标识信息可以是目标无人驾驶车辆的车辆标识信息,还可以是目标无人驾驶车辆中安装摄像头的摄像头标识信息等,这都是合理的,本公开实施例对此不做具体限定。
在步骤S220中,响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息。
其中,共享缓存用于存储多个无人驾驶车辆所采集到的视频流的视频标识信息,以及每个视频标识信息对应的视频流服务器的地址信息,并在任一视频标识信息对应的视频流服务器运行异常时,更新视频标识信息对应的视频流服务器的地址信息,更新后的地址信息对应的视频流服务器运行正常。
具体的,每个无人驾驶车辆中安装有摄像头,摄像头可以实时采集无人驾驶车辆行驶过程的视频流。每个无人驾驶车辆可以对应一个推流端,推流端可以对无人驾驶车辆安装的摄像头所采集的视频流进行编码以及封装处理,例如,将视频流编码为HEVC格式,并按照rtp或者srt协议对视频流进行封装,并将编码封装后的视频流推送到作为执行主体的代理服务器,该视频流可以携带推流端1的源IP地址、推流端1的源端口信息,以及视频流的视频标识信息,该视频标识信息可以是无人驾驶车辆1的车辆标识信息,还可以是无人驾驶车辆1中安装摄像头的摄像头标识信息等,这都是合理的,本公开实施例对此不做具体限定。
由于srt协议自带丢包重传功能,因此,可以解决视频流在传输过程中的丢包问题,有助于避免遥控驾驶客户端因视频流数据丢失,而导致直播视频流的过程中出现花屏的问题。
作为执行主体的服务器接收到一个推流端发送的视频流后,可以得到视频流所携带的推流端的源IP地址、源端口信息以及视频流标识信息。并且,作为执行主体的服务器可以通过一致性哈希算法,将源IP地址和源端口信息映射到视频流服务器的地址信息。在实际应用中,该视频流服务器的地址信息可以是多个视频流服务器中的任一视频流服务器。在映射得到视频流服务器的地址信息后,可以基于映射所得的地址信息,将该视频流发送到对应的视频流服务器,该视频流服务器存储该视频流。并且,视频流服务器可以将该视频流的视频标识信息以及其自身的地址信息注册到共享缓存中,共享缓存接收到视频标识信息和视频流服务器的地址信息后,可以将视频标识信息和视频流服务器的地址信息进行对应存储。
并且,由于在本公开的系统架构中存在多个视频流服务器,这多个视频流服务器可以组成视频流服务器集群,可以满足大并发量的需求。具体的,如果某些视频流服务器宕机,这些视频流服务器上的视频流会被自动切换到其他视频流服务器。切换视频流服务器的过程可以为:作为执行主体的代理服务器可以对视频流携带的推流端的源IP地址和源端口信息进行再一次的一致性哈希,得到更新后的视频流服务器的地址信息,并将原本发送至宕机的视频流服务器的视频流,发送至更新后的视频流服务器。更新后的视频流服务器会将发送至其的视频流的视频标识信息,以及其自身的地址信息更新注册到共享缓存中。
由上述描述可知,共享缓存中存储了各个无人驾驶车辆所采集视频流的视频标识信息,以及,每个视频标识信息对应的视频流服务器的地址信息。
因此,作为执行主体的代理服务器接收到视频获取请求后,响应于该视频获取请求,即对该视频获取请求进行解析,得到目标视频流的目标视频标识信息。并可以在共享缓存中已经存储的视频标识信息与视频流服务器的地址信息之间的对应关系,查找到目标视频标识信息对应的目标视频流服务器的目标地址信息。
在步骤S230中,向遥控驾驶客户端发送目标地址信息,以使遥控驾驶客户端基于目标地址信息从目标视频流服务器获取目标视频流。
具体的,作为执行主体的代理服务器在共享缓存中,查找到目标视频标识信息对应的目标视频流服务器的目标地址信息后,将目标地址信息发送至遥控驾驶客户端,遥控驾驶客户端接收到目标地址信息后,可以向目标地址信息对应的目标视频流服务器发送视频获取请求,目标视频流服务器接收到视频获取请求后,可以将目标视频流发送至遥控驾驶客户端。遥控驾驶客户端接收到目标视频流后,可以直播目标视频流,从而用户可以对目标无人驾驶车辆进行遥控。
在一种实施方式中,遥控驾驶客户端基于目标地址信息从目标视频流服务器获取目标视频流,可以包括如下4个步骤:
步骤1,遥控驾驶客户端通过目标协议,向目标地址信息对应的目标视频流服务器发送视频流获取请求。
步骤2,接收目标视频流服务器发送的目标视频流。
步骤3,在目标协议检测到传输目标视频流的过程中,存在数据包传输失败的情况下,重新通过目标协议,再次向目标视频流服务器发送视频流获取请求。
步骤4,接收目标视频流服务器发送的上次传输失败的数据包。
具体的,目标协议可以为srt协议。由于srt协议自带丢包重传功能,因此,遥控驾驶客户端可以通过srt协议向目标视频流服务器请求目标视频流,在srt协议检测到传输目标视频流的过程,存在数据包传输失败的情况下,遥控驾驶客户端可以通过srt协议,再次向目标视频流服务器发送视频流获取请求,目标视频流服务器再次向遥控驾驶客户端发送上次传输失败的数据包,从而可以解决目标视频流在传输过程中的丢包问题,避免遥控驾驶客户端因视频流数据丢失,而导致直播视频流的过程中出现花屏的问题。用户可以更好地通过遥控驾驶客户端来远程操控目标无人驾驶车辆。
并且,遥控驾驶客户端通过srt协议从目标视频流服务器获取目标视频流,可以规避相关技术中使用rtsp协议获取视频流导致的高延时问题。即通过srt协议从目标视频流服务器获取目标视频流,可以满足低延时的需求。
本公开实施例提供的技术方案,接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,遥控驾驶客户端可以基于目标地址信息从目标视频流服务器获取目标视频流。
本公开的技术方案中,由于任一视频标识信息对应的视频流服务器运行异常时,会更新该视频标识信息对应的视频流服务器的地址信息,且更新后的地址信息对应的视频流服务器运行正常。因此,目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,可以避免因视频流服务器运行异常而导致获取目标视频流失败的情况出现,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
在上述图2所示实施例的基础上,在一种实施方式中,该遥控驾驶实时视频获取方法,如图3所示,还可以包括如下步骤:
在步骤S310中,接收推流端推送的视频流。
其中,视频流携带推流端的源IP地址、推流端的源端口信息和视频流的视频标识信息。
具体的,每个无人驾驶车辆中安装有摄像头,摄像头可以实时采集无人驾驶车辆行驶过程的视频流。每个无人驾驶车辆可以对应一个推流端,推流端可以对无人驾驶车辆安装的摄像头所采集的视频流进行编码以及封装处理,例如,将视频流编码为HEVC格式,并按照rtp或者srt协议对视频流进行封装,并将编码封装后的视频流推送到作为执行主体的代理服务器,该视频流可以携带推流端1的源IP地址、推流端1的源端口信息,以及视频流的视频标识信息,该视频标识信息可以是无人驾驶车辆1的车辆标识信息,还可以是无人驾驶车辆1中安装摄像头的摄像头标识信息等,这都是合理的。
在一种实施方式中,接收推流端推送的视频流,可以包括如下两个步骤:
步骤1,接收推送端通过目标协议发送的视频流。
其中,目标协议用于检测在传输视频流的过程中是否存在数据包传输失败。
步骤2,在目标协议检测到传输视频流的过程中,存在数据包传输失败的情况下,重新发送数据包。
具体的,目标协议可以为srt协议。由于srt协议自带丢包重传功能,因此,可以通过srt协议发送视频流,在srt协议检测到传输视频流的过程,存在数据包传输失败的情况下,推送端可以重新向作为执行主体的代理服务器发送视频流,从而可以解决视频流在传输过程中的丢包问题,有助于避免遥控驾驶客户端因视频流数据丢失,而导致直播视频流的过程中出现花屏的问题。
在步骤S320中,基于源IP地址和源端口信息确定视频流服务器的地址信息。
具体的,作为执行主体的服务器接收到推流端发送的视频流后,可以得到视频流所携带的推流端的源IP地址、源端口信息以及视频流标识信息。并且,作为执行主体的服务器可以通过一致性哈希算法,将源IP地址和源端口信息映射到视频流服务器的地址信息。
在步骤S330中,基于地址信息将视频流发送到视频流服务器,以使得视频流服务器将视频标识信息和视频流服务器的地址信息注册到共享缓存中。
具体的,在映射得到视频流服务器的地址信息后,可以基于映射所得的地址信息,将该视频流发送到对应的视频流服务器,该视频流服务器存储该视频流。并且,视频流服务器可以将该视频流的视频标识信息以及其自身的地址信息注册到共享缓存中,共享缓存接收到视频标识信息和视频流服务器的地址信息后,可以将视频标识信息和视频流服务器的地址信息进行对应存储。
可见,通过本实施方式提供的技术方案,通过将视频流的视频标识信息与视频标识信息对应的视频流服务器的地址信息注册到共享缓存中,遥控驾驶客户端需要获取任一无人驾驶车辆所采集的目标视频流时,可以从共享缓存中获取目标视频流的目标视频标识信息,对应的目标视频流服务器的目标地址信息,进而可以基于目标地址信息成功地从目标视频流服务器获取到目标视频流。
在图3所示实施例的基础上,在一种实施方式中,如图4所示,该遥控驾驶实时视频获取方法还可以包括如下步骤:
在步骤S410中,在视频流服务器运行异常的情况下,停止向视频流服务器发送视频流。
具体的,作为执行主体的代理服务器可以实时监控视频流服务器的运行状态,如果视频流服务器出现宕机等异常情况,则判定视频流服务器运行异常,为了防止遥控驾驶客户端无法成功获取视频流,停止向视频流服务器发送视频流。
在步骤S420中,基于源IP地址和源端口信息,确定更新后的视频流服务器的地址信息。
其中,更新后的视频流服务器运行正常。
在步骤S430中,基于更新后的视频流服务器的地址信息,将视频流发送到更新后的视频流服务器,以使得更新后的视频流服务器将所述视频标识信息和更新后的视频流服务器的地址信息,更新注册到共享缓存中。
由于在本公开的系统架构中存在多个视频流服务器,这多个视频流服务器可以组成视频流服务器集群,可以满足大并发量的需求。具体的,如果某些视频流服务器宕机,这些视频流服务器上的视频流会被自动切换到其他视频流服务器。切换视频流服务器的过程可以为:作为执行主体的代理服务器可以对视频流携带的推流端的源IP地址和源端口信息进行再一次的一致性哈希,得到更新后的视频流服务器的地址信息,并将原本发送至宕机的视频流服务器的视频流,发送至更新后的视频流服务器。更新后的视频流服务器会将发送至其的视频流的视频标识信息,以及其自身的地址信息更新注册到共享缓存中。
作为本公开实施例的一种实施方式,基于源IP地址和源端口信息,确定更新后的视频流服务器的地址信息,可以包括如下步骤:
通过一致性哈希算法,将源IP地址信息和源端口信息映射到更新后的视频流服务器的地址信息。
其中,在当前正常运行的视频流服务器中,更新后的视频流服务器为负载量小于其他视频流服务器的负载量。
具体的,在确定更新后的视频流服务器的地址信息时,可以再次通过一致性哈希算法,将源IP地址信息和源端口信息映射到更新后的视频流服务器的地址信息。并且,为了实现负载均衡,即避免因视频流服务器的负载过重而导致视频流服务器运行异常,在当前正常运行的视频流服务器中,更新后的视频流服务器的负载量小于其他视频流服务器的负载量。
在遥控驾驶客户端需要获取无人驾驶车辆所采集的视频流后,可以成功地从对应的视频流服务器中获取到视频流,进而用户可以通过遥控驾驶客户端远程操控无人驾驶车辆。
在上述实施例的基础上,在一种实施方式中,该遥控驾驶实时视频获取方法还可以包括如下两个步骤:
步骤1:监测多个遥控驾驶客户端的工作状态。
其中,工作状态包括空闲状态或非空闲状态。
步骤2:在获取到推流端推送的无人驾驶车辆采集到的视频流时,向多个遥控驾驶客户端中处于空闲状态的遥控驾驶客户端发送视频流的视频标识信息,以使处于空闲状态的遥控驾驶客户端在需要获取视频流时,生成携带视频标识信息的视频获取请求。
具体的,作为执行主体的服务器可以实时或者每隔预设时间,监测多个遥控驾驶客户端的工作状态。对于一个遥控驾驶客户端,如果该遥控假设客户端当前负载量较高,说明该遥控驾驶客户端当前处于非空闲状态;如果该遥控假设客户端当前负载量较小,说明该遥控驾驶客户端当前处于空闲状态。
作为执行主体的服务器在获取到推流端视频流时,可以向处于空闲状态的遥控驾驶客户端发送视频流的视频标识信息,这样,处于空闲状态的遥控驾驶客户端在需要获取视频流时,可以利用该视频标识信息,生成携带视频标识信息的视频获取请求,并向作为执行主体的代理服务器发送视频获取请求。
这样,处于空闲状态的遥控驾驶客户端可以及时地获取视频流,用户及时地通过处于空闲状态的遥控驾驶客户端,远程操控无人驾驶车辆。
在采用对应各个功能划分各个功能模块的情况下,本公开实施例提供了一种遥控驾驶实时视频获取装置,该遥控驾驶实时视频获取装置可以为服务器或应用于服务器的芯片。图5为本公开一示例性实施例提供的遥控驾驶实时视频获取装置的功能模块示意性框图。如图5所示,该遥控驾驶实时视频获取装置包括:
视频获取请求接收模块510,用于接收遥控驾驶客户端发送的视频获取请求;其中,所述视频获取请求用于请求获取目标无人驾驶车辆采集到的目标视频流,所述视频获取请求携带所述目标视频流的目标视频标识信息;
目标地址信息查找模块520,用于响应于所述视频获取请求,在共享缓存中查找所述目标视频标识信息对应的目标视频流服务器的目标地址信息;其中,所述共享缓存用于存储多个无人驾驶车辆所采集到的视频流的视频标识信息,以及每个视频标识信息对应的视频流服务器的地址信息,并在任一视频标识信息对应的视频流服务器运行异常时,更新所述视频标识信息对应的视频流服务器的地址信息,更新后的地址信息对应的视频流服务器运行正常;
目标地址信息发送模块530,用于向所述遥控驾驶客户端发送所述目标地址信息,以使所述遥控驾驶客户端基于所述目标地址信息从所述目标视频流服务器获取所述目标视频流。
本公开实施例提供的技术方案,接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,遥控驾驶客户端可以基于目标地址信息从目标视频流服务器获取目标视频流。
本公开的技术方案中,由于任一视频标识信息对应的视频流服务器运行异常时,会更新该视频标识信息对应的视频流服务器的地址信息,且更新后的地址信息对应的视频流服务器运行正常。因此,目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,因此,可以避免因视频流服务器运行异常而导致获取目标视频流失败的情况出现,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
可选的,所述装置还包括:
视频流接收模块,用于接收推流端推送的视频流,所述视频流携带所述推流端的源IP地址、所述推流端的源端口信息和所述视频流的视频标识信息;
地址信息确定模块,用于基于所述源IP地址和所述源端口信息确定视频流服务器的地址信息;
视频流发送模块,用于基于所述地址信息将所述视频流发送到所述视频流服务器,以使得所述视频流服务器将所述视频标识信息和所述视频流服务器的地址信息注册到所述共享缓存中。
可选的,视频流发送模块,还用于在所述视频流服务器运行异常的情况下,停止向所述视频流服务器发送所述视频流;
地址信息确定模块,用于基于所述源IP地址和所述源端口信息,确定更新后的视频流服务器的地址信息;其中,所述更新后的视频流服务器运行正常;
视频流发送模块,用于基于所述更新后的视频流服务器的地址信息,将所述视频流发送到所述更新后的视频流服务器,以使得所述更新后的视频流服务器将所述更新后的视频流服务器的地址信息,更新注册到所述共享缓存。
可选的,所述地址信息确定模块,具体用于:
通过一致性哈希算法,将所述源IP地址信息和所述源端口信息映射到更新后的视频流服务器的地址信息;其中,在当前正常运行的视频流服务器中,更新后的视频流服务器为负载量小于其他视频流服务器的负载量。
可选的,所述装置还包括:
状态监测模块,用于监测多个遥控驾驶客户端的工作状态;其中,所述工作状态包括空闲状态或非空闲状态;
视频标识信息发送模块,用于在获取到推流端推送的无人驾驶车辆采集到的视频流时,向所述多个遥控驾驶客户端中处于空闲状态的遥控驾驶客户端发送所述视频流的视频标识信息,以使所述处于空闲状态的遥控驾驶客户端在需要获取所述视频流时,生成携带所述视频标识信息的视频获取请求。
可选的,所述视频流接收模块,具体用于:
接收推送端通过目标协议发送的视频流;所述目标协议用于检测在传输所述视频流的过程中是否存在数据包传输失败;
在所述目标协议检测到传输所述视频流的过程中,存在数据包传输失败的情况下,重新发送所述数据包。
可选的,所述遥控驾驶客户端,包括:
请求发送模块,用于所述遥控驾驶客户端通过所述目标协议,向所述目标地址信息对应的目标视频流服务器发送视频流获取请求;
视频流接收模块,用于接收所述目标视频流服务器发送的目标视频流;
请求发送模块,还用于在所述目标协议检测到传输所述目标视频流的过程中,存在数据包传输失败的情况下,重新通过所述目标协议,再次向所述目标视频流服务器发送视频流获取请求;
视频流接收模块,还用于接收所述目标视频流服务器发送的上次传输失败的数据包。
本公开实施例提供的技术方案,接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,遥控驾驶客户端可以基于目标地址信息从目标视频流服务器获取目标视频流。
本公开的技术方案中,由于任一视频标识信息对应的视频流服务器运行异常时,会更新该视频标识信息对应的视频流服务器的地址信息,且更新后的地址信息对应的视频流服务器运行正常。因此,目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,因此,可以避免因视频流服务器运行异常而导致获取目标视频流失败的情况出现,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
本公开实施例还提供一种电子设备,包括:至少一个处理器;用于存储所述至少一个处理器可执行指令的存储器;其中,所述至少一个处理器被配置为执行所述指令,以实现本公开实施例公开的上述方法。
图6为本公开一示例性实施例提供的电子设备的结构示意图。如图6所示,该电子设备1800包括至少一个处理器1801以及耦接至处理器1801的存储器1802,该处理器1801可以执行本公开实施例公开的上述方法中的相应步骤。
上述处理器1801还可以称为中央处理单元(central processing unit,CPU),其可以是一种集成电路芯片,具有信号的处理能力。本公开实施例公开的上述方法中的各步骤可以通过处理器1801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1801可以是通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器1802中,例如随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质。处理器1801读取存储器1802中的信息,结合其硬件完成上述方法的步骤。
本公开实施例提供的技术方案,接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,遥控驾驶客户端可以基于目标地址信息从目标视频流服务器获取目标视频流。
本公开的技术方案中,由于任一视频标识信息对应的视频流服务器运行异常时,会更新该视频标识信息对应的视频流服务器的地址信息,且更新后的地址信息对应的视频流服务器运行正常。因此,目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,因此,可以避免因视频流服务器运行异常而导致获取目标视频流失败的情况出现,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
另外,根据本公开的各种操作/处理在通过软件和/或固件实现的情况下,可从存储介质或网络向具有专用硬件结构的计算机系统,例如图7所示的计算机系统1900安装构成该软件的程序,该计算机系统在安装有各种程序时,能够执行各种功能,包括诸如前文所述的功能等等。图7为本公开一示例性实施例提供的计算机系统的结构框图。
计算机系统1900旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,计算机系统1900包括计算单元1901,该计算单元1901可以根据存储在只读存储器(ROM)1902中的计算机程序或者从存储单元1908加载到随机存取存储器(RAM)1903中的计算机程序,来执行各种适当的动作和处理。在RAM 1903中,还可存储计算机系统1900操作所需的各种程序和数据。计算单元1901、ROM 1902以及RAM 1903通过总线1904彼此相连。输入/输出(I/O)接口1905也连接至总线1904。
计算机系统1900中的多个部件连接至I/O接口1905,包括:输入单元1906、输出单元1907、存储单元1908以及通信单元1909。输入单元1906可以是能向计算机系统1900输入信息的任何类型的设备,输入单元1906可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1907可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1908可以包括但不限于磁盘、光盘。通信单元1909允许计算机系统1900通过网络诸如因特网的与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1901执行上文所描述的各个方法和处理。例如,在一些实施例中,本公开实施例公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1902和/或通信单元1909而被载入和/或安装到电子设备1900上。在一些实施例中,计算单元1901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开实施例公开的上述方法。
本公开实施例提供的技术方案,接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,遥控驾驶客户端可以基于目标地址信息从目标视频流服务器获取目标视频流。
本公开的技术方案中,由于任一视频标识信息对应的视频流服务器运行异常时,会更新该视频标识信息对应的视频流服务器的地址信息,且更新后的地址信息对应的视频流服务器运行正常。因此,目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,因此,可以避免因视频流服务器运行异常而导致获取目标视频流失败的情况出现,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
本公开实施例还提供一种计算机可读存储介质,其中,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例公开的上述方法。
本公开实施例提供的技术方案,接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,遥控驾驶客户端可以基于目标地址信息从目标视频流服务器获取目标视频流。
本公开的技术方案中,由于任一视频标识信息对应的视频流服务器运行异常时,会更新该视频标识信息对应的视频流服务器的地址信息,且更新后的地址信息对应的视频流服务器运行正常。因此,目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,因此,可以避免因视频流服务器运行异常而导致获取目标视频流失败的情况出现,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
本公开实施例中的计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。上述计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。更具体的,上述计算机可读存储介质可以包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本公开实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现本公开实施例公开的上述方法。
本公开实施例提供的技术方案,接收遥控驾驶客户端发送的视频获取请求;响应于视频获取请求,在共享缓存中查找目标视频标识信息对应的目标视频流服务器的目标地址信息;向遥控驾驶客户端发送目标地址信息,遥控驾驶客户端可以基于目标地址信息从目标视频流服务器获取目标视频流。
本公开的技术方案中,由于任一视频标识信息对应的视频流服务器运行异常时,会更新该视频标识信息对应的视频流服务器的地址信息,且更新后的地址信息对应的视频流服务器运行正常。因此,目标地址信息对应的目标视频流服务器是正常运行的服务器,且存储有目标视频流,因此,可以避免因视频流服务器运行异常而导致获取目标视频流失败的情况出现,进而遥控驾驶客户端可以成功获取其所要控制无人驾驶车辆的视频流,进而用户可以成功地通过遥控驾驶客户端远程操作无人驾驶车辆。
在本公开的实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块、部件或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块、部件或单元的名称在某种情况下并不构成对该模块、部件或单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示例性的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (10)
1.一种遥控驾驶实时视频获取方法,其特征在于,所述方法包括:
接收遥控驾驶客户端发送的视频获取请求;其中,所述视频获取请求用于请求获取目标无人驾驶车辆采集到的目标视频流,所述视频获取请求携带所述目标视频流的目标视频标识信息;
响应于所述视频获取请求,在共享缓存中查找所述目标视频标识信息对应的目标视频流服务器的目标地址信息;其中,所述共享缓存用于存储多个无人驾驶车辆所采集到的视频流的视频标识信息,以及每个视频标识信息对应的视频流服务器的地址信息,并在任一视频标识信息对应的视频流服务器运行异常时,更新所述视频标识信息对应的视频流服务器的地址信息,更新后的地址信息对应的视频流服务器运行正常;
向所述遥控驾驶客户端发送所述目标地址信息,以使所述遥控驾驶客户端基于所述目标地址信息从所述目标视频流服务器获取所述目标视频流。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收推流端推送的视频流,所述视频流携带所述推流端的源IP地址、所述推流端的源端口信息和所述视频流的视频标识信息;
基于所述源IP地址和所述源端口信息确定视频流服务器的地址信息;
基于所述地址信息将所述视频流发送到所述视频流服务器,以使得所述视频流服务器将所述视频标识信息和所述视频流服务器的地址信息注册到所述共享缓存中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述视频流服务器运行异常的情况下,停止向所述视频流服务器发送所述视频流;
基于所述源IP地址和所述源端口信息,确定更新后的视频流服务器的地址信息;其中,所述更新后的视频流服务器运行正常;
基于所述更新后的视频流服务器的地址信息,将所述视频流发送到所述更新后的视频流服务器,以使得所述更新后的视频流服务器将所述更新后的视频流服务器的地址信息,更新注册到所述共享缓存。
4.根据权利要求3所述的方法,其特征在于,所述基于所述源IP地址和所述源端口信息,确定更新后的视频流服务器的地址信息,包括:
通过一致性哈希算法,将所述源IP地址信息和所述源端口信息映射到更新后的视频流服务器的地址信息;其中,在当前正常运行的视频流服务器中,更新后的视频流服务器为负载量小于其他视频流服务器的负载量。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
监测多个遥控驾驶客户端的工作状态;其中,所述工作状态包括空闲状态或非空闲状态;
在获取到推流端推送的无人驾驶车辆采集到的视频流时,向所述多个遥控驾驶客户端中处于空闲状态的遥控驾驶客户端发送所述视频流的视频标识信息,以使所述处于空闲状态的遥控驾驶客户端在需要获取所述视频流时,生成携带所述视频标识信息的视频获取请求。
6.根据权利要求2所述的方法,其特征在于,所述接收推流端推送的视频流,包括:
接收推送端通过目标协议发送的视频流;所述目标协议用于检测在传输所述视频流的过程中是否存在数据包传输失败;
在所述目标协议检测到传输所述视频流的过程中,存在数据包传输失败的情况下,重新发送所述数据包。
7.根据权利要求6所述的方法,其特征在于,所述遥控驾驶客户端基于所述目标地址信息从所述目标视频流服务器获取所述目标视频流,包括:
所述遥控驾驶客户端通过所述目标协议,向所述目标地址信息对应的目标视频流服务器发送视频流获取请求;
接收所述目标视频流服务器发送的目标视频流;
在所述目标协议检测到传输所述目标视频流的过程中,存在数据包传输失败的情况下,重新通过所述目标协议,再次向所述目标视频流服务器发送视频流获取请求;
接收所述目标视频流服务器发送的上次传输失败的数据包。
8.一种遥控驾驶实时视频获取装置,其特征在于,所述装置包括:
视频获取请求接收模块,用于接收遥控驾驶客户端发送的视频获取请求;其中,所述视频获取请求用于请求获取目标无人驾驶车辆采集到的目标视频流,所述视频获取请求携带所述目标视频流的目标视频标识信息;
目标地址信息查找模块,用于响应于所述视频获取请求,在共享缓存中查找所述目标视频标识信息对应的目标视频流服务器的目标地址信息;其中,所述共享缓存用于存储多个无人驾驶车辆所采集到的视频流的视频标识信息,以及每个视频标识信息对应的视频流服务器的地址信息,并在任一视频标识信息对应的视频流服务器运行异常时,更新所述视频标识信息对应的视频流服务器的地址信息,更新后的地址信息对应的视频流服务器运行正常;
目标地址信息发送模块,用于向所述遥控驾驶客户端发送所述目标地址信息,以使所述遥控驾驶客户端基于所述目标地址信息从所述目标视频流服务器获取所述目标视频流。
9.一种电子设备,其特征在于,包括:
至少一个处理器;
用于存储所述至少一个处理器可执行指令的存储器;
其中,所述至少一个处理器被配置为执行所述指令,以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211471093.7A CN115567693B (zh) | 2022-11-23 | 2022-11-23 | 遥控驾驶实时视频获取方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211471093.7A CN115567693B (zh) | 2022-11-23 | 2022-11-23 | 遥控驾驶实时视频获取方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115567693A CN115567693A (zh) | 2023-01-03 |
CN115567693B true CN115567693B (zh) | 2023-03-24 |
Family
ID=84770525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211471093.7A Active CN115567693B (zh) | 2022-11-23 | 2022-11-23 | 遥控驾驶实时视频获取方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115567693B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660441A (zh) * | 2013-11-25 | 2015-05-27 | 北京信威通信技术股份有限公司 | 实现服务器高可靠性的方法、装置和系统 |
CN108702369A (zh) * | 2017-11-06 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 无人机的移动终端和云端平台的交互方法及装置 |
JP2022003525A (ja) * | 2020-12-22 | 2022-01-11 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 遠隔制御方法、遠隔制御装置、遠隔制御システム、電子デバイス、記憶媒体、コックピット、クラウドサーバー、自動運転車両、及びプログラム |
CN114501091A (zh) * | 2022-04-06 | 2022-05-13 | 新石器慧通(北京)科技有限公司 | 远程驾驶画面的生成方法、装置及电子设备 |
WO2022134364A1 (zh) * | 2020-12-22 | 2022-06-30 | 华人运通(上海)自动驾驶科技有限公司 | 车辆的控制方法、装置、系统、设备及存储介质 |
-
2022
- 2022-11-23 CN CN202211471093.7A patent/CN115567693B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660441A (zh) * | 2013-11-25 | 2015-05-27 | 北京信威通信技术股份有限公司 | 实现服务器高可靠性的方法、装置和系统 |
CN108702369A (zh) * | 2017-11-06 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 无人机的移动终端和云端平台的交互方法及装置 |
JP2022003525A (ja) * | 2020-12-22 | 2022-01-11 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 遠隔制御方法、遠隔制御装置、遠隔制御システム、電子デバイス、記憶媒体、コックピット、クラウドサーバー、自動運転車両、及びプログラム |
WO2022134364A1 (zh) * | 2020-12-22 | 2022-06-30 | 华人运通(上海)自动驾驶科技有限公司 | 车辆的控制方法、装置、系统、设备及存储介质 |
CN114501091A (zh) * | 2022-04-06 | 2022-05-13 | 新石器慧通(北京)科技有限公司 | 远程驾驶画面的生成方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115567693A (zh) | 2023-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566786B (zh) | 一种获取监控视频的方法、装置及终端设备 | |
US20190332522A1 (en) | Microservice platform with messaging system | |
WO2016197876A1 (zh) | 远程控制方法、远程服务器、管理设备和终端 | |
US10212236B2 (en) | Information transmitting method and apparatus in robot operating system | |
CN103237060B (zh) | 一种数据对象获取方法、装置及系统 | |
CN112261094B (zh) | 一种报文处理方法及代理服务器 | |
WO2020224300A1 (zh) | 基于用户态协议栈的报文分流方法、装置及系统 | |
US20180343217A1 (en) | Providing video to subscribers of a messaging system | |
CN110662017B (zh) | 一种视频播放质量检测方法和装置 | |
US10020916B2 (en) | Method and apparatus for data communication of vehicle | |
US20170272545A1 (en) | Method and system for transmitting remote screen | |
EP4013018A2 (en) | Method for transmitting stream, streaming server and streaming system | |
WO2018226307A1 (en) | System and method for analyzing video frames in a messaging system | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN115567693B (zh) | 遥控驾驶实时视频获取方法、装置、电子设备及存储介质 | |
CN108551571B (zh) | 一种监控视频分发方法、装置、系统以及分发服务器 | |
CN111935497B (zh) | 一种用于交警系统的视频流管理方法和数据服务器 | |
CN108259492B (zh) | 一种流量数据的留存方法、设备和计算机可读存储介质 | |
CN114679436B (zh) | 一种会话管理方法、服务器及计算机可读存储介质 | |
US10904719B2 (en) | Message shunting method, device and system based on user mode protocol stack | |
CN114338477A (zh) | 一种通信链路监控方法、装置、设备及存储介质 | |
CN112954449A (zh) | 视频流处理方法、系统、电子装置和存储介质 | |
US20180367583A1 (en) | System and method for providing a video stream and metadata over parallel channels | |
CN114978898B (zh) | 数据传输控制方法、装置、抬头显示器和存储介质 | |
CN112738056B (zh) | 编解码方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |