WO2023090623A1 - 미디어 파일을 편집하기 위한 방법 및 장치 - Google Patents
미디어 파일을 편집하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- WO2023090623A1 WO2023090623A1 PCT/KR2022/014421 KR2022014421W WO2023090623A1 WO 2023090623 A1 WO2023090623 A1 WO 2023090623A1 KR 2022014421 W KR2022014421 W KR 2022014421W WO 2023090623 A1 WO2023090623 A1 WO 2023090623A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- header
- media file
- media
- information
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000004048 modification Effects 0.000 claims abstract description 58
- 238000012986 modification Methods 0.000 claims abstract description 58
- 230000008569 process Effects 0.000 claims abstract description 39
- 238000012937 correction Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 description 48
- 230000008859 change Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
Definitions
- Various embodiments of the present invention relate to methods and apparatus for editing media files.
- Electronic devices may be used to edit files.
- electronic devices may be used to edit media files.
- Media files may include photo files, music files, document files, audio files, and/or video files.
- interest in a technology for editing media files is increasing.
- a header may be positioned at the front of a media file and media data may be positioned at the back of the header.
- media data may be positioned at the back of the header.
- the size of the header is changed, there may be a need to change the location of the entire media data by the changed size.
- a lot of time may be required and the amount of calculation may increase in the process of editing the media file.
- the movement of media data may be prevented or the possibility of movement of media data may be reduced by creating and modifying a new header.
- a file restoration function may be provided to a user.
- the editing history of the media file may not be shared according to a user's selection.
- An electronic device may include one or more processors and a memory storing instructions executable by the one or more processors.
- a memory stores a media file and instructions for editing the media file, and a processor executing the instructions includes a first header including meta data from a media file to be edited and media data including at least one media sample.
- An operation of determining the position of , an operation of determining the position of a second header based on the position of the first header when the position of the first header is behind the position of the media data, and a process of extracting media file information may include an operation of extracting meta data of the second header.
- a method for editing a media file includes identifying media data including a first header including meta data and at least one media sample from a media file to be edited, and a first header including metadata based on the first header. Generating 2 headers, modifying the second header based on the modification information, determining the position of the second header after the media data when the position of the first header is ahead of the position of the media data; If the location of the first header is behind the location of the media data, determining the location of the second header based on the location of the first header, and extracting metadata of the second header in the process of extracting media file information can include
- the media file editing method can reduce the amount of computation required for file editing and implementation complexity by preventing or reducing the possibility of moving media data.
- a media file editing method prevents or reduces the possibility of moving media data, so that an operation required for moving media data may not be performed and modification of a header including location information of media data may be reduced. can make it
- Fig. 1 is a flowchart illustrating a method for editing a media file according to exemplary embodiments.
- Fig. 2 is a block diagram of a media file editing module according to exemplary embodiments.
- FIG. 3 is a diagram for explaining a media file information display screen according to an exemplary embodiment.
- FIG. 4 is a diagram for explaining a process of editing meta data of a media file according to an exemplary embodiment.
- FIG. 5 is a diagram for explaining a video reproduction section editing screen according to an exemplary embodiment.
- FIG. 6 is a diagram for explaining a video file editing process according to an exemplary embodiment.
- Fig. 7 is a flow chart illustrating a method for sharing media files according to an exemplary embodiment.
- Fig. 8 is a flow chart illustrating a method for restoring a media file according to an exemplary embodiment.
- FIG. 9 is a block diagram of an electronic device in a network environment according to various embodiments.
- first or second may be used to describe various components, but these terms should only be understood for the purpose of distinguishing one component from another.
- a first element may be termed a second element, and similarly, a second element may also be termed a first element.
- Fig. 1 is a flowchart 100 illustrating a method for editing a media file according to exemplary embodiments.
- the method of editing a media file shown in FIG. 1 is only an example, and the order of some steps shown in FIG. 1 may be changed for media file editing.
- a processor may receive ( 110 ) modification information of a media file to be edited.
- the processor 920 may receive modification information of a media file to be edited, which is generated based on a user input signal.
- a media file according to an exemplary embodiment refers to a file including data (eg, metadata, media data) that can be read, written, and/or edited by the electronic device 901 .
- the file may include, for example, an image file, an audio file, a video file, and/or a document file.
- a media file according to an exemplary embodiment may include at least one or more boxes.
- a box according to an exemplary embodiment may be a data block, data frame, or object including “media” data and/or “media” data related meta data. Boxes can form a hierarchical structure, and by classifying data according to this hierarchical structure, 'media' files can have a form suitable for storage and transmission of large-capacity 'media' data.
- a “media” file according to an exemplary embodiment may have a structure in which the processor 920 can easily access the media file.
- the “media” file may include an ftyp box, a moov box, and an mdat box.
- the ftyp box (file “type box”) may provide "file” type or compatibility-related information for a corresponding "media” file.
- a moov box (movie box) according to an exemplary embodiment may be a box including metadata about "media” data of a corresponding "media” file.
- a moov box can serve as a container for metadata.
- An mdat box (media data box) may be a box containing at least one actual media data of a corresponding "media” file.
- the at least one media/data may include at least one media sample (eg, an audio sample and/or a video sample), and the mdat box may serve as a container containing these "media” samples.
- a media file to be edited may mean a media file to be edited.
- the processor 920 may receive a selection input signal for a specific media file from the user.
- the processor 920 may determine a media file to be edited based on the selection input signal.
- Modification information of a media file to be edited may include information necessary to modify the media file to be edited.
- Modification information of a media file to be edited may include at least one of metadata modification information and media data modification information.
- Meta data modification information may include information necessary for modifying meta data.
- the modification information of the meta data is information for modifying at least a part of the media file creation time, recording location, recording device information, media file characteristic information, track information, and/or playback section information included in the metadata.
- the processor 920 may receive a metadata modification signal from a user.
- the processor 920 may modify metadata included in the header based on metadata modification information.
- the processor 920 may modify meta data included in the header based on meta data modification information, and may maintain media data as it is.
- Modification information of a media file to be edited according to another exemplary embodiment may include modification information of media data.
- the processor 920 may modify the media data based on the modification information of the media data. For example, the processor 920 may modify at least one media sample included in the media data based on modification information of the media data.
- the processor 920 may identify (120) media data including a first header including meta data and at least one media sample from a media file to be edited.
- a header according to an exemplary embodiment may mean a region including meta data in a media file.
- a header according to an exemplary embodiment may include a moov box when the media file is an ISOBMFF file.
- the first header according to an exemplary embodiment may include a header in a state before the processor 920 modifies the media file based on the modification information.
- Media data according to an exemplary embodiment may include data including at least one media sample.
- Media samples may include, for example, audio samples and/or video samples.
- Media data according to an exemplary embodiment may include an mdat box when the media file is an ISOBMFF file.
- the processor 920 may analyze the structure of a media file corresponding to the media file to be edited.
- the processor 920 may identify the location of a header and/or media data included in the media file by analyzing the structure of the media file. Also, the processor 920 may identify the location of data to be modified within the media file by analyzing the structure of the media file.
- the processor 920 may generate 130 a second header based on the first header.
- the second header may include a header newly added to the media file.
- the first header may be a header existing before editing the media file, and the second header may mean a header newly created in the process of editing the media file.
- the processor 920 according to an exemplary embodiment may generate a second header by copying at least a portion of the first header.
- the processor 920 according to an exemplary embodiment may modify only the second header based on the modification information and may maintain the first header without modifying it.
- the processor 920 may modify 140 the second header based on the modification information.
- the processor 920 may determine a location to store the corrected second header based on the correction information.
- the processor 920 according to an exemplary embodiment may determine a location to which a second header is to be added based on the location of the first header and the location of the media data in order to prevent movement of the media data within the storage space. A detailed embodiment of the process of adding the second header will be described later with reference to FIG. 4 .
- the processor 920 may determine the relative position of the first header based on the position of the media data. For example, the processor 920 may determine whether the first header comes before or after the media data. The processor 920 according to an exemplary embodiment may determine (145) whether the position of the first header precedes the position of the media data.
- the processor 920 may determine the position of the second header after the position of the media data (150).
- the processor may extract meta data of the second header in a media file information extraction process.
- a header may be located in front and media data may be located behind the header.
- the processor 920 may generate a new header and modify the new header based on the modification information.
- a newly created header may be a second header
- an existing header may be a first header.
- Processor 920 can add a second header after the media data file.
- the order of regions included in the media file may be "first header -> media data -> second header". Through this, the processor 920 can modify the header without moving within the media data storage space.
- the processor 920 may determine (160) the position of the second header based on the position of the first header when the position of the first header is later than the position of the media data.
- the processor 920 may position the second header in front of the first header or position the second header behind the first header based on the position of the first header.
- the processor 920 may determine the location of the second header after the first header.
- a header may be located in front and media data may be located behind the header.
- media data may be located in front and a header may be located after media data.
- the order of areas included in a media file may be media data -> header.
- the order of areas included in a media file may be header -> media data -> header. In this case, the order of regions included in the original media file is header -> media data, but a new header may be added by modifying the header.
- the existing header can be declared as free space to be excluded from file parsing. Therefore, the area included in the media file may be header (free space) -> media data -> header.
- the processor 920 may add a second header, which is a new header, to the back of the first header, when a first header, which is an existing header, exists behind the media data. Through this, movement of media data can be prevented.
- the structure of the media file to which the second header is added may be “media data -> first header (free space) -> second header”.
- the structure of the media file to which the second header is added may be "first header (free space) -> media data -> first header (free space) -> second header".
- the processor 920 may determine the position of the second header in front of the first header.
- the processor 920 may position the second header behind the position of the media data, and position the position of the first header behind the second header.
- the structure of the media file to which the second header is added may be “media data -> second header -> first header (free space)”.
- the processor 920 may place another box between the second header and the first header.
- the processor 920 can place a second header after the media file, another box after the second header, and a first header after the other box.
- the structure of the media file may be "media data -> second header -> other box -> first header (free space)".
- another box located between the first header and the second header may be one or may be plural.
- the processor 920 may place a first header behind the media file, another box behind the first header, and a second header behind the other box.
- the structure of the media file may be "media data -> first header (free space) -> other box -> second header".
- the processor 920 may replace the first header with the second header when the position of the first header is later than the position of the media data. For example, there may be a case where you do not want to leave editing history information in a media file. In this case, the processor 920 may receive the user's selection input signal and replace the first header with the second header. In this case, since meta data included in the first header is deleted, editing history information may not be generated.
- the processor 920 may modify the first header based on the correction information without generating the second header when the position of the first header is later than the position of the media data.
- the processor 920 may extract meta data of the second header in a process of extracting media file information.
- the processor 920 according to an exemplary embodiment may extract only meta data of the second header and not extract meta data of the first header in a process of extracting media file information.
- a process of extracting media file information according to an exemplary embodiment may include a process of extracting meta data included in a media file.
- a process of extracting media file information according to an exemplary embodiment may include a process of parsing a file.
- the processor 920 may change the first header to a free space in order to exclude the first header from the file parsing process ( 170 ).
- a process of parsing a file may include a process of interpreting data included in a media file.
- the processor 920 may extract metadata and/or media data from a media file through a file parsing process.
- the processor 920 may extract audio samples and/or video samples (or video frames) included in media data through a file parsing process.
- the processor 920 may change the first header to a free space.
- the media file is ISOBMFF
- the first header may be a moov box.
- the processor 920 may change the moov box to a free space. If the moov box is changed to a free space, other boxes can be parsed except for the corresponding box in the file parsing process.
- the processor 920 may prevent a situation in which duplicate metadata is generated by simultaneously parsing the first header and the second header by changing the existing first header to the free space. When the first header and the second header are simultaneously parsed to generate overlapping meta data, confusion may occur in data processing of the processor 920 .
- An electronic device may include one or more processors and a memory storing instructions executable by the one or more processors.
- a memory stores a media file and instructions for editing the media file, and a processor executing the instructions includes a first header including meta data from a media file to be edited and media data including at least one media sample.
- An operation of determining the position of , an operation of determining the position of a second header based on the position of the first header when the position of the first header is behind the position of the media data, and a process of extracting media file information may include an operation of extracting meta data of the second header.
- Modification information of a media file to be edited may include at least one of metadata modification information and media data modification information.
- Meta data may include at least one of media file creation time, editing time, recording location, recording device information, media file characteristic information, track information, and reproduction section information.
- An operation of generating the second header based on the first header may include generating the second header by copying the first header.
- the operation of modifying the second header may include the creation time of the media file included in the second header, the editing time, the recording location, the recording device information, and the information of the media file based on the modification information of the media file to be edited.
- An operation of modifying at least one of characteristic information and track information may be included.
- the operation of modifying the second header may include an operation of modifying reproduction section information included in the second header based on modification information of a media file to be edited.
- An operation of extracting metadata of the second header may include an operation of changing the first header to exclude the first header in a file parsing process.
- the method further includes determining a media file to be transmitted according to an exemplary embodiment, wherein the determining of the media file to be transmitted includes: analyzing the media file to determine whether a second header exists in the media file; and if the second header exists, determining whether to include the first header in the media file to be transmitted based on a signal indicating whether to remove the first header.
- An operation of determining a media file to be transmitted may include an operation of changing data included in the first header to a predetermined value when the first header is removed.
- An operation of determining a media file to be transmitted may include, when the first header is not removed, a media file including a first header, a second header, and media data to share editing history information as a transmission target. It may include an operation of determining a media file.
- Determining a media file to be transmitted includes removing at least some of the media samples corresponding to the removed playback section from the media data based on the modification information, and removing at least some of the media samples from the media data.
- An operation of determining a media file including media data as a media file to be transmitted may be included.
- the method further includes restoring a media file according to an exemplary embodiment, wherein the restoring of the media file includes receiving restoration information of the media file and based on location information of the first header included in a second header.
- the method may include identifying a location of the first header, converting the first header into a file parsable format, and removing the second header based on whether or not to maintain editing history information of the media file.
- a method for editing a media file includes identifying media data including a first header including meta data and at least one media sample from a media file to be edited, and a first header including metadata based on the first header. Generating 2 headers, modifying the second header based on the modification information, determining the position of the second header after the media data when the position of the first header is ahead of the position of the media data; If the location of the first header is behind the location of the media data, determining the location of the second header based on the location of the first header, and extracting metadata of the second header in the process of extracting media file information can include
- Modification information of a media file to be edited may include at least one of metadata modification information and media data modification information.
- Meta data may include at least one of media file creation time, editing time, recording location, recording device information, media file characteristic information, track information, and reproduction section information.
- Generating the second header based on the first header may include generating the second header by copying the first header.
- Modifying the second header may include, based on the modification information of the media file to be edited, the creation time of the media file included in the second header, the editing time, the recording location, the recording device information, and the location of the media file. It may include modifying at least one of characteristic information and track information.
- Modifying the second header may include modifying playback section information included in the second header based on modification information of the media file to be edited.
- Extracting the meta data of the second header may include changing the first header to exclude the first header in a file parsing process.
- the method of editing a media file may further include determining a media file to be transmitted. Determining a media file to be transmitted according to an exemplary embodiment includes the steps of analyzing the media file to determine whether a second header exists in the media file, and if the second header exists, a signal indicating whether to remove the first header. Based on, determining whether to include the first header in the media file to be transmitted may include determining whether to include the first header.
- Determining a media file to be transmitted may include changing data included in the first header to a predetermined value when the first header is removed.
- Determining a media file to be transmitted may include, when the first header is not removed, a media file including a first header, a second header, and media data to share editing history information. It may include determining as a media file.
- Determining a media file to be transmitted includes removing at least some of the media samples corresponding to the removed playback section from media data based on the modification information, and removing at least some of the media samples from the media data.
- the method may include determining a media file including media data as the transfer target media file.
- the method for editing a media file further includes restoring the media file, wherein the restoring the media file includes receiving restoration information of the media file, a first header included in the second header, and the second header. Identifying the location of the first header based on the location information of the file, converting the first header into a file parsable format, and removing the second header based on whether or not to maintain editing history information of the media file. can include
- Fig. 2 is a block diagram of a media file editing module according to exemplary embodiments.
- FIG. 2 shows a media file editing module 200, an input unit 210, an information display unit 230, a media file analysis unit 250, a header modification unit 270, and a file sharing unit 290.
- the media file editing module 200 may include an input unit 210, an information display unit 230, a media file analysis unit 250, a header modification unit 270, and a file sharing unit 290.
- the media file editing module 200 may be implemented in the form of software, stored in a memory (eg, the memory 930 of FIG. 9 ), and executed by a processor (eg, the processor 920 of FIG. 9 ).
- a processor eg, the processor 920 of FIG. 9
- an operation of the media file editing module 200 and/or components included in the media file editing module 200 may be understood as an operation of the processor 920 .
- the processor 920 may perform operations according to various embodiments using components included in the media file editing module 200 .
- Some components of the media file editing module may be omitted or other components may be added in various embodiments of the present disclosure, and various embodiments of the present disclosure are not limited thereto.
- Meta data may include at least one of media file creation time, editing time, recording location, recording device information, media file characteristic information, track information, and reproduction section information.
- Meta data may include first meta data related to a media data acquisition path and/or second meta data related to media data reproduction.
- the first metadata may include at least one of creation time, editing time, recording location, recording device information, characteristic information of the media file, and/or track information of the media file.
- the second metadata may include reproduction period information (eg, reproduction frame, reproduction time).
- the input unit 210 may receive input of a media file to be edited selected by a user, first metadata information to be corrected, and/or second metadata information to be corrected.
- the processor 920 may receive a media file to be edited selected by the user, first metadata information to be corrected, and/or second metadata information to be corrected through the input unit 210 .
- the information display unit 230 may display first meta data and/or second meta data.
- the processor 920 may display the first meta data and/or the second meta data through the display using the information display unit 230 .
- the media file analyzer 250 recognizes the media file format and analyzes the file structure according to the specifications of each file format to determine the location of components such as header and media data area. .
- the media file analyzer 250 may identify a location (eg, offset) of data that needs to be changed according to the input correction information.
- the processor 920 may use the media file analyzer 250 to determine the location of the header and media data, and may also identify the location of data requiring change.
- the header modifier 270 may copy an existing header (eg, a first header) and add a new header (eg, a second header). Also, the processor 920 may modify and store meta data included in a header corresponding to data to be modified using the header modifying unit 270 . The processor 920 according to an exemplary embodiment uses the header modifying unit 270 to provide a position (eg, offset) value of an existing header (first header) to restore data included in the existing header. 2 can be stored in the header.
- a position eg, offset
- the processor 920 may use the header modifying unit 270 to change the existing header (first header) into a form that is ignored in the file parsing process. For example, the processor 920 may change the first header to a free space so that the first header is ignored in the file parsing process. In a process of restoring a media file according to an exemplary embodiment, the processor 920 may use the header modifying unit 270 to change the existing header (first header) back into a form effective for the file parsing process. For example, the processor 920 may change the first header in the free space state to a moov box, thereby changing the first header into a form effective for a file parsing process.
- the processor 920 may also perform an operation of changing existing header data into meaningless values in a media file sharing process using the header modifying unit 270 .
- Various embodiments of a media file sharing method will be described later in detail with reference to FIG. 7 .
- the file sharing unit 290 converts data of an existing header (first header) to a meaningless value through the header modifying unit 270.
- the media file may be transmitted through the communication module 990 including a communication circuit (eg, the communication module 990 of FIG. 9 ).
- the processor 920 uses the file sharing unit 290 to transfer the file to a server and/or server while maintaining the data of the existing header (first header) when the user wants to preserve the data of the existing header (first header). It can be transmitted to other electronic devices.
- FIG. 3 is a diagram for explaining a media file information display screen according to an exemplary embodiment.
- FIG. 3 shows a media file information display screen 300, a video 310, a creation time 320, a recording location 340, storage location information 330, and recording device information 350.
- Information related to the video 310 as a media file is displayed.
- Information related to the video 310 may include first metadata.
- the first metadata may include media file creation time 320, editing time, recording location 340, recording device information 350, media file characteristic information, and/or track information.
- the creation time 320 may mean a time when a media file is created.
- the creation time 320 may mean the time when the video 310 was captured.
- the time at which the video 310 was captured may be “2021.10.05, 7:19pm”.
- An editing time may mean a time related to editing of a media file.
- the editing time may include a time when editing started, a time spent editing, and/or a time editing was completed. For example, if the video 310 was created at “2021.10.05, 7:19pm” and the user finished editing the video 310 at “2021.10.17, 2:23pm”, editing The time may be "2021.10.17, 2:23pm".
- the shooting location 340 may mean a location where a media file is created.
- the shooting location 340 may mean a location where the video 310 was captured.
- the location where the video 310 was captured may be “416 Maetan-dong, Yeongtong-gu, Suwon-si, Gyeonggi-do, Korea”.
- Characteristic information of a media file may include information related to characteristics of a media file.
- characteristic information of a media file may include rotation information and/or color information.
- Track information according to an exemplary embodiment may include information related to a track included in a media file.
- a track according to an exemplary embodiment may be a logical structure composed of media samples and descriptions corresponding to the media samples.
- Track information according to an exemplary embodiment may include track identification information, track creation time, track modification time, and/or codec information necessary for decoding.
- the storage location information 330 may include location information where the video 310 is stored in the memory 930 included in the electronic device 901 (eg, the memory 930 of FIG. 9 ). .
- the location information (or file path) of the video 310 stored in the memory 930 may be "/internal storage/DCIM/Camera".
- the storage location information 330 may include location information where the video 310 is stored in the server.
- the photographing device information 350 may include information related to the electronic device 901 that acquired the media file.
- the photographing device information according to an exemplary embodiment includes a model name, situational information at the time of photographing (eg, brightness, time), physical specification information (eg, lens information) of the photographing device, and/or photographing device setting information (eg, For example, aperture, focus, whether to use flash, zoom).
- photographing device information 350 that is an electronic device that captures a video 310 may include a model name of the electronic device such as “Samsung mobile 1234”.
- Media file size information may include information related to the size of a media file.
- size information of the video 310 may be “3.49 MB”.
- An example of the media file information display screen 300 is not limited to the example shown in FIG. 3 .
- the layout of the media file information display screen 300 and/or the types of components included may be different.
- FIG. 4 is a diagram for explaining a process of editing meta data of a media file according to an exemplary embodiment.
- the first header 430, the second header 440, the added information 441 and 442, and the first header location information 443 of are shown.
- FIG. 4 may be a diagram for explaining a process of modifying first metadata related to a video 310 that is one of the media files shown in FIG. 3 .
- the first metadata related to the video 310 shown in FIG. 3 may be included in the first header 410 of the original media file shown in FIG. 4 .
- media data related to the video 310 may be included in the media data 420 shown in FIG. 4 .
- the processor 920 determines the creation time of the media file included in the second header 440, the editing time, At least one of a recording location, recording device information, media file characteristic information, and track information may be modified. For example, if the creation time of the video 310 is incorrect, the user may arbitrarily correct the creation time, and the processor 920 may modify the video 310 included in the first metadata based on correction information based on the user's input. ) can be modified. For another example, if information on a recording device used to capture the video 310 is actually device A but is stored as device B, the user may modify it to device A. The processor 920 may modify the photographing device information included in the first meta data from the device B to the device A based on the correction information based on the user's input.
- the processor 920 may modify the photographing device information included in the first meta data from the device B to the device A based on the correction information based on the user's input.
- An original media file 400 according to an exemplary embodiment may be included in a media file to be edited.
- the original media file 400 may include a video file in a state before modification.
- the modified media file 401 according to an exemplary embodiment may include a media file obtained by modifying the original media file 400 based on the modification information.
- the first header 410 of the original media file according to an exemplary embodiment may include an existing header included in the original media file.
- Offset information 411 corresponding to a media sample according to an exemplary embodiment may be included in the first header 410 of the original media file.
- the offset information 411 corresponding to the media sample according to an exemplary embodiment may include information related to a location where each of the at least one media sample included in the media data is stored in the storage space.
- the storage space may include a memory (eg, memory 930 of FIG. 9 ).
- offset information 411 corresponding to a media sample may be a sample to chunk offset box (stco) included in a moov box.
- the meaning of “chunk_offset #1: offset1” included in stco may include “data chunk 1 may be stored from a point away from the start address by offset 1 in media data.”
- the processor 920 can identify a data chunk (or media sample) in the media data 420 using the information included in stco.
- An offset according to an exemplary embodiment may mean a number representing a displacement difference from a start address of an object in an object of an array or data structure to a given specific point.
- Media data 420 according to an exemplary embodiment may be an mdat box when the media file is in the ISOBMFF format.
- Media data 420 according to an exemplary embodiment may include at least one data chunk (or media sample).
- data chunk 1 may be stored at a location away from the start address by offset 1.
- data chunk 2 may be stored at a location separated by offset 2 from the start address.
- the first header 430 of the modified media file may be a header obtained by changing the first header 410 of the original media file into a free space.
- the processor 920 may change the first header 410 of the original media file to a free space to prevent file parsing. Through this, the first header 430 of the modified media file may not be parsed in the file parsing process. As shown in FIG. 4, the first header may be changed to a free space.
- Changing the header to the free space by the processor 920 according to an exemplary embodiment may include changing the corresponding data (or box) so that it is not recognized as a header. For example, changing to a free space may be changing not to be recognized as a header using an udta box, a nonexistent box, a free box, and/or a skip box.
- the second header 440 may include a header newly added to a media file.
- the second header 440 according to an exemplary embodiment may be a moov box when the media file has an ISOBMFF format.
- the processor 920 may generate the second header 440 by copying the first header 410 of the original media file.
- the processor 920 may modify only the second header 440 based on the modification information and may maintain the first header without modifying it.
- the processor 920 may add additional information to the second header 440 based on the correction information.
- the processor 920 may add added information 1 441 and added information 2 442 to the second header 440 based on the correction information. Through this, the processor 920 may add the added information 1 441 and the added information 2 442 to the second header 440 without moving the media data 420 .
- the second header 440 may include offset information (eg, stco) corresponding to the media sample. Offset information corresponding to the media sample included in the second header 440 may be the same as offset information 411 corresponding to the media sample included in the first header 410 of the original media file. Offset information corresponding to the media sample included in the second header 440 according to another exemplary embodiment is offset information corresponding to the media sample included in the first header 410 of the original media file based on the modification information ( 411) may be included.
- offset information eg, stco
- the first header location information 443 may include information related to the location of the first header 430 of the modified media file.
- the processor 920 may need to access the first header 430 of the modified media file.
- the processor 920 may need to access the first header 430 of the modified media file. Accordingly, the processor 920 may access the first header using the first header location information 443 included in the second header 440 .
- FIG. 5 is a diagram for explaining a video reproduction section editing screen according to an exemplary embodiment.
- FIG. 5 a video reproduction section editing screen 500 , a video 510 , a reproduction section 520 , and an edited reproduction section 530 are shown.
- the video reproduction section editing screen 500 may include a screen for editing a video in a video editing application.
- the video 510 may be one of media files to be edited.
- a user may select a video 510 to be edited, and in this case, the corresponding video 510 may be included in a media file to be edited.
- the playback period 520 may include a playback period in which frames included in the video 510 are displayed according to a predetermined criterion.
- the playback period 520 may include a playback period in which a plurality of frames included in the video 510 are displayed. In this case, only key frames among a plurality of frames included in the video 510 may be displayed on the screen.
- a key frame according to an exemplary embodiment may include a frame that is the most central because it has full information among the start frame and the last frame.
- a key frame according to another exemplary embodiment may include a most central frame having all information among at least some frames among a plurality of frames.
- the edited playback period 530 may include at least a portion of the playback period 520 .
- the processor 920 may generate an edited reproduction section 530 by selecting at least a part of the reproduction section 520 by receiving a user's input signal.
- the playback period 520 of the video 510 may be 0 minutes to 10 minutes.
- the user's input signal may include an editing signal for generating a video between 2 and 7 minutes.
- the processor 920 may generate a video including the edited playback section 530 between 2 and 7 minutes.
- the processor 920 (eg, the processor 920 of FIG. 9 ) according to an exemplary embodiment modifies only the header of a media file while generating a video including an edited playback section 530 between 2 and 7 minutes. and media data may not be modified.
- Various embodiments of a method for changing a media file according to video editing will be described later in detail with reference to FIG. 6 .
- An example of the video reproduction section editing screen 500 is not limited to the example shown in FIG. 5 .
- the layout of the video playback section editing screen 500 and/or the types of included components may be different.
- FIG. 6 is a diagram for explaining a video file editing process according to an exemplary embodiment.
- an original video file 600 a modified video file 601, a first header 610 of an original video file, key frame information 611, offset information 612 corresponding to a media sample, media data ( 620), a first header 630 of a modified video file, a second header 640, modified key frame information 641, offset information 642 corresponding to a modified media sample, and first header location information ( 643) is shown.
- a video file according to an exemplary embodiment may be one of media files.
- FIG. 6 may be a diagram for explaining a process of modifying second meta data related to the video 510 shown in FIG. 5 .
- the second metadata associated with the video 510 may include reproduction section information corresponding to the reproduction section 520 .
- media data related to the video 510 may be included in media data 620 shown in FIG. 6 .
- the processor 920 may modify reproduction period information included in the second header based on modification information of a media file to be edited.
- the playback period of the video 510 is 0 minutes to 10 minutes
- the correction information may include information to modify the video to include only a playback period between 2 minutes and 7 minutes.
- the second header may include metadata related to a video including a playback period between 0 and 10 minutes.
- the processor 920 may modify the second metadata included in the second header to a reproduction period between 2 minutes and 7 minutes based on the modification information. In this case, when the processor 920 parses the second header and reproduces the media file, a video between 2 and 7 minutes may be reproduced.
- An original video file 600 may be included in a media file to be edited.
- the original video file 600 may include a video file in a state before modification.
- the modified video file 601 may include a media file obtained by modifying the original video file 600 based on correction information. Note that "based on” as used herein includes at least based on.
- the first header 610 of the original video file may include an existing header included in the original video file 600 .
- the key frame information 611 may include information on key frames referenced by at least one media sample included in the media data 620 .
- Key frame information 611 according to an exemplary embodiment may be stss (sync sample) when a media file has an ISOBMFF format.
- the key frame information 611 may include key frame numbers referred to by media samples in the form of a table.
- the offset information 612 corresponding to the media sample may include information related to a location where each of the at least one media sample included in the media data is stored.
- the media data 620 may include at least one media sample necessary for reproducing the video 510 .
- the first header 630 of the modified video file may be a header obtained by changing the first header 610 of the original video file to a free space.
- the second header 640 may include a header newly added to a video file.
- the modified key frame information 641 may include key frame information modified based on the modified information.
- the original video may include key frame 1 to key frame 10.
- the processor 920 may retain only key frames 1 to 3 and delete key frames 4 to 10.
- the modified key frame information 641 includes information of key frame 1 (eg, #sync sample 1 in FIG. 6), information of key frame 2 (eg, #sync sample 2 in FIG. 6), and key frame 3 (eg, #sync sample 3 in FIG. 6) may be included.
- Offset information 642 corresponding to a modified media sample may include offset information corresponding to a key media sample modified based on the modified information.
- the offset information 642 corresponding to the modified media sample includes offset 1 of data chunk 1 (chunk_offset #1), offset 2 of data chunk 2 (chunk_offset #2), and data chunk 2 as shown in FIG. May include offset 3 of 3 (chunk_offset #3).
- the first header location information 643 may include information related to the location of the first header 630 of the modified video file.
- the video 510 may be a video including a playback section of 0 sec to 100 sec.
- the key frame information 611 may include information on a key frame corresponding to each media sample per second.
- the correction information may include information for modifying a video having a playback period of 0 seconds to 100 seconds to a video having a playback period of 0 seconds to 3 seconds.
- the processor 920 may modify key frame information 611 included in the first header 610 of the original video file and offset information 612 corresponding to the media sample based on the modification information.
- the processor 920 may generate a second header by copying the first header 610 of the original video file.
- the copied second header may include key frame information 611 included in the first header 610 of the original video file and offset information 612 corresponding to the media sample.
- the processor 920 maintains only key frame 1, key frame 2, and key frame 3 among a plurality of key frames and deletes the remaining key frames to modify key frame information ( 641) can be created.
- the processor 920 maintains only data chunk 1 (or media sample 1), data chunk 2 (or media sample 2), and data chunk 3 (or media sample 3) among a plurality of pieces of offset information and deletes the remaining data chunks.
- Offset information 642 corresponding to the modified media sample may be generated.
- key frame 1 and data chunk 1, key frame 2 and data chunk 2, and key frame 3 and data chunk 3 may correspond to each other.
- the second header 640 may include modified key frame information 641 and offset information 642 corresponding to the modified media sample.
- the processor 920 may reproduce a video between 0 and 3 seconds by parsing the second header 640 .
- Fig. 7 is a flowchart 700 illustrating a method for sharing media files according to an exemplary embodiment.
- a processor may determine a media file to be transmitted.
- a media file to be transmitted may refer to a media file shared with other electronic devices and/or servers.
- the processor 920 may receive a selection input for some media files among a plurality of media files from the user (710).
- the processor 920 may determine a transmission target media file by performing data processing on the corresponding media file.
- Processor 920 may analyze 720 the selected media file.
- the processor 920 may analyze the structure of the corresponding media file by analyzing the selected media file.
- the processor 920 may identify the location of the header and/or media data included in the media file by analyzing the structure of the selected media file. Also, the processor 920 may identify the location of data to be modified within the media file by analyzing the structure of the media file.
- the processor 920 may determine whether the second header exists in the media file by analyzing the media file.
- the processor 920 may determine 730 whether the media file is a media file to which a second header is added while the first header is maintained. In the case of a media file to which a second header is added according to an exemplary embodiment (730-Yes in FIG. 7 ), the processor 920 may determine a media file to be transmitted based on whether the first header is desired to be removed. .
- the processor 920 according to an exemplary embodiment may determine 740 whether to remove the first header based on the user's selection input signal. The processor 920 may receive a selection input signal on whether to remove the first header from the user.
- edit history information may be included in the media file to be transmitted.
- the electronic device and/or server receiving the corresponding media file can know the pre-editing state of the media file using meta data included in the first header.
- the electronic device and/or the server may extract editing history information using information included in the first header. Accordingly, a user may need to decide whether or not to include editing history information in a media file to be shared according to the user's choice. When editing history information is shared with other users, privacy may not be protected and personal information may be exposed, so that the user can decide whether or not to include the first header (or editing history information) in the media file. can
- the corresponding media file may include a media file that has not been modified.
- the corresponding media file is determined as a transmission target media file, and the media file can be transmitted to another electronic device (760).
- the processor 920 may change data included in the first header to a predetermined value (750).
- the processor 920 may change data included in the first header to meaningless values. For example, the processor 920 may change all data included in the first header to zero. Accordingly, the first header included in the transmission target media file may be changed to a predetermined value.
- the processor 920 may determine the media file to be transmitted without changing the first header.
- the media file to be transmitted may include a first header, a second header, and a media file.
- the user may want to share the editing history information with other users.
- Editing history information may include log data for modifying a media file.
- the processor 920 may use the editing history information to return the media file to be transmitted to a media file in a state before editing.
- the electronic device receiving the media file to be transmitted may display the editing history information on the display, and may further play the media file in a pre-editing state by using the editing history information.
- the original video may include a playback period of 0 to 100 minutes
- the edited video may include a playback period of 0 to 3 minutes.
- the electronic device receiving the transmission target media file can play not only the edited video including the playback period of 0 to 3 minutes, but also the original video including the playback period of 0 to 100 minutes.
- the edited video may include only at least part of data of the original video.
- the original video may be a video including a playback section of 0 to 100 minutes.
- the edited video may be a video including a playback section of 0 to 3 minutes.
- the aforementioned media file editing method may include a method in which the processor 920 maintains media data and modifies only the header based on the modification information. In the case of holding media data, the media file to be transferred may be very large. Accordingly, in order to promote transmission efficiency, the processor 920 may remove at least some media samples corresponding to the removed playback section from the media data based on the correction information.
- the removed playback period may include a playback period of 4 minutes to 100 minutes.
- the processor 920 may remove media samples respectively corresponding to the playback period of 4 minutes to 100 minutes from the media data. Accordingly, media data may include only media samples respectively corresponding to the playback period of 0 to 3 minutes.
- the processor 920 may determine a media file including media data from which at least some media samples are removed as a media file to be transmitted. In this case, the transmission target media file may include a relatively small capacity compared to the original media file, and through this, transmission efficiency may be promoted.
- the processor 920 may transmit the media file to another electronic device and/or server (760).
- Fig. 8 is a flow chart 800 for describing a method for restoring a media file according to an exemplary embodiment.
- a processor (eg, the processor 920 of FIG. 9 ) according to an exemplary embodiment may restore a media file.
- Processor 920 may receive 810 a user selection input for a media file. Users can select the media files they wish to restore.
- the processor 920 may receive 820 a recovery signal for a corresponding media file.
- the processor 920 may receive restoration information of a media file.
- Restoration information may include information related to restoration of a media file. Restoration information may include, for example, at least some of restoration time information desired by a user, restoration target file information, and/or location information of data included in restoration target files.
- the processor 920 may identify the location of the first header and change the first header into a file parsable form (830).
- the processor 920 may identify the location of the first header based on location information of the first header included in the second header. Referring to FIG. 6 , the processor 920 may use the first header location information 643 included in the second header 640 to identify the location of the first header in the storage space.
- the processor 920 may convert the identified first header into a file parsable form. Through this, the processor 920 may extract meta data included in the first header by file-parsing the first header.
- the processor 920 may remove (840) the second header based on whether to retain the editing history information of the media file.
- Editing history information may include log data for modifying a media file. Accordingly, the processor 920 may use the editing history information to return the media file to be transmitted to a media file in a state before editing.
- a user selection input according to an exemplary embodiment may be a selection input that does not maintain editing history information of a media file. In this case, the processor 920 may remove the second header.
- a user selection input according to another exemplary embodiment may be a selection input for maintaining editing history information of a media file. In this case, the processor 920 may maintain the second header without removing it.
- the processor 920 may change the second header to a free space while maintaining data included in the second header to prevent parsing in the file parsing process.
- FIG. 9 is a block diagram of an electronic device in a network environment according to various embodiments.
- an electronic device 901 communicates with an electronic device 902 through a first network 998 (eg, a short-range wireless communication network) or through a second network 999. It may communicate with at least one of the electronic device 904 or the server 908 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 901 may communicate with the electronic device 904 through the server 908 .
- a first network 998 eg, a short-range wireless communication network
- a second network 999 e.g., a second network 999. It may communicate with at least one of the electronic device 904 or the server 908 through (eg, a long-distance wireless communication network).
- the electronic device 901 may communicate with the electronic device 904 through the server 908 .
- the electronic device 901 includes a processor 920, a memory 930, an input module 950, a sound output module 955, a display module 960, an audio module 970, a sensor module ( 976), interface 977, connection terminal 978, haptic module 979, camera module 980, power management module 988, battery 989, communication module 990, subscriber identification module 996 , or an antenna module 997.
- at least one of these components eg, the connection terminal 978
- some of these components are integrated into a single component (eg, display module 960). It can be.
- the processor 920 for example, executes software (eg, the program 940) to cause at least one other component (eg, hardware or software component) of the electronic device 901 connected to the processor 920. It can control and perform various data processing or calculations. According to one embodiment, as at least part of data processing or operation, the processor 920 transfers instructions or data received from other components (e.g., sensor module 976 or communication module 990) to volatile memory 932. , processing commands or data stored in the volatile memory 932 , and storing resultant data in the non-volatile memory 934 .
- software eg, the program 940
- the processor 920 transfers instructions or data received from other components (e.g., sensor module 976 or communication module 990) to volatile memory 932. , processing commands or data stored in the volatile memory 932 , and storing resultant data in the non-volatile memory 934 .
- the processor 920 may include a main processor 921 (eg, a central processing unit or an application processor) or a secondary processor 923 (eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor).
- a main processor 921 eg, a central processing unit or an application processor
- a secondary processor 923 eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor.
- NPU neural network processing unit
- the auxiliary processor 923 may use less power than the main processor 921 or be set to be specialized for a designated function.
- the auxiliary processor 923 may be implemented separately from or as part of the main processor 921 .
- the secondary processor 923 may, for example, take the place of the main processor 921 while the main processor 921 is in an inactive (eg, sleep) state, or the main processor 921 is active (eg, running an application). ) state, together with the main processor 921, at least one of the components of the electronic device 901 (eg, the display module 960, the sensor module 976, or the communication module 990) It is possible to control at least some of the related functions or states.
- the co-processor 923 eg, image signal processor or communication processor
- may be implemented as part of other functionally related components eg, camera module 980 or communication module 990. there is.
- the auxiliary processor 923 may include a hardware structure specialized for processing an artificial intelligence model.
- AI models can be created through machine learning. Such learning may be performed, for example, in the electronic device 901 itself where the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 908).
- the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited.
- the artificial intelligence model may include a plurality of artificial neural network layers.
- Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples.
- the artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.
- the memory 930 may store various data used by at least one component (eg, the processor 920 or the sensor module 976) of the electronic device 901 .
- the data may include, for example, input data or output data for software (eg, the program 940) and commands related thereto.
- the memory 930 may include volatile memory 932 or non-volatile memory 934 .
- the program 940 may be stored as software in the memory 930 and may include, for example, an operating system 942 , middleware 944 , or an application 946 .
- the input module 950 may receive a command or data to be used by a component (eg, the processor 920) of the electronic device 901 from the outside of the electronic device 901 (eg, a user).
- the input module 950 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
- the sound output module 955 may output sound signals to the outside of the electronic device 901 .
- the sound output module 955 may include, for example, a speaker or receiver.
- the speaker can be used for general purposes such as multimedia playback or recording playback.
- a receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
- the display module 960 may visually provide information to the outside of the electronic device 901 (eg, a user).
- the display module 960 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device.
- the display module 960 may include a touch sensor set to detect a touch or a pressure sensor set to measure the intensity of force generated by the touch.
- the audio module 970 may convert sound into an electrical signal or vice versa. According to one embodiment, the audio module 970 acquires sound through the input module 950, the sound output module 955, or an external electronic device connected directly or wirelessly to the electronic device 901 (eg: Sound may be output through the electronic device 902 (eg, a speaker or a headphone).
- the audio module 970 acquires sound through the input module 950, the sound output module 955, or an external electronic device connected directly or wirelessly to the electronic device 901 (eg: Sound may be output through the electronic device 902 (eg, a speaker or a headphone).
- the sensor module 976 detects an operating state (eg, power or temperature) of the electronic device 901 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do.
- the sensor module 976 may include, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a bio sensor, It may include a temperature sensor, humidity sensor, or light sensor.
- the interface 977 may support one or more specified protocols that may be used to directly or wirelessly connect the electronic device 901 to an external electronic device (eg, the electronic device 902).
- the interface 977 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
- HDMI high definition multimedia interface
- USB universal serial bus
- SD card interface Secure Digital interface
- audio interface audio interface
- connection terminal 978 may include a connector through which the electronic device 901 may be physically connected to an external electronic device (eg, the electronic device 902).
- the connection terminal 978 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
- the haptic module 979 may convert electrical signals into mechanical stimuli (eg, vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic senses.
- the haptic module 979 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
- the camera module 980 may capture still images and moving images. According to one embodiment, the camera module 980 may include one or more lenses, image sensors, image signal processors, or flashes.
- the power management module 988 may manage power supplied to the electronic device 901 .
- power management module 988 may be implemented as at least part of a power management integrated circuit (PMIC), for example.
- PMIC power management integrated circuit
- the battery 989 may supply power to at least one component of the electronic device 901 .
- the battery 989 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
- the communication module 990 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 901 and an external electronic device (eg, the electronic device 902, the electronic device 904, or the server 908). Establishment and communication through the established communication channel may be supported.
- the communication module 990 may include one or more communication processors that operate independently of the processor 920 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
- the communication module 990 is a wireless communication module 992 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 994 (eg, a : a local area network (LAN) communication module or a power line communication module).
- a wireless communication module 992 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
- GNSS global navigation satellite system
- wired communication module 994 eg, a : a local area network (LAN) communication module or a power line communication module.
- a corresponding communication module is a first network 998 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 999 (eg, legacy It may communicate with the external electronic device 904 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a telecommunications network such as a computer network (eg, LAN or WAN).
- a cellular network eg, a 5G network, a next-generation communication network, the Internet, or a telecommunications network such as a computer network (eg, LAN or WAN).
- the wireless communication module 992 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 996 within a communication network such as the first network 998 or the second network 999.
- subscriber information eg, International Mobile Subscriber Identifier (IMSI)
- IMSI International Mobile Subscriber Identifier
- the electronic device 901 may be identified or authenticated.
- the wireless communication module 992 may support a 5G network after a 4G network and a next-generation communication technology, such as NR access technology (new radio access technology).
- NR access technologies include high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and access of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low latency (URLLC)).
- eMBB enhanced mobile broadband
- mMTC massive machine type communications
- URLLC ultra-reliable and low latency
- -latency communications can be supported.
- the wireless communication module 992 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
- the wireless communication module 992 uses various technologies for securing performance in a high frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. Technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna may be supported.
- the wireless communication module 992 may support various requirements defined for the electronic device 901, an external electronic device (eg, the electronic device 904), or a network system (eg, the second network 999).
- the wireless communication module 992 is a peak data rate for eMBB realization (eg, 20 Gbps or more), a loss coverage for mMTC realization (eg, 164 dB or less), or a U-plane latency for URLLC realization (eg, Example: downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less) may be supported.
- eMBB peak data rate for eMBB realization
- a loss coverage for mMTC realization eg, 164 dB or less
- U-plane latency for URLLC realization eg, Example: downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less
- the antenna module 997 may transmit or receive signals or power to the outside (eg, an external electronic device).
- the antenna module 997 may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (eg, PCB).
- the antenna module 997 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 998 or the second network 999 is selected from the plurality of antennas by, for example, the communication module 990. can be chosen A signal or power may be transmitted or received between the communication module 990 and an external electronic device through the selected at least one antenna.
- other components eg, a radio frequency integrated circuit (RFIC) may be additionally formed as a part of the antenna module 997 in addition to the radiator.
- RFIC radio frequency integrated circuit
- the antenna module 997 may form a mmWave antenna module.
- the mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first surface (eg, a lower surface) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, array antennas) disposed on or adjacent to a second surface (eg, a top surface or a side surface) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
- peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
- signal e.g. commands or data
- commands or data may be transmitted or received between the electronic device 901 and the external electronic device 904 through the server 908 connected to the second network 999 .
- Each of the external electronic devices 902 or 904 may be the same as or different from the electronic device 901 .
- all or part of operations executed in the electronic device 901 may be executed in one or more external electronic devices among the external electronic devices 902 , 904 , or 908 .
- the electronic device 901 when the electronic device 901 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 901 instead of executing the function or service by itself.
- one or more external electronic devices may be requested to perform the function or at least part of the service.
- One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver the execution result to the electronic device 901 .
- the electronic device 901 may provide the result as at least part of a response to the request as it is or additionally processed.
- cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
- the electronic device 901 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
- the external electronic device 904 may include an internet of things (IoT) device.
- Server 908 may be an intelligent server using machine learning and/or neural networks.
- the external electronic device 904 or server 908 may be included in the second network 999 .
- the electronic device 901 may be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
예시적인 실시예에 따르면, 미디어 파일 편집 방법은 편집 대상 미디어 파일의 수정 정보를 수신하는 동작, 편집 대상 미디어 파일로부터 메타 데이터를 포함하는 제1 헤더 및 적어도 하나의 미디어 샘플을 포함하는 미디어 데이터를 식별하는 동작; 제1 헤더에 기초하여 제2 헤더를 생성하는 동작, 상기 수정 정보에 기초하여 제2 헤더를 수정하는 동작, 제1 헤더의 위치가 미디어 데이터의 위치보다 앞에 있는 경우, 제2 헤더의 위치를 미디어 데이터의 뒤로 결정하는 동작, 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제2 헤더의 위치를 제1 헤더의 뒤로 결정하는 동작 및 미디어 파일 정보 추출 과정에서 상기 제2 헤더의 메타 데이터를 추출하는 동작을 포함할 수 있다. 이 밖에 다양한 실시예가 가능하다.
Description
본 발명의 다양한 실시예들은 미디어 파일을 편집하기 위한 방법 및 장치에 관한 것이다.
전자 장치는 파일들을 편집하기 위해 사용될 수 있다. 예를 들어, 전자 장치는 미디어 파일을 편집하기 위해 사용될 수 있다. 미디어 파일은 사진 파일, 음악 파일, 문서 파일, 오디오 파일 및/또는 비디오 파일을 포함할 수 있다. 전자 장치에서 효율적으로 미디어 파일을 편집하는 기능을 제공하기 위하여 미디어 파일을 편집하는 기술에 대한 관심도가 증가하는 추세이다.
미디어 파일은 파일 포맷의 특성에 따라 파일 내에서의 각 구성 요소의 위치와 순서가 고정되지 않을 수 있다. 예를 들어, 헤더가 미디어 파일의 앞쪽에 위치하고, 미디어 데이터가 헤더 뒤쪽에 위치할 수 있다. 이 경우, 헤더의 크기가 변경되면, 변경된 크기만큼 미디어 데이터 전체의 위치가 변경될 필요가 존재할 수 있다. 미디어 파일에서 큰 용량을 차지하는 미디어 데이터를 전부 이동시킬 경우, 미디어 파일의 편집 과정에서 많은 시간이 소요될 수 있고, 연산량도 증가할 수 있다.
다양한 실시예들에 따르면, 새로운 헤더를 만들어 수정함으로써, 미디어 데이터의 이동을 방지하거나 이동의 가능성을 감소할 수 있다.
다양한 실시예들에 따르면, 미디어 파일을 수정하더라도, 원본 헤더가 존재하므로, 파일 복원 기능을 사용자에게 제공할 수 있다.
다양한 실시예들에 따르면, 미디어 파일 공유하는 경우, 사용자의 선택에 따라 미디어 파일의 편집 이력이 공유되지 않도록 할 수 있다.
예시적인 실시예에 따른 전자 장치는 하나 이상의 프로세서 및 하나 이상의 프로세서에서 실행 가능한 명령들을 저장하는 메모리를 포함할 수 있다. 메모리는 미디어 파일 및 상기 미디어 파일을 편집하기 위한 명령들을 저장하고, 그리고 상기 명령들을 실행하는 프로세서는, 편집 대상 미디어 파일로부터 메타 데이터를 포함하는 제1 헤더 및 적어도 하나의 미디어 샘플을 포함하는 미디어 데이터를 식별하는 동작, 제1 헤더에 기초하여 제2 헤더를 생성하는 동작, 수정 정보에 기초하여 제2 헤더를 수정하는 동작, 제1 헤더의 위치가 미디어 데이터의 위치보다 앞에 있는 경우, 제2 헤더의 위치를 미디어 데이터의 뒤로 결정하는 동작, 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제2 헤더의 위치를 제1 헤더의 위치를 기초로 결정하는 동작, 및 미디어 파일 정보 추출 과정에서 제2 헤더의 메타 데이터를 추출하는 동작을 포함할 수 있다.
다른 예시적인 실시예에 따른 미디어 파일을 편집하는 방법은 편집 대상 미디어 파일로부터 메타 데이터를 포함하는 제1 헤더 및 적어도 하나의 미디어 샘플을 포함하는 미디어 데이터를 식별하는 단계, 제1 헤더에 기초하여 제2 헤더를 생성하는 단계, 수정 정보에 기초하여 제2 헤더를 수정하는 단계, 제1 헤더의 위치가 상기 미디어 데이터의 위치보다 앞에 있는 경우, 제2 헤더의 위치를 미디어 데이터의 뒤로 결정하는 단계, 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제2 헤더의 위치를 제1 헤더의 위치를 기초로 결정하는 단계, 미디어 파일 정보 추출 과정에서 제2 헤더의 메타 데이터를 추출하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 미디어 파일 편집 방법은 미디어 데이터의 이동을 방지하거나 이동의 가능성을 감소시킴으로써, 파일 편집에 소요되는 연산량 및 구현의 복잡도를 절감할 수 있다.
예시적인 실시예에 따른 미디어 파일 편집 방법은 미디어 데이터의 이동을 방지하거나 이동의 가능성을 감소시킴으로써, 미디어 데이터 이동에 필요한 연산을 하지 않을 수 있으며, 미디어 데이터의 위치 정보를 포함하는 헤더의 수정을 감소시킬 수 있다.
예시적인 실시예에 따른 미디어 파일 편집 방법은 미디어 파일을 수정하더라도, 원본 헤더가 존재하므로, 미디어 파일의 편집 이력 정보를 사용자에게 제공할 수 있다.
도 1은 예시적인 실시예들에 따른 미디어 파일의 편집 방법을 설명하기 위한 흐름도이다.
도 2는 예시적인 실시예들에 따른 미디어 파일 편집 모듈의 블록도이다.
도 3은 예시적인 실시예에 따른 미디어 파일 정보 표시 화면을 설명하기 위한 도면이다.
도 4는 예시적인 실시예에 따른 미디어 파일의 메타 데이터 편집 과정을 설명하기 위한 도면이다.
도 5는 예시적인 실시예에 따른 동영상 재생 구간 편집 화면을 설명하기 위한 도면이다.
도 6은 예시적인 실시예에 따른 동영상 파일 편집 과정을 설명하기 위한 도면이다.
도 7은 예시적인 실시예에 따른 미디어 파일의 공유 방법을 설명하기 위한 흐름도이다.
도 8은 예시적인 실시예에 따른 미디어 파일의 복원 방법을 설명하기 위한 흐름도다.
도 9는 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실제로 구현된 형태는 다양한 다른 모습을 가질 수 있으며 본 명세서에 설명된 실시예로만 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간의"와 "바로~간의" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 예시적인 실시예들에 따른 미디어 파일의 편집 방법을 설명하기 위한 흐름도(100)이다. 도 1에 도시된 미디어 파일의 편집 방법은 하나의 예시일 뿐이며, 미디어 파일의 편집을 위하여 도 1에 도시된 일부 단계의 순서가 바뀔 수도 있다.
예시적인 실시예에 따른 프로세서(예: 도 9의 프로세서(920)_)는 편집 대상 미디어 파일의 수정 정보를 수신(110)할 수 있다. 예시적인 실시예에 따른 프로세서(920) 사용자 입력 신호에 기초하여 생성된 편집 대상 미디어 파일의 수정 정보를 수신할 수 있다. 예시적인 실시예에 따른 미디어 파일은 전자 장치(901)에서 읽기(read), 쓰기(write) 및/또는 편집(edit)이 가능한 데이터(예: 메타 데이터, 미디어 데이터)를 포함하는 파일을 의미할 수 있다. 파일은 예를 들어, 이미지 파일, 오디오 파일, 동영상 파일 및/또는 문서 파일을 포함할 수 있다. 예시적인 실시예에 따른 미디어 파일은 적어도 하나 이상의 박스(box)를 포함할 수 있다. 예시적인 실시예에 따른 박스는 미디어 데이터 및/또는 미디어 데이터에 관련된 메타 데이터를 포함하는 데이터 블록, 데이터 프레임 또는 오브젝트일 수 있다. 박스들은 서로 계층적 구조를 이룰 수 있으며, 이러한 계층적 구조에 따라 데이터들이 분류됨으로써 미디어 파일이 대용량 미디어 데이터의 저장 및 전송에 적합한 형태를 가질 수 있다. 예시적인 실시예에 따른 미디어 파일은 프로세서(920)가 미디어 파일에 접근하는데 있어 용이한 구조를 가질 수 있다.
예시적인 실시예에 따른 미디어 파일이 ISOBMFF(ISO/IEC base media file format) 파일인 경우, 미디어 파일은, ftyp 박스, moov 박스 및 mdat 박스를 포함할 수 있다. ftyp 박스(파일 타입 박스)는 해당 미디어 파일에 대한 파일 타입 또는 호환성 관련 정보를 제공할 수 있다. 예시적인 실시예에 따른 moov 박스(무비 박스)는 해당 미디어 파일의 미디어 데이터에 대한 메타데이터를 포함하는 박스일 수 있다. moov 박스는 메타 데이터들을 위한 컨테이너 역할을 할 수 있다. 예시적인 실시예에 따른 mdat 박스(미디어 데이터 박스)는 해당 미디어 파일의 실제 적어도 하나의 미디어 데이터를 포함하는 박스일 수 있다. 적어도 하나의 미디어 데이터는 적어도 하나의 미디어 샘플(예: 오디오 샘플 및/또는 비디오 샘플)을 포함할 수 있는데, mdat 박스는 이러한 미디어 샘플들을 담는 컨테이너 역할을 할 수 있다.
본 명세서의 각 실시예는 본 명세서의 임의의 다른 실시예와 조합하여 사용될 수 있다.
예시적인 실시예에 따른 편집 대상 미디어 파일은 편집의 대상이 되는 미디어 파일을 의미할 수 있다. 프로세서(920)는 사용자로부터 특정 미디어 파일에 대한 선택 입력 신호를 수신할 수 있다. 프로세서(920)는 선택 입력 신호에 기초하여 편집 대상 미디어 파일을 결정할 수 있다.
예시적인 실시예에 따른 편집 대상 미디어 파일의 수정 정보는 편집 대상 미디어 파일을 수정하기 위하여 필요한 정보를 포함할 수 있다. 편집 대상 미디어 파일의 수정 정보는 메타 데이터의 수정 정보 및 미디어 데이터의 수정 정보 중 적어도 하나를 포함할 수 있다. 예시적인 실시예에 따른 메타 데이터의 수정 정보는 메타 데이터를 수정하기 위하여 필요한 정보를 포함할 수 있다. 예를 들어, 메타 데이터의 수정 정보는 메타 데이터에 포함된 미디어 파일의 생성 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보, 트랙 정보 및/또는 재생 구간 정보 중 적어도 일부를 수정하는 정보를 포함할 수 있다. 프로세서(920)는 사용자로부터 메타 데이터 수정 신호를 수신할 수 있다. 프로세서(920)는 메타 데이터의 수정 정보에 기초하여 헤더에 포함된 메타 데이터를 수정할 수 있다. 프로세서(920)는 메타 데이터의 수정 정보에 기초하여 헤더에 포함된 메타 데이터를 수정하고, 미디어 데이터는 그대로 유지할 수 있다. 다른 예시적인 실시예에 따른 편집 대상 미디어 파일의 수정 정보는 미디어 데이터의 수정 정보를 포함할 수 있다. 프로세서(920)는 미디어 데이터의 수정 정보에 기초하여 미디어 데이터를 수정할 수 있다. 예를 들어, 프로세서(920)는 미디어 데이터의 수정 정보에 기초하여 미디어 데이터에 포함된 적어도 하나의 미디어 샘플을 수정할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 편집 대상 미디어 파일로부터 메타 데이터를 포함하는 제1 헤더 및 적어도 하나의 미디어 샘플을 포함하는 미디어 데이터를 식별(120)할 수 있다. 예시적인 실시예에 따른 헤더는 미디어 파일에서 메타 데이터를 포함하는 영역을 의미할 수 있다. 예시적인 실시예에 따른 헤더는 미디어 파일이 ISOBMFF 파일인 경우, moov 박스를 포함할 수 있다. 예시적인 실시예에 따른 제1 헤더는 프로세서(920)가 수정 정보에 기초하여 미디어 파일을 수정하기 전 상태의 헤더를 포함할 수 있다. 예시적인 실시예에 따른 미디어 데이터는 적어도 하나의 미디어 샘플을 포함하는 데이터를 포함할 수 있다. 미디어 샘플은 예를 들어, 오디오 샘플 및/또는 비디오 샘플을 포함할 수 있다. 예시적인 실시예에 따른 미디어 데이터는 미디어 파일이 ISOBMFF 파일인 경우, mdat 박스를 포함할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 편집 대상 미디어 파일로부터 해당하는 미디어 파일의 구조를 분석할 수 있다. 프로세서(920)는 미디어 파일의 구조를 분석함으로써, 미디어 파일에 포함된 헤더 및/또는 미디어 데이터의 위치를 식별할 수 있다. 또한 프로세서(920)는 미디어 파일의 구조를 분석함으로써, 수정 대상이 되는 데이터의 위치를 미디어 파일 내에서 식별할 수도 있다.
예시적인 실시예에 따른 프로세서(920)는 제1 헤더에 기초하여 제2 헤더를 생성(130)할 수 있다. 예시적인 실시예에 따른 제2 헤더는 미디어 파일에 새롭게 추가되는 헤더를 포함할 수 있다. 예시적인 실시예에 따른 미디어 파일 편집 과정에서, 제1 헤더는 미디어 파일 편집 전에 존재하였던 헤더이고, 제2 헤더는 미디어 파일 편집 과정에서 새롭게 생성된 헤더를 의미할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 적어도 일부를 복사하여 제2 헤더를 생성할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 수정 정보에 기초하여 제2 헤더만 수정하고, 제1 헤더를 수정하지 않고 그대로 유지할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 수정 정보에 기초하여 제2 헤더를 수정(140)할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 수정 정보에 기초하여 수정된 제2 헤더를 저장할 위치를 결정할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 저장 공간 내에서 미디어 데이터의 이동을 방지하기 위하여 제1 헤더의 위치 및 미디어 데이터의 위치에 기초하여 제2 헤더가 추가될 위치를 결정할 수 있다. 제2 헤더가 추가되는 과정에 대한 구체적인 실시예는 도 4를 참조하여 후술된다.
예시적인 실시예에 따른 프로세서(920)는 미디어 데이터의 위치를 기초로 제1 헤더의 상대적인 위치를 판단할 수 있다. 예를 들어, 프로세서(920)는 제1 헤더가 미디어 데이터를 기초로 앞에 있는지 뒤에 있는지 판단할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 위치가 미디어 데이터의 위치보다 앞에 있는지 판단(145)할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 위치가 미디어 데이터의 위치보다 앞에 있는 경우, 제2 헤더의 위치를 미디어 데이터의 뒤로 결정(150)할 수 있다. 동작(170)에서 프로세서는 미디어 파일 정보 추출 과정에서 제2 헤더의 메타 데이터를 추출할 수 있다. 예시적인 실시예에 따른 미디어 파일에서 헤더가 앞에 위치하고, 미디어 데이터는 헤더의 뒤에 위치할 수 있다. 이 경우, 프로세서(920)가 헤더를 수정하여 헤더의 크기가 변경되는 경우, 미디어 데이터의 저장 위치가 변경되어, 헤더에 포함된 미디어 데이터의 위치 정보 및/또는 미디어 데이터 위치를 모두 변경해야 할 수 있다. 따라서, 미디어 파일의 이동을 방지하기 위하여 프로세서(920)는 새로운 헤더를 생성하고, 수정 정보에 기초하여 새로운 헤더를 수정할 수 있다. 본 개시의 다양한 실시예에서 새롭게 생성된 헤더는 제2 헤더일 수 있고, 기존에 존재하던 헤더는 제1 헤더일 수 있다. 프로세서(920)는 제2 헤더를 미디어 데이터 파일 뒤에 추가할 수 있다. 이 경우, 미디어 파일에 포함된 영역의 순서는 "제1 헤더 -> 미디어 데이터 -> 제2 헤더"일 수 있다. 이를 통해 프로세서(920)는 미디어 데이터의 저장 공간 내에서의 이동 없이 헤더를 수정할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제2 헤더의 위치를 제1 헤더의 위치를 기초로 결정(160)할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 위치를 기초로 제2 헤더를 제1 헤더의 앞에 위치시키거나, 제2 헤더를 제1 헤더의 뒤에 위치시킬 수 있다.
예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제2 헤더의 위치를 제1 헤더의 뒤로 결정할 수 있다. 예시적인 실시예에 따른 미디어 파일에서 헤더가 앞에 위치하고, 미디어 데이터는 헤더의 뒤에 위치할 수 있다. 다른 예시적인 실시예에 따른 미디어 파일에서 미디어 데이터가 앞에 위치하고 헤더가 미디어 데이터의 뒤에 위치할 수 있다. 예를 들어 미디어 파일에 포함된 영역의 순서는 미디어 데이터 -> 헤더일 수 있다. 또 다른 예를 들어, 미디어 파일에 포함된 영역의 순서는 헤더 -> 미디어 데이터 -> 헤더일 수 있다. 이 경우는 원본 미디어 파일에 포함된 영역의 순서가 헤더 -> 미디어 데이터였으나, 헤더의 수정으로 새로운 헤더가 추가된 파일 구조일 수 있다. 헤더가 2개이므로, 기존의 헤더는 파일 파싱에서 제외되도록 자유 공간으로 선언할 수 있다. 따라서 미디어 파일에 포함된 영역은 헤더(자유 공간) -> 미디어 데이터 -> 헤더일 수 있다. 예시적인 실시예에 따른 프로세서(920)는 미디어 데이터 뒤에 기존 헤더인 제1 헤더가 존재하는 경우, 제1 헤더 뒤에 새로운 헤더인 제2 헤더를 추가할 수 있다. 이를 통해, 미디어 데이터의 이동을 방지할 수 있다. 예를 들어, 제2 헤더가 추가된 미디어 파일의 구조는 "미디어 데이터 -> 제1 헤더(자유 공간) -> 제2 헤더"일 수 있다. 또 다른 예를 들어, 제2 헤더가 추가된 미디어 파일의 구조는 "제1 헤더(자유 공간) -> 미디어 데이터 -> 제1 헤더(자유 공간) -> 제2 헤더"일 수도 있다. 전술한 사항은 예시일 뿐 본 개시의 다양한 실시예는 이에 제한되지 않는다.
다른 예시적인 실시예에 따른 프로세서(920)는 제2 헤더의 위치를 제1 헤더의 앞으로 결정할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 미디어 데이터의 위치보다 뒤에 제2 헤더를 위치시키고, 제1 헤더의 위치를 제2 헤더의 뒤로 위치시킬 수 있다. 이 경우, 제2 헤더가 추가된 미디어 파일의 구조는 "미디어 데이터 -> 제2 헤더 -> 제1 헤더(자유 공간)"일 수 있다.
다른 예시적인 실시예에 따른 프로세서(920)는 제2 헤더와 제1 헤더 사이에 다른 박스를 위치시킬 수도 있다. 예를 들어, 프로세서(920)는 미디어 파일 뒤에 제2 헤더를 위치시키고, 제2 헤더 뒤에 다른 박스를 위치시키며, 다른 박스 뒤에 제1 헤더를 위치시킬 수 있다. 이 경우, 미디어 파일의 구조는 "미디어 데이터 -> 제2 헤더 -> 다른 박스 -> 제1 헤더(자유 공간)"일 수 있다. 예시적인 실시예에 따른 제1 헤더와 제2 헤더 사이에 위치하는 다른 박스는 1개가 될 수 있고, 복수개가 될 수도 있다. 또 다른 예를 들어, 프로세서(920)는 미디어 파일 뒤에 제1 헤더를 위치시키고, 제1 헤더 뒤에 다른 박스를 위치시키며, 다른 박스 뒤에 제2 헤더를 위치시킬 수 있다. 이 경우, 미디어 파일의 구조는 "미디어 데이터 -> 제1 헤더(자유 공간) -> 다른 박스 -> 제2 헤더"일 수 있다.
다른 예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제1 헤더를 제2 헤더로 교체할 수 있다. 예를 들어, 편집 이력 정보를 미디어 파일에 남기고 싶지 않은 경우가 존재할 수 있다. 이 경우, 프로세서(920)는 사용자의 선택 입력 신호를 수신하여 제1 헤더를 제2 헤더로 교체할 수 있다. 이 경우, 제1 헤더에 포함된 메타 데이터들은 삭제되므로, 편집 이력 정보를 생성하지 못할 수 있다.
다른 예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제2 헤더를 생성하지 않고, 제1 헤더를 수정 정보에 기초하여 수정할 수도 있다.
예시적인 실시예에 따른 프로세서(920)는 미디어 파일 정보 추출 과정에서 제2 헤더의 메타 데이터를 추출할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 미디어 파일 정보 추출 과정에서 제2 헤더의 메타 데이터만 추출하고 제1 헤더의 메타 데이터는 추출하지 않을 수 있다. 예시적인 실시예에 따른 미디어 파일 정보 추출 과정은 미디어 파일에 포함된 메타 데이터를 추출하기 위한 과정을 포함할 수 있다. 예시적인 실시예에 따른 미디어 파일 정보 추출 과정은 파일 파싱 과정을 포함할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 제1 헤더를 파일 파싱 과정에서 제외시키기 위하여 제1 헤더를 자유 공간으로 변경(170)할 수 있다. 예시적인 실시예에 따른 파일 파싱 과정은 미디어 파일에 포함되는 데이터를 해석하기 위한 과정을 포함할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 파일 파싱 과정을 통해 미디어 파일로부터 메타 데이터 및/또는 미디어 데이터를 추출할 수 있다. 예를 들어, 프로세서(920)는 파일 파싱 과정을 통해 미디어 데이터에 포함된 오디오 샘플 및/또는 비디오 샘플(또는 비디오 프레임)을 추출할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 제1 헤더를 자유 공간으로 변경할 수 있다. 예를 들어, 미디어 파일이 ISOBMFF인 경우, 제1 헤더는 moov 박스일 수 있다. 프로세서(920)는 moov 박스를 free space로 변경할 수 있다. moov박스가 free space로 변경되는 경우, 파일 파싱 과정에서 해당 박스는 제외하고 다른 박스를 파싱할 수 있다. 프로세서(920)는 기존 제1 헤더를 자유 공간으로 변경함으로써, 제1 헤더와 제2 헤더가 동시에 파싱되어 중복되는 메타 데이터가 생성되는 상황을 방지할 수 있다. 제1 헤더와 제2 헤더가 동시에 파싱되어 중복되는 메타 데이터가 발생하면, 프로세서(920)의 데이터 처리에 혼선이 발생할 수도 있다.
예시적인 실시예에 따른 전자 장치는 하나 이상의 프로세서 및 하나 이상의 프로세서에서 실행 가능한 명령들을 저장하는 메모리를 포함할 수 있다. 메모리는 미디어 파일 및 상기 미디어 파일을 편집하기 위한 명령들을 저장하고, 그리고 상기 명령들을 실행하는 프로세서는, 편집 대상 미디어 파일로부터 메타 데이터를 포함하는 제1 헤더 및 적어도 하나의 미디어 샘플을 포함하는 미디어 데이터를 식별하는 동작, 제1 헤더에 기초하여 제2 헤더를 생성하는 동작, 수정 정보에 기초하여 제2 헤더를 수정하는 동작, 제1 헤더의 위치가 미디어 데이터의 위치보다 앞에 있는 경우, 제2 헤더의 위치를 미디어 데이터의 뒤로 결정하는 동작, 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제2 헤더의 위치를 제1 헤더의 위치를 기초로 결정하는 동작, 및 미디어 파일 정보 추출 과정에서 제2 헤더의 메타 데이터를 추출하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 편집 대상 미디어 파일의 수정 정보는 메타 데이터의 수정 정보 및 미디어 데이터의 수정 정보 중 적어도 하나를 포함할 수 있다.
예시적인 실시예에 따른 메타 데이터는 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보, 트랙 정보 및 재생 구간 정보 중 적어도 하나를 포함할 수 있다.
예시적인 실시예에 따른 제1 헤더에 기초하여 제2 헤더를 생성하는 동작은 제1 헤더를 복사하여 제2 헤더를 생성하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 제2 헤더를 수정하는 동작은, 편집 대상 미디어 파일의 수정 정보에 기초하여 제2 헤더에 포함된 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보 및 트랙 정보 중 적어도 하나를 수정하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 제2 헤더를 수정하는 동작은, 편집 대상 미디어 파일의 수정 정보에 기초하여 상기 제2 헤더에 포함된 재생 구간 정보를 수정하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 제2 헤더의 메타 데이터를 추출하는 동작은 파일 파싱(parsing) 과정에서 제1 헤더를 제외하도록 제1 헤더를 변경하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 전송 대상 미디어 파일을 결정하는 동작을 더 포함하고, 전송 대상 미디어 파일을 결정하는 동작은 미디어 파일을 분석하여 제2 헤더가 미디어 파일에 존재하는지 여부를 판단하는 동작; 및 제2 헤더가 존재하는 경우, 제1 헤더의 제거 여부 신호에 기초하여 전송 대상 미디어 파일에 제1 헤더를 포함시킬지를 결정하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 전송 대상 미디어 파일을 결정하는 동작은, 제1 헤더를 제거하는 경우, 제1 헤더에 포함된 데이터를 사전 결정된 값으로 변경하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 전송 대상 미디어 파일을 결정하는 동작은, 제1 헤더를 제거하지 않는 경우, 편집 이력 정보를 공유하기 위하여 제1 헤더, 제2 헤더 및 미디어 데이터를 포함하는 미디어 파일을 전송 대상 미디어 파일로 결정하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 전송 대상 미디어 파일을 결정하는 동작은, 수정 정보에 기초하여 제거된 재생 구간과 대응되는 적어도 일부의 미디어 샘플을 상기 미디어 데이터에서 제거하는 동작 및 적어도 일부의 미디어 샘플이 제거된 미디어 데이터를 포함하는 미디어 파일을 전송 대상 미디어 파일로 결정하는 동작을 포함할 수 있다.
예시적인 실시예에 따른 미디어 파일을 복원하는 동작을 더 포함하고, 미디어 파일을 복원하는 동작은 미디어 파일의 복원 정보를 수신하는 동작, 제2 헤더에 포함된 상기 제1 헤더의 위치 정보에 기초하여 상기 제1 헤더의 위치를 식별하는 동작, 제1 헤더를 파일 파싱 가능 형태로 변환하는 동작 및 미디어 파일의 편집 이력 정보를 유지할지 여부에 기초하여 제2 헤더를 제거하는 동작을 포함할 수 있다.
다른 예시적인 실시예에 따른 미디어 파일을 편집하는 방법은 편집 대상 미디어 파일로부터 메타 데이터를 포함하는 제1 헤더 및 적어도 하나의 미디어 샘플을 포함하는 미디어 데이터를 식별하는 단계, 제1 헤더에 기초하여 제2 헤더를 생성하는 단계, 수정 정보에 기초하여 제2 헤더를 수정하는 단계, 제1 헤더의 위치가 상기 미디어 데이터의 위치보다 앞에 있는 경우, 제2 헤더의 위치를 미디어 데이터의 뒤로 결정하는 단계, 제1 헤더의 위치가 미디어 데이터의 위치보다 뒤에 있는 경우, 제2 헤더의 위치를 제1 헤더의 위치를 기초로 결정하는 단계, 미디어 파일 정보 추출 과정에서 제2 헤더의 메타 데이터를 추출하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 편집 대상 미디어 파일의 수정 정보는 메타 데이터의 수정 정보 및 상기 미디어 데이터의 수정 정보 중 적어도 하나를 포함할 수 있다.
예시적인 실시예에 따른 메타 데이터는 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보, 트랙 정보 및 재생 구간 정보 중 적어도 하나를 포함할 수 있다.
예시적인 실시예에 따른 제1 헤더에 기초하여 제2 헤더를 생성하는 단계는 제1 헤더를 복사하여 제2 헤더를 생성하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 제2 헤더를 수정하는 단계는, 편집 대상 미디어 파일의 수정 정보에 기초하여 제2 헤더에 포함된 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보 및 트랙 정보 중 적어도 하나를 수정하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 제2 헤더를 수정하는 단계는, 편집 대상 미디어 파일의 수정 정보에 기초하여 제2 헤더에 포함된 재생 구간 정보를 수정하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 제2 헤더의 메타 데이터를 추출하는 단계는 파일 파싱(parsing) 과정에서 제1 헤더를 제외하도록 제1 헤더를 변경하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 미디어 파일을 편집하는 방법은 전송 대상 미디어 파일을 결정하는 단계를 더 포함할 수 있다. 예시적인 실시예에 따른 전송 대상 미디어 파일을 결정하는 단계는 미디어 파일을 분석하여 제2 헤더가 미디어 파일에 존재하는지 여부를 판단하는 단계 및 제2 헤더가 존재하는 경우, 제1 헤더의 제거 여부 신호에 기초하여 전송 대상 미디어 파일에 제1 헤더를 포함시킬지를 결정하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 전송 대상 미디어 파일을 결정하는 단계는, 제1 헤더를 제거하는 경우, 제1 헤더에 포함된 데이터를 사전 결정된 값으로 변경하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 전송 대상 미디어 파일을 결정하는 단계는, 제1 헤더를 제거하지 않는 경우, 편집 이력 정보를 공유하기 위하여 제1 헤더, 제2 헤더 및 미디어 데이터를 포함하는 미디어 파일을 전송 대상 미디어 파일로 결정하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 전송 대상 미디어 파일을 결정하는 단계는, 수정 정보에 기초하여 제거된 재생 구간과 대응되는 적어도 일부의 미디어 샘플을 미디어 데이터에서 제거하는 단계, 및 적어도 일부의 미디어 샘플이 제거된 미디어 데이터를 포함하는 미디어 파일을 상기 전송 대상 미디어 파일로 결정하는 단계를 포함할 수 있다.
예시적인 실시예에 따른 미디어 파일을 편집하는 방법은 미디어 파일을 복원하는 단계를 더 포함하고, 미디어 파일을 복원하는 단계는 미디어 파일의 복원 정보를 수신하는 단계, 제2 헤더에 포함된 제1 헤더의 위치 정보에 기초하여 제1 헤더의 위치를 식별하는 단계, 제1 헤더를 파일 파싱 가능 형태로 변환하는 단계 및 미디어 파일의 편집 이력 정보를 유지할지 여부에 기초하여 제2 헤더를 제거하는 단계를 포함할 수 있다.
도 2는 예시적인 실시예들에 따른 미디어 파일 편집 모듈의 블록도이다.
도 2에서는 미디어 파일 편집 모듈(200), 입력부(210), 정보 표시부(230), 미디어 파일 분석부(250), 헤더 수정부(270) 및 파일 공유부(290)가 도시되어 있다.
예시적인 실시예에 따르면, 미디어 파일 편집 모듈(200)은 입력부(210), 정보 표시부(230), 미디어 파일 분석부(250), 헤더 수정부(270) 및 파일 공유부(290)를 포함할 수 있다. 예를 들어, 미디어 파일 편집 모듈(200)은 소프트웨어 형태로 구현되어 메모리(예: 도 9의 메모리(930))에 저장되고 프로세서(예: 도 9의 프로세서(920))에 의해 실행될 수 있다. 다양한 실시예들에서, 미디어 파일 편집 모듈(200) 및/또는 미디어 파일 편집 모듈(200)에 포함된 구성 요소의 동작은 프로세서(920)의 동작으로 이해될 수 있다. 예를 들어, 프로세서(920)는 미디어 파일 편집 모듈(200)에 포함된 구성 요소를 이용하여 다양한 실시예에 따른 동작을 수행할 수 있다.
본 개시의 다양한 실시예에서 미디어 파일 편집 모듈의 일부 컴포넌트가 생략되거나 다른 컴포넌트가 추가될 수 있으며, 본 개시의 다양한 실시예는 이에 제한되지 않는다.
예시적인 실시예에 따른 헤더는 메타 데이터를 포함할 수 있다. 예시적인 실시예에 따른 메타 데이터는 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보, 트랙 정보 및 재생 구간 정보 중 적어도 하나를 포함할 수 있다. 메타 데이터는 미디어 데이터 획득 경로와 관련된 제1 메타 데이터 및/또는 미디어 데이터 재생과 관련된 제2 메타 데이터를 포함할 수 있다. 예를 들어, 제1 메타 데이터는 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보 미디어 파일의 특성 정보 및/또는 트랙 정보 중 적어도 하나를 포함할 수 있다. 또한 예를 들어, 제2 메타 데이터는 재생 구간 정보(예: 재생 프레임, 재생 시간)를 포함할 수 있다.
예시적인 실시예에 따른 입력부(210)는 사용자가 선택한 편집 대상 미디어 파일, 수정할 제1 메타 데이터 정보 및/또는 수정할 제2 메타 데이터 정보를 입력 받을 수 있다. 프로세서(920)는 입력부(210)를 통해 사용자가 선택한 편집 대상 미디어 파일, 수정할 제1 메타 데이터 정보 및/또는 수정할 제2 메타 데이터 정보를 수신할 수 있다.
예시적인 실시예에 따른 정보 표시부(230)는 제1 메타 데이터 및/또는 제2 메타 데이터를 표시할 수 있다. 프로세서(920)는 정보 표시부(230)를 이용하여 디스플레이를 통해 제1 메타 데이터 및/또는 제2 메타 데이터를 표시할 수 있다.
예시적인 실시예에 따른 미디어 파일 분석부(250)는 미디어 파일 포맷(format)을 인식하고 각 파일 포맷의 스펙에 따라 파일 구조를 분석하여 헤더와 미디어 데이터 영역과 같은 구성요소의 위치를 파악할 수 있다. 또한 미디어 파일 분석부(250)는 입력된 수정 정보에 따라 변경이 필요한 데이터의 위치(예를 들어, offset)를 식별할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 미디어 파일 분석부(250)를 이용하여 헤더와 미디어 데이터의 위치를 파악하고, 변경이 필요한 데이터의 위치를 식별할 수도 있다.
예시적인 실시예에 따른 헤더 수정부(270)는 기존 헤더(예: 제1 헤더)을 복사하여 새로운 헤더(예: 제2 헤더)을 추가할 수 있다. 또한 프로세서(920)는 헤더 수정부(270)를 이용하여 수정 대상 데이터와 대응되는 헤더에 포함된 메타 데이터를 수정하고 저장할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 헤더 수정부(270)를 이용하여 기존 헤더에 포함된 데이터로의 복원을 위해 기존 헤더(제1 헤더)의 위치(예를 들어, offset)값을 제2 헤더에 저장할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 헤더 수정부(270)를 이용하여 기존 헤더(제1 헤더)을 파일 파싱 과정에 무시되는 형태로 변경할 수 있다. 예를 들어, 프로세서(920)는 제1 헤더를 자유 공간으로 변경함으로써, 제1 헤더가 파일 파싱 과정에서 무시되도록 할 수 있다. 예시적인 실시예에 따른 미디어 파일 복원 과정에서, 프로세서(920)는 헤더 수정부(270)를 이용하여 기존 헤더(제1 헤더)을 다시 파일 파싱 과정에 유효한 형태로 변경할 수 있다. 예를 들어, 프로세서(920)는 자유 공간 상태인 제1 헤더를 moov 박스로 변경함으로써, 파일 파싱 과정에 유효한 형태로 변경할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 헤더 수정부(270)를 이용하여 미디어 파일 공유 과정에서 기존 헤더의 데이터를 무의미한 값으로 변경하는 동작도 수행할 수 있다. 미디어 파일 공유 방법의 다양한 실시예는 도 7을 참조하여 구체적으로 후술된다.
예시적인 실시예에 따른 파일 공유부(290)는 저장된 미디어 파일이 다른 전자 장치와 공유되거나 서버로 업로드 될 때, 헤더 수정부(270)를 통해서 기존 헤더(제1 헤더)의 데이터를 무의미한 값으로 변경한 후, 통신 회로를 포함하는 통신 모듈(990)(예, 도 9의 통신 모듈(990))을 통해 미디어 파일을 전송할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 파일 공유부(290)를 이용하여 사용자가 기존 헤더(제1 헤더)의 데이터 보존을 원하는 경우 기존 헤더의 데이터를 유지한 상태로 파일을 서버 및/또는 다른 전자 장치로 전송할 수 있다.
도 3은 예시적인 실시예에 따른 미디어 파일 정보 표시 화면을 설명하기 위한 도면이다.
도 3은 미디어 파일 정보 표시 화면(300), 동영상(310), 생성 시간(320), 촬영 위치(340), 저장 위치 정보(330) 및 촬영 장치 정보(350)가 도시되어 있다.
예시적인 실시예에 따른 미디어 파일 정보 표시 화면(300)에서는 미디어 파일인 동영상(310)과 관련된 정보가 표시되어 있다. 예시적인 실시예에 따른 동영상(310)과 관련된 정보는 제1 메타 데이터를 포함할 수 있다. 제1 메타 데이터는 미디어 파일의 생성 시간(320), 편집 시간, 촬영 위치(340), 촬영 장치 정보(350), 미디어 파일의 특성 정보 및/또는 트랙 정보 포함할 수 있다.
예시적인 실시예에 따른 생성 시간(320)은 미디어 파일이 생성된 시간을 의미할 수 있다. 예를 들어, 생성 시간(320)은 동영상(310)이 촬영된 시간을 의미할 수 있다. 도3에서는 동영상(310)이 촬영된 시간이 "2021.10.05, 7:19pm"일 수 있다.
예시적인 실시예에 따른 편집 시간은 미디어 파일이 편집과 관련된 시간을 의미할 수 있다. 예를 들어, 편집 시간은 편집을 시작한 시간, 편집에 소요된 시간 및/또는 편집이 완료된 시간을 포함할 수 있다. 예를 들어, 동영상(310)이 생성된 시간이 "2021.10.05, 7:19pm"이고, 사용자가 동영상(310)을 편집을 완료한 시간이 "2021.10.17, 2:23pm"인 경우, 편집 시간은 "2021.10.17, 2:23pm"일 수 있다.
예시적인 실시예에 따른 촬영 위치(340)는 미디어 파일이 생성된 위치를 의미할 수 있다. 예를 들어, 촬영 위치(340)는 동영상(310)이 촬영된 장소를 의미할 수 있다. 도 3에서는 동영상(310)이 촬영된 장소는 "대한민국, 경기도, 수원시, 영통구, 매탄동416번지" 일 수 있다.
예시적인 실시예에 따른 미디어 파일의 특성 정보는 미디어 파일의 특성과 관련된 정보를 포함할 수 있다. 예를 들어, 미디어 파일의 특성 정보는 회전 정보 및/또는 색상 정보를 포함할 수 있다.
예시적인 실시예에 따른 트랙 정보는 미디어 파일에 포함된 트랙과 관련된 정보를 포함할 수 있다. 예시적인 실시예에 따른 트랙(Track)은 미디어 샘플과 미디어 샘플에 대응하는 설명으로 구성된 논리적 구조일 수 있다. 예시적인 실시예에 따른 트랙 정보는 트랙 식별 정보, 트랙 생성 시간, 트랙 수정 시간 및/또는 디코딩시 필요한 코덱 정보를 포함할 수 있다.
예시적인 실시예에 따른 저장 위치 정보(330)는 전자 장치(901)에 포함된 메모리(930) (예: 도 9의 메모리(930))에 동영상(310)이 저장된 위치 정보를 포함할 수 있다. 예를 들어, 도3에 도시된 바와 같이 동영상(310)이 메모리(930)에 저장된 위치 정보(또는 파일 경로)는 "/internal storage/DCIM/Camera"일 수 있다. 다른 예시적인 실시예에 따른 저장 위치 정보(330)는 서버에 동영상(310)이 저장된 위치 정보를 포함할 수도 있다.
예시적인 실시예에 따른 촬영 장치 정보(350)는 미디어 파일을 획득한 전자 장치(901)와 관련된 정보를 포함할 수 있다. 예시적인 실시예에 따른 촬영 장치 정보는 모델명, 촬영 당시 상황 정보(예를 들어, 밝기, 시간), 촬영 장치의 물리적 스펙 정보(예를 들어, 렌즈 정보) 및/또는 촬영 장치 설정 정보(예를 들어, 조리개, 초점, 플래시 사용 여부, 줌)를 포함할 수 있다. 예를 들어, 도3에 도시된 바와 같이 동영상(310)을 촬영한 전자 장치인 촬영 장치 정보(350)는 "Samsung mobile 1234"와 같은 전자 장치의 모델명을 포함할 수 있다.
예시적인 실시예에 따른 미디어 파일 크기 정보는 미디어 파일의 크기와 관련된 정보를 포함할 수 있다. 예를 들어 동영상(310)의 크기 정보는 "3.49 MB"일 수 있다.
본 개시의 다양한 실시예에 따른 미디어 파일 정보 표시 화면(300)의 예시는 도 3에 도시된 예시에 제한되지 않는다. 예를 들어, 미디어 파일 정보 표시 화면(300)의 레이아웃 및/또는 포함되는 구성 요소의 종류가 상이할 수도 있다.
도 4는 예시적인 실시예에 따른 미디어 파일의 메타 데이터 편집 과정을 설명하기 위한 도면이다.
도 4에서는 원본 미디어 파일(400), 수정된 미디어 파일(401), 원본 미디어 파일의 제1 헤더(410), 미디어 샘플에 대응하는 오프셋 정보(411), 미디어 데이터(420), 수정된 미디어 파일의 제1 헤더(430), 제2 헤더(440), 추가된 정보(441, 442) 및 제1 헤더 위치 정보(443)가 도시되어 있다.
예시적인 실시예에 따른 도 4는 도 3에 도시된 미디어 파일 중 하나인 동영상(310)과 관련된 제1 메타 데이터를 수정하는 과정을 설명하기 위한 도면일 수 있다. 도 3에 도시된 동영상(310)과 관련된 제1 메타 데이터는 도 4에 도시된 원본 미디어 파일의 제1 헤더(410)에 포함될 수 있다. 또한 동영상(310)과 관련된 미디어 데이터는 도 4에 도시된 미디어 데이터(420)에 포함될 수 있다.
예시적인 실시예에 따른 프로세서(920)(예: 도 9의 프로세서(920))는 편집 대상 미디어 파일의 수정 정보에 기초하여 제2 헤더(440)에 포함된 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보 및 트랙 정보 중 적어도 하나를 수정할 수 있다. 예를 들어, 동영상(310)의 생성 시간이 잘못된 경우, 사용자는 임의로 생성 시간을 수정할 수 있고, 프로세서(920)는 사용자의 입력에 기초한 수정 정보에 기초하여 제1 메타 데이터에 포함된 동영상(310)의 생성 시간을 수정할 수 있다. 또 다른 예를 들어, 동영상(310)을 촬영하는데 사용된 촬영 장치 정보가 실제로는 장치A인데, 장치B로 저장되어 있는 경우, 사용자는 이를 장치A로 수정할 수 있다. 프로세서(920)는 사용자의 입력에 기초한 수정 정보에 기초하여 제1 메타 데이터에 포함된 촬영 장치 정보를 장치B에서 장치A로 수정할 수 있다.
예시적인 실시예에 따른 원본 미디어 파일(400)은 편집 대상 미디어 파일에 포함될 수 있다. 원본 미디어 파일(400)은 수정되기 전 상태의 동영상 파일을 포함할 수 있다. 예시적인 실시예에 따른 수정된 미디어 파일(401)은 수정 정보에 기초하여 원본 미디어 파일(400)을 수정한 미디어 파일을 포함할 수 있다. 예시적인 실시예에 따른 원본 미디어 파일의 제1 헤더(410)는 원본 미디어 파일에 포함된 기존 헤더를 포함할 수 있다. 예시적인 실시예에 따른 미디어 샘플에 대응하는 오프셋 정보(411)는 원본 미디어 파일의 제1 헤더(410)에 포함될 수 있다. 예시적인 실시예에 따른 미디어 샘플에 대응하는 오프셋 정보(411)는 미디어 데이터에 포함된 적어도 하나의 미디어 샘플 각각이 저장 공간에서 저장된 위치와 관련된 정보를 포함할 수 있다. 예시적인 실시예에 따른 저장 공간은 메모리(예: 도 9의 메모리(930))를 포함할 수 있다. 예를 들어, 미디어 파일이 ISOBMFF 형식인 경우, 미디어 샘플에 대응하는 오프셋 정보(411)는 moov 박스에 포함된 stco(sample to chunk offset box)일 수 있다. stco에 포함된 "chunk_offset #1: offset1"의 의미는 "데이터 청크1은 미디어 데이터에서 시작 주소로부터 오프셋1만큼 떨어진 지점부터 저장되어 있을 수 있다."라는 의미를 포함할 수 있다. 이를 통해, 프로세서(920)는 stco에 포함된 정보를 이용하여 미디어 데이터(420)에서 데이터 청크(또는 미디어 샘플)을 식별할 수 있다.
예시적인 실시예에 따른 오프셋은 배열이나 자료 구조의 오브젝트 내에서 오브젝트의 시작 주소부터 주어진 특정 지점까지의 변위차를 나타내는 숫자를 의미할 수 있다.
예시적인 실시예에 따른 미디어 데이터(420)는 미디어 파일이 ISOBMFF 형식인 경우, mdat박스일 수 있다. 예시적인 실시예에 따른 미디어 데이터(420)는 적어도 하나의 데이터 청크(또는 미디어 샘플)을 포함할 수 있다. 예를 들어, 데이터 청크1은 시작 주소부터 오프셋1만큼 떨어진 위치에 저장되어 있을 수 있다. 또 다른 예를 들어, 데이터 청크2는 시작 주소부터 오프셋2만큼 떨어진 위치에 저장되어 있을 수도 있다.
예시적인 실시예에 따른 수정된 미디어 파일의 제1 헤더(430)는 원본 미디어 파일의 제1 헤더(410)를 자유 공간으로 변경한 헤더일 수 있다. 예를 들어, 프로세서(920)는 원본 미디어 파일의 제1 헤더(410)가 파일 파싱되는 것을 방지하기 위하여 자유 공간으로 변경할 수 있다. 이를 통해, 수정된 미디어 파일의 제1 헤더(430)는 파일 파싱 과정에서 파싱되지 않을 수 있다. 도4에 도시된 바와 같이 제1 헤더가 자유 공간으로 변경될 수 있다. 예시적인 실시예에 따른 프로세서(920)가 헤더를 자유 공간으로 변경하는 것은 해당하는 데이터(또는 box)가 헤더로 인식되지 않도록 변경하는 것을 포함할 수 있다. 예를 들어, 자유 공간으로 변경하는 것은 udta box, 존재하지 않는 box, free box 및/또는 skip box를 이용하여 헤더로 인식되지 않도록 변경하는 것일 수 있다.
예시적인 실시예에 따른 제2 헤더(440)는 미디어 파일에 새롭게 추가되는 헤더를 포함할 수 있다. 예시적인 실시예에 따른 제2 헤더(440)는 미디어 파일이 ISOBMFF 형식인 경우, moov 박스일 수 있다. 예시적인 실시예에 따른 프로세서(920)는 원본 미디어 파일의 제1 헤더(410)를 복사하여 제2 헤더(440)를 생성할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 수정 정보에 기초하여 제2 헤더(440)만 수정하고, 제1 헤더를 수정하지 않고 그대로 유지할 수 있다. 예를 들어, 프로세서(920)는 수정 정보에 기초하여 추가 정보를 제2 헤더(440)에 추가할 수 있다. 프로세서(920)는 수정 정보에 기초하여 추가된 정보1(441) 및 추가된 정보2(442)를 제2 헤더(440)에 추가할 수 있다. 이를 통해, 프로세서(920)는 미디어 데이터(420)를 이동시키지 않고, 추가된 정보1(441) 및 추가된 정보2(442)를 제2 헤더(440)에 추가할 수 있다.
예시적인 실시예에 따른 제2 헤더(440)는 미디어 샘플에 대응하는 오프셋 정보(예를 들어, stco)를 포함할 수 있다. 제2 헤더(440)에 포함된 미디어 샘플에 대응하는 오프셋 정보는 원본 미디어 파일의 제1 헤더(410)에 포함된 미디어 샘플에 대응하는 오프셋 정보(411)와 동일할 수도 있다. 다른 예시적인 실시예에 따른 제2 헤더(440)에 포함된 미디어 샘플에 대응하는 오프셋 정보는 수정 정보에 기초하여 원본 미디어 파일의 제1 헤더(410)에 포함된 미디어 샘플에 대응하는 오프셋 정보(411)를 수정한 정보를 포함할 수 있다.
예시적인 실시예에 따른 제1 헤더 위치 정보(443)는 수정된 미디어 파일의 제1 헤더(430)의 위치와 관련된 정보를 포함할 수 있다. 예시적인 실시예에 따른 편집 이력 정보를 생성하기 위해서, 프로세서(920)는 수정된 미디어 파일의 제1 헤더(430)에 접근할 필요가 존재할 수 있다. 다른 예시적인 실시예에 따른 미디어 파일 복원을 위해서, 프로세서(920)는 수정된 미디어 파일의 제1 헤더(430)에 접근할 필요가 존재할 수 있다. 따라서 프로세서(920)는 제2 헤더(440)에 포함된 제1 헤더 위치 정보(443)를 이용하여 제1 헤더에 접근할 수 있다.
도 5는 예시적인 실시예에 따른 동영상 재생 구간 편집 화면을 설명하기 위한 도면이다.
도 5에서는 동영상 재생 구간 편집 화면(500), 동영상(510), 재생 구간(520) 및 편집된 재생 구간(530)이 도시되어 있다.
예시적인 실시예에 따른 동영상 재생 구간 편집 화면(500)은 동영상 편집 어플리케이션에서 동영상을 편집하기 위한 화면을 포함할 수 있다. 예시적인 실시예에 따른 동영상(510)은 편집 대상 미디어 파일 중 하나일 수 있다. 사용자는 편집하고자 하는 동영상(510)을 선택할 수 있고, 이 경우, 해당하는 동영상(510)은 편집 대상 미디어 파일에 포함될 수 있다. 예시적인 실시예에 따른 재생 구간(520)은 동영상(510)에 포함된 프레임을 사전 결정된 기준에 의하여 표시한 재생 구간을 포함할 수 있다. 예를 들어, 재생 구간(520)은 동영상(510)에 포함된 복수의 프레임들이 표시된 재생 구간을 포함할 수 있다. 이 경우, 동영상(510)에 포함된 복수의 프레임들 중 키 프레임들만 화면에 표시될 수도 있다. 예시적인 실시예에 따른 키 프레임은 시작 프레임과 마지막 프레임 중에서 전체 정보를 갖고 있어서 가장 중심이 되는 프레임을 포함할 수 있다. 다른 예시적인 실시예에 따른 키 프레임은 복수의 프레임들 중 적어도 일부 프레임 중에서 전체 정보를 갖고 있어서 가장 중심이 되는 프레임을 포함할 수 있다.
예시적인 실시예에 따른 편집된 재생 구간(530)은 재생 구간(520)의 적어도 일부를 포함할 수 있다. 프로세서(920)는 사용자의 입력 신호를 수신하여 재생 구간(520) 중 적어도 일부를 선택하여 편집된 재생 구간(530)을 생성할 수 있다. 예를 들어, 동영상(510)의 재생 구간(520)은 0분에서 10분일 수 있다. 사용자의 입력 신호는 2분에서 7분 사이의 동영상을 생성하는 편집 신호를 포함할 수 있다. 이 경우 프로세서(920)는 2분에서 7분 사이의 편집된 재생 구간(530)을 포함하는 동영상을 생성할 수 있다.
예시적인 실시예에 따른 프로세서(920)(예: 도 9의 프로세서(920))는 2분에서 7분 사이의 편집된 재생 구간(530)을 포함하는 동영상을 생성하면서, 미디어 파일의 헤더만 수정하고, 미디어 데이터는 수정하지 않을 수 있다. 동영상 편집에 따른 미디어 파일 변경에 대한 방법의 다양한 실시예는 도 6을 참조하여 구체적으로 후술된다.
본 개시의 다양한 실시예에 따른 동영상 재생 구간 편집 화면(500)의 예시는 도 5에 도시된 예시에 제한되지 않는다. 예를 들어, 동영상 재생 구간 편집 화면(500)의 레이아웃 및/또는 포함되는 구성 요소의 종류가 상이할 수도 있다.
도 6은 예시적인 실시예에 따른 동영상 파일 편집 과정을 설명하기 위한 도면이다.
도 6에서는 원본 동영상 파일(600), 수정된 동영상 파일(601), 원본 동영상 파일의 제1 헤더(610), 키 프레임 정보(611), 미디어 샘플에 대응하는 오프셋 정보(612), 미디어 데이터(620), 수정된 동영상 파일의 제1 헤더(630), 제2 헤더(640), 수정된 키 프레임 정보(641), 수정된 미디어 샘플에 대응하는 오프셋 정보(642) 및 제1 헤더 위치 정보(643)가 도시되어 있다. 예시적인 실시예에 따른 동영상 파일은 미디어 파일 중 하나일 수 있다.
예시적인 실시예에 따른 도 6는 도 5에 도시된 동영상(510)과 관련된 제2 메타 데이터를 수정하는 과정을 설명하기 위한 도면일 수 있다. 동영상(510)과 관련된 제2 메타 데이터는 재생 구간(520)에 대응하는 재생 구간 정보를 포함할 수 있다. 또한 동영상(510)과 관련된 미디어 데이터는 도 6에 도시된 미디어 데이터(620)에 포함될 수 있다.
예시적인 실시예에 따른 프로세서(920)(예: 도 9의 프로세서(920))는 편집 대상 미디어 파일의 수정 정보에 기초하여 제2 헤더에 포함된 재생 구간 정보를 수정할 수 있다. 예를 들어, 동영상(510)의 재생 구간이 0분~10분이고, 수정 정보는 2분~7분 사이의 재생 구간만 포함하는 동영상으로 수정하는 정보를 포함할 수 있다. 처음에 제2 헤더는 제1 헤더를 복사한 상태이므로, 재생 구간 0분~10분 사이의 재생 구간을 포함하는 동영상과 관련된 메타 데이터를 포함할 수 있다. 프로세서(920)는 수정 정보에 기초하여 제2 헤더에 포함된 제2 메타 데이터를 2분~7분 사이의 재생 구간으로 수정할 수 있다. 이 경우, 프로세서(920)가 제2 헤더를 파싱하여 미디어 파일을 재생하는 경우, 2분에서 7분 사이의 동영상이 재생될 수 있다.
예시적인 실시예에 따른 원본 동영상 파일(600)은 편집 대상 미디어 파일에 포함될 수 있다. 원본 동영상 파일(600)은 수정되기 전 상태의 동영상 파일을 포함할 수 있다.
예시적인 실시예에 따른 수정된 동영상 파일(601)은 수정 정보에 기초하여 원본 동영상 파일(600)을 수정한 미디어 파일을 포함할 수 있다. 본 명세서에서 사용된 "~에 기초한"은 적어도 ~에 기초한 것을 포함한다는 점에 유의한다.
예시적인 실시예에 따른 원본 동영상 파일의 제1 헤더(610)는 원본 동영상 파일(600)에 포함된 기존 헤더를 포함할 수 있다.
예시적인 실시예에 따른 키 프레임 정보(611)는 미디어 데이터(620)에 포함된 적어도 하나의 미디어 샘플이 각각 참조하는 키 프레임에 대한 정보를 포함할 수 있다. 예시적인 실시예에 따른 키 프레임 정보(611)는 미디어 파일이 ISOBMFF 형식인 경우, stss(sync sample)일 수 있다. 예를 들어, 키 프레임 정보(611)는 미디어 샘플이 참조하는 키 프레임의 번호를 테이블 형태로 포함할 수 있다.
예시적인 실시예에 따른 미디어 샘플에 대응하는 오프셋 정보(612)는 미디어 데이터에 포함된 적어도 하나의 미디어 샘플 각각이 저장된 위치와 관련된 정보를 포함할 수 있다.
예시적인 실시예에 따른 미디어 데이터(620)는 동영상(510) 재생을 위해 필요한 적어도 하나의 미디어 샘플을 포함할 수 있다.
예시적인 실시예에 따른 수정된 동영상 파일의 제1 헤더(630)는 원본 동영상 파일의 제1 헤더(610)를 자유 공간으로 변경한 헤더일 수 있다.
예시적인 실시예에 따른 제2 헤더(640)는 동영상 파일에 새롭게 추가되는 헤더를 포함할 수 있다.
예시적인 실시예에 따른 수정된 키 프레임 정보(641)는 수정 정보에 기초하여 수정된 키 프레임 정보를 포함할 수 있다. 예를 들어, 원본 동영상에는 키 프레임1 ~ 키 프레임10까지 포함되어 있을 수 있다. 프로세서(920)는 수정 정보에 기초하여, 키 프레임1~ 키 프레임3만 유지하고 키 프레임4 ~ 키 프레임10까지는 삭제할 수 있다. 이 경우, 수정된 키 프레임 정보(641)는 키 프레임1(예, 도6에서의 #sync sample 1)의 정보, 키 프레임2(예, 도6에서의 #sync sample 2)의 정보 및 키 프레임3(예, 도6에서의 #sync sample 3)의 정보를 포함할 수 있다.
예시적인 실시예에 따른 수정된 미디어 샘플에 대응하는 오프셋 정보(642)는 수정 정보에 기초하여 수정된 키 미디어 샘플에 대응하는 오프셋 정보를 포함할 수 있다. 예를 들어, 수정된 미디어 샘플에 대응하는 오프셋 정보(642)는 도 6에 도시된 바와 같이 데이터 청크1의 오프셋1(chunk_offset #1), 데이터 청크2의 오프셋2(chunk_offset #2) 및 데이터 청크3의 오프셋3(chunk_offset #3)을 포함할 수 있다.
예시적인 실시예에 따른 제1 헤더 위치 정보(643)는 수정된 동영상 파일의 제1 헤더(630)의 위치와 관련된 정보를 포함할 수 있다.
예시적인 실시예에 따른 동영상(510)은 0초~100초의 재생 구간을 포함하는 동영상일 수 있다. 키 프레임 정보(611)는 1초 단위의 미디어 샘플 각각에 대응하는 키 프레임에 대한 정보를 포함할 수 있다. 예를 들어, 동영상(510)이 0초~100초의 재생 구간을 포함하는 경우, 키 프레임도 100개 존재할 수 있다. 이 경우, 수정 정보는 0초~100초의 재생 구간의 동영상을 0초~3초 재생 구간의 동영상으로 수정하는 정보를 포함할 수 있다. 프로세서(920)는 수정 정보에 기초하여 원본 동영상 파일의 제1 헤더(610)에 포함된 키 프레임 정보(611) 및 미디어 샘플에 대응하는 오프셋 정보(612)를 수정할 수 있다. 프로세서(920)는 원본 동영상 파일의 제1 헤더(610)를 복사하여 제2 헤더를 생성할 수 있다. 복사된 제2 헤더는 원본 동영상 파일의 제1 헤더(610)에 포함된 키 프레임 정보(611) 및 미디어 샘플에 대응하는 오프셋 정보(612)를 그대로 포함할 수 있다. 프로세서(920)는 0초~3초 재생 구간의 동영상으로 수정하기 위하여 복수의 키 프레임들 중 키 프레임1, 키 프레임2 및 키 프레임3만 유지하고 나머지 키 프레임은 삭제함으로써 수정된 키 프레임 정보(641)를 생성할 수 있다. 또한 프로세서(920)는 복수의 오프셋 정보들 중 데이터 청크1(또는 미디어 샘플1), 데이터 청크2(또는 미디어 샘플2) 및 데이터 청크3(또는 미디어 샘플3)만 유지하고 나머지 데이터 청크들은 삭제함으로써 수정된 미디어 샘플에 대응하는 오프셋 정보(642)를 생성할 수 있다. 이 때, 키 프레임1과 데이터 청크1, 키 프레임2와 데이터 청크2 및 키 프레임3과 데이터 청크3은 서로 대응될 수도 있다. 이를 통해 제2 헤더(640)는 수정된 키 프레임 정보(641) 및 수정된 미디어 샘플에 대응하는 오프셋 정보(642)를 포함할 수 있다. 프로세서(920)는 제2 헤더(640)를 파싱함으로써, 0초~3초 사이의 동영상을 재생할 수 있다.
도 7은 예시적인 실시예에 따른 미디어 파일의 공유 방법을 설명하기 위한 흐름도(700)이다.
예시적인 실시예에 따른 프로세서(예: 도 9의 프로세서(920))는 전송 대상 미디어 파일을 결정할 수 있다. 예시적인 실시예에 따른 전송 대상 미디어 파일은 다른 전자 장치 및/또는 서버에 공유되는 미디어 파일을 의미할 수 있다. 프로세서(920)는 사용자로부터 복수의 미디어 파일들 중 일부 미디어 파일에 대한 선택 입력을 수신(710)할 수 있다. 사용자가 공유하고자 하는 미디어 파일에 대한 선택 입력 신호를 프로세서(920)가 수신하는 경우, 프로세서(920)는 해당하는 미디어 파일에 대한 데이터 처리를 수행하여 전송 대상 미디어 파일을 결정할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 선택된 미디어 파일을 분석(720)할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 선택된 미디어 파일을 분석하여 해당하는 미디어 파일의 구조를 분석할 수 있다. 프로세서(920)는 선택된 미디어 파일의 구조를 분석함으로써, 미디어 파일에 포함된 헤더 및/또는 미디어 데이터의 위치를 식별할 수 있다. 또한 프로세서(920)는 미디어 파일의 구조를 분석함으로써, 수정 대상이 되는 데이터의 위치를 미디어 파일 내에서 식별할 수도 있다.
예시적인 실시예에 따른 프로세서(920)는 미디어 파일을 분석하여 제2 헤더가 미디어 파일에 존재하는지 여부를 판단할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 제1 헤더가 유지된 상태로 제2 헤더가 추가된 미디어 파일인지 여부(730)를 판단할 수 있다. 예시적인 실시예에 따른 제2 헤더가 추가된 미디어 파일인 경우(도 7에서의 730-Yes), 프로세서(920)는 제1 헤더의 제거를 원하는지 여부에 기초하여 전송 대상 미디어 파일을 결정할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 제거를 원하는지 여부(740)를 사용자의 선택 입력 신호에 기초하여 결정할 수 있다. 프로세서(920)는 사용자로부터 제1 헤더의 제거 여부에 대한 선택 입력 신호를 수신할 수 있다. 예시적인 실시예에 따른 제1 헤더가 존재하면, 편집 이력 정보가 전송 대상 미디어 파일에 포함될 수 있다. 예를 들어, 해당하는 미디어 파일을 수신하는 전자 장치 및/또는 서버는 제1 헤더에 포함된 메타 데이터를 이용하여 미디어 파일의 편집 전 상태를 알 수 있다. 예를 들어, 제1 헤더가 전송 대상 미디어 파일에 존재하면, 전자 장치 및/또는 서버는 제1 헤더에 포함된 정보를 이용하여 편집 이력 정보를 추출할 수 있다. 따라서 사용자는 자신의 선택에 따라 공유하는 미디어 파일에 편집 이력 정보를 포함시킬지 말지를 결정할 필요가 존재할 수 있다. 편집 이력 정보가 다른 사용자에게 공유되는 경우, 사생활이 보호되지 않고 개인 정보가 노출되는 상황이 발생할 수도 있으므로, 사용자로 하여금 미디어 파일에 제1 헤더(또는 편집 이력 정보)를 포함시킬지 말지를 결정하도록 할 수 있다.
예시적인 실시예에 따른 제2 헤더가 추가되지 않은 미디어 파일인 경우, 해당하는 미디어 파일은 수정된 적이 없는 미디어 파일을 포함할 수 있다. 이 경우(730-No), 해당하는 미디어 파일을 전송 대상 미디어 파일로 결정하고, 미디어 파일을 다른 전자 장치에 전송(760)할 수 있다.
예시적인 실시예에 따른 사용자가 제1 헤더의 제거를 원하는 경우(740-Yes), 프로세서(920)는 제1 헤더에 포함된 데이터를 사전 결정된 값으로 변경(750)할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 제1 헤더에 포함된 데이터를 무의미한 값으로 변경할 수도 있다. 예를 들어, 프로세서(920)는 제1 헤더에 포함된 데이터를 모두 0으로 변경할 수 있다. 따라서 전송 대상 미디어 파일에 포함된 제1 헤더를 사전 결정된 값으로 변경된 상태일 수 있다.
예시적인 실시예에 따른 사용자가 제1 헤더의 제거를 원하지 않는 경우(740-No), 프로세서(920)는 제1 헤더를 변경하지 않고, 전송 대상 미디어 파일을 결정할 수 있다. 예를 들어, 전송 대상 미디어 파일은 제1 헤더, 제2 헤더 및 미디어 파일을 포함할 수 있다. 이 경우는 사용자가 편집 이력 정보를 다른 사용자와 공유하기를 원하는 경우일 수도 있다. 예시적인 실시예에 따른 편집 이력 정보는 미디어 파일을 수정한 로그 데이터를 포함할 수 있다. 따라서, 프로세서(920)는 편집 이력 정보를 이용하여, 전송 대상 미디어 파일을 편집 전 상태의 미디어 파일로 되돌릴 수도 있다. 전송 대상 미디어 파일을 수신한 전자 장치는 편집 이력 정보를 디스플레이를 통해 표시할 수 있고, 나아가 편집 이력 정보를 이용하여 편집 전 상태의 미디어 파일을 재생할 수도 있다. 예를 들어, 원본 동영상은 0분~100분의 재생 구간을 포함하고, 편집된 동영상은 0분~3분의 재생 구간을 포함할 수 있다. 전송 대상 미디어 파일을 수신한 전자 장치는 0분~3분의 재생 구간을 포함하는 편집된 동영상 뿐만 아니라, 0분~100분의 재생 구간을 포함하는 원본 동영상도 재생할 수 있다.
예시적인 실시예에 따른 미디어 파일이 동영상인 경우, 편집된 동영상은 원본 동영상의 적어도 일부의 데이터만 포함할 수 있다. 예를 들어, 원본 동영상은 0분~100분의 재생 구간을 포함하는 동영상일 수 있다. 그리고 편집된 동영상은 0분~3분의 재생 구간을 포함하는 동영상일 수 있다. 전술한 미디어 파일 편집 방법은 프로세서(920)가 수정 정보에 기초하여 미디어 데이터는 유지하고 헤더만 수정하는 방법을 포함할 수 있다. 미디어 데이터를 유지하는 경우, 전송 대상 미디어 파일이 매우 클 수 있다. 따라서 전송 효율을 도모하기 위하여 프로세서(920)는 수정 정보에 기초하여 제거된 재생 구간과 대응되는 적어도 일부의 미디어 샘플을 미디어 데이터에서 제거할 수 있다. 예를 들어, 제거된 재생 구간은 4분~100분의 재생 구간을 포함할 수 있다. 프로세서(920)는 4분~100분의 재생 구간에 각각 대응하는 미디어 샘플들을 미디어 데이터에서 제거할 수 있다. 따라서, 미디어 데이터는 0분~3분의 재생 구간에 각각 대응하는 미디어 샘플들만 포함할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 적어도 일부의 미디어 샘플이 제거된 미디어 데이터를 포함하는 미디어 파일을 전송 대상 미디어 파일로 결정할 수 있다. 이 경우, 전송 대상 미디어 파일은 원본 미디어 파일과 비교하여 상대적으로 적은 용량을 포함할 수 있으며, 이를 통해 전송 효율을 도모할 수 있다.
예시적인 실시예에 따른 전송 대상 미디어 파일이 결정된 경우, 프로세서(920)는 다른 전자 장치 및/또는 서버에 미디어 파일을 전송(760)할 수 있다.
도 8은 예시적인 실시예에 따른 미디어 파일의 복원 방법을 설명하기 위한 흐름도(800)다.
예시적인 실시예에 따른 프로세서(예: 도 9의 프로세서(920))는 미디어 파일을 복원할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 미디어 파일에 대한 사용자 선택 입력을 수신(810)할 수 있다. 사용자는 복원시키고자 하는 미디어 파일을 선택할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 해당 미디어 파일에 대한 복원 신호를 수신(820)할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 미디어 파일의 복원 정보를 수신할 수 있다. 예시적인 실시예에 따른 복원 정보는 미디어 파일의 복원과 관련된 정보를 포함할 수 있다. 복원 정보는 예를 들어, 사용자가 희망하는 복원 시점 정보, 복원 대상 파일 정보 및/또는 복원 대상 파일에 포함된 데이터의 위치 정보 중 적어도 일부를 포함할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 제1 헤더의 위치를 식별하여 제1 헤더를 파일 파싱 가능 형태로 변경(830)할 수 있다. 예시적인 실시예에 따른 프로세서(920)는 제2 헤더에 포함된 제1 헤더의 위치 정보에 기초하여 제1 헤더의 위치를 식별할 수 있다. 도6을 참조하여 설명하면, 프로세서(920)는 제2 헤더(640)에 포함된 제1 헤더 위치 정보(643)를 이용하여 제1 헤더의 저장 공간 상에서의 위치를 식별할 수 있다. 프로세서(920)는 식별된 제1 헤더를 파일 파싱 가능 형태로 변환할 수 있다. 이를 통해, 프로세서(920)는 제1 헤더를 파일 파싱함으로써 제1 헤더에 포함된 메타 데이터를 추출할 수 있다.
예시적인 실시예에 따른 프로세서(920)는 미디어 파일의 편집 이력 정보를 유지할지 여부에 기초하여 제2 헤더를 제거(840)할 수 있다. 예시적인 실시예에 따른 편집 이력 정보는 미디어 파일을 수정한 로그 데이터를 포함할 수 있다. 따라서, 프로세서(920)는 편집 이력 정보를 이용하여, 전송 대상 미디어 파일을 편집 전 상태의 미디어 파일로 되돌릴 수도 있다. 예시적인 실시예에 따른 사용자 선택 입력은 미디어 파일의 편집 이력 정보를 유지하지 않는 선택 입력일 수 있다. 이 경우, 프로세서(920)는 제2 헤더를 제거할 수 있다. 다른 예시적인 실시예에 따른 사용자 선택 입력은 미디어 파일의 편집 이력 정보를 유지하는 선택 입력일 수 있다. 이 경우, 프로세서(920)는 제2 헤더를 제거하지 않고 유지할 수 있다. 다만, 프로세서(920)는 제1 헤더로부터 메타 데이터를 추출해야 하므로, 제2 헤더가 파일 파싱 과정에서 파싱되지 않도록 방지할 필요가 존재할 수 있다. 따라서, 프로세서(920)는 제2 헤더에 포함된 데이터는 유지하면서, 제2 헤더를 자유 공간으로 변경하여, 파일 파싱 과정에서 파싱되지 않도록 방지할 수 있다.
도 9는 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 9은, 다양한 실시예들에 따른, 네트워크 환경(900) 내의 전자 장치(901)의 블록도이다. 도 9을 참조하면, 네트워크 환경(900)에서 전자 장치(901)는 제 1 네트워크(998)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(902)와 통신하거나, 또는 제 2 네트워크(999)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(904) 또는 서버(908) 중 적어도 하나와 통신할 수 있다. 일실시예에 따르면, 전자 장치(901)는 서버(908)를 통하여 전자 장치(904)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(901)는 프로세서(920), 메모리(930), 입력 모듈(950), 음향 출력 모듈(955), 디스플레이 모듈(960), 오디오 모듈(970), 센서 모듈(976), 인터페이스(977), 연결 단자(978), 햅틱 모듈(979), 카메라 모듈(980), 전력 관리 모듈(988), 배터리(989), 통신 모듈(990), 가입자 식별 모듈(996), 또는 안테나 모듈(997)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(901)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(978))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(976), 카메라 모듈(980), 또는 안테나 모듈(997))은 하나의 구성요소(예: 디스플레이 모듈(960))로 통합될 수 있다.
프로세서(920)는, 예를 들면, 소프트웨어(예: 프로그램(940))를 실행하여 프로세서(920)에 연결된 전자 장치(901)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(920)는 다른 구성요소(예: 센서 모듈(976) 또는 통신 모듈(990))로부터 수신된 명령 또는 데이터를 휘발성 메모리(932)에 저장하고, 휘발성 메모리(932)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(934)에 저장할 수 있다. 일실시예에 따르면, 프로세서(920)는 메인 프로세서(921)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(923)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(901)가 메인 프로세서(921) 및 보조 프로세서(923)를 포함하는 경우, 보조 프로세서(923)는 메인 프로세서(921)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(923)는 메인 프로세서(921)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(923)는, 예를 들면, 메인 프로세서(921)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(921)를 대신하여, 또는 메인 프로세서(921)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(921)와 함께, 전자 장치(901)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(960), 센서 모듈(976), 또는 통신 모듈(990))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(923)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(980) 또는 통신 모듈(990))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(923)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(901) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(908))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(930)는, 전자 장치(901)의 적어도 하나의 구성요소(예: 프로세서(920) 또는 센서 모듈(976))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(940)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(930)는, 휘발성 메모리(932) 또는 비휘발성 메모리(934)를 포함할 수 있다.
프로그램(940)은 메모리(930)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(942), 미들 웨어(944) 또는 어플리케이션(946)을 포함할 수 있다.
입력 모듈(950)은, 전자 장치(901)의 구성요소(예: 프로세서(920))에 사용될 명령 또는 데이터를 전자 장치(901)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(950)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(955)은 음향 신호를 전자 장치(901)의 외부로 출력할 수 있다. 음향 출력 모듈(955)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(960)은 전자 장치(901)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(960)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(960)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(970)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(970)은, 입력 모듈(950)을 통해 소리를 획득하거나, 음향 출력 모듈(955), 또는 전자 장치(901)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(902))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(976)은 전자 장치(901)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(976)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(977)는 전자 장치(901)가 외부 전자 장치(예: 전자 장치(902))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(977)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(978)는, 그를 통해서 전자 장치(901)가 외부 전자 장치(예: 전자 장치(902))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(978)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(979)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(979)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(980)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(980)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(988)은 전자 장치(901)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(988)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(989)는 전자 장치(901)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(989)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(990)은 전자 장치(901)와 외부 전자 장치(예: 전자 장치(902), 전자 장치(904), 또는 서버(908)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(990)은 프로세서(920)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(990)은 무선 통신 모듈(992)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(994)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(998)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(999)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(904)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(992)은 가입자 식별 모듈(996)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(998) 또는 제 2 네트워크(999)와 같은 통신 네트워크 내에서 전자 장치(901)를 확인 또는 인증할 수 있다.
무선 통신 모듈(992)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(992)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(992)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(992)은 전자 장치(901), 외부 전자 장치(예: 전자 장치(904)) 또는 네트워크 시스템(예: 제 2 네트워크(999))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(992)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(997)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(997)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(997)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(998) 또는 제 2 네트워크(999)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(990)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(990)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(997)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(997)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(999)에 연결된 서버(908)를 통해서 전자 장치(901)와 외부의 전자 장치(904)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(902, 또는 904) 각각은 전자 장치(901)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(901)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(902, 904, 또는 908) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(901)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(901)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(901)로 전달할 수 있다. 전자 장치(901)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(901)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(904)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(908)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(904) 또는 서버(908)는 제 2 네트워크(999) 내에 포함될 수 있다. 전자 장치(901)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
Claims (15)
- 전자 장치는하나 이상의 프로세서; 및상기 하나 이상의 프로세서에서 실행 가능한 명령들을 저장하는 메모리;를 포함하고,상기 메모리는 미디어 파일 및 상기 미디어 파일을 편집하기 위한 명령들을 저장하고, 그리고상기 명령들을 실행하는 프로세서는,편집 대상 미디어 파일로부터 메타 데이터를 포함하는 제1 헤더 및 적어도 하나의 미디어 샘플을 포함하는 미디어 데이터를 식별하고,상기 제1 헤더에 기초하여 제2 헤더를 생성하고,수정 정보에 기초하여 상기 제2 헤더를 수정하고,상기 제1 헤더의 위치가 상기 미디어 데이터의 위치보다 앞에 있는 경우, 상기 제2 헤더의 위치를 상기 미디어 데이터의 뒤로 결정하고,상기 제1 헤더의 위치가 상기 미디어 데이터의 위치보다 뒤에 있는 경우, 상기 제2 헤더의 위치를 상기 제1 헤더의 위치를 기초로 결정하고, 그리고미디어 파일 정보 추출 과정에서 상기 제2 헤더의 메타 데이터를 추출하는,전자 장치.
- 제1항에 있어서,상기 편집 대상 미디어 파일의 수정 정보는상기 메타 데이터의 수정 정보 및 상기 미디어 데이터의 수정 정보 중 적어도 하나를 포함하는,전자 장치.
- 제1항에 있어서,상기 메타 데이터는상기 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보, 트랙 정보 및 재생 구간 정보 중 적어도 하나를 포함하는,전자 장치.
- 제1항에 있어서,상기 프로세서는상기 제1 헤더를 복사하여 제2 헤더를 생성하는,전자 장치.
- 제1항에 있어서,상기 프로세서는,상기 편집 대상 미디어 파일의 수정 정보에 기초하여 상기 제2 헤더에 포함된 상기 미디어 파일의 생성 시간, 편집 시간, 촬영 위치, 촬영 장치 정보, 미디어 파일의 특성 정보 및 트랙 정보 중 적어도 하나를 수정하는,전자 장치.
- 제1항에 있어서,상기 프로세서는상기 편집 대상 미디어 파일의 수정 정보에 기초하여 상기 제2 헤더에 포함된 재생 구간 정보를 수정하는,전자 장치.
- 제1항에 있어서,상기 프로세서는파일 파싱(parsing) 과정에서 상기 제1 헤더를 제외하도록 상기 제1 헤더를 변경하는,전자 장치.
- 제1항에 있어서,상기 프로세서는,미디어 파일을 분석하여 상기 제2 헤더가 상기 미디어 파일에 존재하는지 여부를 판단하고, 그리고상기 제2 헤더가 존재하는 경우, 상기 제1 헤더의 제거 여부 신호에 기초하여 전송 대상 미디어 파일에 상기 제1 헤더를 포함시킬지 여부를 결정하는,전자 장치.
- 제8항에 있어서,상기 프로세서는상기 제1 헤더를 제거하는 경우, 상기 제1 헤더에 포함된 데이터를 사전 결정된 값으로 변경하는,전자 장치.
- 제8항에 있어서,상기 프로세서는,상기 제1 헤더를 제거하지 않는 경우, 편집 이력 정보를 공유하기 위하여 상기 제1 헤더, 상기 제2 헤더 및 상기 미디어 데이터를 포함하는 미디어 파일을 상기 전송 대상 미디어 파일로 결정하는,전자 장치.
- 제8항에 있어서,상기 프로세서는상기 수정 정보에 기초하여 제거된 재생 구간과 대응되는 상기 적어도 하나의 미디어 샘플의 적어도 일부를 상기 미디어 데이터에서 제거하고, 그리고상기 적어도 하나의 미디어 샘플의 적어도 일부가 제거된 미디어 데이터를 포함하는 미디어 파일을 상기 전송 대상 미디어 파일로 결정하는,전자 장치.
- 제1항에 있어서,상기 프로세서는상기 미디어 파일의 복원 정보를 수신하고,상기 제2 헤더에 포함된 상기 제1 헤더의 위치 정보에 기초하여 상기 제1 헤더의 위치를 식별하고,상기 제1 헤더를 파일 파싱 가능 형태로 변환하고, 그리고상기 미디어 파일의 편집 이력 정보를 유지할지 여부에 기초하여 상기 제2 헤더를 제거하는,전자 장치.
- 미디어 파일을 편집하는 방법에 있어서,편집 대상 미디어 파일로부터 메타 데이터를 포함하는 제1 헤더 및 적어도 하나의 미디어 샘플을 포함하는 미디어 데이터를 식별하는 단계;상기 제1 헤더에 기초하여 제2 헤더를 생성하는 단계;수정 정보에 기초하여 상기 제2 헤더를 수정하는 단계;상기 제1 헤더의 위치가 상기 미디어 데이터의 위치보다 앞에 있는 경우, 상기 제2 헤더의 위치를 상기 미디어 데이터의 뒤로 결정하는 단계; 상기 제1 헤더의 위치가 상기 미디어 데이터의 위치보다 뒤에 있는 경우, 상기 제2 헤더의 위치를 상기 제1 헤더의 위치를 기초로 결정하는 단계; 및상기 제2 헤더의 메타 데이터를 추출하는 단계;을 포함하는,미디어 파일을 편집하는 방법.
- 제13항에 있어서,전송 대상 미디어 파일을 결정하는 단계를 더 포함하고,상기 전송 대상 미디어 파일을 결정하는 단계는미디어 파일을 분석하여 상기 제2 헤더가 상기 미디어 파일에 존재하는지 여부를 판단하는 단계; 및상기 제2 헤더가 존재하는 경우, 상기 제1 헤더의 제거 여부 신호에 기초하여 상기 전송 대상 미디어 파일에 상기 제1 헤더를 포함시킬지 여부를 결정하는 단계;을 포함하는,미디어 파일 편집 방법.
- 하드웨어와 결합되어 제13항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22895832.8A EP4383726A1 (en) | 2021-11-19 | 2022-09-27 | Method and device for editing media file |
US18/067,236 US20230161807A1 (en) | 2021-11-19 | 2022-12-16 | Device and method for editing media file |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210160404 | 2021-11-19 | ||
KR10-2021-0160404 | 2021-11-19 | ||
KR1020210170760A KR20230073928A (ko) | 2021-11-19 | 2021-12-02 | 미디어 파일을 편집하기 위한 방법 및 장치 |
KR10-2021-0170760 | 2021-12-02 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/067,236 Continuation US20230161807A1 (en) | 2021-11-19 | 2022-12-16 | Device and method for editing media file |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023090623A1 true WO2023090623A1 (ko) | 2023-05-25 |
Family
ID=86397230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/014421 WO2023090623A1 (ko) | 2021-11-19 | 2022-09-27 | 미디어 파일을 편집하기 위한 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023090623A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005215894A (ja) * | 2004-01-28 | 2005-08-11 | Canon Inc | データ処理装置、データ処理方法及びデータ処理プログラム |
KR20080006295A (ko) * | 2006-07-12 | 2008-01-16 | 엠텍비젼 주식회사 | 제이펙 이미지 처리 방법, 이미지 처리 장치 및 이를구현하기 위한 프로그램이 기록된 기록매체 |
JP2009271635A (ja) * | 2008-05-01 | 2009-11-19 | Sony Corp | ファイルの編集装置及びファイルの編集方法 |
KR20120019643A (ko) * | 2010-08-26 | 2012-03-07 | 삼성전자주식회사 | 영상 촬영 장치 및 그 편집 영상 복구 방법 |
JP2021166338A (ja) * | 2020-04-06 | 2021-10-14 | キヤノン株式会社 | 撮像装置、記録方法、及びプログラム |
-
2022
- 2022-09-27 WO PCT/KR2022/014421 patent/WO2023090623A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005215894A (ja) * | 2004-01-28 | 2005-08-11 | Canon Inc | データ処理装置、データ処理方法及びデータ処理プログラム |
KR20080006295A (ko) * | 2006-07-12 | 2008-01-16 | 엠텍비젼 주식회사 | 제이펙 이미지 처리 방법, 이미지 처리 장치 및 이를구현하기 위한 프로그램이 기록된 기록매체 |
JP2009271635A (ja) * | 2008-05-01 | 2009-11-19 | Sony Corp | ファイルの編集装置及びファイルの編集方法 |
KR20120019643A (ko) * | 2010-08-26 | 2012-03-07 | 삼성전자주식회사 | 영상 촬영 장치 및 그 편집 영상 복구 방법 |
JP2021166338A (ja) * | 2020-04-06 | 2021-10-14 | キヤノン株式会社 | 撮像装置、記録方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020153772A1 (en) | Electronic device and method of providing content therefor | |
WO2020171565A1 (en) | Electronic device for processing image and image processing method thereof | |
WO2021157893A1 (en) | Electronic device and method for saving image | |
WO2023085563A1 (ko) | Ipfs를 활용한 중앙화 대체불가능 토큰의 발행 장치 및 방법 | |
WO2022030882A1 (ko) | 오디오 데이터를 처리하는 전자 장치와 이의 동작 방법 | |
WO2020171558A1 (en) | Method of providing augmented reality contents and electronic device therefor | |
WO2023090623A1 (ko) | 미디어 파일을 편집하기 위한 방법 및 장치 | |
WO2023085679A1 (ko) | 전자 장치 및 편집 영상을 자동으로 생성하는 방법 | |
WO2022158932A1 (ko) | 개인화된 미디어 컨텐츠를 제공하는 방법 및 이를 이용한 전자 장치 | |
WO2023058860A1 (ko) | 멀티 서명된 apk 파일을 처리하는 전자 장치 및 그 동작 방법 | |
WO2022186646A1 (ko) | 이미지 생성을 위한 전자 장치 및 전자 장치의 동작 방법 | |
WO2022245116A1 (ko) | 전자 장치 및 전자 장치의 동작 방법 | |
WO2022030824A1 (ko) | 오디오 재생 및 화면 표시 방법 및 그 장치 | |
WO2024151079A1 (ko) | 전자 장치에서 이미지를 편집하는 방법 및 장치 | |
WO2023149770A1 (ko) | 전자 장치에서 영상을 편집하는 방법 및 장치 | |
WO2022231180A1 (ko) | 전자 장치 및 전자 장치의 동작 방법 | |
WO2022191455A1 (ko) | 파일 리댁션을 수행하는 전자 장치 및 이의 동작 방법 | |
WO2024101878A1 (ko) | 손상된 메타데이터를 복구하기 위한 방법 및 이를 지원하는 전자 장치 | |
WO2022065704A1 (ko) | 비 파괴 편집 컨텐츠 관리 방법 및 장치 | |
KR20230073928A (ko) | 미디어 파일을 편집하기 위한 방법 및 장치 | |
WO2024143735A1 (ko) | 분산형 데이터 베이스 구조를 지원하는 서버 및 이의 동작 방법 | |
WO2024080586A1 (ko) | 멀티 디바이스 환경에서 공동 편집을 위한 전자 장치 및 방법 | |
WO2024128637A1 (ko) | 화자별 음량 조절을 위한 전자 장치, 그 동작 방법 및 저장 매체 | |
WO2023106828A1 (ko) | 복수의 카메라를 포함하는 전자 장치 및 전자 장치의 동작 방법 | |
WO2023068904A1 (ko) | 전자 장치 및 전자 장치의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22895832 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022895832 Country of ref document: EP Effective date: 20240307 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |