CN115795090A - 一种视频流处理方法、客户端上传方法及服务器 - Google Patents
一种视频流处理方法、客户端上传方法及服务器 Download PDFInfo
- Publication number
- CN115795090A CN115795090A CN202211269136.3A CN202211269136A CN115795090A CN 115795090 A CN115795090 A CN 115795090A CN 202211269136 A CN202211269136 A CN 202211269136A CN 115795090 A CN115795090 A CN 115795090A
- Authority
- CN
- China
- Prior art keywords
- video stream
- file
- request
- identification
- storage space
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种视频流处理方法、客户端上传方法及服务器,属于数据存储技术领域,该技术方案包括接收客户端发来的新增视频流请求,所述请求中至少携带有表征所述视频流来源的源标识信息;生成视频流的文件ID标识,视频流的文件ID标识至少包含源标识信息及时间戳信息;分配与视频流的文件ID标识对应的存储空间,并向客户端返回文件ID标识与存储空间所属的数据节点信息,使客户端根据数据节点信息连接至对应数据节点,以文件ID标识命名将视频流,并将视频流写入存储空间中。本发明的技术方案,可减少分布式存储系统的交互次数,减轻了分布式存储系统的管理负担。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种视频流处理方法、客户端上传方法及服务器。
背景技术
传统的分布式存储系统架构下,用户通过客户端发送文件,客户端通过分布式存储系统将该文件存储,也可以理解为,客户端获取用户待存储的文件,并将待存储的文件发送给分布式存储系统,当该分布式存储系统接收到待存储的文件,将该文件进行存储,因此,存储系统需要有单独的目录服务及数据库服务,随着时间的延长,存储的文件的增多,造成分布式存储系统负担越来越重。
而在安防场景下,比如摄像头将采集的视频流上传至分布式存储系统时,上传的数据文件并非用户的命名的文件,而是从摄像头等设备采集的流媒体数据,因此,针对非用户命名的文件,如何有效的管理该类文件,减少分布式存储系统的交互次数,减轻分布式存储系统的管理负担,是一个需要解决的问题。
发明内容
本发明实施例提供了一种视频流存储方法、操作方法及客户端上传方法,可减少分布式存储系统的交互次数,减轻分布式存储系统管理负担。
第一方面,本发明实施例提供了一种视频流处理方法,所述方法包括:
接收客户端发来的新增视频流请求,所述请求中至少携带有表征所述视频流来源的源标识信息;
生成视频流的文件ID标识,所述视频流的文件ID标识至少包含所述源标识信息及时间戳信息,所述时间戳信息是根据接收到所述新增视频流的请求时间转换的,或,由所述客户端发来的新增视频流请求时所携带的;
分配与所述视频流的文件ID标识对应的存储空间,并向所述客户端返回所述文件ID标识与所述存储空间所属的数据节点信息,使所述客户端根据所述数据节点信息连接至对应数据节点,以所述文件ID标识命名所述视频流,并将所述视频流写入所述存储空间中。
可选的,在一些实施例中,所述视频流的文件ID标识还包括表征所述视频流的容量信息、表征所述视频流时长信息中的至少任意一种。
可选的,在一些实施例中,所述视频流的文件ID标识中包含的源标识信息、时间戳信息、和/或容量信息、和/或视频流时长信息的长度为一个或多个字节,按设定规则排序。
可选的,在一些实施例中,所述方法还包括:
接收客户端发来的操作请求消息,所述操作请求消息中携带有请求操作类型及请求条件;
确定符合所述请求条件的视频流的文件ID标识;
根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式;
向所述客户端返回所述操作方式执行后的结果;
其中,所述请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息。
可选的,在一些实施例中,所述请求操作类型包括:请求删除视频流、请求查询视频流、请求更改视频流的存储位置、请求新增视频流。
可选的,在一些实施例中,确定请求操作类型为请求删除视频流时,所述确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据所述视频流信息,确定符合所述请求条件的视频流的文件ID标识;
根据确定的所述文件ID标识,确定所述文件标识ID对应的所述存储空间信息;
删除所述存储空间中的视频流,使得所述存储空间的存储标识变更为未分配的状态,其中,所述存储标识是用于表征所述存储空间是否允许数据被存储的标识。
可选的,在一些实施例中,确定请求操作类型为请求查询已保存的视频流时,所述确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据所述视频流信息,确定符合所述请求条件的视频流的文件ID标识;
根据所述文件ID标识,确定所述文件标识ID对应的存储空间所属的数据节点信息;
向所述客户端返回所述数据节点信息,使得所述客户端根据返回的所述数据节点信息连接至所述数据节点,读取所述数据节点信息对应的存储空间中的视频流。
可选的,在一些实施例中,确定请求操作类型为请求更改视频流的存储位置时,所述确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据所述请求条件,确定需要转移出视频流的第一存储空间及对应的文件ID标识;
确定待转移入视频流的第二存储空间;
将所述第一存储空间中的视频流转移至所述第二存储空间;
更新所述文件ID标识对应的视频流所存储的存储空间及数据节点信息为所述第二存储空间及所述第二存储空间所属的数据节点信息。
可选的,在一些实施例中,确定请求操作类型为请求更改已保存的视频流的存储位置时,所述确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据所述视频流信息,确定符合所述请求条件的需要转移出视频流的文件ID标识;
根据所述文件ID标识,确定所述文件ID标识对应的视频流所存储的第一存储空间;
确定需要转移入视频流的第二存储空间及所述第二存储空间所属的数据节点信息;
将所述第一存储空间中对应的视频流转移至所述第二存储空间;
更新所述文件ID标识对应的视频流所存储的存储空间及数据节点信息为所述第二存储空间及所述第二存储空间所属的数据节点信息。
可选的,在一些实施例中,还包括:
接收视频流服务停止指令,确定存在执行未完成的操作方式时,停止接收客户端发来的操作请求消息,继续执行所述未完成的操作方式。
可选的,在一些实施例中,还包括任务集合,用于将正在执行中的操作方式作为任务存入所述任务集合中,在所述任务执行完成后,将所述任务从所述任务集合中删除;
所述确定存在执行未完成的操作方式,具体包括:
确定所述任务集合不为空。
第二方面,本发明实施例还提供了一种视频流客户端上传方法,包括:
接收视频流接入端发来的视频流写入请求,所述写入请求中携带有表征所述视频流来源的源标识信息;
向服务器发送新增视频流请求,所述请求中至少携带有所述源标识信息;
接收所述服务器发来的文件ID标识及数据节点信息,根据所述数据节点信息连接至所述数据节点,将所述视频流以所述文件ID标识命名,写入到所述数据节点信息对应的存储空间中。
第三方面,本发明实施例还提供了一种服务器,包括:
接收模块,用于接收客户端发来的新增视频流请求,所述请求中至少携带有表征所述视频流来源的源标识信息;
生成模块,用于生成视频流的文件ID标识,所述视频流的文件ID标识至少包含所述源标识信息及时间戳信息,所述时间戳信息是根据接收到所述新增视频流的请求时间转换的,或,由所述客户端发来的新增视频流请求时所携带的;
分配模块,用于分配与所述视频流的文件ID标识对应的存储空间,并向所述客户端返回所述文件ID及所述存储空间所属的数据节点信息,使所述客户端根据所述数据节点信息连接至对应数据节点,以所述文件ID标识命名所述视频流,并将所述视频流写入所述存储空间中。
服务器可选的,作为其中一种实施例,所述服务器还包括:处理模块;
所述处理模块,用于接收客户端发来的操作请求消息,所述操作请求消息中携带有请求操作类型及请求条件;确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式;向所述客户端返回所述操作方式执行后的结果;
其中,所述请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息。
第四方面,本发明实施例还提供了一种视频流处理系统,包括:云服务器、云存储空间;
用于根据客户端发来的新增视频流请求,为所述视频流生成文件ID标识并分配所述云存储空间,并向所述客户端返回所述文件ID标识及所述存储云空间所属的数据节点信息,其中,所述视频流的文件ID标识用于表征对应的所述视频流信息;还用于,接收客户端发来的操作请求消息,根据所述操作请求消息执行对应的操作方式,向所述客户端返回所述操作方式执行后的结果;
所述云存储空间,用于存储所述客户端写入的视频流。本发明实施例的有益效果是当服务器接收到客户端发来的新增视频流请求时,根据携带的源标识信息生成视频流的文件ID标识,并直接返回客户端节点信息,省略了客户端、用户向元数据服务器申请待上传文件ID的交互过程,降低了整体网络的压力,提高了系统的性能和稳定性,且,本申请的技术方案,不需要建立用户实际存储的文件名和存储系统内部文件ID的映射关系,因此可以去除目录服务/目录服务器/数据库的功能,不需要建立用户实际存储的文件名和存储系统内部文件ID的映射关系,省略了分布式存储系统中的管理文件目录的数据库,能够有效降低开发和硬件成本;且,由于去除了目录服务的功能,因此文件目录服务和存储文件管理服务之间不再有耦合关系,文件ID仅由存储文件管理服务来维护,提高了可靠性,去除了文件目录服务和存储文件管理服务任意服务异常时引起的数据不一致问题,且,本发明的技术方案,交互过程少,节省了网络资源,减小了因建立用户实际存储的文件名和存储系统内部文件ID的映射关系的网络交互,节省了带宽,缓解了分布式存储系统的管理压力。
附图说明
图1为现有技术中的分布式存储系统文件写入过程示意图;
图2为本发明实施例适用的一种系统架构示意图;
图3为本发明实施例提供的一种视频流处理方法流程图;
图4为本发明实施例提供的一种视频流存储方法写入过程示意图;
图5为本发明实施例提供的一种文件ID标识示例;
图6为本发明实施例提供的另一种文件ID标识示例;
图7为本发明实施例提供的另一种文件ID标识示例;
图8为本发明实施例提供的另一种文件ID标识示例;
图9为本发明实施例提供的另一种视频流处理方法流程图;
图10为本发明实施例提供的一种判断请求操作类型的方法流程图;
图11为本发明实施例提供的一种删除视频流的操作方法流程图;
图12为本发明实施例提供的一种更改视频流的存储位置的操作方法流程图;
图13为本发明实施例提供的另一种更改视频流的存储位置的操作方法流程图;
图14为本发明实施例提供的一种视频流的查询操作方法流程图;
图15为本发明实施例提供的一种视频流服务停止操作方法流程图;
图16为本发明实施例提供的另一种视频流服务停止操作方法流程图;
图17为本发明实施例提供的一种视频流客户端上传方法流程图;
图18为本发明实施例提供的一种服务器的示意框图;
图19为本发明实施例提供的另一种服务器的示意框图;
图20为本发明实施例提供的一种视频流处理系统示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
传统的分布式存储系统架构下,用户通过客户端发送文件,客户端通过分布式存储系统将该文件存储,也可以理解为,客户端获取用户待存储的文件,并将待存储的文件发送给分布式存储系统,当该分布式存储系统接收到待存储的文件,将该文件进行存储。
为了便于在存储该文件之后对该目标文件进行检索等管理,分布式存储系统还需要管理该文件的元数据,元数据用于记录该文件的文件标识和该文件在分布式存储系统中的存储地址等信息。
而用户发送的待存储的文件的文件名称是各种各样的,甚至还有各种字符与文字,与存储的文件标识并不相同,因此,存储系统需要有单独的目录服务及数据库,用于管理用户实际存储的文件名与实际存储的文件标识的映射关系,根据用户发来的文件名确定实际存储的文件标识,再进一步确定文件具体的存储位置,随着时间的延长,存储的文件的增多,造成分布式存储系统负担越来越重,具体的流程可参见附图1所示。
从附图1中可以看出,为了存储用户文件,由于用户待存储的文件需要有反复多次的交互及处理才能将用户文件存入相应的数据节点内,会造成分布式存储系统负担较重。
而在安防场景下,比如摄像头将采集的视频流上传至分布式存储系统时,上传的数据文件并非用户的命名的文件,而是从摄像头等设备采集的流媒体数据,因此,针对非用户命名的文件,如何有效的管理该类文件,减少分布式存储系统的交互次数,减轻分布式存储系统的管理负担,是一个需要解决的问题。
下面对本申请的系统架构进行简单介绍,如图2所示。
图2为示例性示出了本申请实施例适用的一种系统架构示意图。
客户端具有一个至多个,每个客户端可以连接数个视频流接入端,图中的数量仅是示意,不代表真实的数量。客户端通过视频流接入端接收摄像头等监控设备发来的各种消息及视频流等数据。
客户端与分布式存储管理系统通过网络连接,分布式存储管理系统具有一个至多个的元数据管理节点,也可以简单的理解为每个元数据管理节点都是一个云服务器,分布式存储管理系统控制一个至多个云存储空间,云存储空间用于存储由客户端发来的各种数据,并对存储空间的数据进行管理,通常的,分布式存储系统包括分布式存储管理系统及管理系统控制的各个云存储空间,分布式存储管理系统与管理系统控制的云存储空间可以在同一地点,也可以各自分布在各处。
下面以一个客户端连接一个视频流接入端,并与分布式存储系统中的一个元数据管理节点连接为例,叙述传统的分布式存储系统文件写入过程,如附图1所示,其具体的步骤可以概括为:
1)用户读写文件时,向客户端发起文件写入请求,请求中携带有用户自定义的文件名。
2)客户端接收到请求后向元数据管理节点发送请求,用于请求获得文件ID。
3)元数据服务在收到请求时,根据文件名生成相应的文件ID,并将文件名和文件ID的映射关系通过目录服务写入到数据库中,并返回文件ID给客户端。
4)客户端将文件ID返回给用户。
5)用户根据文件ID向客户端发起文件读写请求,用于获取数据节点。
6)客户端根据文件ID向元数据管理节点请求获取数据节点信息。
7)元数据服务在接收到请求数据节点信息时,根据文件ID分配相应的数据节点,并将数据节点信息返回至客户端。
8)客户端根据元数据节点返回的数据节点信息连接数据节点,将用户的文件写入到数据节点中。
用户将自定义名称的文件需要存入分布式文件存储系统时(也可以理解为云存储系统)需要经过多步骤的原因之一为分布式文件存储管理系统通常有两个数据库及两个服务,一个用于管理文件目录的数据库及相关服务,管理并记录用户的文件名与文件ID间的映射关系,另一个用于管理存储文件数据库及相关服务,管理并记录文件ID标识所表征的文件在分布式存储系统中的存储地址等信息以便于查找等操作,因此,若用户需要将文件存储至分布式文件存储系统时,需要先向分布式文件存储管理系统申请文件ID,在获得文件ID后才可以以文件ID为关键字将其待存储的文件存储到分布式文件存储系统中,因此,即使是请求一次的写入数据操作,也面临着多次沟通交互的步骤,分布式存储系统的负担较大。
因此,传统的分布式存储系统文件一次写入过程需要经过多次的交互及申请,而分布式存储系统需要并行处理客户端发来的各种写入、查询等请求,随着时间的延长,存储的文件的增多,分布式存储系统负担会越来越重。
但是,在安防场景下,需存储的数据并非用户文件,而是从摄像头/录像机等设备采集到的流媒体数据,流媒体数据通常是统一格式的视频流文件,且无法由用户自定义命名,在安防场景下,存在视频流接入端多、客户端请求频繁、大量不断的写入新数据,且查询请求多场景,因此,若采用传统的分布式文件存储系统工作方式,会大大增加其工作负担。
因此,结合安防场景,如何设计分布式文件存储系统的工作流程,减少分布式存储系统的交互次数,减轻分布式文件存储系统的工作负担,改善交互流程,是一个需要解决的技术问题。
本发明实施例提供了一种视频流处理方法,方法包括:
接收客户端发来的新增视频流请求,请求中至少携带有表征视频流来源的源标识信息;
生成视频流的文件ID标识,视频流的文件ID标识至少包含源标识信息及时间戳信息,时间戳信息是根据接收到新增视频流的请求时间转换的,或,由客户端发来的新增视频流请求时所携带的;
分配与视频流的文件ID标识对应的存储空间,并向客户端返回文件ID标识与存储空间所属的数据节点信息,使客户端根据数据节点信息连接至对应数据节点,以所述文件ID标识命名视频流,并将视频流写入存储空间中。
以下通过具体实施例说明,如附图3所示。
S301:接收客户端发来的新增视频流请求,请求中至少携带有表征所述视频流来源的源标识信息。
在客户端向分布式存储系统的服务器发送新增视频流请求之前,客户端会接收到视频流接入端发来的新增视频请求,视频流接入端会携带源标识信息,向客户端发起新增视频请求,源标识信息是表征视频流来源的标识信息,比如可以为摄像头的设备标识信息,或是系统分配的通道ID,或是摄像头的地点信息等,可以区分不同视频流的来源即可,当客户端接收到新增视频流请求后,需要向服务器申请新增视频流请求。
客户端向服务器发送的新增视频流请求中所携带的表征所述视频流来源的源标识信息,与视频流接入端发的源标识可以相同,也可以不同,客户端只需要区分各个不同的视频流来源即可,而发送至服务器的源标识信息,需要符合服务器的要求,因此,为了满足服务器的要求,可选的,客户端会将视频流接入端发来的源标识信息进行转换,根据视频流接入端发来的源标识信息,将其转换为符合服务器端要求的源标识信息,这样,客户端和服务器都可以根据源标识信息来区分不同的视频流接入端发来的视频流。
S302:生成视频流的文件ID标识,视频流的文件ID标识至少包含源标识信息及时间戳信息,时间戳信息是根据接收到新增视频流的请求时间转换的,或,由客户端发来的新增视频流请求时所携带的。
服务器端接收到新增视频流请求后,根据客户端发来的源标识信息及时间戳信息,生成文件ID标识,时间戳信息可以为根据服务器接收到客户端发来新增视频流请求的时间转换得到,也可以为根据客户端发来的新增视频流请求时所携带的时间转换后得到,若是以服务器接收到客户端发来的新增视频流的时间转换得到,则时间戳是以服务器的时间为基准的;若是以由客户端发来的新增视频流请求时所携带的时间转换后得到,则该时间可以是客户端接收到视频流接入端请求的时间,也可以是由视频流在向客户端发送新增视频流请求时所携带的时间,若是客户端接收到视频流接入端的时间,则时间戳是以客户端为基准,若是视频流在向客户端发送新增视频流请求时所携带的时间,则时间戳是以视频流设备的时间为基准。
优选的,建议时间戳以服务器接收到新增视频流的请求时间转换的为基准,这样服务器所有的视频流的时间都是以服务器的时间为基准,即使不同的摄像头、不同的客户端发来的所有的视频流的时间会以服务器的时间为基准,时间相对统一,避免了不同的客户端、不同的摄像头之间的时间差异。
当然,本领域的技术人员可以根据实际需要进行选择,获得所需的时间戳信息。
S303:分配与视频流的文件ID标识对应的存储空间,并向客户端返回文件ID标识与存储空间所属的数据节点信息,使客户端根据数据节点信息连接至对应数据节点,以文件ID标识命名视频流,并将视频流写入存储空间中。
当确定了文件ID标识后,服务器端分配存储空间用于存储客户端请求新增的视频流,服务器端将该新增的视频流标识为文件ID标识并落盘保存,依据该文件ID标识对该视频流进行后续的管理,如删除视频流、查询视频流等操作。
当分配了存储空间后,服务器将文件ID标识及该存储空间所属的数据节点信息发送至客户端,客户端依据数据节点信息连接至对应的数据节点,以文件ID标识命名视频流,并将视频流写入存储空间中。
本发明的实施例,与传统的分布式存储系统相较,简化了新增视频流的步骤,具体如附图4所示,附图4为本发明提供的一种视频流存储方法写入过程示意图。
本发明的实施例的技术方案,将视频流写入分布式存储系统文件的过程仅需要有四步,分别为步骤S401:视频流接入端携带视频流来源的源标识信息向客户端发起新增视频流申请。S402:客户端携带视频流来源的源标识信息向服务器发送新增视频流请求。S403:服务器根据客户端发来的请求,生成文件ID标识,并分配存储空间所属的数据节点用于存储视频流,将数据节点发送至客户端。S404:客户端连接至数据节点,将视频流写入数据节点对应的存储空间中。
因此,本申请的技术方案,当服务器接收到客户端发来的新增视频流请求时,根据携带的源标识信息生成视频流的文件ID标识,并直接返回客户端节点信息,省略了客户端、用户向元数据服务器申请待上传文件ID的交互过程,降低了整体网络的压力,提高了系统的性能和稳定性,且,本申请的技术方案,不需要建立用户实际存储的文件名和存储系统内部文件ID的映射关系,因此可以去除目录服务/目录服务器/数据库的功能,省略了分布式存储系统中的管理文件目录的数据库,能够有效降低开发和硬件成本;且,由于去除了文件目录服务的功能,因此文件目录服务和存储文件管理服务之间不再有耦合关系,文件ID仅由存储文件管理服务来维护,提高了可靠性,去除了文件目录服务和存储文件管理服务任意服务异常时引起的数据不一致问题,且,本发明的技术方案,交互过程少,节省了网络资源,减小了因建立用户实际存储的文件名和存储系统内部文件ID的映射关系的网络交互,节省了带宽,缓解了分布式存储系统的管理压力。
且,客户端以服务器的文件ID标识命名待写入存储空间的视频流,不必再自行定义视频流的名称,因此,视频流的命名由服务器进行,服务器可根据自身的需求,定义符合指定规则或指定要求的名称,且,文件ID标识由于是需要存储及网络传输的,因此,服务器可以定义序列化的文件ID标识,在落盘保存及通过网络传输时不必再进行转码操作,节省了服务器的资开销;且,由于省略了用户命名文件的过程,因此,客户端不必将命名的文件ID告知视频流接入端,客户端只需根据服务器发送的文件ID标识,将其作为待写入数据节点的视频流文件名即可;若服务器出现故障,丢失了文件ID标识与文件ID标识对应的存储空间的映射关系时,可以通过读取存储空间中保存的视频流的文件名并作为文件ID标识,恢复文件ID标识与文件ID标识对应的存储空间的映射表。
且,本申请的技术方案,视频流的信息通过对应的文件ID标识即可以获取,即文件ID标识,不但可以用于标识视频流,还做为视频流的信息并进行存储,通过解析文件ID标识,即可以获得对应视频流的信息,不必单独通过数据库来存储视频流信息,节省了存储空间及管理数据库的资源消耗,而对于文件ID标识与对应的存储信息间的映射关系,则可以通过文件的形式来存储与维护,通过读取文件即可以获得映射关系,因此,本申请的技术方案,服务器不需要单独的数据库,省略了服务器的访问数据库产生的资源消耗,减轻分布式存储系统的管理负担。
可选的,作为其中一种实施例,视频流的文件ID标识还包括表征视频流的容量信息、表征视频流时长信息中的至少任意一种。
视频流的文件ID标识中包含的源标识信息、时间戳信息、和/或是容量信息、和/或视频流时长信息的长度为一个或多个字节,按设定规则排序。
以下通过具体实施例进行说明。
用于安防的摄像头的客户端及服务器,通常的,客户端与服务器会针对存入云存储空间的视频流有事先的约定,服务器针对待存储的视频流所占用的存储空间或待存储的视频流的时长,合理的分配存储空间。针对待存储的视频流,可以根据视频流的源标识信息和时间戳信息可唯一的确定当前视频流,但在实际的管理及使用过程中,只有视频流的源标识信息和时间戳信息对于视频流的信息来说,信息量仍然不足,因此,可以在视频流的文件ID标识中适当的增加信息。
通常的,对于采用同一像素拍摄的同类摄像头,在相同时长的时间里,生成的视频流的容量彼此是相同的,视频流的时长彼此也是相同的,因此,通过判断视频流的容量信息、表征视频流的时长信息任意之一,便可以根据其中之一的信息来分析出另一个信息,因此,文件ID标识中包含表征视频流的容量信息、表征视频流时长信息中的至少任意一种即可以,当然,也可以两种都包含。
当然,频流的容量信息、表征视频流时长信息都可以体现在文件ID标识中以便于后续的管理及查找,本领域的技术人员在本实施例的基础上,可以适当的变形。
附图5示意出了文件ID标识信息的一种示例方式,需要说明的是,文件ID标识信息中的字节长度、先后顺序是根据设定规则定义的,而不应该构成对本发明的限定。
如附图5所示,可选的,文件ID标识的设定规则可以为:文件ID标识具有6个字节,其中,前两个字节用于表示视频流的源标识信息,后4个字节用于表示时间戳信息。
在计算机中,1个字节是占8bit位的,1bit位有0和1两种状态,因此,一个字节可以表示28=256种状态,因此,2个字节长度的源标识信息,可以用于表示216=65536种状态,相当于可以区分65536个不同来源的视频流。当然,在实际中,可以根据实际需要,调整设定规则,适当的增加或减少表征源标识信息的字节长度,当字节长度调整后,用于表示不同来源的视频流的数量也会相应的发生变化。
时间戳信息,是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,时间戳信息所占的4个字节长度,可以表示232种不同的状态,根据计算,可以表示出136.2年内的秒数信息,即4个字节长度的时间戳信息,若以北京时间1970年01月01日08时00分00秒起计算,可以具有满足表示到2106年的秒数的位数,因此,本实施例中,用4字节来表示时间戳信息可以满足实际的需要。当然,也可以根据实际需要调整表示时间戳信息的字节长度,或,与源标识信息的先后顺序。
文件ID标识的设定规则,还可以如图6所示,文件ID标识具有10个字节长度,前6个字节同前述实施例所述,用于表示源标识信息及时间戳信息,新增加的后4位字节用于表示容量信息,可以表示最多232位的容量信息,因此,可以表示近4G的容量信息的视频流。
当然,还可以根据实际需要,如图7所示,文件ID标识具有8个字节的长度,前6个字节表示源标识信息和时间戳信息,后2个字节用于表示当前视频流的时长信息,时长信息同样可以采用秒数来计数,2个字节最多可以表示65536秒的时长,相当于18个多小时,能满足实际的需要,当然也可以根据需要适当的调整,增加或减少表示时长信息的字节长度。或如图8所示,文件ID标识具有12个字节,前6个字节表示源标识信息和时间戳信息,第7-8字节表示当前视频流的时长信息,第9-12字节用于表示当前视频流的容量信息。
文件ID标识中包含的源标识信息、时间戳信息、容量信息和视频流时长可根据实际的需要自行合理的设置,此处不再举例。
本发明的实施例,文件ID标识仅占6-12个字节,因此,文件ID标识所占用空间少,传输的字节少,且符合序列化的要求,无论是存储还是通过网络传输时均不需要进行转码的操作,进一步降低了整体网络交互的压力和元数据服务器业务处理压力,并可以根据实际的需要自由调整符合预期的文件ID标识。且,根据文件ID标识并按预设规则解析,可以确定文件ID标识对应的视频流信息,因此,不需要单独的数据库来管理视频流的信息,通过获取文件ID标识即可获取对应的视频流的信息,可代替管理存储文件的数据库的部分功能,而文件ID标识与对应的存储信息的映射关系,可以通过文件进行存储,如文本文件等,因此,文件ID标识及以文件形式存储的文件ID标识与对应的存储信息的映射关系,可以代替管理存储文件的数据库,云存储系统在取消了管理文件目录的数据库的基础上,进一步的取消了管理存储文件数据库,因此,本发明的技术方案,服务器不需要数据库的支持,可以在服务器的内存中运行与管理,不需要数据库,且在内存中执行较数据库方式的相比,处理速度更快、效率更高。
可选的,作为其中一种实施例,该方法还包括:
接收客户端发来的操作请求消息,操作请求消息中携带有请求操作类型及请求条件;
确定符合请求条件的视频流的文件ID标识;
根据请求操作类型及符合请求条件的文件ID标识,执行对应的操作方式;
向客户端返回操作方式执行后的结果;
其中,请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息。
以下通过具体的实施例进行说明。
参见图9,图9是本发明实施例提供的一种视频流操作方法流程图。
S901:接收客户端发来的操作请求消息,操作请求消息中携带有请求操作类型及请求条件;
服务器端的服务启动时,服务器会根据接收到视频流服务启动指令,读取文件ID标识,解析文件ID标识所表征的视频流信息,同时会确定文件ID标识对应的视频流所存储的存储空间及存储空间所属的数据节点信息,而视频流信息至少包括视频流的标识信息及视频流的时间戳信息。前述已经叙述,文件ID标识是根据前述实施例中的方法所存储的,因此,解析文件ID标识,即可以确定当前文件ID标识表征的视频流信息中所包含的内容,视频流信息至少包括视频流的标识信息及视频流的时间戳信息,可选的,若文件ID标识中还包含视频流的容量信息、表征视频流时长信息,也可通过分析文件ID标识而获取。
在分配存储空间时,服务器会保存文件ID标识与文件ID标识对应的存储空间的映射关系,该映射关系可以通过文件保存,比如文本文件,也可以通过数据库进行保存并获取,可根据实际需要合理设计即可,因此,当读取文件ID标识时,同样可以获得文件ID标识所表征的视频流的对应的存储空间信息。
优选的,可以将解析后的文件ID标识对应的视频流信息读取到服务器的内存中。文件ID标识是符合设定规则的字节进行存储的,因此,文件ID标识是序列化的数据,可以从磁盘中直接读取,当服务启动时,通过读取磁盘上文件ID标识的序列化文件,再将其反序列化到内存中,内存中就有相应的文件ID标识对应的视频流信息了,因此,当解析文件ID标识,并获取到视频流的信息时,会随着服务器的启动,将文件ID标识对应的视频流信息读入到服务器的内存中,当后续客户端发来请求时,请求的各种操作可以在内存中进行,效率高,并根据需要,适时将更新的文件ID标识及对应的视频流信息序列化到磁盘中进行永久保存。
此时,服务端的启动工作已经完成。
当服务器的服务启动后,根据接收到客户端发来的各种操作请求消息进行处理,请求消息包括但不限于删除指定的视频、查询指定的视频,或是更改视频流的存储位置、查询视频流的存储位置等。
发送的操作请求消息携带有请求操作类型及请求条件,请求的操作类型包括查询、删除、新增等。
S902:确定符合请求条件的视频流的文件ID标识。
请求条件包括有请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息。
因此,可以根据操作请求消息中携带有请求操作类型及请求条件,与解析后的视频流信息及视频流存储信息匹配,确定符合请求条件的视频流的文件ID标识。
S903:根据请求操作类型及符合请求条件的文件ID标识,执行对应的操作方式。
根据客户端发来的各种操作请求,执行相对应的操作方式。
S904:向客户端返回操作方式执行后的结果。
根据客户端的不同操作请求,向客户端返回操作方式执行后的结果,比如是操作执行成功与否的信息,或是待查询的视频流的存储空间所属的数据节点信息等。
通常的,对于分布式存储系统的服务器来说,需要具有用于管理文件目录的数据库、及用于管理存储文件数据库两种数据库,而本申请的安防场景,由于存储的数据为非用户文件,因此,通过前述实施例的存储过程,取消了管理文件目录的数据库,相应的取消了元数据服务器的目录服务/目录服务器/数据库的功能;而本申请的实施例,将视频流的信息作为文件ID标识并保存,则可以代替管理存储文件数据库的部分功能,只需要保存文件ID标识对应的视频流所存储的存储空间及存储空间所属的数据节点信息的映射关系即可,而映射关系是可以通过文件的形式记录而不必采用数据库,如可以采用文本形式的文件记录或其它形式的记录方式等,因此,可以进一步的取消服务器端的存储文件数据库,只需要采用普通的文件保存文件ID标识对应的视频流所存储的存储空间及存储空间所属的数据节点信息即可,因此,本申请的实施例,分布式存储系统的元数据管理节点不需要具有管理文件目录的数据库、及用于管理存储文件数据库,只需要保存好文件ID标识对应的视频流所存储的存储空间及存储空间所属的数据节点信息即可。
因此,本发明的实施例的技术方案,服务器不必使用数据库管理,且,本发明的技术方案,可以在分析文件ID信息时,直接将视频流信息读取到服务器的内存中,当后续客户端发来请求时,请求的各种操作可以在内存中进行,效率高,当操作完成后,将更新后的文件ID标识及对应的视频流信息(文件ID标识对应的视频流所存储的存储空间及存储空间所属的数据节点信息)序列化到磁盘中进行永久保存即可。
且,将元数据服务器将文件ID标识、对应的视频流所存储的存储空间信息数据持久化地保存在磁盘上的方式,可以实现在元数据服务启动时,重启并加载文件ID序列化文件,重新在内存中构建文件ID标识及对应的视频流的各种信息并在内存中进行管理与操作,因此,本申请实施例的技术方案,可以在元数据服务器的内存中对文件ID标识、对应的视频流信息及所存储的存储空间信息进行管理,不需要操作数据库,与传统的将文件名和文件ID标识映射关系一同存储到目录服务/数据库中的方式相比,这种方式在保证文件ID标识信息不丢失的情况下,占用的磁盘空间更小,且操作及数据交互在内存中进行,对自身数据的存储介质的要求不高,机械盘即可满足了使用要求,传统的服务器的技术方案,由于数据库需要频繁的从磁盘中读写数据,因此存储时需要SSD盘方可满足需要,而SSD盘比机械盘昂贵很多,因此,本发明实施例的技术方案,不需要SSD盘,只需要普通的机械盘保存数据即可,降低了分布式存储系统的硬件和维护成本。
可选的,作为其中一种实施例,请求操作类型包括:请求删除视频流、请求查询视频流、请求更改视频流的存储位置、请求新增视频流。
如附图10所示,当接收到客户端发来的操作请求消息时,服务器会判断操作请求消息中包含的请求的操作类型是哪种,根据确定的请求操作类型,确定对应的流程,并执行相应的操作方式。
S1001:接收客户端发来的操作请求消息,确定操作请求消息中包含的操作类型。
S1002:判断操作类型是否为请求删除视频流,若是执行步骤A,若否,执行步骤S1003;
S1003:判断操作类型是否为请求查询视频流,若是,执行步骤B,若否,执行步骤S1004;
S1004:判断操作类型是否为请求更改视频流的存储位置,若是,执行步骤S1007,若否,执行步骤S1005;
S1005:判断操作类型是否为请求新增视频流,若是,执行步骤D,若否,执行步骤S1006;
S1006:向客户端返回操作类型异常的报警;
S1007:判断请求条件中,请求操作的是否为存储空间信息/数据节点信息,若是,执行步骤C1,若否,执行步骤C2。
其中,请求新增视频流的过程D与前述实施例的新增视频流的过程是相同的,具体内容可参见上述实施例,此处不再举例,对于其它步骤A、B、C1、C2可参见附图11、附图12、附图13、附图14中的步骤。
参见上述实施例,当视频流服务启动后,内存中已经有相应的文件ID标识及相应的视频流的信息及存储信息了,因此,当接收到客户端发来的请求时,可以根据客户端发来的请求中的请操作类型及请求条件,执行相应的操作。在执行相应的操作时,操作过程可在服务器的内存中进行,不需要单独的数据库服务,工作效率高,响应速度快,处理效果好。
请求操作类型包括:请求删除视频流、请求查询视频流、请求更改视频流的存储位置的请求类型的操作方式,以下通过具体实施例进行说明。
确定请求操作类型为请求删除视频流时,确定符合请求条件的视频流的文件ID标识;根据请求操作类型及符合请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据视频流信息,确定符合请求条件的视频流的文件ID标识;
根据确定的文件ID标识,确定文件标识ID对应的存储空间信息;
删除存储空间中的视频流,使得存储空间的存储标识变更为未分配的状态,其中,存储标识是用于表征存储空间是否允许数据被存储的标识。
参见上述实施例,当视频流服务启动后,内存中已经有相应的文件ID标识及相应的视频流的信息及存储信息了,因此,接收到删除视频流的请求操作时,如图11所示,流程A如下:
S1101:确定请求操作类型为请求删除视频流时,确定待删除的视频流的请求条件。
若请求操作类型为请求删除视频流时,根据请求消息中的请求条件,确定待删除的视频流的请求条件。
请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息。
S1102:根据请求条件及视频流信息,确定符合请求条件的视频流的文件ID标识。
根据确定的待删除的视频流的请求条件,及内存中保存的视频流信息,确定与请求条件匹配的视频流的文件ID标识,文件ID标识可以确定视频流的源标识信息及视频流的时间戳信息,内存中还有文件ID标识对应的视频流所存储的存储空间及存储空间所属的数据节点信息,因此,根据确定的待删除的视频流的请求条件及内存中保存的视频流信息,可以确定与请求条件匹配的视频流的文件ID标识,且,与待删除的视频流的请求条件相匹配的文件ID标识可以有一个,也可有多个,此处不进行限定。
S1103:根据确定的文件ID标识,确定文件标识ID对应的存储空间信息。
当确定与待删除的视频流的请求条件相匹配的文件ID标识后,需要确定文件标识ID对应的存储空间信息,存储空间信息包括存储空间所属的数据节点信息,以便于根据数据节点信息进行下一步的操作。
S1104:删除存储空间中的视频流,使得存储空间的存储标识变更为未分配的状态,其中,存储标识是用于表征存储空间是否允许数据被存储的标识。
确定待删除的存储空间后,删除存储空间中的视频流,删除的方式不限定,可以采用清空数据的方式,也可以通过删除存储空间索引的方式,此处不进行限定,使得存储空间的存储标识变更为未分配的状态即可,存储标识是用于表征存储空间是否允许数据被存储的标识,即该存储空间是处于未分配的状态,可以将新的视频流文件存储到当前存储空间中。
S1105:更新文件ID标识信息及存储空间信息并保存。
将内存中的文件ID标识信息删除,更新对应的存储空间的状态,将已落盘保存的对应的文件ID标识信息及相应存储空间信息删除,以便视频流服务再次启动时,可以正确的读取文件中的内容。
确定请求操作类型为请求更改视频流的存储位置时,确定符合请求条件的视频流的文件ID标识;根据请求操作类型及符合请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据请求条件,确定需要转移出视频流的第一存储空间及对应的文件ID标识;
确定待转移入视频流的第二存储空间;
将第一存储空间中的视频流转移至第二存储空间;
更新文件ID标识对应的视频流所存储的存储空间及数据节点信息为第二存储空间及第二存储空间所属的数据节点信息。
以下通过具体实施例说明,见附图12所示,图12为一种更改视频流的存储位置的操作方法流程图,流程C1如下。
S1201:根据请求条件,确定需要转移出视频流的第一存储空间及对应的文件ID标识。
请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息,当请求条件中请求操作的是视频流的存储空间信息或视频流的存储空间的数据节点信息时,需要确定需要转移出视频流的第一存储空间及对应的文件ID标识,即根据需要转移出视频流的存储空间,确定需要转移的对应的文件ID标识。
S1202:确定待转移入视频流的第二存储空间。
当请求条件是请求操作类型为请求更改视频流的存储位置时,可选的,请求条件可以携带有待移入视频流的第二存储空间的要求,比如将图2中的云存储空间1中的视频流数据转移到云存储空间2中,那么,元数据管理节点服务器根据请求条件,在相应的云存储空间2中分配第二存储空间,分配的第二存储空间为针对文件ID标识所分配的,因此,若有多个文件ID标识对应的存储空间待分配,则会分配多个与文件ID标识对应的待转移入视频流的第二存储空间。
若请求条件没有携带对待移入视频流的第二存储空间的要求,则元数据管理节点根据情况自行分配待转移入视频流的第二存储空间,如请求条件是将云存储空间1中的所有视频流文件全部转移出云存储空间1,那么,元数据管理节点根据情况自行分配待转移入视频流的第二存储空间。
S1203:将第一存储空间中的视频流转移至第二存储空间。
S1204:更新文件ID标识对应的视频流所存储的存储空间及数据节点信息为第二存储空间及第二存储空间所属的数据节点信息。
当转移完成后,更新内存中文件ID标识对应的视频流所存储的存储空间及数据节点信息为第二存储空间及第二存储空间所属的数据节点信息,并更新磁盘中保存的文件ID标识对应的视频流所存储的存储空间及数据节点信息为第二存储空间及第二存储空间所属的数据节点信息。
可选的,确定请求操作类型为请求更改已保存的视频流的存储位置时,确定符合请求条件的视频流的文件ID标识;根据请求操作类型及符合请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据视频流信息,确定符合请求条件的需要转移出视频流的文件ID标识;
根据文件ID标识,确定文件ID标识对应的视频流所存储的第一存储空间;
确定需要转移入视频流的第二存储空间及第二存储空间所属的数据节点信息;
将第一存储空间中对应的视频流转移至第二存储空间;
更新文件ID标识对应的视频流所存储的存储空间及数据节点信息为第二存储空间及第二存储空间所属的数据节点信息。
以下通过具体实施例来说明,见附图13所示,附图13为本实施例提供的另一种更改视频流的存储位置的操作方法流程图,流程C2如下。
S1301:根据视频流信息,确定符合请求条件的需要转移出视频流的文件ID标识。
若请求条件中包含是视频流的标识信息,和/或,请求操作的视频流的时间信息时,则根据请求条件,与内存中的视频流信息进行匹配,确定与请求条件相匹配的需要转移出视频流的文件ID标识,如请求条件为将符合某个源标识信息的视频流转移入云存储空间1中,那么,针对该请求条件,先确定分布式存储管理系统中所有符合某个源标识信息的文件ID标识,从中确定出存储空间不在云存储空间1中的文件ID标识;再如,请求条件为将符合某一天的视频流转移至云存储空间3中,那么,根据请求条件,确定时间戳范围,根据时间戳范围确定符合请求条件的文件ID标识。
S1302:根据文件ID标识,确定文件ID标识对应的视频流所存储的第一存储空间。
当确定文件ID标识后,根据保存的文件ID标识与文件ID标识对应的存储空间的映射关系,确定文件ID标识对应的视频流所存储的第一存储空间。
S1303:确定需要转移入视频流的第二存储空间及第二存储空间所属的数据节点信息。
根据请求条件或实际情况,元数据管理节点服务确定第二存储空间及所属第二存储空间的数据节点信息,第二存储空是需要转移入视频流的第二存储空间,若确定了多个文件ID标识,则具有多个第二存储空间。
S1304:将第一存储空间中对应的视频流转移至第二存储空间。
S1305:更新文件ID标识对应的视频流所存储的存储空间及数据节点信息为第二存储空间及第二存储空间所属的数据节点信息。
当转移完成后,更新内存中文件ID标识对应的视频流所存储的存储空间及数据节点信息为第二存储空间及第二存储空间所属的数据节点信息,并更新磁盘中保存的文件ID标识对应的视频流所存储的存储空间及数据节点信息为第二存储空间及第二存储空间所属的数据节点信息。
可选的,作为其中一种实施例,确定请求操作类型为请求查询已保存的视频流时,确定符合请求条件的视频流的文件ID标识;根据请求操作类型及符合请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据视频流信息,确定符合请求条件的视频流的文件ID标识;
根据文件ID标识,确定文件标识ID对应的存储空间所属的数据节点信息;
向客户端返回数据节点信息,使得客户端根据返回的数据节点信息连接至数据节点,读取数据节点信息对应的存储空间中的视频流。
以下通过具体实施例来说明,见附图14所示,附图14为本实施例提供的一种视频流的查询操作方法流程图,流程B如下。
S1401:根据视频流信息,确定符合请求条件的视频流的文件ID标识。
请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,因此,根据请求条件,与内存中的文件ID标识对应的视频流信息进行匹配,确定符合请求条件的视频流的文件ID标识,需要注意的是,符合请求条件的视频流的文件ID标识,可能不止是一个。
S1402:根据文件ID标识,确定文件ID标识对应的存储空间所属的数据节点信息。
当确定文件ID标识后,即可以确定文件ID标识对应的存储空间所属的数据节点信息,若有多个文件ID标识,则会确定多个文件ID标识对应的存储空间所属的数据节点信息。
S1403:向客户端返回数据节点信息,使得客户端根据返回的数据节点信息连接至数据节点,读取数据节点信息对应的存储空间中的视频流。
向客户端返回数据节点信息,若符合请求条件的数据节点信息不唯一,则向客户端返回多个数据节点,客户端根据返回的数据节点信息连接至数据节点,读取数据节点信息对应的存储空间中的视频流即可。
需要注意的是,由于存储空间中存储的视频流是某一段时间的视频流,因此,若查询条件是符合指定时段时间的视频流时,无法保证所请求的时段范围获取到的视频流恰巧为一个完整的视频流,可能会存在跨视频流或仅是某个视频流中的一段时间的问题,因此,服务器向客户端返回的数据节点信息所对应的视频流只需要确定,客户端所请求的时间段在返回的所有的数据节点信息所对应的视频流的所有时段的范围内即可,客户端根据返回的数据节点信息连接至数据节点并读取数据节点信息对应的存储空间中的视频流后,根据实际情况,客户端进行适当的处理,可以将所有的数据节点信息所对应的视频流作为查询结果,或客户端根据视频流中的时间戳信息,进一步确定所请求的视频流的具体起始位置及终点位置作为查询结果。
可选的,作为其中一种实施例,还包括:接收视频流服务停止指令,确定存在执行未完成的操作方式时,停止接收客户端发来的操作请求消息,继续执行未完成的操作方式。
当接收到视频流服务停止指令时,判断服务器是否存在未执行完成的操作方式,若有,则停止接收客户端在视频流服务停止指令之后发来的操作请求消息,或是对客户端发来的操作请求消息不再响应,继续执行未完成的操作方式直至任务完成。
判断是否存在未完成的任务,可以通过判断是否有未完成的线程池任务,或是建立任务集合等方式,对于本领域的技术人员来说,为确定是否有未完成的任务的方式很多,此处不再一一列举。
对于未处理完成的任务继续执行,比如客户端申请查询某一段视频,而服务器未处理完成时,接收到视频流服务停止指令,那么,服务器不立即停止服务,而是将在服务停止前未处理完成的操作继续处理完成,将客户端所需的内容返回客户端,并确定不存在未处理完成的操作方式时,停止服务器的服务。
可选的,作为其中一种实施例,还包括任务集合,用于将正在执行中的操作方式作为任务存入任务集合中,并在任务执行完成后,将任务从任务集合中删除;
确定存在执行未完成的操作方式,具体包括:
确定任务集合不为空。
以下通过具体实施例说明,见附图15所示。
S1501:接收视频流服务停止指令。
服务停止指令可以由具有管理权限的网络端的服务器发出,也可以由元数据服务器发出,此处不进行限制。
S1502:判断任务集合是否为空。
若是,执行步骤S1503,若否,执行步骤S1504。
任务集合,用于将正在执行中的操作方式作为任务存入任务集合中,并在任务执行完成后,将任务从任务集合中删除,也就是说,若任务集合中还存在任务时,说明有存在未执行完成的任务。
S1503:停止视频流服务。
不存在未执行完成的任务,停止视频流服务。
S1504:停止接收客户端发来的操作请求消息,继续执行未完成的操作方式。
存在未执行完成的任务,停止接收客户端发来的操作请求消息,继续执行未完成的操作方式,并间隔一段时间判断任务集合是否为空,若是,则停止视频流服务,若否,则继续执行未完成的操作方式,直至任务集合为空时,停止视频流服务。
也可以为附图16所示。
步骤S1601-S1603与前述实施例中的步骤S1501-S1503的步骤相同,可参见前述实施例,此处不再赘述,仅叙述与前述实施例不同之处。
S1604:停止接收客户端发来的操作请求消息,继续执行未完成的操作方式。
若任务集合不为空,说明存在未执行完成的任务,因此,停止接收客户端发来的操作请求消息,继续执行未完成的操作方式。
S1605:确定任务集合中最后一个任务执行完成。
当任务集合中的最后一个任务执行完成时,说明任务集合已经为空,因此,继续执行步骤S1603,停止视频流服务。
本实施例与前述实施例的不同之处在于,当任务集合中的最后一个任务执行完成后,会通知服务器,服务器可立即停止视频流服务,该种技术方案,服务器不需要每间隔一段时间判断任务集合是否为空,因此,可以节省服务器查询任务集合的时间及资源,且,当最后一个任务执行完成后,服务器即被通知,可以立即结束视频流服务释放视频流服务所占用的资源。
可选的,本发明实施例还提供了一种视频流客户端上传方法,包括:
接收视频流接入端发来的视频流写入请求,写入请求中携带有表征视频流来源的源标识信息;
向服务器发送新增视频流请求,请求中至少携带有源标识信息;
接收服务器发来的数据节点信息,根据数据节点信息连接至数据节点,将视频流写入到数据节点信息对应的存储空间中。
以下通过具体实施例说明,参见图17。
S1701:接收视频流接入端发来的视频流写入请求,写入请求中携带有表征视频流来源的源标识信息。
当视频流接入端工作时,若视频流未存储至云存储空间时,会向客户端发送视频流写入请求,写入请求中至少携带有表征视频流来源的源标识信息,可选的,请求中还可以携带视频流接入端的时间戳信息。
S1702:向服务器发送新增视频流请求,请求中至少携带有源标识信息。
客户端接收到视频流接入端发来的视频流写入请求后,立即向服务器发送新增视频流请求用于申请云存储空间,请求中至少携带有源标识信息,可选的,若视频流接入端发来的写入请求中还携带有视频流接入端的时间戳信息,向服务器发送请求时还可以携带视频流接入端的时间戳信息,可选的,请求中若没有时间戳信息,还可以携带客户端向服务器发送新增视频流请求时的时间戳信息,当然,也可以只携带源标识信息。
S1703:接收服务器发来的文件ID标识及数据节点信息,根据数据节点信息连接至数据节点,将视频流以文件ID标识命名,写入到数据节点信息对应的存储空间中。
通常的,当服务器接收到客户端的新增视频流请求时,会立即分配一个存储空间用于存储视频流文件,因此,若客户端没有携带时间戳信息,服务器根据接收到的新增视频流请求的时间确定时间戳,并根据源标识信息及时间戳信息生成文件ID标识,可选的,服务器在发来数据节点信息时,还携带有视频流的文件ID标识,客户端根据数据节点信息连接至数据节点,并以文件ID标识命名当前视频流文件,将视频流写入到数据节点信息对应的存储空间中。
存储空间的容量可以为双方此前事先约定的存放指定容量的视频流文件,或是指定时长的视频流文件,当存储空间的视频流写满时,客户端会立即向服务器再次发起申请新增视频流请求以获得新的存储空间,因此,不需要视频流接入端判断当新生成的视频流没有写入云存储空间时,再次向客户端发起的视频流写入请求,而是由客户端判断来控制,确定存储空间写满后立即申请新的存储空间,确保了视频流时间的连续性,减少了客户端与视频流接入端的交互,减少了网络传输压力,节省了资源开销。
可选的,作为其中一种实施例,本发明实施例还提供了一种服务器1800,见附图18所示,包括:
接收模块1801,用于接收客户端发来的新增视频流请求,请求中至少携带有表征视频流来源的源标识信息;
生成模块1802,用于生成视频流的文件ID标识,视频流的文件ID标识至少包含源标识信息及时间戳信息,时间戳信息是根据接收到新增视频流的请求时间转换的,或,由客户端发来的新增视频流请求时所携带的;
分配模块1803,用于分配与视频流的文件ID标识对应的存储空间,并向客户端返回文件ID标识及存储空间所属的数据节点信息,使客户端根据数据节点信息连接至对应数据节点,将视频流以文件ID标识命名写入存储空间中。
可选的,作为其中一种实施例,本发明的实施例的服务器还包括:处理模块,见附图19所示。
附图19的1901-1903与上述实施例的1801-1803的功能相同,此处不再叙述,此处仅叙述与上述实施例的不同之处。
本实施例与上述实施例相较,还增加有处理模块1904,用于接收客户端发来的操作请求消息,操作请求消息中携带有请求操作类型及请求条件;确定符合请求条件的视频流的文件ID标识;根据请求操作类型及符合请求条件的文件ID标识,执行对应的操作方式;向客户端返回操作方式执行后的结果;
其中,请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息。
本发明实施例还提供了一种视频流处理系统2000,见附图20所示,包括:云服务器2001、云存储空间2002;
为更好的解释本实例,本实施例对视频流接入端2003及客户端2004也一并进行说明。
云服务器2001,用于根据客户端2004发来的新增视频流请求,为视频流生成文件ID标识并分配云存储空间2002,并向客户端2004返回文件ID标识及云存储空间2002所属的数据节点信息,其中,视频流的文件ID标识用于表征对应的视频流信息;还用于,接收客户端2004发来的操作请求消息,根据操作请求消息执行对应的操作方式,向客户端2004返回操作方式执行后的结果;
客户端2004,用于根据视频流接入端2003发来的新增视频流请求,向云服务器2001申请云存储空间2002存储视频流;还用于,根据云服务器2004发来的文件ID标识及数据节点信息,将视频流接入端2003发来的视频流以文件ID标识命名,并写入到数据节点对应的云存储空间2002中;
视频流接入端2003,用于接入视频输入设备,并向客户端2004传输视频流接入端2003采集到的视频流,及向客户端2004发送新增视频流请求;
云存储空间2002,用于存储客户端2004写入的视频流。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种视频流处理方法,其特征在于,所述方法包括:
接收客户端发来的新增视频流请求,所述请求中至少携带有表征所述视频流来源的源标识信息;
生成视频流的文件ID标识,所述视频流的文件ID标识至少包含所述源标识信息及时间戳信息,所述时间戳信息是根据接收到所述新增视频流的请求时间转换的,或,由所述客户端发来的新增视频流请求时所携带的;
分配与所述视频流的文件ID标识对应的存储空间,并向所述客户端返回所述文件ID标识与所述存储空间所属的数据节点信息,使所述客户端根据所述数据节点信息连接至对应数据节点,以所述文件ID标识命名所述视频流,并将所述视频流写入所述存储空间中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收客户端发来的操作请求消息,所述操作请求消息中携带有请求操作类型及请求条件;
确定符合所述请求条件的视频流的文件ID标识;
根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式;
向所述客户端返回所述操作方式执行后的结果;
其中,所述请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息。
3.根据权利要求1所述的方法,其特征在于,
所述视频流的文件ID标识还包括表征所述视频流的容量信息、表征所述视频流时长信息中的至少任意一种。
4.根据权利要求2所述的方法,其特征在于,所述请求操作类型包括:请求删除视频流、请求查询视频流、请求更改视频流的存储位置、请求新增视频流。
5.根据权利要求4所述的方法,其特征在于,
确定请求操作类型为请求删除视频流时,所述确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据所述视频流信息,确定符合所述请求条件的视频流的文件ID标识;
根据确定的所述文件ID标识,确定所述文件ID标识对应的所述存储空间信息;
删除所述存储空间中的视频流,使得所述存储空间的存储标识变更为未分配的状态,其中,所述存储标识是用于表征所述存储空间是否允许数据被存储的标识;
确定请求操作类型为请求查询已保存的视频流时,所述确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据所述视频流信息,确定符合所述请求条件的视频流的文件ID标识;
根据所述文件ID标识,确定所述文件标识ID对应的存储空间所属的数据节点信息;
向所述客户端返回所述数据节点信息,使得所述客户端根据返回的所述数据节点信息连接至所述数据节点,读取所述数据节点信息对应的存储空间中的视频流;
确定请求操作类型为请求更改视频流的存储位置时,所述确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式,具体包括:
根据所述请求条件,确定需要转移出视频流的第一存储空间及对应的文件ID标识;
确定待转移入视频流的第二存储空间;
将所述第一存储空间中的视频流转移至所述第二存储空间;
更新所述文件ID标识对应的视频流所存储的存储空间及数据节点信息为所述第二存储空间及所述第二存储空间所属的数据节点信息;
或,根据所述视频流信息,确定符合所述请求条件的需要转移出视频流的文件ID标识;
根据所述文件ID标识,确定所述文件ID标识对应的视频流所存储的第一存储空间;
确定需要转移入视频流的第二存储空间及所述第二存储空间所属的数据节点信息;
将所述第一存储空间中对应的视频流转移至所述第二存储空间;
更新所述文件ID标识对应的视频流所存储的存储空间及数据节点信息为所述第二存储空间及所述第二存储空间所属的数据节点信息。
6.根据权利要求2所述的方法,其特征在于,还包括:
接收视频流服务停止指令,确定存在执行未完成的操作方式时,停止接收客户端发来的操作请求消息,继续执行所述未完成的操作方式。
7.根据权利要求6所述的方法,其特征在于,还包括任务集合,用于将正在执行中的操作方式作为任务存入所述任务集合中,并在所述任务执行完成后,将所述任务从所述任务集合中删除;
所述确定存在执行未完成的操作方式,具体包括:
确定所述任务集合不为空。
8.一种视频流客户端上传方法,其特征在于,包括:
接收视频流接入端发来的视频流写入请求,所述写入请求中携带有表征所述视频流来源的源标识信息;
向服务器发送新增视频流请求,所述请求中至少携带有所述源标识信息;
接收所述服务器发来的文件ID标识及数据节点信息,根据所述数据节点信息连接至所述数据节点,将所述视频流以所述文件ID标识命名,写入到所述数据节点信息对应的存储空间中。
9.一种服务器,其特征在于,包括:
接收模块,用于接收客户端发来的新增视频流请求,所述请求中至少携带有表征所述视频流来源的源标识信息;
生成模块,用于生成视频流的文件ID标识,所述视频流的文件ID标识至少包含所述源标识信息及时间戳信息,所述时间戳信息是根据接收到所述新增视频流的请求时间转换的,或,由所述客户端发来的新增视频流请求时所携带的;
分配模块,用于分配与所述视频流的文件ID标识对应的存储空间,并向所述客户端返回所述文件ID及所述存储空间所属的数据节点信息,使所述客户端根据所述数据节点信息连接至对应数据节点,将所述视频流以所述文件ID标识命名写入所述存储空间中。
10.根据权利要求9所述的服务器,其特征在于,还包括:处理模块;
所述处理模块,用于接收客户端发来的操作请求消息,所述操作请求消息中携带有请求操作类型及请求条件;确定符合所述请求条件的视频流的文件ID标识;根据所述请求操作类型及符合所述请求条件的文件ID标识,执行对应的操作方式;向所述客户端返回所述操作方式执行后的结果;
其中,所述请求条件包括请求操作的视频流的标识信息,和/或,请求操作的视频流的时间信息,和/或,请求操作的视频流的存储空间信息或视频流的存储空间的数据节点信息。
11.一种视频流处理系统,其特征在于,包括:云服务器,云存储空间;
所述云服务器,用于根据客户端发来的新增视频流请求,为所述视频流生成文件ID标识并分配所述云存储空间,并向所述客户端返回所述文件ID标识及所述存储云空间所属的数据节点信息,其中,所述视频流的文件ID标识用于表征对应的所述视频流信息;还用于,接收客户端发来的操作请求消息,根据所述操作请求消息执行对应的操作方式,向所述客户端返回所述操作方式执行后的结果;
所述云存储空间,用于存储所述客户端写入的视频流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211269136.3A CN115795090A (zh) | 2022-10-17 | 2022-10-17 | 一种视频流处理方法、客户端上传方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211269136.3A CN115795090A (zh) | 2022-10-17 | 2022-10-17 | 一种视频流处理方法、客户端上传方法及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115795090A true CN115795090A (zh) | 2023-03-14 |
Family
ID=85433137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211269136.3A Pending CN115795090A (zh) | 2022-10-17 | 2022-10-17 | 一种视频流处理方法、客户端上传方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795090A (zh) |
-
2022
- 2022-10-17 CN CN202211269136.3A patent/CN115795090A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554834B (zh) | 文件系统数据访问方法和文件系统 | |
CN108614837B (zh) | 文件存储和检索的方法及装置 | |
CN111092930B (zh) | 业务开通方法及装置 | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN110706148B (zh) | 人脸图像处理方法、装置、设备和存储介质 | |
CN109062697A (zh) | 一种提供空间分析服务的方法和装置 | |
CN101533416A (zh) | 一种音视频文件管理方法及系统 | |
CN109600410A (zh) | 数据存储系统以及方法 | |
CN109684273A (zh) | 一种快照管理方法、装置、设备及可读存储介质 | |
KR101236477B1 (ko) | 비대칭 클러스터 파일 시스템의 데이터 처리 방법 | |
CN115955581A (zh) | 一种实时视频处理方法、装置、设备及存储介质 | |
CN111274004A (zh) | 进程实例管理方法、装置及计算机存储介质 | |
CN105978744B (zh) | 一种资源分配方法、装置及系统 | |
CN111651498A (zh) | 一种区块链数据的高效检索方法及装置 | |
CN113568868A (zh) | 文件系统管理方法、系统、电子设备及介质 | |
CN111435286A (zh) | 一种数据存储方法、装置和系统 | |
CN118051385A (zh) | 一种文件管理方法和装置 | |
CN115795090A (zh) | 一种视频流处理方法、客户端上传方法及服务器 | |
CN112231324B (zh) | 一种实现增量数据比对的系统及方法 | |
CN115604294A (zh) | 一种管理存储资源的方法及装置 | |
CN111722783B (zh) | 数据存储方法及装置 | |
CN109213444A (zh) | 文件存储方法及装置、存储介质、终端 | |
CN116743780A (zh) | 一种分布式存储系统及方法 | |
CN114490517A (zh) | 数据处理方法、装置、计算节点以及计算机可读存储介质 | |
KR20120064576A (ko) | 비대칭 스토리지 시스템에서 연속적인 읽기/쓰기를 제공하기 위한 장치 및 그 방법 |
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 |