专利名称:一种音视频帧的处理方法、装置及介质
专利类型:实用新型专利
专利申请号:CN202210503638.1
专利申请(专利权)人:杭州阿启视科技有限公司
权利人地址:浙江省杭州市滨江区西兴街道联慧街6号1-801
专利发明(设计)人:陈润
专利摘要:本申请公开了一种音视频帧的处理方法、装置及介质,主要涉及数据存储领域。该方法新建录像文件;接收一帧音视频帧,并判断当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和是否超过录像存储空间;若是,则按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间,将当前录像文件存储至硬盘中,并进入新建录像文件的步骤;若否,则生成与当前音视频帧对应的索引,将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间,进入接收一帧音视频帧的步骤。可见,该方法通过顺序写入的方式将音视频帧写入录像文件,能够减少硬盘写入过程中的磁头寻道操作,提高了硬盘的写入效率。
主权利要求:
1.一种音视频帧的处理方法,其特征在于,包括:
新建录像文件;其中,所述录像文件对应的存储空间包括录像存储空间和索引存储空间;
接收音视频发送端发送的一帧音视频帧,并判断当前所述录像文件中的已写入空间、当前所述音视频帧长度和预留空间之和是否超过所述录像存储空间;其中,当前所述录像文件中的已写入空间包括已写入当前所述录像文件中的全部音视频帧和各音视频帧对应的索引;所述预留空间用于存储当前音视频帧对应的索引;
若是,则按照各所述音视频帧的写入顺序将与已写入当前所述录像文件中的各所述音视频帧对应的索引写入所述索引存储空间,将当前所述录像文件存储至硬盘中,并进入所述新建录像文件的步骤;
若否,则生成与当前所述音视频帧对应的索引,将当前所述音视频帧和与当前所述音视频帧对应的索引写入所述录像存储空间,并进入所述接收音视频发送端发送的一帧音视频帧的步骤。
2.根据权利要求1所述的音视频帧的处理方法,其特征在于,所述生成与当前所述音视频帧对应的索引包括:记录当前所述音视频帧的UTC和帧类型,并计算当前所述音视频帧在当前所述录像文件的偏移量以及当前所述音视频帧的长度;其中,所述音视频帧的帧类型包括视频帧、音频帧和附加帧;
根据当前所述音视频帧的UTC、当前所述音视频帧的帧类型、当前所述音视频帧在当前所述录像文件的偏移量和当前所述音视频帧的长度生成与当前所述音视频帧对应的索引;
其中,所述索引的结构与所述索引对应的音视频帧的帧类型对应。
3.根据权利要求1所述的音视频帧的处理方法,其特征在于,在所述生成与当前所述音视频帧对应的索引之后,还包括:将与当前所述音视频帧对应的索引存储至索引缓存区;
对应地,所述按照各所述音视频帧的写入顺序将与已写入当前所述录像文件中的各所述音视频帧对应的索引写入所述索引存储空间包括:按照各所述音视频帧的写入顺序将所述索引缓存区中的与各所述音视频帧对应的索引写入所述索引存储空间。
4.根据权利要求1所述的音视频帧的处理方法,其特征在于,各所述录像文件占用的空间固定。
5.根据权利要求2所述的音视频帧的处理方法,其特征在于,还包括:接收录像接收端发送的读取命令;
根据所述读取命令从所述硬盘中查询与所述读取命令对应的目标录像文件,并读取所述目标录像文件的所述索引存储空间;
通过比对所述读取命令对应的播放时间和所述目标录像文件的所述索引存储空间中的各所述索引中的所述UTC得到目标索引;
根据所述目标索引读取与所述目标索引对应的目标音视频帧;
将所述目标音视频帧发送至所述录像接收端,并判断是否读完所述目标录像文件;
若读完,则关闭所述目标录像文件,进入所述接收录像接收端发送的读取命令的步骤;
若未读完,则使用所述目标索引的下一条索引更新所述目标索引,进入所述根据所述目标索引读取与所述目标索引对应的目标音视频帧的步骤。
6.根据权利要求5所述的音视频帧的处理方法,其特征在于,所述根据所述目标索引读取与所述目标索引对应的目标音视频帧包括:读取所述目标索引中的所述目标音视频帧在所述目标录像文件中的偏移量以及所述目标音视频帧的长度;
通过所述偏移量查询所述目标音视频帧的起始位置;
根据所述起始位置和所述目标音视频帧的长度读取所述目标音视频帧。
7.一种音视频帧的处理装置,其特征在于,包括:
新建模块,用于新建录像文件;其中,所述录像文件对应的存储空间包括录像存储空间和索引存储空间;
判断模块,用于接收音视频发送端发送的一帧音视频帧,并判断当前所述录像文件中的已写入空间、当前所述音视频帧长度和预留空间之和是否超过所述录像存储空间;其中,当前所述录像文件中的已写入空间包括已写入当前所述录像文件中的全部音视频帧和各音视频帧对应的索引;所述预留空间用于存储当前音视频帧对应的索引;若是,则触发存储模块;若否,则触发写入模块;
所述存储模块,用于按照各所述音视频帧的写入顺序将与已写入当前所述录像文件中的各所述音视频帧对应的索引写入所述索引存储空间,将当前所述录像文件存储至硬盘中,并触发所述新建模块;
所述写入模块,用于生成与当前所述音视频帧对应的索引,将当前所述音视频帧和与当前所述音视频帧对应的索引写入所述录像存储空间,并触发所述判断模块。
8.一种音视频帧的处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的音视频帧的处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的音视频帧的处理方法的步骤。 说明书 : 一种音视频帧的处理方法、装置及介质技术领域[0001] 本申请涉及数据存储领域,特别是涉及一种音视频帧的处理方法、装置及介质。背景技术[0002] 随着视频安防行业的发展,监控设备应用广泛。在调用监控录像时,为保证所调用的监控录像的准确性,录像文件的存储方式至关重要。[0003] 当前通常以.AVI或者.MP4作为录像文件的存储格式,每当写入一帧音频或者视频数据时,需要分别跳到文件头部修改总体的文件大小,再跳到文件末尾插入该帧的索引。但是,该处理方法需要硬盘的磁头频繁寻道,因此,硬盘总体的写入效率较低。[0004] 由此可见,如何提高硬盘的写入效率的问题是本领域技术人员亟待解决的问题。发明内容[0005] 本申请的目的是提供一种音视频帧的处理方法、装置及介质,用于提高硬盘的写入效率。[0006] 为解决上述技术问题,本申请提供一种音视频帧的处理方法,包括:[0007] 新建录像文件;其中,录像文件对应的存储空间包括录像存储空间和索引存储空间;[0008] 接收音视频发送端发送的一帧音视频帧,并判断当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和是否超过录像存储空间;[0009] 若是,则按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间,将当前录像文件存储至硬盘中,并进入新建录像文件的步骤;[0010] 若否,则生成与当前音视频帧对应的索引,将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间,并进入接收音视频发送端发送的一帧音视频帧的步骤。[0011] 优选地,生成与当前音视频帧对应的索引包括:[0012] 记录当前音视频帧的UTC和帧类型,并计算当前音视频帧在当前录像文件的偏移量以及当前音视频帧的长度;其中,音视频帧的帧类型包括视频帧、音频帧和附加帧;[0013] 根据当前音视频帧的UTC、当前音视频帧的帧类型、当前音视频帧在当前录像文件的偏移量和当前音视频帧的长度生成与当前音视频帧对应的索引;其中,索引的结构与索引对应的音视频帧的帧类型对应。[0014] 优选地,在生成与当前音视频帧对应的索引之后,还包括:[0015] 将与当前音视频帧对应的索引存储至索引缓存区;[0016] 对应地,按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间包括:[0017] 按照各音视频帧的写入顺序将索引缓存区中的与各音视频帧对应的索引写入索引存储空间。[0018] 优选地,各录像文件占用的空间固定。[0019] 优选地,还包括:[0020] 接收录像接收端发送的读取命令;[0021] 根据读取命令从硬盘中查询与读取命令对应的目标录像文件,并读取目标录像文件的索引存储空间;[0022] 通过比对读取命令对应的播放时间和目标录像文件的索引存储空间中的各索引中的UTC得到目标索引;[0023] 根据目标索引读取与目标索引对应的目标音视频帧;[0024] 将目标音视频帧发送至录像接收端,并判断是否读完目标录像文件;[0025] 若读完,则关闭目标录像文件,进入接收录像接收端发送的读取命令的步骤;[0026] 若未读完,则使用目标索引的下一条索引更新目标索引,进入根据目标索引读取与目标索引对应的目标音视频帧的步骤。[0027] 优选地,根据目标索引读取与目标索引对应的目标音视频帧包括:[0028] 读取目标索引中的目标音视频帧在目标录像文件中的偏移量以及目标音视频帧的长度;[0029] 通过偏移量查询目标音视频帧的起始位置;[0030] 根据起始位置和目标音视频帧的长度读取目标音视频帧。[0031] 为解决上述技术问题,本申请还提供一种音视频帧的处理装置,包括:[0032] 新建模块,用于新建录像文件;其中,录像文件对应的存储空间包括录像存储空间和索引存储空间;[0033] 判断模块,用于接收音视频发送端发送的一帧音视频帧,并判断当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和是否超过录像存储空间;若是,则触发存储模块;若否,则触发写入模块;[0034] 存储模块,用于按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间,将当前录像文件存储至硬盘中,并触发新建模块;[0035] 写入模块,用于生成与当前音视频帧对应的索引,将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间,并触发判断模块。[0036] 为解决上述技术问题,本申请还提供一种音视频帧的处理装置,包括:[0037] 存储器,用于存储计算机程序;[0038] 处理器,用于执行计算机程序时实现上述音视频帧的处理方法的步骤。[0039] 为解决上述技术问题,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述音视频帧的处理方法的步骤。[0040] 本申请提供一种音视频帧的处理方法,该方法新建录像文件;其中,录像文件对应的存储空间包括录像存储空间和索引存储空间;接收音视频发送端发送的一帧音视频帧,并判断当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和是否超过录像存储空间;若是,则按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间,将当前录像文件存储至硬盘中,并进入新建录像文件的步骤;若否,则生成与当前音视频帧对应的索引,将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间,并进入接收音视频发送端发送的一帧音视频帧的步骤。可见,该方法通过顺序写入的方式将音视频帧写入录像文件,能够减少硬盘写入过程中的磁头寻道操作,有效提高了硬盘的写入效率。另外,在索引写入索引存储空间发生异常时,可通过遍历录像文件查询录像存储空间中存储的索引以重建索引。[0041] 此外,本申请还提供一种音视频帧的处理装置及介质,具有与上述音视频帧的处理方法相同的有益效果。附图说明[0042] 为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0043] 图1为本申请提供的一种音视频帧的处理方法的流程图;[0044] 图2为本申请提供的一种视频帧对应的索引的结构图;[0045] 图3为本申请提供的一种音频帧对应的索引的结构图;[0046] 图4为本申请提供的一种附加帧对应的索引的结构图;[0047] 图5为本申请提供的一种音视频帧的处理装置的结构图;[0048] 图6为本申请提供的另一种音视频帧的处理装置的结构图。具体实施方式[0049] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。[0050] 本申请的核心是提供一种音视频帧的处理方法、装置及介质,用于提高硬盘的写入效率。[0051] 为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。[0052] 图1为本申请提供的一种音视频帧的处理方法的流程图,如图1所示,该方法包括:[0053] S1:新建录像文件;其中,录像文件对应的存储空间包括录像存储空间和索引存储空间。[0054] 录像文件对应的存储空间包括录像存储空间和索引存储空间,其中,录像存储空间包括多个帧数据单元,每个帧数据单元包括一帧音视频帧和与该音视频帧对应的索引;索引存储空间专用于存储各音视频帧对应的索引。需要说明的是,在新建录像文件之前,应先预估所需要的录像存储空间和索引存储空间占用的空间,以保证索引存储空间能够满足存储录像存储空间中所有音视频帧对应的索引,例如,若摄像机主流的码流为4Mbps,假设帧率为512Kbps/25帧,由于一个字节占8位,即1Byte=8bit,则每秒产生的音视频帧长度l=512/8=64KB,若需要504MB的录像存储空间,则一个录像文件的有效存储时长t=504·1024/64=8064秒,若一条索引的长度为32Byte,则一个录像文件中的索引存储空间的最小占用空间s=8064×25×32/1024=6300KB,此时可以设置索引存储空间为8MB,即初始化占用空间为512MB的录像文件,其中,录像存储空间为504MB,索引存储空间为8MB,满足索引存储空间能够存储录像存储空间中的全部音视频帧对应的索引。[0055] S2:接收音视频发送端发送的一帧音视频帧,并判断当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和是否超过录像存储空间;若是,则进入S3;若否,则进入S4。[0056] 为防止将索引写入索引存储空间时发生异常导致部分索引未写入索引存储空间,本实施例采取将音视频帧和音视频帧对应的索引共同写入录像存储空间的方式,使得在索引写入索引存储空间的过程发生异常时,可以通过遍历录像文件的方式读取录像存储空间中的索引,将未来得及写入索引存储空间的索引写入索引存储空间的末尾以重建索引存储空间中的索引。[0057] 在本实施例中,当前录像文件中的已写入空间包括已写入当前录像文件中的全部音视频帧和各音视频帧对应的索引,预留空间用于存储当前音视频帧对应的索引。若当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和超过录像存储空间,则说明录像存储空间中除已写入空间外的剩余空间不足以写入当前音视频帧和与当前音视频帧对应的索引,此时进入步骤S3,终止向当前录像文件写入音视频帧,并将已写入当前录像文件中的各条音视频帧对应的索引写入索引存储空间;若当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和不超过录像存储空间,则说明录像存储空间中除已写入空间外的剩余空间足够写入当前音视频帧和与当前音视频帧对应的索引,此时进入步骤S4,生成与当前音视频帧对应的索引,并将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间。[0058] S3:按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间,将当前录像文件存储至硬盘中,并进入S1。[0059] 在当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和超过录像存储空间时,终止向当前录像文件写入音视频帧,并按照已写入当前录像文件中的各条音视频帧的写入顺序将各音视频帧对应的索引写入索引存储空间。在索引写入完成后,终止对当前录像文件的写入操作,并将当前录像文件存储至硬盘的指定位置以便查询,且会再次新建录像文件以继续写入音视频发送端发送的音视频帧。[0060] S4:生成与当前音视频帧对应的索引,将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间,并进入S2。[0061] 在当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和不超过录像存储空间时,可根据当前音视频帧的各项属性信息生成与当前音视频帧对应的索引,并将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间。在一条音视频帧和对应的索引写入完成后,再次进入步骤S2,接收并处理新的音视频帧。[0062] 本实施例提供一种音视频帧的处理方法,该方法新建录像文件;其中,录像文件对应的存储空间包括录像存储空间和索引存储空间;接收音视频发送端发送的一帧音视频帧,并判断已写入当前录像文件中的全部音视频帧长度、当前音视频帧长度和预留空间之和是否超过录像存储空间;若是,则按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间,将当前录像文件存储至硬盘中,并进入新建录像文件的步骤;若否,则生成与当前音视频帧对应的索引,将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间,并进入接收音视频发送端发送的一帧音视频帧的步骤。可见,该方法通过顺序写入的方式能够减少硬盘写入过程中的磁头寻道操作,有效提高了硬盘的写入效率。另外,在索引写入索引存储空间发生异常时,可通过遍历录像文件查询录像存储空间中存储的索引以重建索引。[0063] 在上述实施例的基础上,为便于通过索引查询到索引对应的音视频帧,本实施例基于音视频帧的(UniversalTimeCoordinated,UTC)协调世界时、帧类型、音视频帧在当前录像文件的偏移量和音视频帧的长度生成索引。该步骤包括:[0064] 记录当前音视频帧的UTC和帧类型,并计算当前音视频帧在当前录像文件的偏移量以及当前音视频帧的长度;其中,音视频帧的帧类型包括视频帧、音频帧和附加帧;[0065] 根据当前音视频帧的UTC、当前音视频帧的帧类型、当前音视频帧在当前录像文件的偏移量和当前音视频帧的长度生成与当前音视频帧对应的索引;其中,索引的结构与索引对应的音视频帧的帧类型对应。[0066] 需要说明的是,附加帧支持多种业务场景下的数据存储,包括人工智能(ArtificialIntelligence,AI)分析数据、经纬度数据、相机云台数据、与相机配套的温湿度传感器数据以及烟雾传感器数据等多种类型的数据,以增强对各种业务场景下的适配能力。[0067] 由于帧类型不同的音视频帧所包含的数据不同,因此,帧类型不同的音视频帧对应的索引的结构不同。在本实施例中,音视频帧的帧类型包括视频帧、音频帧和附加帧三种类型,其中,视频帧可分为视频关键帧和视频非关键帧,因此,索引结构可分为三种,分别与视频帧、音频帧和附加帧三种帧类型对应。[0068] 图2为本申请提供的一种视频帧对应的索引的结构图,图3为本申请提供的一种音频帧对应的索引的结构图,图4为本申请提供的一种附加帧对应的索引的结构图,如图2、图3和图4所示,所构建的索引占32字节,下面对图2、图3和图4所示的索引中的各项参数进行说明:[0069] UTC:占4字节,表示自1970‑01‑01的00:00:00开始至产生当前音视频帧时的秒数;[0070] FrameType:占4字节,表示帧类型;[0071] Offset:占4字节,表示当前音视频帧在录像文件中的字节偏移量;[0072] Length:占4字节,表示当前音视频帧的长度,单位为字节;[0073] W:占2字节,表示视频画面宽度;[0074] H:占2字节,表示视频画面高度;[0075] FR:占2字节,表示视频帧率;[0076] SR:占2字节,表示视频或音频采样率;[0077] Vender:占4字节,表示厂商类型;[0078] ET:占2字节,表示视频或音频的编码类型;[0079] Reserve:占2字节,表示保留字段;[0080] FB:占2字节,表示音频的每帧字节数;[0081] C:占1字节,表示音频通道数;[0082] BD:占1字节,表示音频采样精度;[0083] 附加帧的元数据:占16字节,可根据业务场景进行自定义,可以包括经纬度、智能帧信息和相机云台参数等参数。[0084] 可以理解的是,在具体实施中,FrameType可以包括视频关键帧、视频非关键帧、音频帧和附加帧四种类型,也可以包括视频帧、音频帧和附加帧三种类型,本实施例对此不做限制。另外,若音视频帧为视频关键帧或视频非关键帧,则该音视频帧对应的索引的结构采用图2所示的索引结构;若音视频帧为音频帧,则该音视频帧对应的索引的结构采用图3所示的索引结构;而若音视频帧为附加帧,则该音视频帧对应的索引的结构采用图4所示的索引结构。[0085] 本实施例基于音视频帧的UTC、帧类型、音视频帧在当前录像文件的偏移量和音视频帧的长度生成索引,以便于根据索引找到对应的音视频帧。另外,在本实施例中,音视频帧的帧类型包括视频帧、音频帧和附加帧三种类型,且索引的结构与索引对应的音视频帧的帧类型对应,可见本实施例支持附加帧的存储,拓展了录像文件的功能。[0086] 在上述实施例的基础上,为便于将已写入录像文件中的各条音视频帧对应的索引写入索引存储空间,本实施例在每次生成索引之后,将所生成的索引存储至索引缓存区统一管理。该步骤包括:[0087] 将与当前音视频帧对应的索引存储至索引缓存区;[0088] 对应地,按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间包括:[0089] 按照各音视频帧的写入顺序将索引缓存区中的与各音视频帧对应的索引写入索引存储空间。[0090] 具体地,每次生成索引之后,都会将所生成的索引存储至索引缓存区,可以理解的是,为便于写入,可将索引缓存区中的各条索引按照各索引对应的音视频帧的写入顺序排列。当录像存储空间中除已写入空间外的剩余空间不足以写入一帧音视频帧和该音视频帧对应的索引时,可按照各索引的排列顺序即各索引对应的音视频帧的写入顺序将索引缓存区中的各条索引写入索引存储空间,保持索引存储空间中的各索引的写入顺序与录像存储空间中的各索引对应的音视频帧的写入顺序一致。[0091] 本实施例在每次生成索引之后,将所生成的索引存储至索引缓存区,以便统一管理各条索引。[0092] 在上述实施例的基础上,由于在各录像文件占用的空间不统一,即各录像文件大小不统一时,磁盘易产生碎片,为减少磁盘碎片,因此,本实施例设置各录像文件占用的空间固定。[0093] 具体地,在新建录像文件时,可固定每次初始化的录像文件所占用的空间,且固定录像文件中的录像存储空间和索引存储空间所占用的空间,例如,可固定设置录像文件的占用空间为512MB,其中,录像存储空间为504MB,索引存储空间为8MB。需要说明的是,在具体实施中,可根据实际情况固定设置录像文件的占用空间以及录像文件中的录像存储空间和索引存储空间所占用的空间,但应满足索引存储空间足够存储录像存储空间中的全部音视频帧对应的索引,且为减少空间占用,索引存储空间不宜过大,可略大于索引存储空间的最小占用空间。[0094] 本实施例设置各录像文件占用的空间固定,由于每个录像文件占用的空间固定,且在物理空间上是连续的,因此能够有效减少磁盘碎片的产生。[0095] 在上述实施例的基础上,由于在录像回放时经常需要跳转到用户指定的时间点观看,为满足这一需求,本实施例从录像接收端发送的读取命令对应的播放时间开始播放录像。该步骤包括:[0096] 接收录像接收端发送的读取命令;[0097] 根据读取命令从硬盘中查询与读取命令对应的目标录像文件,并读取目标录像文件的索引存储空间;[0098] 通过比对读取命令对应的播放时间和目标录像文件的索引存储空间中的各索引中的UTC得到目标索引;[0099] 根据目标索引读取与目标索引对应的目标音视频帧;[0100] 将目标音视频帧发送至录像接收端,并判断是否读完目标录像文件;[0101] 若读完,则关闭目标录像文件,进入接收录像接收端发送的读取命令的步骤;[0102] 若未读完,则使用目标索引的下一条索引更新目标索引,进入根据目标索引读取与目标索引对应的目标音视频帧的步骤。[0103] 在本实施例中,读取命令指的是用户读取录像的请求,包含录像所在的目标录像文件信息和录像的播放时间,因此,通过读取命令可从硬盘中查询到目标录像文件。具体地,先读取目标录像文件的索引存储空间,通过比对录像的播放时间和索引存储空间中的各索引的UTC找到与播放时间一致的UTC,则该UTC所属的索引即为目标索引;在得到目标索引后,可根据目标索引找到与目标索引对应的目标音视频帧,并将该目标音视频帧发送至录像接收端以开始播放录像;在发送完一帧音视频帧即目标视频帧之后,判断是否读完目标录像文件,若已读完,则说明录像播放结束,此时可关闭目标录像文件;若未读完,由于索引是按照各音视频帧的写入顺序写入索引存储空间的,则此时可将当前目标索引的下一条索引作为新的目标索引,读取新的目标索引对应的目标音视频帧以持续播放录像至录像播放结束。[0104] 需要说明的是,录像接收端接收到视频帧或音频帧都可以直接播放,而附加帧是否播放取决于附加帧的类型,例如,若附加帧记录的是人脸视频分析中的边框,则可通过将边框数据渲染在图像上实现播放附加帧;若附加帧记录的是视频的可视范围或摄像头的俯仰角,则该附加帧只用于作为智能分析中的一个附加参数,不会播放该附加帧。[0105] 本实施例从录像接收端发送的读取命令对应的播放时间开始播放录像,能够满足跳转到用户指定的时间点播放录像的需求。[0106] 在上述实施例的基础上,为便于读取目标音视频帧,本实施例基于目标索引中的目标音视频帧在目标录像文件中的偏移量和目标音视频帧的长度读取目标音视频帧。该步骤包括:[0107] 读取目标索引中的目标音视频帧在目标录像文件中的偏移量以及目标音视频帧的长度;[0108] 通过偏移量查询目标音视频帧的起始位置;[0109] 根据起始位置和目标音视频帧的长度读取目标音视频帧。[0110] 具体地,由于目标索引中的目标音视频帧在目标录像文件中的偏移量指的是在写入目标音视频帧之前已写入的音视频帧的长度,因此,可基于该偏移量查询到目标音视频帧的起始位置,例如,若目标录像文件为512MB,目标音视频帧在目标录像文件中的偏移量为100MB,则目标音视频帧的起始位置为100MB,待发送至录像接收端的音视频帧即为100MB的位置之后的音视频帧。在得到目标音视频帧的起始位置之后,结合目标索引中的目标音视频帧的长度即可完整地读取目标音视频帧。[0111] 本实施例通过目标索引中的目标音视频帧在目标录像文件中的偏移量得到目标音视频帧的起始位置,基于目标音视频帧的起始位置和长度读取目标音视频帧,能够完整且高效地读取目标音视频帧。[0112] 在上述实施例中,对于音视频帧的处理方法进行了详细描述,本申请还提供音视频帧的处理装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。[0113] 图5为本申请提供的一种音视频帧的处理装置的结构图,如图5所示,该装置包括:[0114] 新建模块10,用于新建录像文件;其中,录像文件对应的存储空间包括录像存储空间和索引存储空间;[0115] 判断模块11,用于接收音视频发送端发送的一帧音视频帧,并判断当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和是否超过录像存储空间;若是,则触发存储模块12;若否,则触发写入模块13;[0116] 存储模块12,用于按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间,将当前录像文件存储至硬盘中,并触发新建模块10;[0117] 写入模块13,用于生成与当前音视频帧对应的索引,将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间,并触发判断模块11。[0118] 由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。[0119] 本实施例所提供的音视频帧的处理装置,通过新建模块新建录像文件;其中,录像文件对应的存储空间包括录像存储空间和索引存储空间;通过判断模块接收音视频发送端发送的一帧音视频帧,并判断当前录像文件中的已写入空间、当前音视频帧长度和预留空间之和是否超过录像存储空间;若是,则触发存储模块;若否,则触发写入模块;通过存储模块按照各音视频帧的写入顺序将与已写入当前录像文件中的各音视频帧对应的索引写入索引存储空间,将当前录像文件存储至硬盘中,并触发新建模块;通过写入模块生成与当前音视频帧对应的索引,将当前音视频帧和与当前音视频帧对应的索引写入录像存储空间,并触发判断模块。可见,该装置通过顺序写入的方式能够减少硬盘写入过程中的磁头寻道操作,有效提高了硬盘的写入效率。另外,在索引写入索引存储空间发生异常时,可通过遍历录像文件查询录像存储空间中存储的索引以重建索引。[0120] 图6为本申请提供的另一种音视频帧的处理装置的结构图,如图6所示,该装置包括:存储器20,用于存储计算机程序;[0121] 处理器21,用于执行计算机程序时实现如上述实施例中所提到的音视频帧的处理方法的步骤。[0122] 本实施例提供的音视频帧的处理装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。[0123] 其中,处理器21可以包括一个或多个处理核心,比如四核心处理器、八核心处理器等。处理器21可以采用数字信号处理器(DigitalSignalProcessor,DSP)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、可编程逻辑阵列(ProgrammableLogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessingUnit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(GraphicsProcessingUnit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI处理器,该AI处理器用于处理有关机器学习的计算操作。[0124] 存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的音视频帧的处理方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于接收的音视频帧等。[0125] 在一些实施例中,音视频帧的处理装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。[0126] 本领域技术人员可以理解,图6中示出的结构并不构成对音视频帧的处理装置的限定,可以包括比图示更多或更少的组件。[0127] 本实施例提供的音视频帧的处理装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现上述音视频帧的处理方法,效果同上。[0128] 最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的音视频帧的处理方法的步骤。[0129] 可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read‑OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。[0130] 本实施例所提供的计算机可读存储介质包括上述提到的音视频帧的处理方法,效果同上。[0131] 以上对本申请所提供的音视频帧的处理方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。[0132] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专利地区:浙江
专利申请日期:2022-05-10
专利公开日期:2024-07-26
专利公告号:CN114974314B