CN117156172B - 视频切片上报方法、系统、存储介质及计算机 - Google Patents
视频切片上报方法、系统、存储介质及计算机 Download PDFInfo
- Publication number
- CN117156172B CN117156172B CN202311412679.0A CN202311412679A CN117156172B CN 117156172 B CN117156172 B CN 117156172B CN 202311412679 A CN202311412679 A CN 202311412679A CN 117156172 B CN117156172 B CN 117156172B
- Authority
- CN
- China
- Prior art keywords
- file
- slice
- temporary
- slicing
- identification
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000005012 migration Effects 0.000 claims abstract description 43
- 238000013508 migration Methods 0.000 claims abstract description 43
- 238000005192 partition Methods 0.000 claims abstract description 37
- 238000006243 chemical reaction Methods 0.000 claims abstract description 5
- 238000011084 recovery Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/241—Operating system [OS] processes, e.g. server setup
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种视频切片上报方法、系统、存储介质及计算机,上报方法包括:对内存进行挂载分区,并创建临时目录、迁移目录;构建切片线程,通过切片线程在临时目录下创建临时文件,并对临时文件进行标识得到标识临时文件;读取视频数据中关键帧和对应的差别帧,格式转换后写入标识临时文件,标识临时文件满足预设要求后停止写入以形成切片文件;构建上报线程,上报线程根据元数据缓存队列将切片文件由临时目录移动到迁移目录下,将切片文件的元数据发送至kafka消息队列,并在迁移目录下将切片文件迁移落盘,以完成视频切片的上报。本申请提供的视频切片上报方法,利用内存文件系统的高写入性能,可以极大提升流媒体服务器的并发接入性能。
Description
技术领域
本发明涉及视频处理技术领域,具体涉及一种视频切片上报方法、系统、存储介质及计算机。
背景技术
随着AI,大数据,云计算等技术的发展,智能视频云的使用已逐渐成熟,视频存储是视频云一个很重要的基础功能,而流媒体服务器是实现视频存储很重要的一环。
视频数据从接入到最终看到录像会经过视频接入、视频切片、文件缓存、视频对象元数据上报、切片文件迁移、切片文件落盘、时间轴整理等过程,而流媒体服务主要负责视频流的接入、切片、缓存、元数据上报等操作。目前视频数据的缓存主要通过硬盘或者闪存等进行,硬盘或者闪存中存在大量数据进行处理时,容易遇到写入IO的瓶颈问题,降低视频数据的输入输出效率,影响流媒体服务器的并发接入性能。
发明内容
基于此,本发明的目的是提供一种视频切片上报方法、系统、存储介质及计算机,以解决现有技术中存在的技术问题。
本发明提出一种视频切片上报方法,包括:
对内存进行挂载分区,以在所述内存中获得一独立分区,在所述独立分区中创建临时目录、迁移目录;
构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件;
读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件,获取所述切片文件的元数据并写入元数据缓存队列;
构建上报线程,所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到所述迁移目录下,将所述切片文件的元数据发送至kafka消息队列,并在所述迁移目录下将所述切片文件迁移落盘,以完成视频切片的上报。
优选地,所述构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件的步骤包括:
根据输入流ID、存储周期、拉流地址创建切片线程,其中,所述切片线程与摄像机通过所述拉流地址建立连接以实时获取视频数据;
对所述临时文件进行名称标识,所述名称标识包括:输入流ID、存储周期、创建时间、随机数,所述随机数用于防止不同时间创建的临时文件名称冲突;
对进行名称标识后的临时文件进行格式标识,使得临时文件格式转换为flv格式,以得到所述标识临时文件。
优选地,所述读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件的步骤包括:
记录所述切片线程收到视频数据中第一个关键帧的时间并将其记为所述切片文件的开始时间,将第一个关键帧转换成flv格式数据后写入所述标识临时文件;
实时获取视频数据中第一关键帧后对应的若干差值帧,并将收到的差值帧转换成flv格式数据后依次写入所述标识临时文件,记录第一个关键帧和差值帧之间以及若干差值帧之间的时间差Δt;
依次获取后续的关键帧和对应的差值帧,并记录后续获取的关键帧与差值帧之间的时间差以及差值帧与差值帧之间的时间差,将所有的时间差进行累积;
对累积的时间差进行阈值判断,当累积的时间差满足阈值要求时停止写入,记为所述切片文件的停止时间。
优选地,所述对累积的时间差进行阈值判断,当累积的时间差满足阈值要求时停止写入的步骤包括:判断累积的时间差是否大于30s;若大于30s,则停止向所述标识临时文件中写入视频数据以形成切片文件,同时生成切片文件对象ID。
优选地,所述视频切片上报方法还包括:判断所述标识临时文件大小是否大于50MB,若大于50MB,则停止向所述标识临时文件中写入视频数据以形成切片文件,同时生成切片文件对象ID。
优选地,所述独立分区内还创建有恢复目录,所述视频切片上报方法还包括:
当系统异常终止并重新启动后,将临时目录下的所有文件移动至所述恢复目录下并进行扫描;
解析移动至所述恢复目录下的所有文件,挑选出所述恢复目录下的标识临时文件;
解析挑选出的所述标识临时文件中的内容,获取其中的关键帧以及对应的差别帧,根据获取的关键帧和差别帧生成解析切片文件;
获取所述解析切片文件的元数据并写入元数据缓存队列。
优选地,所述迁移目录下还包括备份文件,在所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到迁移目录下之后,所述视频切片上报方法还包括:
将所述切片文件的元数据同步发送至所述备份文件;
当系统异常终止并重新启动后,读取所述备份文件中所述切片文件的元数据并发送至kafka消息队列;
发送成功后删除备份文件中的数据。
本发明还提出一种视频切片上报系统,包括:
分区模块,用于对内存进行挂载分区,以在所述内存中获得一独立分区,在所述独立分区中创建临时目录、迁移目录;
第一构建模块,用于构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件;
读取模块,用于读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件,获取所述切片文件的元数据并写入元数据缓存队列;
第二构建模块,用于构建上报线程,所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到所述迁移目录下,将所述切片文件的元数据发送至kafka消息队列,并在所述迁移目录下将所述切片文件迁移落盘,以完成视频切片的上报。
本发明还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述视频切片上报方法。
本发明还提出一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述视频切片上报方法。
本发明相比于现有技术的有益效果为:本申请提供的视频切片上报方法,首先对内存进行分区,以在内存中创建临时目录、迁移目录,其中临时目录可以用来存储临时写入的切片文件,迁移目录下的切片文件是经过处理后可以进行迁移的文件;在内存的临时目录中创建临时文件并进行相应的格式标识,提高文件的识别度,读取视频数据中的关键帧和差别帧并进行相应的格式转化,提高写入准确性,构建上报线程后将标识临时文件迁移至迁移目录下并将临时切片文件的元数据发送至kafka消息队列,并在所述迁移目录下将所述切片文件迁移落盘,以完成视频切片的上报。本申请提供的视频切片上报方法,利用内存文件系统的高写入性能,可以极大提升流媒体服务器的并发接入性能。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为本发明第一实施例中的视频切片上报方法的流程图;
图2为本发明第七实施例中的计算机的结构框图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例一
请参阅图1,所示为本发明第一实施例中的视频切片上报方法,所述视频切片上报方法具体包括步骤S10至S40:
S10,对内存进行挂载分区,以在所述内存中获得一独立分区,在所述独立分区中创建临时目录、迁移目录;
在具体实施时,首先对系统进行初始化设置,通过从系统的配置文件中读取内存的大小和挂载目录,并对内存进行挂载分区,挂载成功后会在内存中获得一个独立的分区,该独立分区用于进行后续的视频数据缓存等操作。在独立分区内创建临时(tmp)目录、迁移(normal)目录,其中,临时目录可以用来存储临时写入的切片文件,迁移目录下的切片文件是经过处理后可以进行迁移的文件;具体的,当切片对象被迁移到磁盘实现数据真正落盘后,流媒体服务器将当前切片对象删除,释放内存空间,充分利用内存文件系统的高写入特性。
S20,构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件;
对摄像机拍摄的视频数据进行切片,完整的切片任务主要包含了切片任务创建、数据写入和数据缓存、切片文件重新分配、切片任务停止等阶段。
具体的,切片认为的创建主要包括:根据输入流ID、存储周期、拉流地址创建切片线程,输入流ID视频输入流的ID,具体为摄像机的ID标识,通过输入流ID可以获取摄像机的型号、像素等具体参数;存储周期可以为上报后的视频数据的存储时间;拉流地址为切片线程与摄像机建立连接的连接方式,切片线程与摄像机通过拉流地址建立连接以实时获取视频数据;进一步的,切片线程在临时目录下创建临时文件,临时文件可以存储接收到的视频数据。创建临时文件后对临时文件进行名称标识,方便临时文件的查找,名称标识包括:输入流ID、存储周期、创建时间、随机数,随机数用于防止不同时间创建的临时文件名称冲突;具体的,临时文件的名称组成格式为“输入流ID _存储周期_创建时间_随机数.tmp”,进一步的,通过切片线程向名称标识后的临时文件写入flv头部标识数据,使得临时文件格式转换为flv格式,以得到标识临时文件。
S30,读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件,获取所述切片文件的元数据并写入元数据缓存队列。
具体的,数据写入和数据缓存主要包括视频切片文件的创建以及视频关键帧的索引缓存构建等过程。
视频切片文件的创建主要包括:记录切片线程收到视频数据中第一个关键帧的时间并将其记为切片文件的开始时间,切片文件的格式为flv格式,与标识临时文件的格式对应,提高写入准确性,将第一个关键帧转换成flv格式数据后写入标识临时文件;实时获取视频数据中第一关键帧后对应的若干差值帧,并将收到的差值帧转换成flv格式数据后写入标识临时文件,可以理解的是,一个视频片段可以由若干个视频帧构成,每一视频帧包括关键帧(I帧)和若干差值帧(P帧),记录第一个关键帧和差值帧之间以及若干差值帧之间的时间差Δt。
例如,可选的,某个视频片段可能包括20s,每秒为一帧,则20s的视频包括20个视频帧,每一视频帧内均含有一关键帧和与该关键帧(I帧)对应的差值帧(P帧);可选的,在本实施例中,关键帧与差值帧以及差值帧与差值帧之间的时间差相同,均为Δt。进一步的,依次获取后续的关键帧和对应的差值帧,并记录后续获取的关键帧与差值帧之间的时间差和差值帧与差值帧之间的时间差,将所有的时间差进行累积。
可选的,内存中还构建有关键帧索引,关键帧索引的格式为:关键帧数量_关键帧1开始位置_关键帧1结束位置_关键帧2开始位置_关键帧2结束位置_关键帧n开始位置_关键帧n结束位置,切片线程每获取一个关键帧时即更新内存中的关键帧索引缓存;通过关键帧索引缓存表示当前文件中有多少个关键帧以及关键帧在文件的什么位置。
切片文件重新分配阶段具体包括:对累积的时间差进行阈值判断,当累积的时间差阈值达到要求时停止,作为切片文件的停止时间。具体的,判断上述累积的时间差是否大于30s,若是则停止向临时文件中写入视频数据以获得切片文件,切片文件的时间即为30s。关闭当前切片文件然后创建一个新的切片文件,进一步的, 为了防止切片文件太大,影响处理效率,在一些可选的实施例中,判断写入视频数据的临时文件大小是否大于50MB,若是,则停止向标识临时文件中写入视频数据以形成切片文件,同时生成切片文件对象ID;也即,大于50MB的临时文件累积的时间差可能并未到30s,但是由于某些极端情况的存在造成文件过大,也应该及时停止继续写入。生成切片文件后同时生成切片文件对象ID,用于唯一标识该切片文件。
对切片文件进行标识后,将切片的元数据写入对象元数据缓存队列,方便后续查找;切片文件存储在临时目录下,对象元数据缓存队列可以存储在内存的其他分区中,切片元数据包括切片文件的详细信息,包括但不限于输入流ID、存储周期、创建时间、时间长度、文件大小、文件路径、对象ID、切片文件关键帧索引等。
进一步的,切片任务停止阶段主要做一些资源清理工作,主要包括:关闭切片任务的拉流连接;关闭当前切片文件,切片对象元数据写入切片对象元数据缓存队列。
S40,构建上报线程,所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到迁移目录下,将所述切片文件的元数据发送至kafka消息队列,并在所述迁移目录下所述切片文件迁移落盘,以完成视频切片的上报。
生成切片文件后需要进行迁移,具体的,创建元数据上报线程,上报线程从切片对象元数据缓存队列获取切片对象元数据,从切片对象元数据中获取切片文件的原始路径;将切片文件从临时目录移动到迁移目录下,移动到迁移目录下的文件名格式为“输入流ID_存储周期_创建时间_时间长度_文件大小_对象ID.flv。修改切片对象元数据的文件原始路径,由临时目录改为迁移目录下;切片文件被迁移到磁盘实现数据真正落盘,流媒体服务器将当前切片对象删除,释放内存空间,并将切片文件的元数据发送至kafka消息队列后等切片文件被迁移,完成视频切片的上报;本申请提供的视频切片上报方法,利用内存文件系统的高写入性能,可以极大提升流媒体服务器的并发接入性能。
实施例二
本实施例也提供一种视频切片上报方法,本实施例与实施例一提供的视频切片上报方法的不同之处在于:
在出现异常断电等情况导致程序终止或者升级需要重新启动程序时;可能会导致内存中缓存的视频切片数据丢失,在本实施例中,切片逻辑是每隔30秒完成一次切片操作,那就意味着所有视频最多会丢失30秒的数据。
具体的,在本实施例中,为了防止视频数据出现丢失,独立分区内还创建有恢复目录,视频切片上报方法还包括:当系统异常终止并重新启动后执行时,将临时目录下的所有文件移动至恢复目录下并进行扫描; 解析移动至恢复目录下的所有文件,挑选出恢复目录下标识临时文件;解析挑选出的标识临时文件中的内容,获取其中的关键帧以及对应的差别帧,根据获取的关键帧和差别帧生成解析切片文件;获取解析切片文件的元数据并写入元数据缓存队列。
在本实施例中,将程序终止时临时目录下的所有文件转移至恢复目录下进行扫描,解析关键帧索引挑选出在程序终止前已经写入的关键帧和差别帧,并根据解析的关键帧和差别帧生成解析切片文件,同时生成对应的切片文件对象ID,用于标识该解析切片文件,可以理解的是,解析切片文件为程序终止时未完成切片的临时文件,时间可能小于30s,文件大小也可能小于50MB,为了保持视频的完整性,在程序重新启动后将未完成切片的临时文件单独生成切片文件并进行后续的上报过程。
进一步的,迁移目录下还包括备份文件,在上报线程根据元数据缓存队列将切片文件由临时目录移动到迁移目录下之后,视频切片上报方法还包括:将切片文件的元数据同步发送至备份文件;当系统异常终止并重新启动后执行时,读取备份文件中切片文件的元数据,若有则将其发送至kafka消息队列;发送成功后删除备份文件中的数据。
实施例三
本实施例提供一种视频切片上报系统,包括:
分区模块,用于对内存进行挂载分区,以在所述内存中获得一独立分区,在所述独立分区中创建临时目录、迁移目录;
第一构建模块,用于构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件;
第一构建模块包括:
构建单元,用于根据输入流ID、存储周期、拉流地址创建切片线程,其中,所述切片线程与摄像机通过所述拉流地址建立连接以实时获取视频数据;
第一标识单元,用于对所述临时文件进行名称标识,所述名称标识包括:输入流ID、存储周期、创建时间、随机数,所述随机数用于防止不同时间创建的临时文件名称冲突;
第二标识单元,用于对进行名称标识后的临时文件进行格式标识,使得临时文件格式转换为flv格式,以得到所述标识临时文件。
读取模块,用于读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件,获取所述切片文件的元数据并写入元数据缓存队列;
读取模块包括:
第一写入单元,用于记录所述切片线程收到视频数据中第一个关键帧的时间并将其记为所述切片文件的开始时间,将第一个关键帧转换成flv格式数据后写入所述标识临时文件;
第二写入单元,用于实时获取视频数据中第一关键帧后对应的若干差值帧,并将收到的差值帧转换成flv格式数据后依次写入所述标识临时文件,记录第一个关键帧和差值帧之间以及若干差值帧之间的时间差Δt;
累积单元,用于依次获取后续的关键帧和对应的差值帧,并记录后续获取的关键帧与差值帧之间的时间差和差值帧与差值帧之间的时间差,将所有的时间差进行累积;
判断单元,用于对累积的时间差进行阈值判断,当累积的时间差满足阈值要求时停止写入,记为所述切片文件的停止时间。
第二构建模块,用于构建上报线程,所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到迁移目录下,在所述迁移目录下所述切片文件迁移落盘,并将所述切片文件的元数据发送至kafka消息队列,以完成视频切片的上报。
实施例四
本实施例也提供一种视频切片上报系统,本实施例与实施例三的视频切片上报系统不同之处在于:包括
分区模块,用于对内存进行挂载分区,以在所述内存中的获得一独立分区,在所述独立分区中创建临时目录、恢复目录、迁移目录;
读取模块,用于读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件,获取所述切片文件的元数据并写入元数据缓存队列;
读取模块还包括:
扫描单元,用于当系统异常终止并重新启动后执行时,将临时目录下的所有文件移动至所述恢复目录下并进行扫描;
第一解析单元,用于解析移动至恢复目录下的所有文件,挑选出恢复目录下标识临时文件;
第二解析单元,用于解析挑选出的所述标识临时文件中的内容,获取其中的关键帧以及对应的差别帧,根据获取的关键帧和差别帧生成解析切片文件;
获取单元,用于获取所述解析切片文件的元数据并写入元数据缓存队列。
实施例五
本实施例也提供一种视频切片上报系统,本实施例与实施例三的视频切片上报系统不同之处在于:包括
分区模块,对内存进行挂载分区,以在所述内存中的获得一独立分区,在所述独立分区中创建临时目录、迁移目录,所述迁移目录下还包括备份文件;
第二构建模块,用于构建上报线程,所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到迁移目录下,在所述迁移目录下所述切片文件迁移落盘,并将所述切片文件的元数据发送至kafka消息队列,以完成视频切片的上报。
第二构建模块包括:
备份单元,用于将所述切片文件的元数据同步发送至所述备份文件;
发送单元,用于当系统异常终止并重新启动后执行时,读取所述备份文件中所述切片文件的元数据并发送至kafka消息队列;
删除单元,用于发送成功后删除备份文件中的数据。
实施例六
本发明实施例六提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的视频切片上报方法。
实施例七
本发明还提出一种计算机,请参阅图2,所示为本发明第七实施例中的计算机,包括存储器10、处理器20以及存储在所述存储器10上并可在所述处理器20上运行的计算机程序30,所述处理器20执行所述计算机程序30时实现上述的视频切片上报方法。
其中,存储器10至少包括一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器10在一些实施例中可以是计算机的内部存储单元,例如该计算机的硬盘。存储器10在另一些实施例中也可以是外部存储装置,例如插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器10还可以既包括计算机的内部存储单元也包括外部存储装置。存储器10不仅可以用于存储安装于计算机的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
其中,处理器20在一些实施例中可以是电子控制单元 (Electronic ControlUnit,简称ECU,又称行车电脑)、中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器10中存储的程序代码或处理数据,例如执行访问限制程序等。
需要指出的是,图2示出的结构并不构成对计算机的限定,在其它实施例当中,该计算机可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种视频切片上报方法,其特征在于,包括;
对内存进行挂载分区,以在所述内存中获得一独立分区,在所述独立分区中创建临时目录、迁移目录;
构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件;
读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件,获取所述切片文件的元数据并写入元数据缓存队列;
构建上报线程,所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到所述迁移目录下,将所述切片文件的元数据发送至kafka消息队列,并在所述迁移目录下将所述切片文件迁移落盘,以完成视频切片的上报;
所述构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件的步骤包括:
根据输入流ID、存储周期、拉流地址创建切片线程,其中,所述切片线程与摄像机通过所述拉流地址建立连接以实时获取视频数据;
对所述临时文件进行名称标识,所述名称标识包括:输入流ID、存储周期、创建时间、随机数,所述随机数用于防止不同时间创建的临时文件名称冲突;
对进行名称标识后的临时文件进行格式标识,使得临时文件格式转换为flv格式,以得到所述标识临时文件;
所述读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件的步骤包括:
记录所述切片线程收到视频数据中第一个关键帧的时间并将其记为所述切片文件的开始时间,将第一个关键帧转换成flv格式数据后写入所述标识临时文件;
实时获取视频数据中第一关键帧后对应的若干差值帧,并将收到的差值帧转换成flv格式数据后依次写入所述标识临时文件,记录第一个关键和差值帧之间以及若干差值帧之间的时间差Δt;
依次获取后续的关键帧和对应的差值帧,并记录后续获取的关键帧的差值帧之间的时间差以及差值帧与差值帧之间的时间差,将所有的时间差进行累积;
对累积的时间差进行阈值判断,当累积的时间差满足阈值要求时停止写入,记为所述切片文件的停止时间。
2.根据权利要求1所述的视频切片上报方法,其特征在于,所述对累积的时间差进行阈值判断,当累积的时间差满足阈值要求时停止写入的步骤包括:判断累积的时间差是否大于30s;若大于30s,则停止向所述标识临时文件中写入视频数据以形成切片文件,同时生成切片文件对象ID。
3.根据权利要求1所述的视频切片上报方法,其特征在于,所述上报方法还包括:判断所述标识临时文件大小是否大于50MB,若大于50MB,则停止向所述标识临时文件中写入视频数据以形成切片文件,同时生成切片文件对象ID。
4.根据权利要求1所述的视频切片上报方法,其特征在于,所述独立分区内还创建有恢复目录,所述视频切片上报方法还包括:
当系统异常终止并重新启动后,将临时目录下的所有文件移动至所述恢复目录下并进行扫描;
解析移动至所述恢复目录下的所有文件,挑选出所述恢复目录下的标识临时文件;
解析挑选出的所述标识临时文件中的内容,获取其中的关键帧以及对应的差别帧,根据获取的关键帧和差别帧生成解析切片文件;
获取所述解析切片文件的元数据并写入元数据缓存队列。
5.根据权利要求1所述的视频切片上报方法,其特征在于,所述迁移目录下还包括备份文件,在所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到迁移目录下之后,所述视频切片上报方法还包括:
将所述切片文件的元数据同步发送至所述备份文件;
当系统异常终止并重新启动后,读取所述备份文件中所述切片文件的元数据并发送至kafka消息队列;
发送成功后删除备份文件中的数据。
6.一种视频切片上报系统,其特征在于,包括:
分区模块,用于对内存进行挂载分区,以在所述内存中获得一独立分区,在所述独立分区中创建临时目录、迁移目录;
第一构建模块,用于构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件;
所述构建切片线程,通过所述切片线程在所述临时目录下创建临时文件,并对所述临时文件进行切片格式标识,得到标识临时文件的步骤包括:
根据输入流ID、存储周期、拉流地址创建切片线程,其中,所述切片线程与摄像机通过所述拉流地址建立连接以实时获取视频数据;
对所述临时文件进行名称标识,所述名称标识包括:输入流ID、存储周期、创建时间、随机数,所述随机数用于防止不同时间创建的临时文件名称冲突;
对进行名称标识后的临时文件进行格式标识,使得临时文件格式转换为flv格式,以得到所述标识临时文件;
读取模块,用于读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件,获取所述切片文件的元数据并写入元数据缓存队列;
所述读取视频数据中关键帧和对应的差别帧并进行切片格式转换,将转换后的视频数据写入所述标识临时文件,直至所述标识临时文件满足预设要求后停止写入以形成切片文件的步骤包括:
记录所述切片线程收到视频数据中第一个关键帧的时间并将其记为所述切片文件的开始时间,将第一个关键帧转换成flv格式数据后写入所述标识临时文件;
实时获取视频数据中第一关键帧后对应的若干差值帧,并将收到的差值帧转换成flv格式数据后依次写入所述标识临时文件,记录第一个关键和差值帧之间以及若干差值帧之间的时间差Δt;
依次获取后续的关键帧和对应的差值帧,并记录后续获取的关键帧的差值帧之间的时间差以及差值帧与差值帧之间的时间差,将所有的时间差进行累积;
对累积的时间差进行阈值判断,当累积的时间差满足阈值要求时停止写入,记为所述切片文件的停止时间;
第二构建模块,用于构建上报线程,所述上报线程根据所述元数据缓存队列将所述切片文件由所述临时目录移动到所述迁移目录下,将所述切片文件的元数据发送至kafka消息队列,并在所述迁移目录下将所述切片文件迁移落盘,以完成视频切片的上报。
7.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一所述的视频切片上报方法。
8.一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一所述的视频切片上报方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311412679.0A CN117156172B (zh) | 2023-10-30 | 2023-10-30 | 视频切片上报方法、系统、存储介质及计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311412679.0A CN117156172B (zh) | 2023-10-30 | 2023-10-30 | 视频切片上报方法、系统、存储介质及计算机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117156172A CN117156172A (zh) | 2023-12-01 |
CN117156172B true CN117156172B (zh) | 2024-01-16 |
Family
ID=88899079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311412679.0A Active CN117156172B (zh) | 2023-10-30 | 2023-10-30 | 视频切片上报方法、系统、存储介质及计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117156172B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117931098B (zh) * | 2024-03-22 | 2024-06-07 | 江西云眼视界科技股份有限公司 | 边缘侧事件存储方法、系统、存储介质及计算机 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150385A (zh) * | 2013-03-15 | 2013-06-12 | 杭州智屏软件有限公司 | 基于内存的实时视频录制缓存技术 |
CN104581200A (zh) * | 2015-02-06 | 2015-04-29 | 网易传媒科技(北京)有限公司 | 切片转码的方法和设备 |
WO2016011823A1 (zh) * | 2014-07-22 | 2016-01-28 | 中兴通讯股份有限公司 | 获取直播视频切片的方法、服务器及存储介质 |
CN105488108A (zh) * | 2015-11-19 | 2016-04-13 | 广州日滨科技发展有限公司 | 一种多个视频文件高速并行存储的方法及装置 |
WO2018059222A1 (zh) * | 2016-09-28 | 2018-04-05 | 杭州海康威视数字技术股份有限公司 | 一种文件切片上传方法、装置及云存储系统 |
CN109547566A (zh) * | 2018-12-25 | 2019-03-29 | 华南理工大学 | 一种基于内存分配的多线程上传优化方法 |
CN112492345A (zh) * | 2020-11-25 | 2021-03-12 | 深圳创维数字技术有限公司 | 音视频存储方法、系统、终端和计算机可读存储介质 |
CN113835870A (zh) * | 2020-06-23 | 2021-12-24 | 华为技术有限公司 | 数据处理方法及系统 |
CN114630143A (zh) * | 2020-12-10 | 2022-06-14 | 浙江宇视科技有限公司 | 视频流存储方法、装置、电子设备和存储介质 |
CN115250181A (zh) * | 2022-07-22 | 2022-10-28 | 中国电信股份有限公司 | 基于Kafka的文件验证传输方法、装置、设备及存储 |
CN115412777A (zh) * | 2021-05-28 | 2022-11-29 | 北京金山云网络技术有限公司 | 流媒体数据的传输方法及装置、系统 |
CN115774796A (zh) * | 2022-07-29 | 2023-03-10 | 宁波星巡智能科技有限公司 | 视频数据分步存储方法、装置、电子设备及存储介质 |
CN116661705A (zh) * | 2023-07-24 | 2023-08-29 | 江西云眼视界科技股份有限公司 | 基于kafka的数据管理方法、系统、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11886751B2 (en) * | 2020-10-15 | 2024-01-30 | EMC IP Holding Company LLC | Intelligent block slicing in network attached storage for data protection |
US11663086B2 (en) * | 2020-10-15 | 2023-05-30 | EMC IP Holding Company LLC | File system slicing in network attached storage for data protection |
-
2023
- 2023-10-30 CN CN202311412679.0A patent/CN117156172B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150385A (zh) * | 2013-03-15 | 2013-06-12 | 杭州智屏软件有限公司 | 基于内存的实时视频录制缓存技术 |
WO2016011823A1 (zh) * | 2014-07-22 | 2016-01-28 | 中兴通讯股份有限公司 | 获取直播视频切片的方法、服务器及存储介质 |
CN104581200A (zh) * | 2015-02-06 | 2015-04-29 | 网易传媒科技(北京)有限公司 | 切片转码的方法和设备 |
CN105488108A (zh) * | 2015-11-19 | 2016-04-13 | 广州日滨科技发展有限公司 | 一种多个视频文件高速并行存储的方法及装置 |
WO2018059222A1 (zh) * | 2016-09-28 | 2018-04-05 | 杭州海康威视数字技术股份有限公司 | 一种文件切片上传方法、装置及云存储系统 |
CN109547566A (zh) * | 2018-12-25 | 2019-03-29 | 华南理工大学 | 一种基于内存分配的多线程上传优化方法 |
CN113835870A (zh) * | 2020-06-23 | 2021-12-24 | 华为技术有限公司 | 数据处理方法及系统 |
CN112492345A (zh) * | 2020-11-25 | 2021-03-12 | 深圳创维数字技术有限公司 | 音视频存储方法、系统、终端和计算机可读存储介质 |
CN114630143A (zh) * | 2020-12-10 | 2022-06-14 | 浙江宇视科技有限公司 | 视频流存储方法、装置、电子设备和存储介质 |
CN115412777A (zh) * | 2021-05-28 | 2022-11-29 | 北京金山云网络技术有限公司 | 流媒体数据的传输方法及装置、系统 |
CN115250181A (zh) * | 2022-07-22 | 2022-10-28 | 中国电信股份有限公司 | 基于Kafka的文件验证传输方法、装置、设备及存储 |
CN115774796A (zh) * | 2022-07-29 | 2023-03-10 | 宁波星巡智能科技有限公司 | 视频数据分步存储方法、装置、电子设备及存储介质 |
CN116661705A (zh) * | 2023-07-24 | 2023-08-29 | 江西云眼视界科技股份有限公司 | 基于kafka的数据管理方法、系统、电子设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
An Efficient Block Assignment Policy in Hadoop Distributed File System for Multimedia Data Processing;Cheolgi KIM;IEICE Transactions on Information and Systems;全文 * |
IPTV中基于切片技术的内容存储策略研究;刘桂云;邵智超;;信息通信(02);全文 * |
基于分布式构建HLS协议流媒体文件三层文件存储管理系统;杜鹏;信息与电脑(理论版);全文 * |
杜鹏 ; .基于分布式构建HLS协议流媒体文件三层文件存储管理系统.信息与电脑(理论版).2019,(07),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN117156172A (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11113245B2 (en) | Policy-based, multi-scheme data reduction for computer memory | |
CN117156172B (zh) | 视频切片上报方法、系统、存储介质及计算机 | |
KR20090026296A (ko) | 예측 데이터 로더 | |
EP2583183A1 (en) | Data deduplication | |
EP3816783A1 (en) | Method and device for data migration | |
CN112148221B (zh) | 一种磁盘冗余阵列的巡检方法、装置、设备及存储介质 | |
CN111061690B (zh) | 一种基于rac的数据库日志文件读取方法和装置 | |
CN110727406A (zh) | 一种数据存储调度方法及装置 | |
CN109388346A (zh) | 一种数据落盘方法和相关装置 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN113010289A (zh) | 一种任务调度方法、装置和系统 | |
CN113448946B (zh) | 数据迁移方法及装置、电子设备 | |
CN102760168B (zh) | 碎片文件扫描的方法及装置 | |
CN110515833A (zh) | 一种软件测试的方法、设备及可读介质 | |
KR101666440B1 (ko) | 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법 | |
WO2021238408A1 (zh) | 对象存储平台以及对象聚合方法、装置和服务器 | |
CN108446076A (zh) | 基于网络摘要数据的索引创建方法和系统 | |
JP2023531751A (ja) | 車載データ記憶方法およびシステム | |
CN112559445B (zh) | 数据写入方法及装置 | |
CN114556283B (zh) | 一种数据写入、一致性检查和读取的方法及装置 | |
CN108009204A (zh) | 基于扩展名分类并去冗余的方法及系统 | |
CN111930781B (zh) | 对缓存数据库的数据请求的处理方法和装置 | |
CN115543949B (zh) | 一种日志处理方法和半导体工艺设备 | |
CN116662603B (zh) | 基于kafka的时间轴管控方法、系统、电子设备及存储介质 | |
CN111581241B (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 |