CN110781037B - Method and system for recovering video file in storage medium and readable storage medium - Google Patents

Method and system for recovering video file in storage medium and readable storage medium Download PDF

Info

Publication number
CN110781037B
CN110781037B CN202010000181.3A CN202010000181A CN110781037B CN 110781037 B CN110781037 B CN 110781037B CN 202010000181 A CN202010000181 A CN 202010000181A CN 110781037 B CN110781037 B CN 110781037B
Authority
CN
China
Prior art keywords
cluster
mdat
data
ftyp
initial
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
Application number
CN202010000181.3A
Other languages
Chinese (zh)
Other versions
CN110781037A (en
Inventor
梁绍锣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Yiwo Tech Development Co ltd
Original Assignee
Chengdu Yiwo Tech Development Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Yiwo Tech Development Co ltd filed Critical Chengdu Yiwo Tech Development Co ltd
Priority to CN202010000181.3A priority Critical patent/CN110781037B/en
Publication of CN110781037A publication Critical patent/CN110781037A/en
Application granted granted Critical
Publication of CN110781037B publication Critical patent/CN110781037B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

The embodiment of the invention relates to the technical field of data recovery, and particularly discloses a method and a system for recovering a video file in a storage medium and a readable storage medium. According to the method and the device, the MDAT object is established by obtaining the MDAT box actual area and is placed in the MDAT queue, the FTYP object is established by obtaining the FTYP box actual area and is placed in the FTYP queue, the FTYP object and the MDAT object are arranged and combined to recombine the video file to obtain the effective video file, and the problem that the video file in the storage medium cannot be successfully recovered after being deleted is solved.

Description

Method and system for recovering video file in storage medium and readable storage medium
Technical Field
The invention relates to the technical field of data recovery, in particular to a method and a system for recovering a video file in a storage medium and a readable storage medium.
Background
Video shot by a digital camera, a mobile phone and other equipment with shooting function is generally in MP4 and MOV formats, while MP4 and MOV video file packaging formats are defined based on a QuickTime container format, wherein media description (MOOV) and Media Data (MDAT) are separated, and the organization of the media data is free and not necessarily arranged according to time sequence, even the media data can directly refer to other files. Therefore, there is a high probability that fragmentation occurs.
mp4 or MPEG-4 Part 14 is a multimedia container format with the extension of. mp 4. The MP4 file is composed of many boxes, each containing different information, which are organized in a tree structure. MOV, a QuickTime movie format, is an audio, video file format developed by Apple inc for storing commonly used digital media types. When QuickTime (. mov) is selected as the "save type," the animation will be saved as a.mov file. QuickTime is a complete set of multimedia platform architecture developed by Apple Inc., and can be used to create, produce and distribute various media, and provide end-to-end support for the process: including real-time capture of media, programmatically compositing of media, importing and exporting existing media, as well as editing and authoring, compression, distribution, and playback by the user.
The QuickTime file stores the media description and the media data separately. Media descriptions (MOOV), referred to as movie assets, movie atom, or simply movie, contain information including: the number of tracks, the video compression format and timing information, etc. The movie asset also contains an index that describes where all media data is stored. Media Data (MDAT) is real sample point data, such as video frames and audio samples, used in movies. The media data may be stored in the same file as the QuickTime movie, or in a separate file, or in multiple files, or in an alternate resource such as a database or real-time stream, or some combination of these.
The Box is an object-oriented component defined by a unique type identifier and a length, and the Box mainly comprises a header and a body; wherein the header portion includes a size of the box and a type of the box; the body part is the data part, which can store other boxes, and the nested storage forms a.MP 4,. MOV file. The ContainerBox is used to accommodate a box of related boxes. A File Type Box (FTYP) indicates a File Type, which has only 1 Box and can be contained only in a File layer, but not by other boxes, which should be placed at the very beginning of a File, indicating information about the MP4 File application, such as a version of a specification describing compliance of the File.
The MOOV stores metadata information of the media file, which stores the structure of the file media data, "MOOV" is a container box, and the specific content information is interpreted by a sub-box. Like the File Type Box, there is only one Box, and it is only contained in the File layer. Typically, "MOOV" will follow "FTYP".
MDAT is specific media data. The media Data of the MP4 file and MOV file are contained in a box (media Data container) of "MDAT" type, which is also a container box, and there may be a plurality of boxes or none (when the media Data all refer to other files), and the structure of the media Data is described by metadata (moov).
When playing such a QuickTime container format file, a player generally reads its video information sequentially: media description (MOOV) is started and then the file is played according to the index in the Media Data (MDAT). And the sequence of storing shot mp4 and mov files by partial cameras and mobile phones is as follows: 1) first storing the Media Data (MDAT) of the shot file (during which thumbnail images, CR2 picture files, log files, file directories, etc. may be inserted), followed by storing the media description (MOOV), with the media description and media data reversed; 2) still other cameras and mobile phones store mp4 and mov videos shot by storing all Media Data (MDAT) during shooting (during which thumbnail images, CR2 picture files, log files, file directories and other information may be inserted) and then storing corresponding media description (MOOV) information of the media data. The storage records of the information are all recorded by a file cluster chain (similar to a FAT table in a FAT file system), so that the system can establish an index through the file cluster chain before normal mp4 and mov files are deleted, and data is read out, so that the files are played normally; however, when the data chains of these files are emptied at the place where they are recorded (for example, the records of the cluster chain of the deleted file in the FAT32 file system in the FAT table) and when we restore the deleted file, the data scanned according to the file format or the file system is all wrong, we need to fragment and reassemble this situation, and restore the correct order of video playback: media description (MOOV) > Media Data (MDAT).
Disclosure of Invention
In view of the above, in order to solve the problem that after a video file in a part of storage media is stored as fragments and the order of media description (MOOV) and Media Data (MDAT) is reversed, the correct order of the data cannot be correctly restored by normal file system scanning and file format scanning, the present application provides a method, a system and a readable storage medium for restoring a video file in a storage media.
In order to solve the above technical problems, the technical solution provided by the present invention is a method for restoring a video file in a storage medium, comprising:
s11: scanning disk data cluster by cluster to search an MDAT box and an FTYP box;
s12: responding to the searched MDAT box, obtaining an initial MDAT box area according to the MDAT box, checking the initial MDAT box area cluster by cluster to obtain an actual MDAT box area, establishing an MDAT object according to the actual MDAT box area, putting the MDAT object into an MDAT queue, and returning to S11;
s13: responding to the found FTYP box, obtaining an FTYP box initial area according to the FTYP box, checking the FTYP box initial area to obtain an FTYP box actual area, establishing an FTYP object according to the FTYP box actual area, putting the FTYP object into an FTYP queue, and returning to S11;
s14: and responding to the completion of disk data scanning, respectively extracting each FTYP object in the FTYP queue and each MDAT object in the MDAT queue to recombine the video file, and if the recombined video file is valid, successfully recovering the video file.
Preferably, the method of step S11 includes:
s111: reading the disk data of the current cluster;
s112: searching whether the feature code of the MDAT box appears in the initial N bytes of the current cluster, if so, entering S12, and if not, entering S113;
s113: searching whether the feature code of the FTYP box appears in the initial N bytes of the current cluster, if so, entering S13, and if not, entering S114;
s114: judging whether the current cluster is the last cluster to be scanned, if so, entering S14, otherwise, jumping to the next cluster, and returning to S111; n is a positive integer.
Preferably, the method of step S12 includes:
s121: recording the cluster number occupied by the MDAT box as the initial cluster number of the current MDAT data, calculating the number of occupied clusters of the initial area of the MDAT box according to the size of the MDAT box, and entering S122;
s122: checking whether the current cluster has preset type data stored in a sector alignment mode, if not, entering S124, if so, calculating the cluster occupying number of the current MDAT data according to the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, and recording, wherein the current cluster is not used as the cluster of the initial area of the MDAT box, and entering S123;
s123: according to the size of the preset type data, jumping to the next cluster after the preset type data is finished as the cluster of the initial area of the MDAT box, recording the cluster number of the current cluster as the initial cluster number of the current MDAT data, and returning to S122;
s124: checking whether the current cluster is the last cluster of the MDAT box initial area, if not, jumping to the next cluster of the MDAT box initial area, and returning to S122; if yes, checking whether the current cluster has a FREE box, if yes, calculating the cluster occupying number of the FREE box according to the box size in the FREE box, calculating and recording the cluster occupying number of the current MDAT data according to the cluster occupying number of the FREE box, the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, entering S125, if not, calculating and recording the cluster occupying number of the current MDAT data according to the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, and entering S125;
s125: and putting the initial cluster number and the occupied cluster number of each MDAT data into an MDAT queue as an MDAT object.
Preferably, the method of step S13 includes:
s131: recording the cluster number occupied by the FTYP box as the initial cluster number of the current FTYP data, calculating the cluster number of the initial area of the FTYP box according to the size of the box in the FTYP box, and entering S132;
s132: jumping to the last cluster of the initial area of the FTYP box, checking whether the current cluster has an FREE box, if so, calculating the cluster occupying number of the FREE box according to the size of the FREE box, calculating and recording the cluster occupying number of the current FTYP data according to the cluster occupying number of the FREE box, the cluster number of the current cluster and the initial cluster number of the currently recorded FTYP data, entering S133, if not, calculating and recording the cluster occupying number of the current FTYP data according to the cluster number of the current cluster and the initial cluster number of the currently recorded FTYP data, and entering S133;
s133: and putting the initial cluster number and the occupied cluster number of each FTYP data as an FTYP object into an FTYP queue.
Preferably, the method of step S14 includes:
s141: extracting an FTYP object in the FTYP queue and an MDAT object in the MDAT queue to recombine the video file;
s142: judging whether the recombined video file is valid, if not, entering S143, and if so, entering S144;
s143: extracting a next MDAT object in the MDAT queue and the current FTYP object to recombine the video file, and entering S142;
s144: deleting the FTYP object corresponding to the successfully recombined video file from the FTYP queue, deleting the MDAT object corresponding to the successfully recombined video file from the MDAT queue, and entering S145:
s145: checking whether the FTYP queue or the MDAT queue is empty, if so, finishing the recombination, and if not, returning to S141.
The present invention also provides a system for restoring video files in a storage medium, comprising:
the disk data scanning module is used for scanning disk data cluster by cluster to search the MDAT box and the FTYP box;
the MDAT processing module is used for responding to the searched MDAT box, obtaining an MDAT box initial area according to the MDAT box, checking the MDAT box initial area cluster by cluster to obtain an MDAT box actual area, establishing an MDAT object according to the MDAT box actual area, putting the MDAT object into an MDAT queue, and returning to the disk data scanning module;
the FTYP processing module is used for responding to the found FTYP box, obtaining an FTYP box initial area according to the FTYP box, checking the FTYP box initial area to obtain an FTYP box actual area, establishing an FTYP object according to the FTYP box actual area, putting the FTYP object into an FTYP queue, and returning to the disk data scanning module;
and the video file reorganizing module is used for respectively extracting each FTYP object in the FTYP queue and each MDAT object in the MDAT queue to reorganize the video file in response to the completion of the scanning of the disk data, and if the reorganized video file is valid, the video file is successfully recovered.
Preferably, the disk data scanning module includes:
a disk data reading unit for reading the disk data of the current cluster;
the MDAT data searching unit is used for searching whether the feature code of the MDAT box appears in the initial N bytes of the current cluster, if so, the MDAT data searching unit enters the MDAT processing module, and if not, the FTYP data searching unit enters the FTYP data searching unit;
the FTYP data searching unit is used for searching whether the feature code of the FTYP box appears in the initial N bytes of the current cluster, if so, the FTYP data searching unit enters the FTYP processing module, and if not, the FTYP data searching unit enters the data scanning monitoring unit;
the data scanning monitoring unit is used for judging whether the current cluster is the last cluster to be scanned, if so, entering a video file recombination module, and if not, jumping to the next cluster and returning to the MDAT data searching unit; n is a positive integer.
Preferably, the MDAT processing module includes:
the MDAT data starting unit is used for recording the cluster number occupied by the MDAT box as the starting cluster number of the current MDAT data, calculating the number of occupied clusters of the initial area of the MDAT box according to the size of the MDAT box, and entering the preset type data searching unit;
the device comprises a preset type data searching unit, a FREE data searching unit and an MDAT box initial area jumping unit, wherein the preset type data searching unit is used for checking whether the current cluster has preset type data stored in a sector alignment mode, if not, the FREE data searching unit is accessed, if yes, the number of occupied clusters of the current MDAT data is calculated and recorded according to the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, and the current cluster is not used as a cluster of an MDAT box initial area and is accessed to the MDAT box initial area jumping unit;
the MDAT box initial area jumping unit is used for jumping to the next cluster after the preset type data is finished as the cluster of the MDAT box initial area according to the size of the preset type data, recording the cluster number of the current cluster as the initial cluster number of the current MDAT data, and returning to the preset type data searching unit;
the FREE data search unit is used for checking whether the current cluster is the last cluster of the MDAT box initial area, if not, jumping to the next cluster of the MDAT box initial area, and returning to the preset type data search unit; if yes, checking whether the current cluster has a FREE box, if yes, calculating the number of occupied clusters of the FREE box according to the size of the box in the FREE box, calculating and recording the number of occupied clusters of the current MDAT data according to the number of occupied clusters of the FREE box, the number of clusters of the current cluster and the initial cluster number of the MDAT data recorded currently, entering an MDAT object establishing unit, if not, calculating and recording the number of occupied clusters of the current MDAT data according to the number of clusters of the current cluster and the initial cluster number of the MDAT data recorded currently, and entering the MDAT object establishing unit;
and the MDAT object establishing unit is used for taking the initial cluster number and the occupied cluster number of each MDAT data as an MDAT object to be placed in an MDAT queue.
The present invention also provides a system for restoring video files in a storage medium, comprising:
a memory for storing a computer program;
a processor for executing said computer program for carrying out the steps of the method for restoring a video file in a storage medium as described above.
The invention also provides a readable storage medium, which stores a computer program that, when executed by a processor, performs the steps of the method for restoring a video file in a storage medium as described above.
Compared with the prior art, the beneficial effects of the method are detailed as follows: according to the method and the device, the MDAT object is established by obtaining the MDAT box actual area and is placed in the MDAT queue, the FTYP object is established by obtaining the FTYP box actual area and is placed in the FTYP queue, the FTYP object and the MDAT object are arranged and combined to recombine the video file to obtain the effective video file, and the problem that the video file in the storage medium cannot be successfully recovered after being deleted is solved.
Drawings
In order to illustrate the embodiments of the present invention more clearly, the drawings that are needed in the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and that other drawings can be obtained by those skilled in the art without inventive effort.
Fig. 1 is a schematic flowchart of a method for recovering a video file in a storage medium according to an embodiment of the present invention;
FIG. 2 is a flowchart illustrating a method for searching for an MDAT box and an FTYP box by scanning disk data cluster by cluster according to an embodiment of the present invention;
fig. 3 is a schematic flow chart of a method for obtaining an MDAT box actual area according to an embodiment of the present invention;
FIG. 4 is a schematic flow chart of a method for obtaining an actual FTYP box area according to an embodiment of the present invention;
fig. 5 is a schematic structural diagram of a system for recovering a video file in a storage medium according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without any creative work belong to the protection scope of the present invention.
In order to make the technical solutions of the present invention better understood by those skilled in the art, the present invention will be further described in detail with reference to the accompanying drawings and specific embodiments.
As shown in fig. 1, an embodiment of the present invention provides a method for recovering a video file in a storage medium, including:
s11: scanning disk data cluster by cluster to search an MDAT box and an FTYP box;
s12: responding to the searched MDAT box, obtaining an initial MDAT box area according to the MDAT box, checking the initial MDAT box area cluster by cluster to obtain an actual MDAT box area, establishing an MDAT object according to the actual MDAT box area, putting the MDAT object into an MDAT queue, and returning to S11;
s13: responding to the found FTYP box, obtaining an FTYP box initial area according to the FTYP box, checking the FTYP box initial area to obtain an FTYP box actual area, establishing an FTYP object according to the FTYP box actual area, putting the FTYP object into an FTYP queue, and returning to S11;
s14: and responding to the completion of disk data scanning, respectively extracting each FTYP object in the FTYP queue and each MDAT object in the MDAT queue to recombine the video file, and if the recombined video file is valid, successfully recovering the video file.
As shown in fig. 2, it should be noted that the method of step S11 includes:
s111: reading the disk data of the current cluster;
s112: searching whether the feature code of the MDAT box appears in the initial N bytes of the current cluster, if so, entering S12, and if not, entering S113;
s113: searching whether the feature code of the FTYP box appears in the initial N bytes of the current cluster, if so, entering S13, and if not, entering S114;
s114: judging whether the current cluster is the last cluster to be scanned, if so, entering S14, otherwise, jumping to the next cluster, and returning to S111; n is a positive integer.
Specifically, the user disk data is scanned cluster by cluster, and a start box (mdat) of the media data stored in a sector-aligned manner and a start box (ftyp) of the media description stored in a sector-aligned manner are searched. The sector alignment means that the signature is located at the first few bytes of the start sector of each cluster, or at a position a certain length away from the start position of the start sector. For example, the media data stored in a sector-aligned manner means that when a cluster-by-cluster scan is performed, if it is found that 4 bytes from the beginning of the starting sector are identified by "MDAT", the data indicating the beginning of the cluster is the box of the Media Data (MDAT). Since FTYP box is a unique identification box of our MP4, MOV, if when scanning the starting sector of a cluster, it is found that the sector is offset by 4 bytes, and is 16-ary (0 x660x 740 x 790 x 70) of the identification of "FTYP", it indicates that the cluster is the starting cluster of FTYP box.
As shown in fig. 3, it should be noted that the method of step S12 includes:
s121: recording the cluster number occupied by the MDAT box as the initial cluster number of the current MDAT data, calculating the number of occupied clusters of the initial area of the MDAT box according to the size of the MDAT box, and entering S122;
s122: checking whether the current cluster has preset type data stored in a sector alignment mode, if not, entering S124, if so, calculating the cluster occupying number of the current MDAT data according to the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, and recording, wherein the current cluster is not used as the cluster of the initial area of the MDAT box, and entering S123;
s123: according to the size of the preset type data, jumping to the next cluster after the preset type data is finished as the cluster of the initial area of the MDAT box, recording the cluster number of the current cluster as the initial cluster number of the current MDAT data, and returning to S122;
s124: checking whether the current cluster is the last cluster of the MDAT box initial area, if not, jumping to the next cluster of the MDAT box initial area, and returning to S122; if yes, checking whether the current cluster has a FREE box, if yes, calculating the cluster occupying number of the FREE box according to the box size in the FREE box, calculating and recording the cluster occupying number of the current MDAT data according to the cluster occupying number of the FREE box, the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, entering S125, if not, calculating and recording the cluster occupying number of the current MDAT data according to the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, and entering S125;
s125: and putting the initial cluster number and the occupied cluster number of each MDAT data into an MDAT queue as an MDAT object.
Here, the finally obtained MDAT queue is an actual area of the MDAT box, which includes the starting cluster number and the occupied cluster number of each MDAT data constituting the MDAT box.
Specifically, the size of the initial area of the MDAT box, i.e., the number of occupied clusters, is calculated according to the size of the box indicated in the obtained MDAT data initial box. The initial area of the MDAT box is scanned cluster by cluster to determine the actual area of the MDAT box, because other file data may be inserted into the initial area of the MDAT box, rather than continuous whole pieces of MDAT data, the actual area of the MDAT box can only be obtained by scanning the initial area of the MDAT box cluster by cluster, and in the last cluster of the initial area of the MDAT box, if the FREE fill data is stored next, we need to use the FREE fill data as the initial area of the MDAT box, because the FREE fill data is not reserved, the reconstructed video file cannot be played. For example, the size of the initial area of the MDAT box is calculated to be 5 clusters, cluster-by-cluster scanning is started, the initial cluster number of the first MDAT data is recorded first, then other file data areas are found, the first MDAT data occupies 2 clusters, the other file data areas occupy 2 clusters, jumping to the first cluster after the other file data are ended, and recording the first cluster number of the second MDAT data, because the initial area of the MDAT box is 5 clusters in total, it is known that the second MDAT data occupies 3 clusters, when the last cluster of the second MDAT data is found, the occupied cluster number of the FREE data is calculated, and when 1 cluster is found, the occupied cluster number of the FREE data needs to be added to the occupied cluster number of the second MDAT data, and 4 clusters in total are taken as the occupied cluster number of the second MDAT data and recorded. The initial cluster number and the occupied cluster number of each MDAT data are recorded, MDAT objects are established, and the MDAT objects form an MDAT queue for recombining video files. And after the initial area scanning of the MDAT box of the 6 clusters is finished, jumping to the next cluster, and continuously scanning the disk data cluster by cluster to search the MDAT box and the FTYP box.
The preset type data refers to a format mode for presetting a plurality of other file data which may appear, and may include a familiar file format such as a jpg file, a log file, a cr2 file, and FDT entry data, and if the preset type data stored in a sector alignment mode is found, the number of occupied clusters of the current MDAT data is calculated according to the start cluster number of the preset type data and the start cluster number of the currently recorded MDAT data, for example, the start cluster number of the currently recorded MDAT data is 1001, and the start cluster number of the preset type data is 1003, the number of occupied clusters of the current MDAT data is calculated to be 1003-. And then, calculating the size of the space occupied by the preset type data in a mode of analyzing the preset type data, namely the number of occupied clusters, skipping the cluster occupied by the preset type data from the current cluster, reaching the next cluster as the next cluster of the MDAT box initial area, and scanning cluster by cluster. If the predetermined type of data stored in the sector aligned manner is not found, this step can be omitted. The way to search the preset type data is to see whether the signature of the preset type file is stored in the first few bytes of the start sector of each cluster or a position with a certain length from the start position of the start sector. For example, a PNG file has a file start position with a "PNG" indicating that the file is PNG; for example, an exe file has a start of file with a flag "MZ" indicating PE format; for example, a JPG file, the file start position of which has an identifier "JFIF", "FFD 8FFE 0", etc. indicating that the file is in the JPG format; in summary, it can be seen that other file data stored in a sector aligned manner, i.e. a signature code identifying a file that we are familiar with, is at the beginning of a starting sector of a cluster by a few bytes, and if a preset type of data of the current cluster is found, the preset type of data is skipped according to the procedure.
As shown in fig. 4, it should be noted that the method of step S13 includes:
s131: recording the cluster number occupied by the FTYP box as the initial cluster number of the current FTYP data, calculating the cluster number of the initial area of the FTYP box according to the size of the box in the FTYP box, and entering S132;
s132: jumping to the last cluster of the initial area of the FTYP box, checking whether the current cluster has an FREE box, if so, calculating the cluster occupying number of the FREE box according to the size of the FREE box, calculating and recording the cluster occupying number of the current FTYP data according to the cluster occupying number of the FREE box, the cluster number of the current cluster and the initial cluster number of the currently recorded FTYP data, entering S133, if not, calculating and recording the cluster occupying number of the current FTYP data according to the cluster number of the current cluster and the initial cluster number of the currently recorded FTYP data, and entering S133;
s133: and putting the initial cluster number and the occupied cluster number of each FTYP data as an FTYP object into an FTYP queue.
Specifically, the FTYP queue finally obtained here is an FTYP box real area, and includes the initial cluster number and the number of occupied clusters of each piece of FTYP data constituting the FTYPbox.
Specifically, the size of the FTYP box initial area, that is, the number of occupied clusters is calculated from the size of the box indicated in the obtained FTYP start box. The FTYP box initial area is scanned to determine the FTYP box actual area, because other file data are not inserted into the FTYP box initial area, but a continuous whole block of FTYP box initial area is not needed to scan the FTYP box initial area cluster by cluster, only the last cluster of the FTYP box initial area needs to be checked, if the last cluster is stored with FREE filling data, the FREE filling data needs to be used as the FTYP box initial area, because the FREE filling data is not reserved, the recombined video file cannot be played. For example, the size of the initial area of the FTYP box is calculated to be 2 clusters, when a FREE box is found during the last cluster scanning, the number of occupied clusters of FREE data is calculated, and when 1 cluster is found, the number of occupied clusters of FTYP data needs to be added, and 3 clusters are used as the number of occupied clusters of FTYP data. Recording the initial cluster number and the number of occupied clusters of each FTYP data, and establishing FTYP objects, wherein the FTYP objects form FTYP queues for recombining video files. After the FTYP box initial area scanning of 3 clusters is finished, jumping to the next cluster, and continuously scanning disk data cluster by cluster to search MDATbox and FTYP box.
The method of step S14 includes:
s141: extracting an FTYP object in the FTYP queue and an MDAT object in the MDAT queue to recombine the video file;
s142: judging whether the recombined video file is valid, if not, entering S143, and if so, entering S144;
s143: extracting a next MDAT object in the MDAT queue and the current FTYP object to recombine the video file, and entering S142;
s144: deleting the FTYP object corresponding to the successfully recombined video file from the FTYP queue, deleting the MDAT object corresponding to the successfully recombined video file from the MDAT queue, and entering S145:
s145: checking whether the FTYP queue or the MDAT queue is empty, if so, finishing the recombination, and if not, returning to S141.
Specifically, after the disk data is completely scanned and analyzed, the effectiveness of the recombined video file is judged by recombining the video file, and the real and effective combination of FTYP and MDAT can be found out. For example, we find a Media Data (MDAT) of a 1.MOV file, which consists of 3 parts of cluster numbers, 1000-: 1000: 11, 1030: 11, 1060: 11. also found is 1. media description of MOV File (FTYP), which consists of a part of cluster number, 1071-: 1071: 2. when the combination is arranged, the disk data of the FTYP object + the disk data of the MDAT object No. 1, the MDAT object No. 2 and the MDAT object No. 3 respectively form a new MOV file, and whether the MOV is effective or not is judged to determine which combination is effective.
Assuming that there are 4 FTYP objects and 4 MDAT objects, the permutation and combination method is: the method comprises the steps that the number 1 FTYP is combined with the number 1 MDAT, the number 2 MDAT, the number 3 MDAT and the number 4 MDAT respectively, namely data of the number 1 FTYP object on a disk are read according to the initial cluster number and the occupied size of the number 1 FTYP object, then data of the number 1 MDAT, the number 2 MDAT, the number 3 MDAT and the number 4 MDAT object on the disk are read respectively, a new MP4 or MOV file is formed by combining the disk data of the number 1 FTYP object and the disk data of the number 1 MDAT, the number 2 MDAT, the number 3 MDAT and the number 4 MDAT object respectively, and whether the combination is valid or not is judged by judging whether the MP4 or MOV is valid or not. The combination of FTYP No. 2, FTYP No. 3, and FTYP No. 4 can obtain 4 effective video files in the same manner as the combination of FTYP No. 1.
Judging whether the combined video file is valid, firstly judging whether the picture can be extracted from the first frame of the MOV or MP4 file corresponding to the recombined FTYP and MDAT, and if so, analyzing whether the start position of each chunk defined by the chunk offset table defined at the end of the MOV or MP4 file is correct relative to the file. A recombined FTYP and MDAT is considered to be a valid combination if each chunk defined in the chunkoffset table can be located from the recombined MP4 or MOV file. Then we program automatically removes the FTYP object and MDAT object from our FTYP and MDAT queue, if there are multiple FTYP and MDAT objects, then we proceed with recombination and judgment.
As shown in fig. 5, an embodiment of the present invention further provides a system for recovering a video file in a storage medium, including:
a disk data scanning module 21, configured to scan disk data cluster by cluster to search for an MDAT box and an FTYP box;
the MDAT processing module 22, in response to finding the MDAT box, is configured to obtain an initial MDAT box area according to the MDAT box, check the initial MDAT box area cluster by cluster to obtain an actual MDAT box area, establish an MDAT object according to the actual MDAT box area, place the MDAT object in an MDAT queue, and return to the disk data scanning module;
the FTYP processing module 23, in response to finding the FTYP box, is configured to obtain an initial FTYP box area according to the FTYP box, check the initial FTYP box area to obtain an actual FTYP box area, establish an FTYP object according to the actual FTYP box area, place the FTYP object in an FTYP queue, and return to the disk data scanning module;
and the video file recombining module 24, in response to completion of the disk data scanning, is configured to extract each FTYP object in the FTYP queue and each MDAT object in the MDAT queue to recombine a video file, and if the recombined video file is valid, the video file is successfully restored.
It should be noted that the disk data scanning module 21 includes:
a disk data reading unit for reading the disk data of the current cluster;
the MDAT data searching unit is used for searching whether the feature code of the MDAT box appears in the initial N bytes of the current cluster, if so, the MDAT data searching unit enters the MDAT processing module, and if not, the FTYP data searching unit enters the FTYP data searching unit;
the FTYP data searching unit is used for searching whether the feature code of the FTYP box appears in the initial N bytes of the current cluster, if so, the FTYP data searching unit enters the FTYP processing module, and if not, the FTYP data searching unit enters the data scanning monitoring unit;
the data scanning monitoring unit is used for judging whether the current cluster is the last cluster to be scanned, if so, entering a video file recombination module, and if not, jumping to the next cluster and returning to the MDAT data searching unit; n is a positive integer.
It should be noted that the MDAT processing module 22 includes:
the MDAT data starting unit is used for recording the cluster number occupied by the MDAT box as the starting cluster number of the current MDAT data, calculating the number of occupied clusters of the initial area of the MDAT box according to the size of the MDAT box, and entering the preset type data searching unit;
the device comprises a preset type data searching unit, a FREE data searching unit and an MDAT box initial area jumping unit, wherein the preset type data searching unit is used for checking whether the current cluster has preset type data stored in a sector alignment mode, if not, the FREE data searching unit is accessed, if yes, the number of occupied clusters of the current MDAT data is calculated and recorded according to the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, and the current cluster is not used as a cluster of an MDAT box initial area and is accessed to the MDAT box initial area jumping unit;
the MDAT box initial area jumping unit is used for jumping to the next cluster after the preset type data is finished as the cluster of the MDAT box initial area according to the size of the preset type data, recording the cluster number of the current cluster as the initial cluster number of the current MDAT data, and returning to the preset type data searching unit;
the FREE data search unit is used for checking whether the current cluster is the last cluster of the MDAT box initial area, if not, jumping to the next cluster of the MDAT box initial area, and returning to the preset type data search unit; if yes, checking whether the current cluster has a FREE box, if yes, calculating the number of occupied clusters of the FREE box according to the size of the box in the FREE box, calculating and recording the number of occupied clusters of the current MDAT data according to the number of occupied clusters of the FREE box, the number of clusters of the current cluster and the initial cluster number of the MDAT data recorded currently, entering an MDAT object establishing unit, if not, calculating and recording the number of occupied clusters of the current MDAT data according to the number of clusters of the current cluster and the initial cluster number of the MDAT data recorded currently, and entering the MDAT object establishing unit;
and the MDAT object establishing unit is used for taking the initial cluster number and the occupied cluster number of each MDAT data as an MDAT object to be placed in an MDAT queue.
It should be noted that FTYP processing module 23 includes:
the FTYP data starting unit is used for recording the cluster number occupied by the FTYP box as the starting cluster number of the current FTYP data, calculating the cluster number occupied by the initial area of the FTYP box according to the size of the FTYP box, and entering the FREE data searching unit;
an FREE data searching unit, which is used for jumping to the last cluster of the FTYP box initial area, checking whether the current cluster has an FREE box, if so, calculating the cluster occupying number of the FREE box according to the FREE box size, calculating and recording the cluster occupying number of the current FTYP data according to the cluster occupying number of the FREE box, the cluster number of the current cluster and the initial cluster number of the currently recorded FTYP data, entering an FTYP object establishing unit, if not, calculating and recording the cluster occupying number of the current FTYP data according to the cluster number of the current cluster and the initial cluster number of the currently recorded FTYP data, and entering the FTYP object establishing unit;
and the FTYP object establishing unit is used for putting the initial cluster number and the occupied cluster number of each piece of FTYP data into an FTYP queue as an FTYP object.
An embodiment of the present invention further provides a system for recovering a video file in a storage medium, including: a memory for storing a computer program; a processor for executing a computer program to implement the steps of the above-described method for restoring a video file in a storage medium.
The embodiment of the invention also provides a readable storage medium, which stores a computer program, and the computer program realizes the steps of the method for recovering the video file in the storage medium when being executed by a processor.
For the description of the features in the embodiment corresponding to fig. 5, reference may be made to the related description of the embodiments corresponding to fig. 1 to fig. 4, which is not repeated here.
The method, the system and the readable storage medium for restoring the video file in the storage medium provided by the embodiment of the invention are described in detail above. The embodiments are described in a progressive manner in the specification, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other. The device disclosed by the embodiment corresponds to the method disclosed by the embodiment, so that the description is simple, and the relevant points can be referred to the method part for description. It should be noted that, for those skilled in the art, it is possible to make various improvements and modifications to the present invention without departing from the principle of the present invention, and those improvements and modifications also fall within the scope of the claims of the present invention.
Those of skill would further appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both, and that the various illustrative components and steps have been described above generally in terms of their functionality in order to clearly illustrate this interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in Random Access Memory (RAM), memory, Read Only Memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.

Claims (8)

1. A method for restoring a video file in a storage medium, comprising:
s11: scanning disk data cluster by cluster to search MDATbox and FTYPbox;
s12: responding to the searched MDATbox, obtaining an MDATbox initial area according to the MDATbox, checking the MDATbox initial area cluster by cluster to obtain an MDATbox actual area, establishing an MDAT object according to the MDATbox actual area, putting the MDAT object into an MDAT queue, and returning to S11;
s13: responding to the found FTYPbox, obtaining an FTYPbox initial area according to the FTYPbox, checking the FTYPbox initial area to obtain an FTYPbox actual area, establishing an FTYP object according to the FTYPbox actual area, putting the FTYP object into an FTYP queue, and returning to the step S11;
s14: responding to the completion of disk data scanning, respectively extracting each FTYP object in the FTYP queue and each MDAT object in the MDAT queue to recombine a video file, and if the recombined video file is valid, successfully recovering the video file;
the method of step S12 includes:
s121: recording the cluster number occupied by the MDATbox as the initial cluster number of the current MDAT data, calculating the number of occupied clusters of the initial area of the MDATbox according to the size of the box in the MDAT box, and entering S122;
s122: checking whether the current cluster has preset type data stored in a sector alignment mode, if not, entering S124, if so, calculating the cluster occupying number of the current MDAT data according to the cluster number of the current cluster and the initial cluster number of the currently recorded MDAT data, and recording, wherein the current cluster is not used as the cluster of the MDATbox initial area, and entering S123;
s123: according to the size of the preset type data, jumping to the next cluster after the preset type data is finished as the cluster of the MDATbox initial area, recording the cluster number of the current cluster as the initial cluster number of the current MDAT data, and returning to S122;
s124: checking whether the current cluster is the last cluster of the MDATbox initial region, if not, jumping to the next cluster of the MDATbox initial region, and returning to S122; if yes, checking whether the current cluster has a FREEBOX, if yes, calculating the number of occupied clusters of the FREEBOX according to the size of the box in the FREEBOX, calculating and recording the number of occupied clusters of the current MDAT data according to the number of occupied clusters of the FREEBOX, the cluster number of the current cluster and the initial cluster number of the MDAT data recorded currently, entering S125, if not, calculating and recording the number of occupied clusters of the current MDAT data according to the number of the current cluster and the initial cluster number of the MDAT data recorded currently, and entering S125;
s125: and putting the initial cluster number and the occupied cluster number of each MDAT data into an MDAT queue as an MDAT object.
2. The method for restoring video files in a storage medium according to claim 1, wherein said step S11 comprises:
s111: reading the disk data of the current cluster;
s112: searching whether the feature code of the MDATbox appears in the initial N bytes of the current cluster, if so, entering S12, and if not, entering S113;
s113: searching whether the feature code of the FTYPbox appears in the initial N bytes of the current cluster, if so, entering S13, and if not, entering S114;
s114: judging whether the current cluster is the last cluster to be scanned, if so, entering S14, otherwise, jumping to the next cluster, and returning to S111; n is a positive integer.
3. The method for restoring video files in a storage medium according to claim 1, wherein said step S13 comprises:
s131: recording the cluster number occupied by the FTYPbox as the initial cluster number of the current FTYP data, calculating the cluster number of the initial area of the FTYPbox according to the size of the box in the FTYPbox, and entering S132;
s132: jumping to the last cluster of the initial area of the FTYPbox, checking whether a current cluster has a FREEbox, if so, calculating the number of occupied clusters of the FREEbox according to the size of the FREEbox, calculating and recording the number of occupied clusters of the current FTYP data according to the number of occupied clusters of the FREEbox, the number of clusters of the current cluster and the initial cluster number of the currently recorded FTYP data, entering S133, if not, calculating and recording the number of occupied clusters of the current FTYP data according to the number of clusters of the current cluster and the initial cluster number of the currently recorded FTYP data, and entering S133;
s133: and putting the initial cluster number and the occupied cluster number of each FTYP data as an FTYP object into an FTYP queue.
4. The method for restoring video files in a storage medium according to claim 1, wherein said step S14 comprises:
s141: extracting an FTYP object in the FTYP queue and an MDAT object in the MDAT queue to recombine the video file;
s142: judging whether the recombined video file is valid, if not, entering S143, and if so, entering S144;
s143: extracting a next MDAT object in the MDAT queue and the current FTYP object to recombine the video file, and entering S142;
s144: deleting the FTYP object corresponding to the successfully recombined video file from the FTYP queue, deleting the MDAT object corresponding to the successfully recombined video file from the MDAT queue, and entering S145:
s145: checking whether the FTYP queue or the MDAT queue is empty, if so, finishing the recombination, and if not, returning to S141.
5. A system for recovering a video file in a storage medium, comprising:
the disk data scanning module is used for scanning disk data cluster by cluster to search MDATbox and FTYPbox;
the MDAT processing module is used for responding to the searched MDATbox, obtaining an MDAT box initial area according to the MDATbox, checking the MDATbox initial area cluster by cluster to obtain an MDATbox actual area, establishing an MDAT object according to the MDAT box actual area, putting the MDAT object into an MDAT queue, and returning to the disk data scanning module;
the FTYP processing module is used for responding to the found FTYPbox, obtaining an initial FTYPbox area according to the FTYPbox, checking the initial FTYPbox area to obtain an actual FTYPbox area, establishing an FTYP object according to the actual FTYPbox area, putting the object into an FTYP queue, and returning to the disk data scanning module;
the video file recombination module is used for respectively extracting each FTYP object in the FTYP queue and each MDAT object in the MDAT queue to recombine a video file in response to the completion of the scanning of the disk data, and if the recombined video file is valid, the video file is successfully recovered;
the MDAT processing module comprises:
the MDAT data starting unit is used for recording the cluster number occupied by the MDATbox as the starting cluster number of the current MDAT data, calculating the number of occupied clusters of the MDATbox initial area according to the size of the MDATbox, and entering the preset type data searching unit;
the device comprises a preset type data searching unit, a FREE data searching unit, a cluster number calculating unit and a MDATbox initial area jumping unit, wherein the preset type data searching unit is used for checking whether the current cluster has preset type data stored in a sector alignment mode, if not, the FREE data searching unit is accessed, if yes, the cluster number of the current MDAT data is calculated and recorded according to the cluster number of the current cluster and the initial cluster number of the MDAT data recorded currently, the current cluster is not used as a cluster of the MDATbox initial area, and the MDATbox initial area jumping unit is accessed;
the MDATbox initial area jumping unit is used for jumping to the next cluster after the preset type data is ended as the cluster of the MDATbox initial area according to the size of the preset type data, recording the cluster number of the current cluster as the initial cluster number of the current MDAT data, and returning to the preset type data searching unit;
the FREE data search unit is used for checking whether the current cluster is the last cluster of the MDATbox initial area, if not, jumping to the next cluster of the MDATbox initial area, and returning to the preset type data search unit; if yes, checking whether the current cluster has a FREEBOX, if yes, calculating the number of occupied clusters of the FREEBOX according to the size of the box in the FREEBOX, calculating and recording the number of occupied clusters of the current MDAT data according to the number of occupied clusters of the FREEBOX, the number of clusters of the current cluster and the initial cluster number of the MDAT data recorded currently, entering an MDAT object establishing unit, if not, calculating and recording the number of occupied clusters of the current MDAT data according to the number of clusters of the current cluster and the initial cluster number of the MDAT data recorded currently, and entering the MDAT object establishing unit;
and the MDAT object establishing unit is used for taking the initial cluster number and the occupied cluster number of each MDAT data as an MDAT object to be placed in an MDAT queue.
6. The system for restoring video files in a storage medium of claim 5, wherein said disk data scanning module comprises:
a disk data reading unit for reading the disk data of the current cluster;
the MDAT data searching unit is used for searching whether the feature code of the MDATbox appears in the initial N bytes of the current cluster, if so, the MDAT data searching unit enters the MDAT processing module, and if not, the FTYP data searching unit enters the FTYP data searching unit;
the FTYP data searching unit is used for searching whether the feature code of the FTYPbox appears in the initial N bytes of the current cluster, if so, the FTYP data searching unit enters the FTYP processing module, and if not, the FTYP data searching unit enters the data scanning monitoring unit;
the data scanning monitoring unit is used for judging whether the current cluster is the last cluster to be scanned, if so, entering a video file recombination module, and if not, jumping to the next cluster and returning to the MDAT data searching unit; n is a positive integer.
7. A system for recovering a video file in a storage medium, comprising:
a memory for storing a computer program;
processor for executing the computer program for carrying out the steps of the method of restoring a video file in a storage medium according to any one of claims 1 to 4.
8. A readable storage medium, characterized in that it stores a computer program which, when executed by a processor, implements the steps of a method of restoring a video file in a storage medium according to any one of claims 1 to 4.
CN202010000181.3A 2020-01-02 2020-01-02 Method and system for recovering video file in storage medium and readable storage medium Active CN110781037B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010000181.3A CN110781037B (en) 2020-01-02 2020-01-02 Method and system for recovering video file in storage medium and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010000181.3A CN110781037B (en) 2020-01-02 2020-01-02 Method and system for recovering video file in storage medium and readable storage medium

Publications (2)

Publication Number Publication Date
CN110781037A CN110781037A (en) 2020-02-11
CN110781037B true CN110781037B (en) 2020-04-17

Family

ID=69394770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010000181.3A Active CN110781037B (en) 2020-01-02 2020-01-02 Method and system for recovering video file in storage medium and readable storage medium

Country Status (1)

Country Link
CN (1) CN110781037B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416873A (en) * 2020-11-18 2021-02-26 万兴科技集团股份有限公司 Method and device for recovering video fragment file, computer equipment and storage medium
CN112732180B (en) * 2020-12-29 2023-04-14 哈尔滨海能达科技有限公司 Information processing method, processing device, electronic equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678026A (en) * 2012-09-18 2014-03-26 杭州海康威视系统技术有限公司 Storing and repairing method and storing and repairing device for repairable video monitoring data
CN109656929A (en) * 2018-12-25 2019-04-19 四川效率源信息安全技术股份有限公司 A kind of method and device for carving multiple relationship type database file

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011142585A (en) * 2010-01-08 2011-07-21 Sony Corp Image processing device, information recording medium, image processing method, and program
CN104063447B (en) * 2014-06-17 2018-04-17 惠州华阳通用电子有限公司 A kind of monitor video Ile repair method
CN105447168B (en) * 2015-12-04 2019-03-22 四川效率源信息安全技术股份有限公司 The method of the fragment file access pattern and recombination of MP4 format
CN109936715B (en) * 2017-12-19 2021-09-03 华为技术有限公司 MP4 file processing method and related equipment thereof
CN108093299B (en) * 2017-12-22 2020-08-04 厦门市美亚柏科信息股份有限公司 Method for repairing damaged MP4 file and storage medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678026A (en) * 2012-09-18 2014-03-26 杭州海康威视系统技术有限公司 Storing and repairing method and storing and repairing device for repairable video monitoring data
CN109656929A (en) * 2018-12-25 2019-04-19 四川效率源信息安全技术股份有限公司 A kind of method and device for carving multiple relationship type database file

Also Published As

Publication number Publication date
CN110781037A (en) 2020-02-11

Similar Documents

Publication Publication Date Title
US20090024644A1 (en) Extended Multimedia File Structure and Multimedia File Producting Method and Multimedia File Executing Method
CN110781037B (en) Method and system for recovering video file in storage medium and readable storage medium
CN111063376B (en) Method, terminal equipment and storage medium for audio and video synchronization in MP4 repairing
US10469915B2 (en) Apparatus and method for delivering and receiving multimedia data in hybrid network
CN1459198A (en) System and method of processing MPEG stream for file index insertion
US20090271398A1 (en) Method and system for recognition of video content
KR100643050B1 (en) Image recording/reproducing device and method, disk, and image reproducing device
CN110740391A (en) method for repairing MP4 damaged files
CN112104909A (en) Interactive video playing method and device, computer equipment and readable storage medium
CN114007112B (en) Method for repairing mdat box data errors in MP4 video file
CN101188764A (en) Image playback apparatus providing smart search for motion and method of using the same
US20080013829A1 (en) System and method for the identification of motional media in players and recorders without Internet access
EP1613096A1 (en) Video coding with determination of coding order according to a minimum spanning tree
US20120027380A1 (en) Automatically bookmarking digital content
Altinisik et al. Video source characterization using encoding and encapsulation characteristics
US20210099772A1 (en) System and method for verification of video integrity based on blockchain
CN110839135B (en) Recovery method and system for DV or HDV video file
CN1791174A (en) Method for managing image files in mobile communication terminal
CN113569719B (en) Video infringement judging method and device, storage medium and electronic equipment
CN112929686B (en) Method and device for playing back recorded video in real time on line
CN113852857A (en) Sound playing method and system based on HTML5 video frame stepping
CN114328392A (en) Advertising media material management system, method, equipment and medium
Alghafli et al. Techniques for measuring the probability of adjacency between carved video fragments: The VidCarve approach
CN114257840B (en) Repairing method and system for Matroska format video
CN112416873A (en) Method and device for recovering video fragment file, computer equipment and storage medium

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