CN110851301A - 一种用于mp4文件的恢复方法和系统 - Google Patents
一种用于mp4文件的恢复方法和系统 Download PDFInfo
- Publication number
- CN110851301A CN110851301A CN201911007369.4A CN201911007369A CN110851301A CN 110851301 A CN110851301 A CN 110851301A CN 201911007369 A CN201911007369 A CN 201911007369A CN 110851301 A CN110851301 A CN 110851301A
- Authority
- CN
- China
- Prior art keywords
- cluster
- chunk
- file
- offset
- moov
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明给出了一种用于MP4文件的方法和系统,包括获取系统分配使用的簇大小CL,读取待恢复MP4文件数据,提取待恢复MP4文件数据的moov特征码;响应于提取到moov特征码,获取moov特征码中所有的Chunk的偏移信息;计算每个Chunk所属的簇序号以及其在所属的簇内的起始的偏移位置;响应于当前簇内的Chunk数大于等于第一阈值,且基于簇内的偏移位置具有完整的Chunk解析,将当前簇作为目标簇;将目标簇和moov特征码所在的簇保存为MP4文件。该方法在数据未被覆盖的完整情况下,能够100%恢复视频数据,并保证文件的完整,实现通道按文件恢复分离。
Description
技术领域
本发明涉及计算机数据恢复领域,尤其是一种用于MP4文件的恢复方法和系统。
背景技术
MP4是一种使用MPEG-4的多媒体档案格式,以“容器”方式组织文件,能够存储数码音视频信息。随着智能手机和视频录制设备的发展与普及,人们在视频方面的需求越来越大。而在这方面MP4格式视频占据着重要的部分。日常使用中的意外情况如设备故障、文件系统损坏、人为删除等原因,常常导致文件丢失。
国内外现存有几款软件能够针对MP4视频文件进行恢复。对丢失的MP4视频文件这些软件针主要采取如下方案:搜索MP4的容器特征信息(如ftyp、mdat、moov等),根据容器的长度信息或者特征信息的存储位置差,提取、保存数据。
现存的MP4文件恢复的方案严重依赖于文件物理存储连续性、结构完整性和数据准确性等,恢复效果差,恢复的结果文件可能因通道混合而无法播放,如下列情景:
1.MP4文件的物理存储位置不连续,或多个通道文件交替存储的情况;
2.容器格式特征码或长度信息自定义用途等情况下。
发明内容
为了解决现有技术中MP4文件恢复的方案存在的恢复效果差等技术问题,本发明提出了一种用于MP4文件的恢复方法和系统,用以解决物理存储位置不连续等导致恢复的视频效果不理想的问题。
在一个方面,本发明提出了一种用于MP4文件的恢复方法,包括以下步骤:
S1:获取系统分配使用的簇大小CL,读取待恢复MP4文件数据,提取待恢复MP4文件数据的moov特征码;
S2:响应于提取到moov特征码,获取moov特征码中所有的Chunk的偏移信息;
S3:计算每个Chunk所属的簇序号以及其在所属的簇内的起始的偏移位置;
S4:响应于当前簇内的Chunk数大于等于第一阈值,且基于簇内的偏移位置具有完整的Chunk解析,将当前簇作为目标簇;
S5:将目标簇和moov特征码所在的簇保存为MP4文件。
优选的,系统分配使用的簇大小CL设置为4、8、16、32、64和128中的一个。利用簇大小对文件进行簇的分拆,便于进行判断。
优选的,步骤S4还包括,当前簇内的Chunk数小于第一阈值时,验证当前簇内Chunk与其前后簇的偏移关系,若满足,将当前簇作为目标簇。通过偏移关系确认完整Chunk数小于第一阈值的情况,可以使文件的恢复更加完整。
优选的,第一阈值设置为2或3。第一阈值的设置为2或3可以满足识别的准确性和效率。
优选的,步骤S3中Chunk所属的簇的计算方式为:簇序号Cseq=CK/CL,其中,CK表示获取到的Chunk相对文件头偏移,CL表示簇大小。
优选的,步骤S3中每个Chunk在其所属的簇内偏移的计算方式为:簇内偏移Coff=CK%CL,即CK/CL的余数。
优选的,对待恢复的MP4文件数据,按簇序号向上或向下依序进行目标簇的判断。moov文件可能在文件前部或者尾部,向上或向下进行判断可以保证文件的顺序,提高恢复效率。
优选的,Chunk中包括待恢复MP4文件数据的一帧或一组连续帧。利用Chunk包含的帧数可以使得MP4文件的恢复更加完整准确。
根据本发明的第二方面,提出了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机处理器执行时上述方法。
根据本发明的第三方面,提出了一种用于MP4文件的恢复系统,包括:
特征码提取单元,配置用于获取系统分配使用的簇大小CL,读取待恢复MP4文件数据,提取待恢复MP4文件数据的moov特征码;
Chunk偏移信息获取单元,配置用于响应于提取到moov特征码,获取moov特征码中所有的Chunk的偏移信息;
计算单元,配置用于计算每个Chunk所属的簇序号以及其在所属的簇内的起始的偏移位置;
目标簇判断单元:配置用于响应于当前簇内的Chunk数大于等于第一阈值,且基于簇内的偏移位置具有完整的Chunk解析,将当前簇作为目标簇;
合并单元:配置用于将目标簇和moov特征码所在簇保存为MP4文件。
优选的,目标簇判断单元进一步配置用于当前簇内的Chunk数小于第一阈值时,验证当前簇内Chunk与其前后簇的偏移关系,若满足,将当前簇作为目标簇。通过偏移关系确认完整Chunk数小于第一阈值的情况,可以更加使文件的恢复更加完整。
进一步优选的,对待恢复的MP4文件数据,按簇序号向上或向下依序进行目标簇的判断。moov文件可能在文件前部或者尾部,向上或向下进行判断可以保证文件的顺序,提高恢复效率。
优选的,计算单元中Chunk所属的簇的计算方式为:簇序号Cseq=CK/CL,其中,CK表示获取到的Chunk相对文件头偏移,CL表示簇大小。
优选的,计算单元中每个Chunk在其所属的簇内偏移的计算方式为:簇内偏移Coff=CK%CL,即CK/CL的余数。
优选的,系统分配使用的簇大小CL设置为4、8、16、32、64和128中的一个。利用簇大小对文件进行簇的分拆,便于进行判断,提高恢复效率。
本发明根据系统按簇分配存储空间的特点和MP4数据存储、索引的特点,利用系统分配使用的簇大小,计算待恢复MP4文件数据的moov特征码,基于该特征码获取Chunk的偏移信息,利用偏移信息和簇大小计算每个Chunk所属的簇序号以及所属的簇内的起始偏移位置,通过判断簇内的偏移位置具有完整的Chunk解析,来辨别是否属于目标簇,以及验证当前簇内Chunk与其前后簇的偏移关系,验证是否为目标簇,最终将目标簇与moov特征码所在的簇保存为MP4文件,完成MP4文件的恢复。该方法能准确的从源数据中提取到正确的属于同一文件的数据,提升了文件的恢复效果。该方法在数据未被覆盖的完整情况下,能够100%恢复视频数据,并保证文件的完整,实现通道按文件恢复分离。该方法扩展了MP4文件的恢复方式,具有重大创新性和实际意义。
附图说明
包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是本申请的一个实施例的用于MP4文件的恢复方法的流程图;
图3是本申请的一个具体的实施例的MP4封装格式box构成图;
图4是本申请的一个具体的实施例的文件逻辑簇分配图;
图5是本申请的一个具体的实施例的简易恢复示例图;
图6是本申请的一个实施例的用于MP4文件的恢复系统的框架图;
图7是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请实施例的用于MP4文件的恢复方法的示例性系统架构100。
如图1所示,系统架构100可以包括数据服务器101,网络102和主服务器103。网络102用以在数据服务器101和主服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
主服务器103可以是提供各种服务的服务器,例如对数据服务器101上传的信息进行处理的数据处理服务器。数据处理服务器可以对小数据集进行MP4文件的恢复处理,并将处理结果关联存储到匹配结果库中。
需要说明的是,本申请实施例所提供的用于MP4文件的恢复方法一般由主服务器103执行,相应地,用于MP4文件的恢复方法的装置一般设置于主服务器103中。
需要说明的是,数据服务器和主服务器可以是硬件,也可以是软件。当为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。
应该理解,图1中的数据服务器、网络和主服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本申请的一个实施例的用于MP4文件的恢复方法,图2示出了根据本申请的实施例的用于MP4文件的恢复方法的流程图。如图2所示,该方法包括以下步骤:
S201:获取系统分配使用的簇大小CL,读取待恢复MP4文件数据,提取待恢复MP4文件数据的moov特征码。通常系统中的物理存储空间是以簇为最小单位申请的,moov特征码中存放媒体信息,包括文件总体信息、track总体信息和样本信息等各类MP4文件信息。
在具体的实施例中,MP4全称MPEG-4Part 14,是一种常见的多媒体容器格式,现在大部分智能手机、无人机、行车记录仪等录像设备都以MP4作为视频封装格式。MP4是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分。MP4封装格式即打包格式,把已有的数据按照一定的格式进行封装打包。如图3的MP4封装格式box构成图所示,MP4数据封装以box为单位。MP4文件中的所有数据都装在box(QuickTime中为atom)中,也就是说MP4文件由若干个box组成,每个box有类型和长度。box中可以包含另一个box,这种box称为container box。一个MP4文件首先会有且只有一个“ftyp”类型的box,作为MP4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(Movie Box),它是一种container box,子box包含了媒体的metadata信息;MP4文件的媒体数据包含在“mdat”类型的box(Midia Data Box)中,该类型的box也是container box,可以有多个,也可以没有(当媒体数据全部引用其他文件时),媒体数据的结构由metadata进行描述。
在具体的实施例中,系统分配使用的簇大小CL设置为4、8、16、32、64和128中的一个。经过本申请发明人的多次试验,优选的,取CL值为16可获得较佳的解析和恢复效果,但是应当认识到,除了取上述值外,还可以取其他计算机的系统分配使用的簇的值,例如256、512等,根据具体的MP4文件和应用的场景来选择合适的CL值,同样可以获得本发明的技术效果。
S202:响应于提取到moov特征码,获取moov特征码中所有的Chunk的偏移信息。MP4中把帧采样进行了分组存储,即Chunk。其中moov.track.mdia.minf.stbl存放着时间/偏移的映射关系,可以获取到每个Chunk的偏移位置信息。
S203:计算每个Chunk所属的簇序号以及其在所属的簇内的起始的偏移位置。通过计算每个Chunk所属的簇以及相对各自所在簇起始的偏移位置,可以便于进行簇内Chunk的解析,为MP4文件恢复提供判断数据基础。
在具体的实施例中,解析moov,获取所有Chunk先对文件头偏移信息集合CKS={CK1,CK2,…,CKn}。CK为获取到的Chunk相对文件头偏移。根据簇大小CL和集合CKS计算出所有Chunk分属的簇及簇内偏移集合CCS={CS1,CS2,…,CSn}。Chunk所属的簇的计算方式为:簇序号Cseq=CK/CL,其中,CK表示获取到的Chunk相对文件头偏移,CL表示簇大小。每个Chunk在其所属的簇内偏移的计算方式为:簇内偏移Coff=CK%CL,即CK/CL的余数。簇内偏移集合CS={Coff1,Coff2,…,Coffn}。
在具体的实施例中,图4示出了根据本申请的一个具体的实施例的文件逻辑分配图,如图4所示,文件大小为70k,系统分配使用的簇大小CL为16k,该文件被分为5个簇,簇内存在有多个Chunk,如簇2内具有Chunk N1、Chunk N2和Chunk N3,簇4内具有Chunk M1和Chunk M2,以及moov所在的簇构成的文件。
S204:响应于当前簇内的Chunk数大于等于第一阈值,且基于簇内的偏移位置具有完整的Chunk解析,将当前簇作为目标簇。将簇内具有预设预设数量的完整解析的Chunk作为判断目标簇的标准,可以提高MP4文件恢复的准确性。
在具体的实施例中,从欲恢复的MP4文件数据中,按簇轮流(向上或向下,moov可能在文件前部或者尾部)依次执行步骤:
按顺序取CCS中Chunk数大于等于第一阈值的CS,按簇依次验证Coff偏移位置有完整的Chunk的解析。
解析失败则取下一个簇进行尝试。解析成功的即为目标簇,保存相关信息。取下一个CS和下一个簇继续尝试。
簇内含有Chunk小于第一阈值的,验证该簇内的Chunk与前后簇的偏移关系,若该簇内的Chunk的偏移关系与前后簇的偏移关系匹配对应时,即当前后簇上下文验证成功的,也认为是目标簇。
在一个优选的实施例中,第一阈值为2或3,经过本发明申请人的多次试验,簇内有2个完整Chunk时识别的准确性与效率满足实际使用,3个Coff至少有2个完整的Chunk,应当认识到,第一阈值的取值可以针对实际恢复文件的要求进行取值,可以取除了2或3之外的其他数值,如4和5等,同样可以实现本申请的技术效果。
S205:将目标簇和moov特征码所在的簇保存为MP4文件。利用上述方法可以将MP4文件中属于同一个文件的数据提取,在数据未被覆盖的完整情况下,能够100%恢复视频数据。
在具体的实施例中,图5示出了根据本申请的一个具体的实施例的简易恢复示例图,如图5所示,源数据包括6个簇,利用上述步骤进行目标簇的判断,簇1、簇3和簇5内不包括完整的Chunk解析,不是目标簇,簇2内包含完整的Chunk解析Chunk N1、Chunk N2和ChunkN3,满足大于等于第一阈值3,确认为目标簇,簇4内包含两个完整的Chunk解析Chunk M1和Chunk M2,不满足大于等于第一阈值3的条件,进行验证,当Chunk M1的相对文件头偏移与前一簇内的Chunk N3的位置关系衔接对应,且Chunk N5与后一簇内的Chunk位置关系衔接对应,则认定Chunk M1和Chunk M2所在的簇4为目标簇,将簇2、簇4和包含moov的簇保存为一个MP4文件。
在使用监控DVR录制多个通道的视频文件,保存时,多通道数据是交替存储的,因此在使用签名特征码的方式进行恢复,恢复获得的视频文件无法播放,会出现播放异常的情况。而利用本方法恢复的MP4文件播放正常,可以实现按通道按文件恢复分离,保证文件的完整,能够准确的从源数据中提取到正确的属于同一文件的数据,极大提升了MP4文件的恢复效果。
图6示出了根据本发明的另一实施例的用于MP4文件的恢复系统。该系统具体包括特征码提取单元601、Chunk偏移信息获取单元602、计算单元603、目标簇判断单元604和合并单元605。
在具体的实施例中,特征码提取单元601,配置用于获取系统分配使用的簇大小CL,读取待恢复MP4文件数据,提取待恢复MP4文件数据的moov特征码;Chunk偏移信息获取单元602,配置用于响应于提取到moov特征码,获取moov特征码中所有的Chunk的偏移信息;计算单元603,配置用于计算每个Chunk所属的簇序号以及其在所属的簇内的起始的偏移位置;目标簇判断单元604:配置用于响应于当前簇内的Chunk数大于等于第一阈值,且基于簇内的偏移位置具有完整的Chunk解析,将当前簇作为目标簇;合并单元605:配置用于将目标簇和moov特征码所在簇保存为MP4文件。
在优选的实施例中,目标簇判断单元进一步配置用于当前簇内的Chunk数小于第一阈值时,验证当前簇内Chunk与其前后簇的偏移关系,若满足,将当前簇作为目标簇。对待恢复的MP4文件数据,按簇序号向上或向下依序进行目标簇的判断。述系统分配使用的簇大小CL设置为4、8、16、32、64和128中的一个。
下面参考图7,其示出了适于用来实现本申请实施例的电子设备的计算机系统700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取系统分配使用的簇大小CL,读取待恢复MP4文件数据,提取待恢复MP4文件数据的moov特征码;响应于提取到moov特征码,获取moov特征码中所有的Chunk的偏移信息;计算每个Chunk所属的簇序号以及其在所属的簇内的起始的偏移位置;响应于当前簇内的Chunk数大于等于第一阈值,且基于簇内的偏移位置具有完整的Chunk解析,将当前簇作为目标簇;将目标簇和moov特征码所在的簇保存为MP4文件。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (15)
1.一种用于MP4文件的恢复方法,其特征在于,包括以下步骤:
S1:获取系统分配使用的簇大小CL,读取待恢复MP4文件数据,提取所述待恢复MP4文件数据的moov特征码;
S2:响应于提取到所述moov特征码,获取所述moov特征码中所有的Chunk的偏移信息;
S3:计算每个Chunk所属的簇序号以及其在所属的簇内的起始的偏移位置;
S4:响应于当前簇内的Chunk数大于等于第一阈值,且基于簇内的偏移位置具有完整的Chunk解析,将当前簇作为目标簇;
S5:将所述目标簇和所述moov特征码所在的簇保存为MP4文件。
2.根据权利要求1所述的用于MP4文件的恢复方法,其特征在于,所述系统分配使用的簇大小CL设置为4、8、16、32、64和128中的一个。
3.根据权利要求1所述的用于MP4文件的恢复方法,其特征在于,所述步骤S4还包括,当前簇内的Chunk数小于第一阈值时,验证所述当前簇内Chunk与其前后簇的偏移关系,若满足,将所述当前簇作为目标簇。
4.根据权利要求1或3所述的用于MP4文件的恢复方法,其特征在于,所述第一阈值设置为2或3。
5.根据权利要求1所述的用于MP4文件的恢复方法,其特征在于,所述步骤S3中Chunk所属的簇的计算方式为:簇序号Cseq=CK/CL,其中,CK表示获取到的Chunk相对文件头偏移,CL表示簇大小。
6.根据权利要求1所述的用于MP4文件的恢复方法,其特征在于,所述步骤S3中每个Chunk在其所属的簇内偏移的计算方式为:簇内偏移Coff=CK%CL,即CK/CL的余数。
7.根据权利要求1或3所述的用于MP4文件的恢复方法,其特征在于,对所述待恢复的MP4文件数据,按所述簇序号向上或向下依序进行所述目标簇的判断。
8.根据权利要求1所述的用于MP4文件的恢复方法,其特征在于,所述Chunk中包括所述待恢复MP4文件数据的一帧或一组连续帧。
9.一种计算机可读存储介质,其上存储有一或多个计算机程序,其特征在于,该一或多个计算机程序被计算机处理器执行时实施权利要求1至8中任一项所述的方法。
10.一种用于MP4文件的恢复系统,其特征在于,所述系统包括:
特征码提取单元,配置用于获取系统分配使用的簇大小CL,读取待恢复MP4文件数据,提取所述待恢复MP4文件数据的moov特征码;
Chunk偏移信息获取单元,配置用于响应于提取到所述moov特征码,获取所述moov特征码中所有的Chunk的偏移信息;
计算单元,配置用于计算每个Chunk所属的簇序号以及其在所属的簇内的起始的偏移位置;
目标簇判断单元:配置用于响应于当前簇内的Chunk数大于等于第一阈值,且基于簇内的偏移位置具有完整的Chunk解析,将当前簇作为目标簇;
合并单元:配置用于将所述目标簇和所述moov特征码所在簇保存为MP4文件。
11.根据权利要求10所述的用于MP4文件的恢复系统,其特征在于,所述目标簇判断单元进一步配置用于当前簇内的Chunk数小于第一阈值时,验证所述当前簇内Chunk与其前后簇的偏移关系,若满足,将所述当前簇作为目标簇。
12.根据权利要求10或11所述的用于MP4文件的恢复系统,其特征在于,对所述待恢复的MP4文件数据,按所述簇序号向上或向下依序进行所述目标簇的判断。
13.根据权利要求10所述的用于MP4文件的恢复系统,其特征在于,所述计算单元中Chunk所属的簇的计算方式为:簇序号Cseq=CK/CL,其中,CK表示获取到的Chunk相对文件头偏移,CL表示簇大小。
14.根据权利要求10所述的用于MP4文件的恢复系统,其特征在于,所述计算单元中每个Chunk在其所属的簇内偏移的计算方式为:簇内偏移Coff=CK%CL,即CK/CL的余数。
15.根据权利要求13或14所述的用于MP4文件的恢复系统,其特征在于,所述系统分配使用的簇大小CL设置为4、8、16、32、64和128中的一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911007369.4A CN110851301B (zh) | 2019-10-22 | 2019-10-22 | 一种用于mp4文件的恢复方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911007369.4A CN110851301B (zh) | 2019-10-22 | 2019-10-22 | 一种用于mp4文件的恢复方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851301A true CN110851301A (zh) | 2020-02-28 |
CN110851301B CN110851301B (zh) | 2022-08-19 |
Family
ID=69596873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911007369.4A Active CN110851301B (zh) | 2019-10-22 | 2019-10-22 | 一种用于mp4文件的恢复方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851301B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732487A (zh) * | 2021-01-07 | 2021-04-30 | 中国银联股份有限公司 | 一种数据恢复方法及装置 |
CN113127265A (zh) * | 2021-03-29 | 2021-07-16 | 珠海全志科技股份有限公司 | 行车记录文件的修复方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202899A (zh) * | 2006-12-12 | 2008-06-18 | 中兴通讯股份有限公司 | 视音频流数据恢复iso媒体文件的方法 |
US20140164336A1 (en) * | 2011-07-25 | 2014-06-12 | Republic Of Korea | Method for codec-based recovery of a video using a cluster search |
CN106407038A (zh) * | 2015-07-27 | 2017-02-15 | 四川效率源信息安全技术有限责任公司 | 一种碎片文件的数据恢复方法 |
CN108322808A (zh) * | 2018-02-28 | 2018-07-24 | 珠海全志科技股份有限公司 | 一种视频录像处理方法及装置、计算机装置、存储介质 |
-
2019
- 2019-10-22 CN CN201911007369.4A patent/CN110851301B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202899A (zh) * | 2006-12-12 | 2008-06-18 | 中兴通讯股份有限公司 | 视音频流数据恢复iso媒体文件的方法 |
US20140164336A1 (en) * | 2011-07-25 | 2014-06-12 | Republic Of Korea | Method for codec-based recovery of a video using a cluster search |
CN106407038A (zh) * | 2015-07-27 | 2017-02-15 | 四川效率源信息安全技术有限责任公司 | 一种碎片文件的数据恢复方法 |
CN108322808A (zh) * | 2018-02-28 | 2018-07-24 | 珠海全志科技股份有限公司 | 一种视频录像处理方法及装置、计算机装置、存储介质 |
Non-Patent Citations (3)
Title |
---|
王宇: "一种基于MOV格式的文件恢复方法研究", 《科技风》 * |
赵晓柯: "基于Windows FAT32的数据恢复原理分析及算法研究", 《科技信息》 * |
黄步根等: "SANYO数码相机中被删除视频的恢复", 《信息网络安全》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732487A (zh) * | 2021-01-07 | 2021-04-30 | 中国银联股份有限公司 | 一种数据恢复方法及装置 |
CN112732487B (zh) * | 2021-01-07 | 2024-01-23 | 中国银联股份有限公司 | 一种数据恢复方法及装置 |
CN113127265A (zh) * | 2021-03-29 | 2021-07-16 | 珠海全志科技股份有限公司 | 行车记录文件的修复方法及系统 |
CN113127265B (zh) * | 2021-03-29 | 2023-03-10 | 珠海全志科技股份有限公司 | 行车记录文件的修复方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110851301B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10643610B2 (en) | Voice interaction based method and apparatus for generating multimedia playlist | |
CN106534273B (zh) | 区块链元数据存储系统及其存储方法与检索方法 | |
CN101821734B (zh) | 时基媒体之间的匹配的检测和分类 | |
CN112929744B (zh) | 用于分割视频剪辑的方法、装置、设备、介质和程序产品 | |
CN111063376B (zh) | 一种mp4修复中音视频同步的方法、终端设备和存储介质 | |
CN109756760B (zh) | 视频标签的生成方法、装置及服务器 | |
EP1635575A1 (en) | System and method for embedding scene change information in a video bitstream | |
US8422786B2 (en) | Analyzing documents using stored templates | |
CN110851301B (zh) | 一种用于mp4文件的恢复方法和系统 | |
CN109936715B (zh) | 一种mp4文件的处理方法及其相关设备 | |
US9275682B1 (en) | Video content alignment | |
US11315605B2 (en) | Method, device, and computer program product for storing and providing video | |
CN110855638A (zh) | 一种基于云计算的遥感卫星数据解压缩处理系统及方法 | |
CN103165151A (zh) | 多媒体文件播放方法和装置 | |
CN109151505B (zh) | 一种视频转码方法、系统、装置及计算机可读存储介质 | |
CN106407038A (zh) | 一种碎片文件的数据恢复方法 | |
CN112597348A (zh) | 一种大数据存储优化的方法及装置 | |
CN102291621B (zh) | 信息提供服务器、信息处理设备及同一性判定系统和方法 | |
CN110839135A (zh) | 一种用于dv或hdv视频文件的恢复方法和系统 | |
CN114257840B (zh) | 一种用于Matroska格式视频的修复方法和系统 | |
CN104506390A (zh) | 一种路测系统日志存储方法及装置 | |
CN113660442B (zh) | 一种视频修复方法、装置、电子设备及可读介质 | |
CN109426589B (zh) | 一种文件修复方法及装置 | |
CN113810782B (zh) | 视频处理方法及设备、服务器、电子设备 | |
CN110377584A (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 |