CN114630143A - 视频流存储方法、装置、电子设备和存储介质 - Google Patents
视频流存储方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114630143A CN114630143A CN202011457418.7A CN202011457418A CN114630143A CN 114630143 A CN114630143 A CN 114630143A CN 202011457418 A CN202011457418 A CN 202011457418A CN 114630143 A CN114630143 A CN 114630143A
- Authority
- CN
- China
- Prior art keywords
- video
- storage
- index file
- video stream
- level
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000011218 segmentation Effects 0.000 claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 208000000044 Amnesia Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
-
- 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/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种视频流存储方法、装置、电子设备和存储介质。该方法包括:获取视频采集设备采集的待存储视频流,并确定待存储视频流在存储系统中的存储目录;将待存储视频流按照预设第一时间段进行切分,并将切分结果存储在存储目录下;其中,第一时间段基于HLS协议设置,切分结果按照时间规则进行命名;对切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据索引文件完成对目标视频段的定位。本发明实施例减少了HLS服务对读取视频流的操作步骤,降低对HLS服务部署服务器的硬件要求;提高了从海量小文件中快速定位目标文件的效率。
Description
技术领域
本发明实施例涉及视频处理技术领域,尤其涉及一种视频流存储方法、装置、电子设备和存储介质。
背景技术
HLS(HTTP Live Streaming)是苹果公司基于HTTP(HyperText TransferProtocol,超文本传输协议)渐进下载方法研发的一种实时流媒体协议。由于其基于HTTP,因此可以穿过任何允许HTTP数据通过的防火墙或代理服务器,同时也能使用传统HTTP服务器作为源的优势,目前该协议在包括视频监控在内的各行各业均普遍应用。
目前提供HLS服务的主要方案均为在HTTP服务器和云存储服务中间加一个HLS服务,以提供协议解析、视频文件切片处理以及M3U8格式的索引文件生成等功能。
但是由于HLS服务器需要快速将视频文件进行切片以及索引文件的生产和更新,因此对承载HLS服务的CPU硬件要求较高。例如需要有足够的内存保存从存储系统中读取的视频文件的切片文件和索引文件。
发明内容
本发明实施例提供一种视频流存储方法、装置、电子设备和存储介质,减少HLS服务对读取视频流的操作步骤,实现降低对HLS服务部署服务器的硬件要求;并且提高了从海量小文件中快速定位目标文件的效率。
第一方面,本发明实施例提供了一种视频流存储方法,包括:
获取视频采集设备采集的待存储视频流,并确定所述待存储视频流在存储系统中的存储目录;
将所述待存储视频流按照预设第一时间段进行切分,并将切分结果存储在所述存储目录下;其中,所述第一时间段基于HLS协议设置,切分结果按照时间规则进行命名;
对所述切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据所述索引文件完成对目标视频段的定位。
第二方面,本发明实施例还提供了一种视频流存储装置,包括:
视频流确定模块,用于获取视频采集设备采集的待存储视频流,并确定所述待存储视频流在存储系统中的存储目录;
视频流切分模块,用于将所述待存储视频流按照预设第一时间段进行切分,并将切分结果存储在所述存储目录下;其中,所述第一时间段基于HLS协议设置,切分结果按照时间规则进行命名;
切片分级管理模块,用于对所述切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据所述索引文件完成对目标视频段的定位。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的视频流存储方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的视频流存储方法。
本发明实施例基于对待存储视频流进行切分,对切分视频段进行存储,并且对切分视频段按照多级索引进行管理,根据多级索引文件之间访问地址的嵌套实现对目标切分视频段的快速定位,提高了从海量小文件中快速定位目标文件的效率。并且由于本发明实施例通过在视频流进行存储时按照切分视频段进行存储,避免了HLS服务读取视频流时再进行切分的操作,降低了对HLS服务部署服务器的硬件要求。
附图说明
图1是本发明实施例一中的视频流存储方法的流程图;
图2是本发明实施例二中的视频流存储方法的流程图;
图3是本发明实施例三中的支持HLS协议访问的视频流处理系统的结构示意图;
图4是本发明实施例四中的视频流存储装置的结构示意图;
图5是本发明实施例五中的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的视频流存储方法的流程图,本实施例可适用于支持HLS服务读取的视频流存储情况。该方法可以由视频流存储装置来执行,该装置可以采用软件和/或硬件的方式实现,并可配置在电子设备中,例如电子设备可以是后台服务器等具有通信和计算能力的设备。如图1所示,该方法具体包括:
步骤101、获取视频采集设备采集的待存储视频流,并确定待存储视频流在存储系统中的存储目录。
其中,视频采集设备是指采集视频流的终端设备,例如监控相机等。待存储视频流是指由视频采集设备采集到的视频流,例如监控相机获取到的监控视频流。监控相机在获取到监控视频流后需要将其存储到存储系统中。存储目录即是存储系统为待存储视频确定的存储位置。
具体的,在待存储视频流存储过程中,存储系统中的收流模块负责与相机进行协商,获取相机中缓存的视频流进行取流操作,取流模块在获取到视频流后通知存储系统中的存储模块进行取流,并确定该待存储视频流在存储模块中的存储位置。存储位置的确定可以由存储系统根据待存储视频流的视频信息进行确定,以保证后续读取时可以根据视频信息定位到相应的存储位置。
在一个可行的实施例中,存储目录按照待存储视频流的视频信息进行分层管理;视频信息包括待存储视频流的存储类型编码、获取时间、采集设备编码以及存储系统账号编码。
其中,分层管理是指根据视频信息中的不同信息对存储目录进行分级,以实现对存储的视频流进行快速定位。存储类型编码是指视频流对应的读取编码类型,例如HLS存储类型编码;获取时间是指该视频流的采集时间,获取时间的精确度可以根据实际需求进行确定,例如可以精确到小时,或者天等,即不同小时或者不同天获取的视频流存储在不同的同级文件夹下;采集设备编码是指该视频流采集的视频采集设备的编码信息,该编码信息可以根据设备标识进行确定,或者人为进行编号;存储系统账号编码是指区分不同的存储系统,该账号编码可以人为进行定义,起到区分的效果。
具体的,根据视频信息中信息类型的不同建立嵌套的文件夹,用于区分具有不同视频信息的视频流。
在一个可行的实施例中,存储目录按照待存储视频流的视频信息进行分层管理,包括:
根据存储系统账号编码建立第一级目录;根据采集设备编码建立第二级目录;根据获取时间建立第三级目录;根据存储类型编码确定第四级目录;
根据建立的第一级目录、第二级目录、第三级目录和第四级目录确定存储目录。
具体的,按照存储业务要求将存储目录分为四级,其中,第一级存储目录为存储系统账号编码,示例性的,存储系统账号编码可以由CDS系统提供;第二级存储目录为采集设备编码,例如相机编码,用于区分不同相机的采集视频;第三级目录为获取时间目录,即根据视频流的获取时间进行设置,具体的时间可以根据实际情况进行确定,例如以一天为第三级目录的区分间隔,当第三级目录以时间格式为年月日(20201202)命名区分,表示该目录下存储的视频为对应相机在2020年12月02日采集到的视频文件。第四级存储目录为存储类型编码,可以根据读取的实际需求进行转码存储,示例性的,本发明实施例是面向支持HLS服务读取的视频流存储,因此存储类型编码为hls,也可以根据实际存储场景和读取需求对存储类型编码进行设置,在此不作限制。对于完整的四级存储目录的格式为cds_account/camera_code/date_time/storage_type,其中,cds_account为存储系统账号编码,camera_code为采集设备编码,date_time获取时间,storage_type为存储类型编码。示例性的,common*13139_92063/ipc90120/20201106/hls,每一层下可以根据实际视频流的视频信息进行添加对应的目录。
对存储目录按照视频流的视频信息进行分层管理,既便于对获取到的视频流进行管理,又便于后续读取时的寻址。
步骤102、将待存储视频流按照预设第一时间段进行切分,并将切分结果存储在存储目录下;其中,第一时间段基于HLS协议设置,切分结果按照时间规则进行命名。
由于HLS服务在基于HLS协议播放视频时,按照协议内容需要对视频文件进行切片处理,切分的视频段长度在协议中有定义,因此在本发明实施例中,在对直接获取到的视频流进行存储时就按照协议的切片视频段长度的要求对视频流进行切分。示例性的,基于HLS协议中的切分视频段的长度可以为10秒或者8秒等,因此在本发明实施例中预设第一时间段也为10秒或者8秒。为了便于说明,在下面的实施例中以预设第一时间段为10秒为例。
具体的,在获取到待存储视频流后,每隔10秒生成一个切分视频段,并将切分好的切分视频段存储在相应的存储目录下。其中,切分视频段根据该切分视频段的开始时间和结束时间命名,例如命名格式为ShhmmssEhhmmss。其中S表示开始时间、E表示结束时间。hh是时间小时的两位数表示,mm是时间分钟的两位数表示,ss是时间秒的两位数表示。比如开始时间为12点20分05秒,结束时间为12点20分14秒的切分视频段文件命名为S122005E122014。并将该切分视频段根据对应的视频信息存储在对应的第四级存储目录下。
步骤103、对切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据索引文件完成对目标视频段的定位。
由于对待存储视频进行切片后会产生海量的视频小文件,因此为了便于从海量视频小文件中准确定位目标视频小文件,本发明实施例中按照多级索引对海量视频小文件进行管理。
具体的,在最底层的索引文件中包括部分切分视频段,并且包括其中每个切分视频段的存储位置信息;若切分视频段的数量过于庞大,会造成产生的最底层的索引文件数量较多,因此可以对最底层的索引文件进行划分,根据划分确定最底层索引文件的上一级索引文件,并且在上一级索引文件中包括其中的各最底层索引文件的访问地址。更进一步的,若上一级索引文件的数量也较多,可以根据实际情况增加索引的层级,通过多级管理实现对海量视频小文件的管理,便于定位。
在一个可行的实施例中,至少两级索引包括一级索引和二级索引,其中,一级索引为二级索引的上一级;
相应的,对切分结果按照至少两级索引进行管理,得到至少两级索引文件,包括:
将切分结果中各切分视频段按照预设第二时间段进行划分,根据划分结果确定二级索引文件;其中,二级索引文件按照时间规则进行命名,二级索引文件中包括各切分视频段的寻址值;寻址值由存储系统在接收到各切分视频段后根据存储位置确定并返回;
根据二级索引文件确定一级索引文件;其中,一级索引文件中包括二级索引文件的访问地址,且一级索引文件的访问地址根据待存储视频流的视频信息按照预设格式确定。
对多级索引文件中切分视频段的划分可以根据实际需求进行确定,由于本发明实施例中视频采集设备可以是监控相机,因此可以根据切分视频段的获取时间进行划分以及命名,便于后续定位。
建立二级索引,通过二级索引文件对切分视频段进行管理,以及通过一级索引文件对二级索引文件进行管理。
具体的,在对待存储视频流进行切分后,将切分视频段存储至存储系统后,存储系统在接收到一个切分视频段后即会返回该切分视频段的寻址值,该寻址值反映该切分视频段的在存储系统中的存储位置信息。示例性的,在待存储视频流达到10秒后,形成一个切分视频段文件,通过存储系统客户端写入到存储系统中,存储系统会返回一直寻址值,该值表示该切分视频段文件存储的具体位置,便于访问时直接寻址。寻址值的格式可以设置为?dev=storage_dev_code&fid=resid-sliceId-offset-filesize,其中storage_dev_code表示存储系统所在的设备编码,resid表示该切分视频段文件存储的资源ID、sliceId表示存储块的起始地址、offset表示在该块起始地址偏移的大小、filesize表示该切分视频段文件的大小。通过这几个参数可以直接定位到存储的块地址,并且一次IO就可以读出具体的数据。例如寻址值的实例为:?dev=cdv001&fid=0-11-5F9E8000A-4B99A2-5659F。
预设第二时间段大于预设第一时间段,且是预设第一时间段的倍数。即将预设第二时间段内的多个切分视频段的寻址值和文件名称放在同一个索引文件中,形成二级索引文件。示例性的,二级索引文件中每个二级索引文件描述30分钟的切分视频段文件,即180个切分视频段文件。并且二级索引文件的命名规则和切分视频段的命名规则相同,按照时间规则进行命名,即按照ShhmmssEhhmmss的格式,例如S162530E165529,表明该索引文件中包括切分视频段的开始时间是16点25分30秒,结束时间是16点55分29秒,记录了期间的30分钟视频。二级索引文件中为每个切分视频段的名称建立关联的URL,通过该URL即可实现对关联的切分视频段的访问,示例性的,二级索引文件中每个切分视频段文件URL的记录格式为:http://storage_dev_code-ip:port/ts-file_path,其中,storage_dev_code-ip为每个切分视频段文件的存储设备IP;port为http服务的端口号;ts-file_path为带寻址值的切分视频段文件的全路径。URL实例:http://202.8.60.118:9010/common*13139_92063/ ipc90120/20201106/hls/S122005E122014.ts?dev=cdv001&fid=11-5F9E8000A-4B99A2- 5659F。
为了便于管理,根据存储在同一个存储目录下的切分视频流产生的二级索引文件确定一级索引文件,该一级索引文件中包括各二级索引文件的访问地址。
在一个可行的实施例中,所述切分结果和所述至少两级索引文件存储在所述存储目录中的第四级目录下。
在对存储目录进行分层管理的基础上,根据所述存储系统账号编码建立第一级目录;根据所述采集设备编码建立第二级目录;根据所述获取时间建立第三级目录;根据所述存储类型编码确定第四级目录。按照待存储视频流的切分结果中的各切分视频段的视频信息,将各切分视频段存储在存储目录中相应的第四级目录下,同时将通过该第四级目录下的切分视频段产生的至少两级索引文件也存储在该存储目录的第四级目录下,即保证切分视频段和对应的至少两级索引文件存储在相同的目录下。
具体的,至少两级索引包括一级索引和二级索引时,将通过同一存储目录下的切分视频段产生的二级索引文件和一级索引文件均存储在该存储目录的第四级目录下。示例性的,在上述示例的基础上,在第四级存储目录下存储的是一天内的监控视频流,对24小时的视频流进行切分,得到8640个10秒的切分视频段,将每30分钟的切分视频段形成一个二级索引文件,则在该第四级存储目录下生成了48个二级索引文件,最后根据该第四级存储目录下所有的二级索引文件生成一级索引文件。即一个第四级存储目录下只存储一个一级索引文件用以描述该存储目录下所有的二级索引文件。
示例性的,一级索引文件采用json的格式,并且采用预设的命名规则进行确定,例如文件名称固定为main.json,便于后续准确定位到一级索引文件。通过json格式的一级索引文件可以快速找到该存储目录下有几个二级索引文件,以及每个二级索引文件的名称和支持快速访问的完整URL。
在一个可行的实施例中,切分结果中各切分视频段为TS格式;二级索引文件采用M3U8格式。
其中,TS格式(Transport Stream)是一种视频封装格式,该格式满足视频流中任一片段都可以独立解码,适用于本发明实施例中存储切分结果中各切分视频段,以保证在后续读取时对单个切分视频流进行读取独立解码。M3U8格式是一种媒体播放列表文件格式,由苹果公司定义,在HLS服务基于HLS协议读取视频时,需要产生M3U8格式的索引文件,因此本发明实施例在视频流进行存储时即按照HLS协议的要求进行存储,使得HLS客户端在读取时,找到对应的视频片段后即可解码播放。
在一个可行的实施例中,在将所述待存储视频流按照预设第一时间段进行切分之前,还包括:
将所述待存储视频流转换为TS格式。
在对待存储视频流进行切分之前,将从视频采集设备采集到的不同格式的视频流转换为TS格式的视频流,以保证切分结果中的各切分视频段为TS格式。
具体的,在存储系统中存在转码模块,用于将从视频采集设备采集到的不同格式的视频流转换为TS格式的视频流,在切分时即对转换后的TS格式视频流进行切分,得到的切分视频段为TS文件。根据各TS文件生成M3U8格式的二级索引文件,即实现对TS文件的管理,又保证了对HLS协议所需索引文件的生成。
本发明实施例基于对待存储视频流进行切分,对切分视频段进行存储,并且对切分视频段按照多级索引进行管理,根据多级索引文件之间访问地址的嵌套实现对目标切分视频段的快速定位,提高了从海量小文件中快速定位目标文件的效率。并且由于本发明实施例通过在视频流进行存储时按照切分视频段进行存储,避免了HLS服务读取视频流时再进行切分的操作,降低了对HLS服务部署服务器的硬件要求。
实施例二
图2是本发明实施例二中的视频流存储方法的流程图,本实施例二在实施例一的基础上进行进一步地优化,在步骤103建立好待存储视频流的两级索引文件后,该方法还包括:
响应于HLS客户端的视频访问请求,获取视频访问请求中的目标视频信息;其中,目标视频信息包括获取时间、采集设备编码以及存储系统账号编码;
根据目标视频信息和预设格式确定目标一级索引文件的访问地址;
根据访问地址解析目标一级索引文件,得到其中的候选二级索引文件;
根据目标视频信息从候选二级索引文件中定位目标二级索引文件;
对目标二级索引文件进行解析,得到候选切片视频段;
根据目标视频信息从候选切片视频段中确定目标切片视频段,并根据目标切片视频段的寻址值下载目标视频。
如图2所示,该方法包括:
步骤201、响应于HLS客户端的视频访问请求,获取视频访问请求中的目标视频信息;其中,目标视频信息包括获取时间、采集设备编码以及存储系统账号编码。
HLS客户端将携带目标视频信息视频访问请求发送至存储系统。示例性的,当用户想要查看某相机在2020年12月2日7点至8点的视频段,则确定某相机对应的采集设备编码,并且确定该客户端对应的存储系统账号编码,根据获取时间、采集设备编码以及存储系统账号信息形成视频访问请求发送至存储系统。
步骤202、根据目标视频信息和预设格式确定目标一级索引文件的访问地址。
其中,预设格式是指预先确定的目录管理规定以及一级索引文件管理规则,一级索引文件管理规则中确定了一级索引文件的存储位置的规则以及命名规则。在上述示例的基础上,一级索引文件存储在对应的视频流所在的四级存储目录下,因此根据目标视频信息可以确定四级存储目录的地址,根据一级索引文件的命名规则,即可实现对目标一级索引文件访问地址的准确定位。
示例性的,将事先配置的存储系统账号编码(common*13139_92063)、采集设备编码(ipc90120)以及要播放视频的当天时间(20201202)等信息,按上述实施例中存储目录设置格式和一级索引文件管理规则拼接出一级索引文件访问URL:http://202.8.60.118:9010/common*13139_92063/ipc90120/20201202/hls/main.json。
步骤203、根据访问地址解析目标一级索引文件,得到其中的候选二级索引文件。
确定目标一级索引文件的访问地址后,按照该访问地址获取该目标一级索引文件并对该文件进行解析,得到目标一级索引文件中所有的二级索引文件名称以及对应的访问地址,将其中所有的二级索引文件确定为候选二级索引文件。
示例性的,在上述示例的基础上,一级索引文件和二级索引文件存储在切片视频流所在的存储目录下,则解析目标一级索引文件得到的候选二级索引文件为该存储目录下描述所有切片视频段的所有二级索引文件。
步骤204、根据目标视频信息从候选二级索引文件中定位目标二级索引文件。
由于用户想要播放的目标视频段可能只是一段视频,因此需要确定该段视频的切片视频段所对应的目标二级索引文件。具体的,由于二级索引文件是按照其中的切片视频段的开始时间和结束时间进行命名的,因此根据目标视频信息中的准确获取时间就可以定位到该段获取时间存在于哪一个或哪几个二级索引文件中,确定该二级索引文件为目标二级索引文件。
示例性的,接收到以main.json命名的一级索引文件后,按一级索引的管理规则解析文件,并从中获取出需要的获取时间段对应的M3U8文件的URL,M3U8文件即目标二级索引文件。在上述示例的基础上,获取时间为2020年12月2日7点至8点,二级索引文件描述了30分钟的切片视频段,则对应的目标二级索引文件的名称为S070000E072959以及S073000E075959。即根据候选二级索引文件的命名中的开始时间和结束时间即可定位到获取时间所在的目标二级索引文件。
步骤205、对目标二级索引文件进行解析,得到候选切片视频段。
根据一级索引文件中包括的与目标二级索引文件关联的访问地址实现对目标二级索引文件的访问,进而实现对目标二级索引文件的解析,得到目标二级索引文件中所有的切片视频段的名称以及对应的寻址值。
示例性性的,将解析到的M3U8文件的URL通过HLS协议向HLS服务模块请求下载。
步骤206、根据目标视频信息从候选切片视频段中确定目标切片视频段,并根据目标切片视频段的寻址值下载目标视频。
由于目标视频信息中包括了待播放视频的具体获取时间,而候选切片视频段是按照该视频段的开始时间和结束时间进行命名的,因此可以根据二级索引文件中的各候选切片视频段的名称准确定位目标切片视频段,确定目标切片视频段后,根据与目标切片视频段对应的寻址值下载目标切片视频段,最终得到目标视频。
示例性的,获取到对应时间段的M3U8文件后,再通过二级索引文件的管理规则,获取对应时间点的切片视频段文件的URL。最终以URL方式下载播放目标视频。
本发明实施例实现了在HLS客户端请求过程中无需对存储的视频流进行实时切片操作以及生成M3U8索引文件,节省了HLS服务器的计算性能和内存损耗。通过多级索引文件之间访问地址的嵌套实现了在海量切片小文件中快速准确定位目标文件,提高对切片视频段的下载效率。
实施例三
图3是本发明实施例三中的支持HLS协议访问的视频流处理系统的结构示意图,本实施例可适用于支持HLS服务读取的视频流存储情况。如图3所示,该系统包括:
海量相机终端用于获取原始监控视频。收流模块用于从相机终端中获取视频流。转码模块用于将获取到的原始视频流格式转换为TS格式的TS流。
存储模块中包括TS切片管理单元、存储目录管理单元、二级索引文件管理单元以及一级索引文件管理单元。其中,存储目标管理单元用于确定该TS所存储的存储目录,按照上述实施例中所述的分级管理规则进去确定存储目录;TS切片管理单元用于对TS流按照预设第一时间段进行切分处理,得到各切分视频流,并将所有的切分视频流存储在该存储目录下;二级索引文件管理单元用于按照预设第二时间段对各切分视频流进行划分管理,存储划分得到的第二时间段内的各切分视频流以及对应的访问地址;一级索引文件管理单元用于对该存储目录下的所有二级索引文件进行管理,得到所有二级索引文件的命名结果和对应的访问地址。其中,在TS切片管理单元中按照时间规则对切分视频段进行命名;在二级索引文件管理单元中按照时间规则对二级索引文件进行命名;在一级索引文件管理单元中按照既定名称对一级索引文件进行命名,以实现根据视频信息中访问时间可以实现对切分视频段的准确快速定位。
生成相应的切分视频段、二级索引文件和一级索引文件后,通过CDS客户端存储到相应的CDS存储系统中。
各类HLS客户端需要对目标视频进行播放时,根据目标视频的时间按照多级索引即可实现对目标切分视频段的准确定位,并通过Http服务模块从CDS存储系统中直接下载目标切分视频段进行播放,无需进行实时切分和索引文件的生成操作。
实施例四
图4是本发明实施例四中的视频流存储装置的结构示意图,本实施例可适用于支持HLS服务读取的视频流存储情况。如图4所示,该装置包括:
视频流确定模块410,用于获取视频采集设备采集的待存储视频流,并确定所述待存储视频流在存储系统中的存储目录;
视频流切分模块420,用于将所述待存储视频流按照预设第一时间段进行切分,并将切分结果存储在所述存储目录下;其中,所述第一时间段基于HLS协议设置,切分结果按照时间规则进行命名;
切片分级管理模块430,用于对所述切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据所述索引文件完成对目标视频段的定位。
本发明实施例基于对待存储视频流进行切分,对切分视频段进行存储,并且对切分视频段按照多级索引进行管理,根据多级索引文件之间访问地址的嵌套实现对目标切分视频段的快速定位,提高了从海量小文件中快速定位目标文件的效率。并且由于本发明实施例通过在视频流进行存储时按照切分视频段进行存储,避免了HLS服务读取视频流时再进行切分的操作,降低了对HLS服务部署服务器的硬件要求。
可选的,所述至少两级索引包括一级索引和二级索引,其中,一级索引为二级索引的上一级;
相应的,切片分级管理模块,具体用于:
将所述切分结果中各切分视频段按照预设第二时间段进行划分,根据划分结果确定二级索引文件;其中,所述二级索引文件按照时间规则进行命名,所述二级索引文件中包括各切分视频段的寻址值;所述寻址值由存储系统在接收到各切分视频段后根据存储位置确定并返回;
根据所述二级索引文件确定一级索引文件;其中,所述一级索引文件中包括所述二级索引文件的访问地址,且所述一级索引文件的访问地址根据所述待存储视频流的视频信息按照预设格式确定。
可选的,所述装置还包括存储目录确定模块,用于将所述存储目录按照待存储视频流的视频信息进行分层管理;所述视频信息包括待存储视频流的存储类型编码、获取时间、采集设备编码以及存储系统账号编码。
相应的,所述存储目录确定模块,具体用于:
根据存储系统账号编码建立第一级目录;根据采集设备编码建立第二级目录;根据获取时间建立第三级目录;根据存储类型编码确定第四级目录;
根据建立的第一级目录、第二级目录、第三级目录和第四级目录确定存储目录。
可选的,所述切分结果和所述至少两级索引文件存储在所述存储目录中的第四级目录下。
可选的,所述装置还包括视频访问响应模块,用于在得到至少两级索引文件之后,响应于HLS客户端的视频访问请求,获取所述视频访问请求中的目标视频信息;其中,所述视频信息包括获取时间、采集设备编码以及存储系统账号编码;
根据所述目标视频信息和预设格式确定目标一级索引文件的访问地址;
根据所述访问地址解析所述目标一级索引文件,得到其中的候选二级索引文件;
根据所述目标视频信息从候选二级索引文件中定位目标二级索引文件;
对所述目标二级索引文件进行解析,得到候选切片视频段;
根据所述目标视频信息从候选切片视频段中确定目标切片视频段,并根据所述目标切片视频段的寻址值下载目标视频。
可选的,所述切分结果中各切分视频段为TS格式;所述二级索引文件采用M3U8格式。
可选的,所述装置还包括视频流格式转换模块,用于在将所述待存储视频流按照预设第一时间段进行切分之前,
将所述待存储视频流转换为TS格式。
本发明实施例所提供的视频流存储装置可执行本发明任意实施例所提供的视频流存储方法,具备执行视频流存储方法相应的功能模块和有益效果。
实施例五
图5是本发明实施例五提供的一种电子设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图5显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储装置28,连接不同系统组件(包括系统存储装置28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储装置28可以包括易失性存储装置形式的计算机系统可读介质,例如随机存取存储装置(RAM)30和/或高速缓存存储装置32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储装置28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储装置28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图5中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储装置28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的视频流存储方法,包括:
获取视频采集设备采集的待存储视频流,并确定所述待存储视频流在存储系统中的存储目录;
将所述待存储视频流按照预设第一时间段进行切分,并将切分结果存储在所述存储目录下;其中,所述第一时间段基于HLS协议设置,切分结果按照时间规则进行命名;
对所述切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据所述索引文件完成对目标视频段的定位。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的视频流存储方法,包括:
获取视频采集设备采集的待存储视频流,并确定所述待存储视频流在存储系统中的存储目录;
将所述待存储视频流按照预设第一时间段进行切分,并将切分结果存储在所述存储目录下;其中,所述第一时间段基于HLS协议设置,切分结果按照时间规则进行命名;
对所述切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据所述索引文件完成对目标视频段的定位。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种视频流存储方法,其特征在于,包括:
获取视频采集设备采集的待存储视频流,并确定所述待存储视频流在存储系统中的存储目录;
将所述待存储视频流按照预设第一时间段进行切分,并将切分结果存储在所述存储目录下;其中,所述第一时间段基于HLS协议设置,切分结果按照时间规则进行命名;
对所述切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据所述索引文件完成对目标视频段的定位。
2.根据权利要求1所述的方法,其特征在于,所述至少两级索引包括一级索引和二级索引,其中,一级索引为二级索引的上一级;
相应的,对所述切分结果按照至少两级索引进行管理,得到至少两级索引文件,包括:
将所述切分结果中各切分视频段按照预设第二时间段进行划分,根据划分结果确定二级索引文件;其中,所述二级索引文件按照时间规则进行命名,所述二级索引文件中包括各切分视频段的寻址值;所述寻址值由存储系统在接收到各切分视频段后根据存储位置确定并返回;
根据所述二级索引文件确定一级索引文件;其中,所述一级索引文件中包括所述二级索引文件的访问地址,且所述一级索引文件的访问地址根据所述待存储视频流的视频信息按照预设格式确定。
3.根据权利要求1所述的方法,其特征在于,所述存储目录按照待存储视频流的视频信息进行分层管理;所述视频信息包括待存储视频流的存储类型编码、获取时间、采集设备编码以及存储系统账号编码;
相应的,所述存储目录按照待存储视频流的视频信息进行分层管理,包括:
根据所述存储系统账号编码建立第一级目录;根据所述采集设备编码建立第二级目录;根据所述获取时间建立第三级目录;根据所述存储类型编码确定第四级目录;
根据建立的第一级目录、第二级目录、第三级目录和第四级目录确定所述存储目录。
4.根据权利要求3所述的方法,其特征在于,所述切分结果和所述至少两级索引文件存储在所述存储目录中的第四级目录下。
5.根据权利要求2所述的方法,其特征在于,在得到至少两级索引文件之后,所述方法还包括:
响应于HLS客户端的视频访问请求,获取所述视频访问请求中的目标视频信息;其中,所述视频信息包括获取时间、采集设备编码以及存储系统账号编码;
根据所述目标视频信息和预设格式确定目标一级索引文件的访问地址;
根据所述访问地址解析所述目标一级索引文件,得到其中的候选二级索引文件;
根据所述目标视频信息从候选二级索引文件中定位目标二级索引文件;
对所述目标二级索引文件进行解析,得到候选切片视频段;
根据所述目标视频信息从候选切片视频段中确定目标切片视频段,并根据所述目标切片视频段的寻址值下载目标视频。
6.根据权利要求2所述的方法,其特征在于,所述切分结果中各切分视频段为TS格式;所述二级索引文件采用M3U8格式。
7.根据权利要求1所述的方法,其特征在于,在将所述待存储视频流按照预设第一时间段进行切分之前,还包括:
将所述待存储视频流转换为TS格式。
8.一种视频流存储装置,其特征在于,包括:
视频流确定模块,用于获取视频采集设备采集的待存储视频流,并确定所述待存储视频流在存储系统中的存储目录;
视频流切分模块,用于将所述待存储视频流按照预设第一时间段进行切分,并将切分结果存储在所述存储目录下;其中,所述第一时间段基于HLS协议设置,切分结果按照时间规则进行命名;
切片分级管理模块,用于对所述切分结果按照至少两级索引进行管理,得到至少两级索引文件;其中,上一级索引文件中包括下一级索引文件的访问地址,以根据所述索引文件完成对目标视频段的定位。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的视频流存储方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的视频流存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011457418.7A CN114630143B (zh) | 2020-12-10 | 2020-12-10 | 视频流存储方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011457418.7A CN114630143B (zh) | 2020-12-10 | 2020-12-10 | 视频流存储方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114630143A true CN114630143A (zh) | 2022-06-14 |
CN114630143B CN114630143B (zh) | 2024-03-22 |
Family
ID=81896442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011457418.7A Active CN114630143B (zh) | 2020-12-10 | 2020-12-10 | 视频流存储方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114630143B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117156172A (zh) * | 2023-10-30 | 2023-12-01 | 江西云眼视界科技股份有限公司 | 视频切片上报方法、系统、存储介质及计算机 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231803A (zh) * | 2011-03-14 | 2011-11-02 | 新奥特(北京)视频技术有限公司 | 一种支持ts流媒体文件的容错方法 |
CN104427351A (zh) * | 2013-08-30 | 2015-03-18 | 北京计算机技术及应用研究所 | 用于视频监控的时间重叠视频流的快速定位方法及系统 |
US20150229688A1 (en) * | 2013-06-20 | 2015-08-13 | Tencent Technology (Shenzhen) Company Limited | Method and device for playing streaming media, and non-transitory storage medium |
CN105657578A (zh) * | 2015-10-29 | 2016-06-08 | 乐视致新电子科技(天津)有限公司 | 基于hls协议的直播方法、系统及客户端 |
CN110944228A (zh) * | 2018-09-21 | 2020-03-31 | 中国移动通信有限公司研究院 | 一种视频流保护方法、装置和存储介质 |
-
2020
- 2020-12-10 CN CN202011457418.7A patent/CN114630143B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231803A (zh) * | 2011-03-14 | 2011-11-02 | 新奥特(北京)视频技术有限公司 | 一种支持ts流媒体文件的容错方法 |
US20150229688A1 (en) * | 2013-06-20 | 2015-08-13 | Tencent Technology (Shenzhen) Company Limited | Method and device for playing streaming media, and non-transitory storage medium |
CN104427351A (zh) * | 2013-08-30 | 2015-03-18 | 北京计算机技术及应用研究所 | 用于视频监控的时间重叠视频流的快速定位方法及系统 |
CN105657578A (zh) * | 2015-10-29 | 2016-06-08 | 乐视致新电子科技(天津)有限公司 | 基于hls协议的直播方法、系统及客户端 |
CN110944228A (zh) * | 2018-09-21 | 2020-03-31 | 中国移动通信有限公司研究院 | 一种视频流保护方法、装置和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117156172A (zh) * | 2023-10-30 | 2023-12-01 | 江西云眼视界科技股份有限公司 | 视频切片上报方法、系统、存储介质及计算机 |
CN117156172B (zh) * | 2023-10-30 | 2024-01-16 | 江西云眼视界科技股份有限公司 | 视频切片上报方法、系统、存储介质及计算机 |
Also Published As
Publication number | Publication date |
---|---|
CN114630143B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5666477B2 (ja) | ビデオストリーミングのシームレスな巻戻しおよび再生のためのサーバー側サポート | |
WO2018076952A1 (zh) | 一种视频文件的存储、定位播放方法及装置 | |
US11005903B2 (en) | Processing of streamed multimedia data | |
CN109348251B (zh) | 用于视频播放的方法、装置、计算机可读介质及电子设备 | |
US9491225B2 (en) | Offline download method and system | |
US11233838B2 (en) | System and method of web streaming media content | |
JP2019533233A (ja) | メディア記憶 | |
CN112765103B (zh) | 一种文件解析方法、系统、装置及设备 | |
US11315605B2 (en) | Method, device, and computer program product for storing and providing video | |
CN114630143B (zh) | 视频流存储方法、装置、电子设备和存储介质 | |
CN113873288A (zh) | 在直播过程中生成回放的方法和装置 | |
US20210058652A1 (en) | System and method of building a distributed network for essence management and access | |
CN114039919A (zh) | 流量调度方法、介质、装置和计算设备 | |
CN111930385A (zh) | 数据采集方法、装置、设备及存储介质 | |
CN111107443A (zh) | 一种dash分片文件合并方法、终端设备及存储介质 | |
CN111565168A (zh) | 一种对象存储方法、系统、存储介质及电子设备 | |
CN110166561B (zh) | 可穿戴设备的数据处理方法、装置、系统、设备及介质 | |
CN113407769A (zh) | 一种用于手机非编剪辑短视频的缓存映像方法 | |
CN112218118A (zh) | 一种音视频裁剪方法及装置 | |
US20230089154A1 (en) | Virtual and index assembly for cloud-based video processing | |
CN111447490A (zh) | 流媒体文件处理方法及装置 | |
CN115086308B (zh) | 一种基于rdp的数据传输的控制方法及设备 | |
Medalla et al. | Adapting block-sized captures for faster network flow analysis on the Hadoop ecosystem | |
RU2549102C2 (ru) | Способ определения медиа потоков, вещание которых осуществляется в масштабе реального времени, и система для реализации способа | |
CN116415032A (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 |