In-Place FMP4 to MP4 Conversion via Moov Atom Redesign
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing MP4 file creation process is prone to data loss due to application crashes or system failures before the moov atom is written, especially for longer recordings requiring complex moov atoms. Additionally, the conversion of fragmented MP4 (FMP4) files to traditional MP4 files is resource-intensive and involves creating multiple copies of audio/video data, which can lead to memory and processing issues.
Innovation Solution
The proposed solution involves performing an in-place conversion of FMP4 files to MP4 format without creating separate files. This is achieved by assigning an initial moov atom and fragment headers to the FMP4 file, allowing for partial data safety in case of failures. Upon completion of recording, a final moov atom is generated, and the initial moov atom and fragment headers are changed to 'mdat' designation, effectively converting the FMP4 file to an MP4 file without duplicating the audio/video data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If FMP4 to MP4 conversion is performed by copying audio/video data to a new file, then the conversion produces a usable MP4 file, but the process requires significant memory and processing resources
Solution Approach 1:
The patent applies copying by creating a copy of the FMP4 file to serve as the output MP4 file. The conversion process modifies this copied file by replacing moov and moof atoms with a single new moov atom, while the original FMP4 file remains unchanged as the source
Solution Approach 2:
The patent segments the conversion process into distinct atomic operations: reading the FMP4 file, extracting the stco and stsz tables from the moov atom, creating a new moov atom with consolidated metadata, replacing all moov and moof atoms with this single new atom, and writing the modified data to the output file
2Reliability
If FMP4 to MP4 conversion is performed by copying audio/video data to a new file, then the conversion produces a usable MP4 file, but the process creates multiple copies of the same data
Solution Approach 1:
The patent creates a copy of the FMP4 file as the output MP4 file, ensuring the original data is preserved while allowing modifications to the copy. This approach guarantees conversion completeness while managing data duplication through controlled file operations
3Stability of the object's composition
If the moov atom is written after recording completion, then the MP4 file structure is finalized, but the recording may be lost if the application crashes before finalization
Solution Approach 1:
The patent performs preliminary actions by creating the output file and writing the new moov atom before completing the full conversion process. This ensures that even if the application crashes during conversion, the output file already contains a valid MP4 structure with the new moov atom, preventing total data loss
Solution Approach 2:
The patent provides beforehand cushioning by maintaining the original FMP4 file unchanged while creating a new output file. This dual-file approach ensures that if the conversion fails or the application crashes, the original recording remains intact and can be converted later or used as-is
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In-place conversion of a fragmented MP4 (FMP4) file into an MP4 format without having to create separate files is discussed herein. Audio and visual data is captured by a multimedia application and stored an FMP4 file with an initial moov atom and one or more fragment headers assigned to portions of the audio/video data. Once a capturing session is completed (e.g., user stops recording audio and video), the FMP4 file is converted to an MP4 file by attaching a final moov atom to the FMP4 file and changing the header designation of the initial moov(i) atom from "moov" to an "mdat" designation. This change in designation makes the initial moov(i) atom of the FMP4 file opaque a media player and converts the FMP4 file to MP4 format.