KR20130084345A - Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법 - Google Patents

Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법 Download PDF

Info

Publication number
KR20130084345A
KR20130084345A KR1020120005039A KR20120005039A KR20130084345A KR 20130084345 A KR20130084345 A KR 20130084345A KR 1020120005039 A KR1020120005039 A KR 1020120005039A KR 20120005039 A KR20120005039 A KR 20120005039A KR 20130084345 A KR20130084345 A KR 20130084345A
Authority
KR
South Korea
Prior art keywords
file
box
frame
media data
data
Prior art date
Application number
KR1020120005039A
Other languages
English (en)
Other versions
KR101316579B1 (ko
Inventor
이태윤
이재익
임현철
Original Assignee
(주)피타소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)피타소프트 filed Critical (주)피타소프트
Priority to KR1020120005039A priority Critical patent/KR101316579B1/ko
Publication of KR20130084345A publication Critical patent/KR20130084345A/ko
Application granted granted Critical
Publication of KR101316579B1 publication Critical patent/KR101316579B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10037A/D conversion, D/A conversion, sampling, slicing and digital quantisation or adjusting parameters thereof
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10935Digital recording or reproducing wherein a time constraint must be met
    • G11B2020/10944Real-time recording or reproducing, e.g. for ensuring seamless playback of AV data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

본 발명은, 비디오/오디오 데이터(미디어 데이터)를 ISO/IEC 14496-12 규격에 따른 MP4 파일 포맷으로 변환하여 저장하는 MP4 파일 구성 장치로서: 미디어 데이터를 획득하는 미디어 획득부; 상기 미디어 데이터를 소정의 샘플 단위로 분할하고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보를 추가하여 프레임으로서 mdat box에 기록하고, 상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터를 생성하여 메모리에 기록하고, 또한 상기 메타 데이터 중 적어도 일부를 MP4 파일에 포함되는 특정 box에 실시간으로 기록하고, 상기 미디어 획득부로부터 상기 미디어 데이터의 획득이 종료되면 당시까지 상기 mdat box에 저장된 상기 미디어 데이터에 대한 최종 메타 데이터로 상기 moov box를 구성하여 상기 MP4 파일의 끝부분에 기록하는 MP4 파일 구성부; 및 파일 저장부를 포함한다.

Description

MP4 파일 구성 장치 및 복구 장치, MP4 파일 구성 방법 및 복구 방법{MP4 FILE CONFIGURING DEVICE AND RESTORING DEVICE, MP4 FILE CONFIGURING METHOD AND RESTORING METHOD}
본 발명은 MP4 파일 구성 장치 및 MP4 파일 복구 장치, 그리고 MP4 파일 구성 방법 및 MP4 파일 복구 방법에 관한 것으로서, 비디오/오디오 데이터를 MP4 파일 포맷으로 구성하여 저장하는 장치 및 이 장치에 의해 저장된 MP4 파일이 손상된 경우에 이 손상된 MP4 파일을 재생 가능하게 복구하는 장치, 그리고 이들 장치에 의해 MP4 파일을 구성하여 저장하는 방법 및 손상된 MP4 파일을 복구하는 방법에 관한 것이다.
MPEG(Moving Pictures Experts Group)은 MPEG-4를 개발하였는데, 이것은 동영상 및 음향을 포함하는 멀티미디어 프리젠테이션(multimedia presentation)을 구현하기 위한 멀티미디어 압축 표준이다. MPEG-4 사양은 비디오/오디오 데이터를 위한 일련의 코딩 툴(coding tool)을 정의하고 코딩된 음향-영상 객체의 문법적인 기술(syntactic description)을 정의한다.
MPEG-4를 위하여 특정된 파일 포맷은 "MP4"라고 불리는데, MP4 파일의 개략적인 구성은 도 1 또는 도 2에 예시된 바와 같다.
MP4와 관련한 기술은 ISO/IEC 14496-12 ISO base media file format에 표현되어 있다. MP4에서 모든 데이터는 "box"라고 불리는 구조로 캡슐화된다.
기본적인 최상위 box로는 ftyp box, mdat box, moov box 등이 있다.
- ftyp box : file type box라고도 불리며, 파일의 타입과 호환성 등을 표시한다.
- mdat box : media data box라고도 불리며, 실질적인 비디오/오디오 프레임 데이터(미디어 데이터)가 포함되는 부분이다.
- moov box : movie box라고도 불리며, 메타 데이터(meta data)가 포함되는 부분이다. MP4 파일의 최상위 수준에 저장된다(파일의 시작 또는 끝 부분의 가까이에 존재). 각 데이터들의 track이 포함되고, 각 track에는 데이터의 형식(비디오 데이터의 경우에는 codec 종류와 해상도를 나타내는 정보, 오디오 데이터의 경우에는 codec의 종류와 channel, sampling rate, bit per sample 등의 정보)이 저장된다. 또한, 각 비디오/오디오 프레임(sample) 데이터에 관련한 정보가 저장된다.
이와 같이, MP4 포맷은 모든 프리젠테이션 레벨 정보(메타 데이터)를 비디오/오디오 데이터를 포함하는 멀티미디어 데이터(미디어 데이터)로부터 분리하고 이것을 파일 내의 하나의 내장된 구조에 추가하는데, 이 내장된 구조는 "moov box"라고 불린다.
메타 데이터가 분리된 미디어 데이터는 mdat box로서 구분되어 저장되며, 여기에 저장되는 미디어 데이터는 moov box를 참조하여 해석된다.
전형적으로, 메타 데이터의 비율은 전체 MP4 파일 크기의 5% 내지 20%에 해당한다. MP4 파일과 같은 일반적인 트랙 지향 스트리밍 파일을 순차적 다운로드하여 재생하고자 할 때에는, 모든 메타 데이터가 미디어 데이터보다 우선하여 전송되어야 한다.
또한, MP4 파일 형식으로 영상을 저장하고자 할 때에는, 파일의 마지막에 메타 데이터를 반드시 생성하여 MP4 파일의 끝부분 등에 포함시켜야만 한다.
이러한 MP4 파일 포맷을 이용함으로써 발생할 수 있는 문제점은, 전송되는 MP4 파일과 이를 수신하는 응용 프로그램이 서로 충돌을 일으키거나, 수신되는 MP4 파일을 저장 공간에 저장하는 중에 수신측의 파일 저장 용량 부족과 같은 어떠한 이유에 의하여 파일의 마지막에 포함된 moov box를 완전히 저장할 수 없었던 경우에는, 그동안 저장된 데이터까지도 사용할 수 없게 된다는 것이다.
최근의 차량용 블랙박스와 같은 영상 촬영/저장 장치에서는 촬영된 영상을 이러한 MP4 파일 포맷으로 저장하고 있다. 이때, 미디어 데이터의 mdat box 뿐만 아니라 moov box가 완전히 저장되었을 때에만 영상의 재생이 가능하다는 MP4 파일의 특성상, 영상 저장의 단위(MP4 파일의 시간 단위의 크기)를 30초 또는 1분 등으로 세분화하고 있다.
하지만, 시간을 세분화하였다고 하더라도, 만일 영상이 실시간 저장되는 중에, 블랙박스의 전원 공급 중단 또는 차량 사고 발생 등에 의한 손상으로 mdat box나 moov box가 완전히 저장되지 못한 경우에는, 새로운 파일로서 저장되던 영상에 대한 부가 정보를 획득할 수 없기 때문에 이 영상을 재생할 수 없다는 문제점은 여전히 안고 있는 것이다.
예를 들어, 영상 저장의 단위(세분화된 시간)가 30초인 경우에, 새로운 MP4 파일이 생성되어 영상이 저장되는 중에 20초 근방에서, 차량 사고가 발생하여 블랙박스가 손상되었다면, 20초 동안 촬영되어 저장되는 MP4 파일에 대해서는 moov box가 저장될 수 없었으므로, 이 20초의 영상은 재생할 수 없게 되는 것이다.
특히, 차량 사고라는 것이, 사고 발생 시점으로부터 약 10초를 전후하여 나타나는 상황에 의존하여 발생하는 가능성이 크므로, 20초 동안의 영상 손실은 사고 발생의 정황을 분석할 가장 중요한 정보일 수 있는 것이다.
따라서, 영상 저장이 중단되는 시점까지의 앞서 저장된 영상을 최대한 복구할 필요성이 대두하였다.
참고로서, 한국 공개 특허 2004-41174호 문헌을 살펴보면, MP4 파일의 mdat box에 기록되는 미디어 데이터를 세그먼트로 구분하고, 각 세그먼트마다를 "미디어 데이터-메타 데이터 쌍"의 형태로 구성하고, 각 메타 데이터는 해당 세그먼트의 미디어 데이터만을 특정하도록 작성되어 있다.
이 문헌의 progressive MP4 파일 포맷은 smp4 box(atom)마다 moov box와 mdat box를 포함하도록 구성하고 있다. 하지만, moov box와 mdat box는 최상위 레벨의 box(atom)로서, 어떠한 box도 moov box와 mdat box를 포함하고 있지는 않다. 따라서, 이러한 파일 포맷은 표준화된 MP4 파일 포맷의 규약을 따르지 않고 있는 것에 해당하며, 일반적인 MP4 파일 플레이어에서 재생이 불가능하다. 더욱이, 이러한 파일 포맷에 의한 MP4 파일은 네트워크를 통해 전송되거나 미디어 데이터를 이용하여 생성될 때, MP4 파일의 전체적인 크기가 증가한다는 문제점을 갖는다.
본 발명은 상술한 필요성을 감안하여 이루어진 것으로서, 영상을 촬영하거나 음향을 녹음하여 MP4 파일을 구성하여 저장하는 중에 파일을 마감하기 위하여 파일에 포함되어야할 moov box의 저장이 완료되지 않았거나 moov box가 완전하지 않더라도, 그동안 저장된 영상 또는 음향을 최대한 복구하여 재생할 수 있도록 지원하는 MP4 파일을 구성하고 이러한 MP4 파일을 복구할 수 있는 장치 및 방법 제공하고자 하는 것이다.
상술한 목적을 달성하기 위한 본 발명은, 비디오/오디오 데이터(미디어 데이터)를 ISO/IEC 14496-12 규격에 따른 MP4 파일 포맷으로 변환하여 저장하는 MP4 파일 구성 장치로서: 카메라 또는 마이크에 의해 생성된 미디어 데이터를 획득하는 미디어 획득부; 상기 미디어 데이터를 소정의 샘플 단위로 분할하고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보를 추가하여 프레임으로서 mdat box에 기록하고, 상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터를 생성하여 메모리에 기록하고, 또한 상기 메타 데이터 중 적어도 일부를 MP4 파일에 포함되는 특정 box에 기록하고, 상기 미디어 획득부로부터 상기 미디어 데이터의 획득이 종료되면 당시까지 상기 mdat box에 저장된 상기 미디어 데이터에 대한 최종 메타 데이터로 상기 moov box를 구성하여 상기 MP4 파일에 기록하는 MP4 파일 구성부; 및 상기 MP4 파일 구성부에서 기록하는 복수의 box를 하나의 MP4 파일로서 실시간으로 저장하는 파일 저장부를 포함하는 MP4 파일 구성 장치를 제공한다.
또한, 상기 메타 데이터는, 적어도, 상기 미디어 데이터의 트랙별 형식(비디오 데이터의 경우에는 적어도 비디오 코덱 및 영상 해상도를 포함하고, 오디오 데이터의 경우에는 적어도 오디오 코덱, 오디오 채널 수, 샘플링 레이트 및 샘플링 비트 수 중 적어도 하나를 포함), 미디어 데이터의 각 프레임별 상기 부가 정보(스트림 ID, 프레임 타입(I-frame 또는 P-frame), 시작 위치 오프셋, 타임 스탬프, 사이즈 중 적어도 하나를 포함), 상기 미디어 데이터의 트랙별 전체 재생 시간(duration)을 포함한다.
또한, 상기 부가 정보는, 해당 프레임의 스트림 ID 또는 프레임 타입을 더 포함한다.
또한, 상기 특정 box는, free box, skip box, udta box 또는 MP4 파일의 파싱(parsing)시에 무시될 수 있는 box 중 적어도 하나인 것을 특징으로 한다.
또한, 상기 특정 box는, 구성되는 MP4 파일에서 상기 mdat box보다 앞에 추가된다.
또한, 본 발명은, ISO/IEC 14496-12 규격에 따라 생성되는 도중에 중단된 MP4 파일로부터 비디오/오디오 데이터(미디어 데이터)를 복구하기 위한 MP4 파일 복구 장치로서: 미디어 데이터가 소정의 샘플 단위로 분할되고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보가 추가되어 프레임으로서 mdat box에 기록되었고, 적어도 상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터의 적어도 일부가 MP4 파일에 포함되는 특정 box에 기록되었으나, 상기 mdat box가 불완전하거나 moov box가 없거나 불완전한 상태인 손상된 MP4 파일을 획득하는 MP4 파일 획득부; 및 상기 손상된 MP4 파일에서 상기 프레임마다 기록된 상기 부가 정보를 이용하여 상기 mdat box의 마지막 유효 프레임을 식별하고, 상기 특정 box에 저장된 상기 정보와 식별된 상기 마지막 유효 프레임의 타임 스탬프 및 사이즈를 이용하여 상기 미디어 데이터의 총 재생 시간을 계산하고, 상기 부가 정보와 상기 계산된 총 재생 시간을 이용하여 상기 마지막 유효 프레임까지의 메타 데이터를 생성하고, 상기 생성된 메타 데이터로 상기 moov box를 재구성하여 상기 손상된 MP4 파일에 추가함으로써 상기 손상된 MP4 파일을 정상 파일로 마감(close)하는 파일 복구부를 포함하는 MP4 파일 복구 장치를 제공한다.
또한, 상기 특정 box는, free box, skip box, udta box, 또는 MP4 파일의 파싱시에 무시될 수 있는 box 중 적어도 하나이며, MP4 파일에서 상기 mdat box보다 앞에 위치한다.
또한, 상기 마지막 유효 프레임은, 상기 부가 정보가 완전하게 기록된 마지막 프레임이고, 상기 총 재생 시간은, 상기 마지막 유효 프레임의 타임 스탬프와 최초 프레임의 타임 스탬프의 시간차를 이용하여 결정된다.
또한, 본 발명은, 비디오/오디오 데이터(미디어 데이터)를 ISO/IEC 14496-12 규격에 따른 MP4 파일 포맷으로 변환하여 저장하는 영상 저장 방법으로서: 카메라 또는 마이크에 의해 생성된 미디어 데이터를 획득하는 단계; 상기 미디어 데이터를 소정의 샘플 단위로 분할하고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보를 추가하여 프레임으로서 mdat box에 기록하는 단계; 상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터를 생성하여 메모리에 기록하고, 또한 상기 메타 데이터 중 적어도 일부를 MP4 파일에 포함되는 특정 box에 기록하는 단계; 및 상기 미디어 획득부로부터 상기 미디어 데이터의 획득이 종료되면 당시까지 상기 mdat box에 저장된 상기 미디어 데이터에 대한 최종 메타 데이터로 상기 moov box를 구성하여 상기 MP4 파일에 기록하는 단계를 포함하는 MP4 파일 구성 방법을 제공한다.
또한, 상기 메타 데이터는, 적어도, 상기 미디어 데이터의 트랙별 형식(비디오 데이터의 경우에는 적어도 비디오 코덱 및 영상 해상도를 포함하고, 오디오 데이터의 경우에는 적어도 오디오 코덱, 오디오 채널 수, 샘플링 레이트 및 샘플링 비트 수 중 적어도 하나를 포함), 미디어 데이터의 각 프레임별 상기 부가 정보(스트림 ID, 프레임 타입, 시작 위치 오프셋, 타임 스탬프, 사이즈 중 적어도 하나를 포함), 상기 미디어 데이터의 트랙별 전체 재생 시간(duration)을 포함하고, 상기 특정 box는, 구성되는 MP4 파일에서 상기 mdat box보다 앞에 추가되는 free box, skip box, udta box 또는 MP4 파일의 파싱시에 무시될 수 있는 box 중 적어도 하나인 것을 특징으로 한다.
또한, 본 발명은, ISO/IEC 14496-12 규격에 따라 생성되는 도중에 중단된 MP4 파일로부터 비디오/오디오 데이터(미디어 데이터)를 복구하기 위한 MP4 파일 복구 방법으로서: 미디어 데이터가 소정의 샘플 단위로 분할되고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보가 추가되어 프레임으로서 mdat box에 기록되었고, 적어도 상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터의 적어도 일부가 MP4 파일에 포함되는 특정 box에 기록되었으나, 상기 mdat box가 불완전하거나 moov box가 없거나 불완전한 상태인 손상된 MP4 파일을 획득하는 단계; 상기 손상된 MP4 파일에서 상기 프레임마다 기록된 상기 부가 정보를 이용하여 상기 mdat box의 마지막 유효 프레임을 식별하고, 상기 특정 box에 저장된 상기 정보와 식별된 상기 마지막 유효 프레임의 타임 스탬프 및 사이즈를 이용하여 상기 미디어 데이터의 총 재생 시간을 계산하고, 상기 부가 정보와 상기 계산된 총 재생 시간을 이용하여 상기 마지막 유효 프레임까지의 메타 데이터를 생성하는 단계; 및 상기 생성된 메타 데이터로 상기 moov box를 재구성하여 상기 손상된 MP4 파일에 추가함으로써 상기 손상된 MP4 파일을 정상 파일로 마감하는 단계를 포함하는 MP4 파일 복구 방법을 제공한다.
또한, 상기 메타 데이터는, 적어도, 상기 미디어 데이터의 트랙별 형식(비디오 데이터의 경우에는 적어도 비디오 코덱 및 영상 해상도를 포함하고, 오디오 데이터의 경우에는 적어도 오디오 코덱, 오디오 채널 수, 샘플링 레이트 및 샘플링 비트 수를 포함), 미디어 데이터의 각 프레임별 상기 부가 정보(스트림 ID, 프레임 타입, 시작 위치 오프셋, 타임 스탬프, 사이즈), 상기 미디어 데이터의 트랙별 전체 재생 시간(duration)을 포함하고, 상기 특정 box는, 구성되는 MP4 파일에서 상기 mdat box보다 앞에 추가되는 free box, skip box, udta box 중 적어도 하나이고, 상기 마지막 유효 프레임은, 상기 부가 정보가 완전하게 기록된 마지막 프레임이고, 상기 재생 시간은, 상기 마지막 유효 프레임의 타임 스탬프와 최초 프레임의 타임 스탬프의 시간차를 이용하여 결정되는 것을 특징으로 한다.
상술한 바와 같은 구성으로 이루어지는 본 발명에 따른 MP4 파일 구성 장치에 의하면, 영상을 촬영하거나 음향을 녹음하여 실시간으로 MP4 파일로서 저장하는 중에 어떤 장치가 중단되어 파일에 포함되어야할 moov box의 저장이 완료되지 않았거나 moov box가 완전하지 않아서 MP4 파일이 정상적으로 완료(close)되지 않았더라도, 그동안 저장된 데이터만을 이용하여 당시까지 저장된 영상 또는 음향을 복구하여 재생할 수 있게 된다.
또한, 본 발명에 의해 생성된 MP4 파일을 기존의 MP4 파일 플레이어를 이용하여 재생하더라도, 동일하게 재생할 수 있게 된다.
도 1은 MP4 파일의 구성을 개략적으로 보여주는 블록도이다.
도 2는 MP4 파일의 또다른 구성을 개략적으로 보여주는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 MP4 파일 구성 장치 및 MP4 파일 복구 장치의 구성을 나타낸 블록도이다.
도 4는 본 발명에 따른 MP4 파일 구성 장치에 의해 생성된 MP4 파일 중 mdat box에 저장되는 미디어 데이터의 구조를 설명하는 도면이다.
도 5는 손상된 MP4 파일 및 본 발명에 따른 MP4 파일 복구 장치에 의해 복구된 MP4 파일의 구조를 설명하는 도면이다.
도 6은 본 발명에 따른 MP4 파일 구성 장치의 동작을 설명하는 흐름도이다.
도 7은 본 발명에 따른 MP4 파일 복구 장치의 동작을 설명하는 흐름도이다.
이하, 본 발명에 따른 ISO/IEC 14496-12 규격에 따른 MP4 파일을 구성하는 장치 및 상기 장치에 의해 생성되는 도중에 중단되어 손상된 MP4 파일을 복구하는 장치, 상기 장치들에 의해 MP4 파일을 구성하는 방법 및 손상된 MP4 파일을 복구하는 방법을 도 3 내지 도 7을 참조하여 설명한다.
MP4 파일에 저장되는 미디어 데이터는 카메라로 촬영된 영상에 대한 비디오 데이터와 마이크로 녹음되는 음향에 대한 오디오 데이터를 포함할 수 있다. 또한, 각 MP4 파일은 적어도 하나의 비디오 데이터 또는 오디오 데이터를 포함할 수 있으나, 여기에서는 설명의 편의를 위하여, 이 중 어느 하나만을 미디어 데이터로서 기록하는 것으로 하여 설명한다.
또한, 개시된 각 box의 종류 및 이들의 구현 방식, 다양한 용어들에 대해서는 "ISO/IEC 14496-12 ISO base media file format"에 정의된 사항들을 참조하여 이해할 수 있다.
도 3은 본 발명의 일 실시예에 따른, MP4 파일 구성 장치 및 MP4 파일 복구 장치의 구성을 나타낸 블록도이다. 도 3을 참조하면, MP4 파일 구성 장치는, 미디어 획득부와, MP4 파일 구성부와, 파일 저장부를 포함하여 이루어진다. 또한, MP4 파일 복구 장치는 MP4 파일 획득부와 파일 복구부를 포함하여 이루어진다.
먼저, MP4 파일 구성 장치의 미디어 획득부는, 카메라에서 촬영한 영상 및/또는 마이크를 통해 입력받은 음향을 각각 디지털 데이터 스트림으로 변환하여 생성한 비디오 데이터 및/또는 오디오 데이터를 입력받는다. 이러한 비디오/오디오 데이터는 카메라 및/또는 마이크로부터 직접 입력받을 수도 있으며, 네트워크 통신 또는 외부 장치와의 연결로부터 전송받거나 MP4 파일 포맷 이외의 다른 포맷의 파일로부터 추출하는 방식으로 획득할 수도 있다.
MP4 파일 구성부는, 미디어 획득부에서 획득한 미디어 데이터를 임의의 단위(샘플)로 분할하고, 각 분할된 미디어 데이터의 샘플에 대한 타임 스탬프 및 사이즈를 나타내는 부가 정보를 생성한다. 그리고, 생성된 부가 정보와 샘플을 결합하여 프레임을 구성한다. 이렇게 샘플 단위로 분할되어 부가 정보가 추가된 미디어 데이터의 프레임은, 생성된 순서에 따라 mdat box에 순차적으로 기록된다. 부가 정보에는, 스트림 ID, 프레임 타입(I-frame 또는 P-frame), 분할된 미디어 데이터의 사이즈 등이 포함될 수 있다.
한편, MP4 파일 구성부는, 전형적인 MP4 파일을 구성할 때와 동일하게, 미디어 데이터의 트랙별 형식(비디오 데이터의 경우에는 적어도 비디오 코덱 및 영상 해상도를 포함하고, 오디오 데이터의 경우에는 적어도 오디오 코덱, 오디오 채널 수, 샘플링 레이트 및 샘플링 비트 수를 포함하는 정보), 미디어 데이터의 각 프레임별 부가 정보(스트림 ID, 프레임 타입(I-frame 또는 P-frame), 시작 위치 오프셋, 타임 스탬프, 사이즈), 미디어 데이터의 트랙별 전체 재생 시간(duration)을 포함하는 메타 데이터를 생성하고, 이를 메모리에 임시 저장한다.
MP4 파일 구성부는, 상기 메타 데이터를 메모리뿐만 아니라 MP4 파일 포맷에서 규정하는 특정의 box에도 동시에 기록하여 둔다. 이러한 특정의 box는 free box, skip box, udta box 중 적어도 하나일 수 있다. 이러한 box들은 일반적인 MP4 파일 플레이어에서는 MP4 파일 파싱(parsing)시에 무시되는 box들 중에서 선택된다. 상술한 box 이외에도, 일반적인 상황에서는 무시되며, 사용자에 의해 임의의 내용을 기록할 수 있는 box가 정의된다면, 메타 데이터를 그 box에 기록하여 두도록 구성하는 것도 가능하다.
한편, 메타 데이터가 기록된 특정의 box는, MP4 파일을 구성할 때, 미디어 데이터가 기록되는 mdat box에 앞서 배치되는 것이 바람직하다. 특정의 box는 이하에서 free box인 것으로 하여 설명한다.
이렇게 부가 정보를 추가하여 프레임을 구성하고, 메타 데이터를 생성하여 메모리에 기록하는 상태에서, 녹화 또는 녹음이 임의의 저장 시간 또는 지정된 저장 용량에 도달하여 기록하는 MP4 파일을 종료하고자 하는 경우, 지금까지 메모리에 저장된 메타 데이터를 MP4 파일의 moov box에 기록한다. moov box가 정상적으로 추가됨으로써 MP4 파일은 정상적으로 마감(close)된다.
파일 저장부는, MP4 파일 구성부에서 생성하는 미디어 데이터를 실시간으로 저장할 수 있는 저장 공간으로서 비휘발성 저장 공간인 것이 바람직하다. 더욱, 파일 저장부는 moov box에 기록될 메타 데이터를 기록하여두는 메모리를 더 포함하는 것으로 한다.
이와 같이, MP4 파일 구성 장치에 의해 미디어 데이터가 저장된 mdat box의 구성을 도 4를 참조하여 설명한다. 본 발명에서는, 미디어 데이터를 샘플 단위로 구분하고(M1, M2, M3, ...), 각각의 구분된 샘플마다 해당 샘플의 특성을 나타내는 부가 정보(H1, H2, H3, ...)를 부가하여 프레임을 구성하고(F1, F2, F3, ...) mdat box에 순차적으로 기록한다.
여기서, 부가 정보는 바로 다음에 이어지는 미디어 데이터의 샘플에 대한 특성을 표시하기 위한 것으로서, 스트림 ID, 프레임 타입(I-frame, P-frame), 타임 스탬프, 사이즈, 기타 정보를 포함할 수 있다. 여기에서, 부가 정보는, 적어도 타임 스탬프와 사이즈를 포함해야 한다.
스트림 ID는, 미디어 데이터에 대한 ID로서, 비디오 데이터의 스트림 또는 오디오 데이터의 스트림으로 구분될 수 있다. 그리고 예를 들여, 비디오 데이터의 스트림이 2개 이상 존재한다면, 각 스트림에 대하여 다른 ID를 부여하게 된다.
프레임 타입은, 미디어 데이터가 비디오 데이터인 경우에만 사용되는 것으로서, I-frame인지 P-frame인지 구분하기 위한 것이다.
타임 스탬프는, 각 프레임에 기록된 미디어 데이터의 재생 시간을 표시하기 위한 정보이다. 타임 스탬프는, 시간의 단위(예를 들면, ms)로 표시될 수도 있으나, 일정한 단위가 없는 소정의 타임 스케일로 표현되는 것이 일반적이다. 이때, 타임 스케일과 실제 시간과의 변환 관계는 메타 데이터에 기록될 수 있다.
사이즈는, 미디어 데이터가 분할되어 기록된 각 샘플의 사이즈를 나타낸다. 주로 바이트 단위로 기록될 수 있다.
기타 정보는, 복구 목적 또는 다른 목적에 의한 다른 데이터를 기록할 수 있도록 만들어 놓은 공간이다.
이와 같이, 본 발명에 따른 mdat box의 구조에 의하면, 미디어 데이터의 프레임마다 추가되어 있는 부가 정보가 적어도 프레임의 시간적인 위치를 표시하는 정보(타임 스탬프)와 프레임의 크기(즉, 프레임에 분할되어 기록된 미디어 데이터의 사이즈를 표시하는 정보)를 포함하는 것만으로도, MP4 파일을 복구할 수 있게 된다(MP4 파일 포맷을 완성하여 파일을 복구하는 데에 필요한 다양한 정보들(메타 데이터)의 적어도 일부가 free box에 별도로 이미 저장되어 있기 때문인데, 이를 이용한 복구 방법은 후술한다).
도 5는 손상된 MP4 파일 및 본 발명에 따른 MP4 파일 복구 장치에 의해 복구된 MP4 파일의 구조를 설명하는 도면이다. 손상된 MP4 파일은, 본 발명에 따른 MP4 파일 구성 장치에 의해 기록되는 도중에 불완전하게 중단된 형태로서, MP4 파일의 시작 부분을 구성하는 ftyp box가 기본적으로 존재하며, 파일의 복구를 위한 free box가 구비되어 있고, 이어서 미디어 데이터의 프레임이 mdat box에 시간순으로 기록되는 중에 중단된 형태이다.
이렇게 도중에 중단된 파일은, MP4 파일에 기록된 미디어 데이터에 관련한 정보를 기록하고 파일을 마감하는 moov box가 미처 기록되지 않은 상태이므로, 일반적인 MP4 파일 플레이어에서는 재생될 수 없다.
한편, 본 발명의 MP4 파일 복구 장치에 의해 복구된 MP4 파일은, mdat box의 기록이 중단된 시점까지 기록된 미디어 데이터가 최대한 보존되고, 여기까지의 미디어 데이터에 대한 메타 데이터를 포함하는 moov box가 추가된 형태가 된다. 이로써 복구된 MP4 파일은 정상 재생 가능한 MP4 파일로서 인식될 수 있다.
다시, 도 3으로 돌아가서, MP4 파일 구성 장치에 의해 기록되다가 기록이 중단되어 손상된 MP4 파일을 정상 재생 가능한 MP4 파일로 복구하는, MP4 파일 복구 장치의 구성을 설명한다.
MP4 파일 획득부는, MP4 파일 구성 장치의 파일 저장부로부터 또는 다른 데이터베이스 또는 네트워크 스트림을 통해 손상된 MP4 파일을 획득한다. 이 손상된 MP4 파일은 미디어 데이터가 mdat box에 기록되다가 중단된 상태이므로, 마지막 프레임은 기록되다가 불완전한 형태로 중단된 상태일 수 있다. 따라서, 프레임을 구성하는 부가 정보의 일부 또는 미디어 데이터의 일부가 손상된 상태이다.
파일 복구부는, 손상된 파일에서 최종으로 기록된 프레임을 확인하고, 최종 프레임에 기록된 부가 정보가 유효한지를 확인한다. 최종 프레임에 부가 정보가 유효화게 기록되었다면, 그 프레임은 유효 프레임으로 간주할 수 있다.
유효 프레임은 해당 프레임에 기록된 미디어 데이터의 샘플에 대한 부가 정보로서, 스트림 ID, 프레임 타입(I-frame, P-frame), 타임 스탬프, 사이즈, 기타 정보를 포함하고 있으며, 이 중 적어도 타임 스탬프와 사이즈를 포함하고 있으므로, MP4 파일 내에서의 해당 프레임의 타임 스탬프 및 해당 프레임의 기록된 미디어 데이터의 크기를 계산할 수 있다. 더욱, 이를 이용하여, 손상된 MP4 파일에 기록된 미디어 데이터의 전체 재생 시간, 해당 프레임의 오프셋 등을 계산할 수 있게 된다.
또한, mdat box의 유효한 프레임에 포함된 부가 정보를 확인하고 이를 이용함으로써 mdat box의 크기를 계산할 수도 있다.
또한, free box가 MP4 파일의 첫부분에 이미 기록되어 있으므로, free box에 기록된 내용들을 이용하여, moov box를 생성하기 위한 다른 정보들을 획득할 수 있다.
이로써, 파일 복구부에서, moov box에 반드시 포함되어야 할 정보들을 구성할 수 있게 된다. 즉, stts box, stsz box, stsc box, stco box, stss box 등을 구성할 수 있다.
moov box를 구성하기 위한 정보들이 만들어지면, 최종 유효 프레임에 뒤이어 moov box를 추가함으로써 손상된 MP4 파일을 정상적으로 마감할 수 있으며, 이렇게 복구된 MP4 파일은 일반적인 MP4 파일 플레이어에서도 정상적으로 재생 가능하게 된다.
상술한 바와 같은, MP4 파일 구성 장치와 MP4 파일 복구 장치에 의하면, 미디어 데이터를 MP4 파일 포맷으로 변환하여 기록하는 중에, 어떠한 이유로 기록이 중단된 경우라도, 기록이 불완전하게 종료된(손상된) MP4 파일을 정상적인 MP4 파일로 복구할 수 있게 된다. 특히 MP4 파일 구성 장치는, 예를 들면, 차량용 블랙박스에 탑재될 수 있다. 만일 차량용 블랙박스가 전방을 촬영한 비디오/오디오 데이터를 실시간으로 기록하는 중에 교통 사고 등의 이유로 MP4 파일을 미처 정상적으로 완전히 마감하지 못한 상태에서 기록이 중단되었더라도, 기록이 중단된 MP4 파일을 컴퓨터 등에 탑재된 MP4 파일 복구 장치에서 복구할 수 있게 됨으로써, 사고 당시 기록된 내용을 최대한 복구하는 것이 가능하다.
도 6은, 본 발명에 따른 MP4 파일 구성 장치의 동작을 설명하는 흐름도로서, MP4 파일 구성 장치가 복구 가능한 MP4 파일을 구성하는 방법을 설명한다.
먼저, 카메라나 마이크를 통해 입력된 영상 또는 음향을 디지털 데이터 형태로 구현한 미디어 데이터를 MP4 파일로 기록/저장하기 위하여 ftyp box를 기록하고(S11), 미디어 데이터에 관련된 메타 데이터를 생성하고, 동시에 파일의 복구를 위해 필요한 정보들을 구성하여 free box에 기록한다(S12).
이어서, 미디어 데이터의 스트림을 입력받으면, 획득된 미디어 데이터를 일정 단위로 구분하여 샘플을 생성하고, 구분된 미디어 데이터의 샘플마다 부가 정보를 생성한다. 생성된 부가 정보와 구분된 미디어 데이터의 샘플을 결합하여 프레임을 구성한다. 프레임은 mdat box 내에 시간순에 따라 순차적으로 기록된다(S14). 한편, 미디어 데이터를 획득하여 기록하는 중에, MP4 파일을 구성하는데 필수적인 메타 데이터를 생성하여 메모리에 임시 저장한다. 임시 저장되는 메타 데이터들은 미디어 데이터의 프레임이 기록되는 동안 계속 갱신될 수 있다.
이렇게 데이터들이 기록되는 중에, 미디어 데이터의 획득이 최종 종료하면(S15), 메모리에 기록된 메타 데이터를 이용하여 moov box를 생성하고, 생성된 moov box를 기록하여 MP4 파일을 정상적으로 마감(close)한다(S16).
도 7은 본 발명에 따른 MP4 파일 복구 장치의 동작을 설명하는 흐름도이다. 도 7은, MP4 파일 구성 장치가 도 6의 절차에 따라 실시간으로 미디어 데이터를 기록하는 도중에, 파일 기록이 중단되어, mdat box가 불완전하거나 moov box가 불완전하여, MP4 파일이 손상된 경우의 파일 복구 절차이다.
먼저, MP4 파일 복구 장치가, mdat box가 불완전하거나 moov box가 없거나 불완전하여 손상된 MP4 파일을 획득하면(S21), 획득된 파일에 복구를 위한 정보가 저장된 free box가 존재하는지 확인한 후, 저장된 정보를 획득한다(S22). 또한, mdat box에 기록된 각 프레임에도 부가 정보가 기록되어 있는지 확인한다.
이어서, mdat box에 기록된 미디어 데이터의 프레임 중 부가 정보가 완전하게 기록된 프레임을 유효 프레임으로서 식별하고, 식별된 유효 프레임 중 가장 마지막 유효 프레임을 최종 유효 프레임으로서 선택한다. mdat box는 식별된 최종 유효 프레임까지에서 종료하는 것으로 설정된다. 식별된 최종 유효 프레임에 기록된 부가 정보를 획득한다(S23).
식별된 최종 유효 프레임으로부터의 부가 정보와 free box에 저장된 정보를 이용하여, 최종 유효 프레임까지에서 MP4 파일을 마감할 수 있도록 moov box에 기록될 메타 데이터를 생성하고, 생성된 메타 데이터로 moov box를 생성하여 최종 유효 프레임까지로 마감된 mdat box에 이어서 추가하고 MP4 파일을 마감한다(S24).
상술한 바와 같은 구성으로 이루어지는 본 발명에 따른 MP4 파일 구성 장치에 의하면, 영상을 촬영하거나 음향을 녹음하여 실시간으로 MP4 파일로서 저장하는 중에 어떤 장치가 중단되어 파일의 끝부분에 포함되어야 할 moov box의 저장이 완전하게 이루어지지 않았거나 mdat box가 비정상적으로 중단된 경우 등 MP4 파일이 정상적으로 완료되지 않았더라도, 그동안 저장된 데이터만을 이용하여 당시까지 저장된 영상 또는 음향을 복구하여 재생할 수 있게 된다.
또한, 본 발명에 의해 생성된 MP4 파일은, MP4 파일 포맷 표준에 적합하기 때문에, 일반적인 MP4 파일과 동일하게 재생될 수 있게 된다. 즉, 기존의 MP4 파일 플레이어를 이용하는 경우, free box는 무시되고, mdat box에 기록된 미디어 데이터는 표준에 적합한 형태이고, moov box의 구성도 표준에 적합하므로, 프레임마다 기록된 부가 정보의 존재는 인식될 수 없으며, 본 발명에 따라 구성된 MP4 파일은 일반적인 MP4 파일로 인식될 수 있는 것이다.
일반적인 MP4 파일 플레이어에서는, 각 프레임에서 미디어 데이터 샘플의 시작 지점을 표시하기 위한 오프셋과 프레임 내에 기록된 샘플의 사이즈를 이용하여 미디어 데이터를 식별한다.
MP4 파일이 정상적으로 마감된 경우, moov box에는, 각 프레임에서 부가 정보 부분을 제외한 미디어 데이터 샘플의 시작 지점에 대한 오프셋 및 타임 스탬프, 각 샘플의 사이즈가 기록되어 있으므로, 일반적인 MP4 파일 플레이어에서는 부가 정보의 존재를 인식할 수 없으며, 파일의 정상적인 재생에는 문제가 없다.
이하에는, 참조로서, 본 발명에 따른 기술 내용을 실제 구현하는 데에 참고할 사항들을 기록한다.
기본 사항
MP4 파일 포맷은 비디오 및 오디오 등의 데이터를 인코딩을 통하여 압축 후 MP4 파일포맷으로 저장하는 기술로서, ISO/IEC 14496-12 ISO base media file format에 표현되어 있다.
일반적인 MP4 파일 포맷은 기본적으로 Box 단위로 구분되며, 기본이 되는 Box에는 ftyp box, mdat box, moov box가 있다. 그리고 사용자가 임의로 내용을 정의하여 사용할 수 있는 free box가 존재할 수 있습니다.
- ftyp box : file type box라고 불리며, 파일의 타입과 호환성을 표시하는 box이다.
- mdat box : media data box라고 불리고, 실질적으로 video/audio frame data가 포함되는 부분이다.
- moov box : movie box라고 불리고, 메타 데이터가 기록되며, 파일의 최상위 수준을 구성한다. 일반적으로 moov box는 파일의 시작 또는 끝 가까이에 존재하게 된다. moov box에는 각 데이터들의 트랙(track)이 저장된다. 트랙에는 데이터의 형식(video의 경우에는 코덱 종류와 해상도 등의 정보, audio의 경우에는 코덱 종류와 채널, 샘플링 레이트(sampling-rate), 샘플링 비트(bit per sample) 등의 정보)을 기록하고, 각 비디오/오디오 프레임(샘플) 데이터에 대한 정보를 기록한다.
개요
손상된 MP4 파일에서 moov box는 없거나, 잘못된 정보가 포함되어 있기 때문에 MP4 파일을 복구하기 위해서는 moov box에서 필요한 정보를 파일의 다른 위치에 저장해 놓는 방법을 사용한다.
moov box에서 media의 특성을 나타내는 정보는 free(skip,udta) box를 사용하여 free box 안에 정의하여 필요한 정보를 넣어둔다. free(skip,udta) box는 범용 플레이어에서 MP4 file parsing시에 무시되는 box이다. free box 외에 범용 플레이어에서 무시가 가능한 box도 사용 가능하다.
mdat box에서 video/audio frame data의 부가 정보는 mdat box안에 video/audio frame data를 넣을 때 같이 기록한다.
free(skip, udta) box는 일반 플레이어에서 parsing시에 무시되는 box 영역이므로, 이 box에 복구에 필요한 정보를 넣어두고, 파일을 복구할 필요성이 있을 때 이 box안에 미리 정의된 방식의 data를 읽어서 복구에 필요한 data로 사용할 수 있다.
free box 에 포함되는 복구에 필요한 정보
가. video data 에 대한 정보
- video codec(압축 방식) : H.264, MP4V, H.263 등을 의미한다.
- video 해상도 : 영상의 width, height.
- video codec에서 필요한 정보 : 필요한 경우에만 추가할 수 있다. 예를 들면, H.264인 경우에는 sequence parameter set, picture parameter set를 표시할 수 있다.
나. audio data 에 대한 정보
- audio codec : AAC, AMR, QCELP, EVRC 등을 의미한다.
- audio channel : 1채널, 2채널 등.
- bit per sample : 음향 주파수를 샘플링하는 비트로서 8bit, 16bit 등을 표시하며, audio data의 특성에 따라서 달라질 수 있다.
- sampling rate : audio를 녹음할 때 사용하는 주파수. 예를 들면, 8000Hz, 16000Hz, 22050Hz, 32000Hz, 44100Hz 등.
- audio codec에서 필요한 정보 : 필요한 경우에만 추가할 수 있다. 예를 들면, AAC 코덱에서는 Audio specific config를 표시할 수 있다.
mdat box 에 포함되는 복구에 필요한 video / audio frame data 의 부가정보
- stream ID : 각 stream의 ID, video/audio 등으로 구분된 ID.
- frame type : video의 경우 I-frame, P-frame을 구분하기 위한 정보로서, audio의 경우에는 무의미하다.
- time stamp : 각 frame data의 시간을 표시한다.
- size : 각 frame data의 길이로서, 여기서는, 프레임 내에 기록된 video/audio 데이터의 크기를 표시할 수 있다.
이렇게 데이터 사이즈를 기록하여 둠으로써, mdat box의 프레임마다 추가적인 부가 정보가 포함되더라도 범용 플레이어에서 문제가 발생하지 않게 된다. 즉, 범용 플레이어에서는 MP4 파일의 free box에 기록된 stsc box와 stco(co64) box를 이용하여 frame(sample)의 offset을 계산하여 frame data를 파일로부터 가져오게 되는데, stsc box와 stco(co64) box에 frame data의 chunk 개수와 offset을 저장해둔다면 문제가 발생하지 않는다.
손상된 MP4 파일의 복구에 필요한 data
- video : codec type, width, height, 각 codec에서 필요한 정보, duration(video track의 길이).
- audio : codec type, channel 수, sampling-rate, bit-per-sample, 각 codec에서 필요한 정보, duration(audio track의 길이).
- video/audio frame data의 부가 정보 : stream id(video/audio를 구분하기 위함), frame type(video의 경우 I-frame, P-frame을 구분하기 위함), time stamp(각 frame의 시간을 표시하기 위함), size(각 frame의 길이(또는, 각 프레임에 기록된 video/audio data의 길이)를 계산할 때 사용).
복구 방법
가. 복구가능 플레이어에서 파일이 재생 가능한 파일인지 확인한다.
나. 재생 불가능한 손상된 파일이면, 파일의 앞부분에(mdat box 이전에) free box가 존재하는지 확인하고, 미리 정의된 형식으로 data가 저장되어 있는지 확인한다.
다. free box에 저장된 data로 moov box의 생성에 필요한 정보 중 일부를 생성한다.
라. mdat box를 검사하여 유효한 frame data의 끝을 결정한다. 유효한 frame data까지의 mdat box의 크기를 계산한다. 즉, mdat box에 포함된 video/audio frame data의 부가 정보(stream id, frame type(I-frame, P-frame), time stamp, size)를 이용하여 유효한 마지막 frame을 찾을 수 있다. 이때 stream id, frame type, time stamp, size가 유효한 값인지를 먼저 확인해야 한다. 유효한 부가 정보의 size를 이용하여 마지막 frame을 찾는다. 손상된 파일의 현재 크기보다 size를 이용하여 얻은 frame data의 끝이 크다면 현재 검사중인 frame data는 부적절한 data로 인식하고 mdat box의 마지막 프레임으로 처리한다.
마. Duration(재생 시간) : stream ID로 구분된 각 track의 마지막 frame의 time stamp와 첫 frame의 time stamp와의 차이를 이용하여 각 track의 duration을 계산한다. 각 track의 duration은 각 track 별로 계산된 duration을 사용하고, MP4 file의 duration(mvhd box의 duration)은 각 track의 duration중에서 큰 값을 MP4 file의 duration으로 사용한다.
바. stbl box(sample table box) : moov box 안의 각 track 별로 존재하는 box로 mdat box에 이미 저장된 stream id, time stamp, size, frame type을 이용하여 stts box, stsz box, stsc box, stco box, stss box 등을 구성한다. 각 box를 작성하는 방법은 ISO/IEC 14496-12 ISO base media file format을 따른다. free box에 저장된 stream 정보를 이용하여 파일을 정상적으로 마감하기에 필요한 나머지 data를 구성한다.
사. 구성된 data를 이용하여 moov box를 기록하고, mdat box의 size를 계산하여 정상적인 파일이 되도록 파일을 close한다.

Claims (12)

  1. 비디오/오디오 데이터(미디어 데이터)를 ISO/IEC 14496-12 규격에 따른 MP4 파일 포맷으로 변환하여 저장하는 MP4 파일 구성 장치로서:
    카메라 또는 마이크에 의해 생성된 미디어 데이터를 획득하는 미디어 획득부;
    상기 미디어 데이터를 소정의 샘플 단위로 분할하고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보를 추가하여 프레임으로서 mdat box에 기록하고, 상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터를 생성하여 메모리에 기록하고, 또한 상기 메타 데이터 중 적어도 일부를 MP4 파일에 포함되는 특정 box에 기록하고, 상기 미디어 획득부로부터 상기 미디어 데이터의 획득이 종료되면 당시까지 상기 mdat box에 저장된 상기 미디어 데이터에 대한 최종 메타 데이터로 상기 moov box를 구성하여 상기 MP4 파일에 기록하는 MP4 파일 구성부; 및
    상기 MP4 파일 구성부에서 기록하는 복수의 box를 하나의 MP4 파일로서 실시간으로 저장하는 파일 저장부를 포함하는 MP4 파일 구성 장치.
  2. 제1항에 있어서,
    상기 메타 데이터는, 적어도, 상기 미디어 데이터의 트랙별 형식(비디오 데이터의 경우에는 적어도 비디오 코덱 및 영상 해상도를 포함하고, 오디오 데이터의 경우에는 적어도 오디오 코덱, 오디오 채널 수, 샘플링 레이트 및 샘플링 비트 수 중 적어도 하나를 포함), 미디어 데이터의 각 프레임별 상기 부가 정보(스트림 ID, 프레임 타입(I-frame 또는 P-frame), 시작 위치 오프셋, 타임 스탬프, 사이즈 중 적어도 하나를 포함), 상기 미디어 데이터의 트랙별 전체 재생 시간(duration)을 포함하는 것을 특징으로 하는 MP4 파일 구성 장치.
  3. 제1항에 있어서,
    상기 부가 정보는, 해당 프레임의 스트림 ID 또는 프레임 타입을 더 포함하는 것을 특징으로 하는 MP4 파일 구성 장치.
  4. 제1항에 있어서,
    상기 특정 box는, free box, skip box, udta box 또는 MP4 파일의 파싱(parsing)시에 무시될 수 있는 box 중 적어도 하나인 것을 특징으로 하는 MP4 파일 구성 장치.
  5. 제1항에 있어서,
    상기 특정 box는, 구성되는 MP4 파일에서 상기 mdat box보다 앞에 추가되는 것을 특징으로 하는 MP4 파일 구성 장치.
  6. ISO/IEC 14496-12 규격에 따라 생성되는 도중에 중단된 MP4 파일로부터 비디오/오디오 데이터(미디어 데이터)를 복구하기 위한 MP4 파일 복구 장치로서:
    미디어 데이터가 소정의 샘플 단위로 분할되고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보가 추가되어 프레임으로서 mdat box에 기록되었고, 적어도 상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터의 적어도 일부가 MP4 파일에 포함되는 특정 box에 기록되었으나, 상기 mdat box가 불완전하거나 moov box가 없거나 불완전한 상태인 손상된 MP4 파일을 획득하는 MP4 파일 획득부; 및
    상기 손상된 MP4 파일에서 상기 프레임마다 기록된 상기 부가 정보를 이용하여 상기 mdat box의 마지막 유효 프레임을 식별하고, 상기 특정 box에 저장된 상기 정보와 식별된 상기 마지막 유효 프레임의 타임 스탬프 및 사이즈를 이용하여 상기 미디어 데이터의 총 재생 시간을 계산하고, 상기 부가 정보와 상기 계산된 총 재생 시간을 이용하여 상기 마지막 유효 프레임까지의 메타 데이터를 생성하고, 상기 생성된 메타 데이터로 상기 moov box를 재구성하여 상기 손상된 MP4 파일에 추가함으로써 상기 손상된 MP4 파일을 정상 파일로 마감(close)하는 파일 복구부를 포함하는 MP4 파일 복구 장치.
  7. 제6항에 있어서,
    상기 특정 box는, free box, skip box, udta box, 또는 MP4 파일의 파싱시에 무시될 수 있는 box 중 적어도 하나이며, MP4 파일에서 상기 mdat box보다 앞에 위치하는 것을 특징으로 하는 MP4 파일 구성 장치.
  8. 제6항에 있어서,
    상기 마지막 유효 프레임은, 상기 부가 정보가 완전하게 기록된 마지막 프레임이고,
    상기 총 재생 시간은, 상기 마지막 유효 프레임의 타임 스탬프와 최초 프레임의 타임 스탬프의 시간차를 이용하여 결정되는 것을 특징으로 하는 MP4 파일 복구 장치.
  9. 비디오/오디오 데이터(미디어 데이터)를 ISO/IEC 14496-12 규격에 따른 MP4 파일 포맷으로 변환하여 저장하는 영상 저장 방법으로서:
    카메라 또는 마이크에 의해 생성된 미디어 데이터를 획득하는 단계;
    상기 미디어 데이터를 소정의 샘플 단위로 분할하고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보를 추가하여 프레임으로서 mdat box에 기록하는 단계;
    상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터를 생성하여 메모리에 기록하고, 또한 상기 메타 데이터 중 적어도 일부를 MP4 파일에 포함되는 특정 box에 기록하는 단계; 및
    상기 미디어 획득부로부터 상기 미디어 데이터의 획득이 종료되면 당시까지 상기 mdat box에 저장된 상기 미디어 데이터에 대한 최종 메타 데이터로 상기 moov box를 구성하여 상기 MP4 파일에 기록하는 단계를 포함하는 MP4 파일 구성 방법.
  10. 제9항에 있어서,
    상기 메타 데이터는, 적어도, 상기 미디어 데이터의 트랙별 형식(비디오 데이터의 경우에는 적어도 비디오 코덱 및 영상 해상도를 포함하고, 오디오 데이터의 경우에는 적어도 오디오 코덱, 오디오 채널 수, 샘플링 레이트 및 샘플링 비트 수 중 적어도 하나를 포함), 미디어 데이터의 각 프레임별 상기 부가 정보(스트림 ID, 프레임 타입, 시작 위치 오프셋, 타임 스탬프, 사이즈 중 적어도 하나를 포함), 상기 미디어 데이터의 트랙별 전체 재생 시간(duration)을 포함하고,
    상기 특정 box는, 구성되는 MP4 파일에서 상기 mdat box보다 앞에 추가되는 free box, skip box, udta box 또는 MP4 파일의 파싱시에 무시될 수 있는 box 중 적어도 하나인 것을 특징으로 하는 MP4 파일 구성 방법.
  11. ISO/IEC 14496-12 규격에 따라 생성되는 도중에 중단된 MP4 파일로부터 비디오/오디오 데이터(미디어 데이터)를 복구하기 위한 MP4 파일 복구 방법으로서:
    미디어 데이터가 소정의 샘플 단위로 분할되고 각 샘플마다 적어도 상기 샘플의 타임 스탬프 및 사이즈를 나타내는 부가 정보가 추가되어 프레임으로서 mdat box에 기록되었고, 적어도 상기 미디어 데이터를 MP4 파일 포맷으로 구성하는 데에 필요한 메타 데이터의 적어도 일부가 MP4 파일에 포함되는 특정 box에 기록되었으나, 상기 mdat box가 불완전하거나 moov box가 없거나 불완전한 상태인 손상된 MP4 파일을 획득하는 단계;
    상기 손상된 MP4 파일에서 상기 프레임마다 기록된 상기 부가 정보를 이용하여 상기 mdat box의 마지막 유효 프레임을 식별하고, 상기 특정 box에 저장된 상기 정보와 식별된 상기 마지막 유효 프레임의 타임 스탬프 및 사이즈를 이용하여 상기 미디어 데이터의 총 재생 시간을 계산하고, 상기 부가 정보와 상기 계산된 총 재생 시간을 이용하여 상기 마지막 유효 프레임까지의 메타 데이터를 생성하는 단계; 및
    상기 생성된 메타 데이터로 상기 moov box를 재구성하여 상기 손상된 MP4 파일에 추가함으로써 상기 손상된 MP4 파일을 정상 파일로 마감하는 단계를 포함하는 MP4 파일 복구 방법.
  12. 제11항에 있어서,
    상기 메타 데이터는, 적어도, 상기 미디어 데이터의 트랙별 형식(비디오 데이터의 경우에는 적어도 비디오 코덱 및 영상 해상도를 포함하고, 오디오 데이터의 경우에는 적어도 오디오 코덱, 오디오 채널 수, 샘플링 레이트 및 샘플링 비트 수를 포함), 미디어 데이터의 각 프레임별 상기 부가 정보(스트림 ID, 프레임 타입, 시작 위치 오프셋, 타임 스탬프, 사이즈), 상기 미디어 데이터의 트랙별 전체 재생 시간(duration)을 포함하고,
    상기 특정 box는, 구성되는 MP4 파일에서 상기 mdat box보다 앞에 추가되는 free box, skip box, udta box 중 적어도 하나이고,
    상기 마지막 유효 프레임은, 상기 부가 정보가 완전하게 기록된 마지막 프레임이고,
    상기 재생 시간은, 상기 마지막 유효 프레임의 타임 스탬프와 최초 프레임의 타임 스탬프의 시간차를 이용하여 결정되는 것을 특징으로 하는 MP4 파일 복구 방법.
KR1020120005039A 2012-01-17 2012-01-17 Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법 KR101316579B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120005039A KR101316579B1 (ko) 2012-01-17 2012-01-17 Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120005039A KR101316579B1 (ko) 2012-01-17 2012-01-17 Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법

Publications (2)

Publication Number Publication Date
KR20130084345A true KR20130084345A (ko) 2013-07-25
KR101316579B1 KR101316579B1 (ko) 2013-10-18

Family

ID=48994964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120005039A KR101316579B1 (ko) 2012-01-17 2012-01-17 Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법

Country Status (1)

Country Link
KR (1) KR101316579B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3319327A4 (en) * 2015-10-09 2019-01-02 Sony Corporation Information processing apparatus and information processing method
CN110139157A (zh) * 2019-05-16 2019-08-16 腾讯科技(深圳)有限公司 一种精确定位播放方法、装置、设备及介质
CN113660442A (zh) * 2021-08-31 2021-11-16 广州盈可视电子科技有限公司 一种视频修复方法、装置、电子设备及可读介质
CN114374875A (zh) * 2021-12-31 2022-04-19 浙江大华技术股份有限公司 一种mp4文件的录制方法、装置及可读存储介质
CN114449316A (zh) * 2021-12-02 2022-05-06 北京快乐茄信息技术有限公司 一种视频处理方法、装置、电子设备及存储介质
CN114666309A (zh) * 2022-03-23 2022-06-24 中磊电子(苏州)有限公司 流媒体的处理方法、传送装置和接收装置
CN115589480A (zh) * 2022-10-09 2023-01-10 深圳市巨龙创视科技有限公司 一种基于moov的MP4视频修复方法与***
CN117544738A (zh) * 2023-11-10 2024-02-09 深圳麦风科技有限公司 Rsv文件的播放修复方法、设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105451073B (zh) * 2015-11-16 2018-11-02 深圳Tcl数字技术有限公司 Mp4视频源的传送方法和装置
CN106935252A (zh) * 2017-02-08 2017-07-07 苏州科达科技股份有限公司 一种mp4文件生成方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050092688A (ko) * 2005-08-31 2005-09-22 한국정보통신대학교 산학협력단 통합 멀티미디어 파일 포맷 구조와 이를 기반으로 하는멀티미디어 서비스 제공 시스템 및 그 방법
KR20080070471A (ko) * 2007-01-26 2008-07-30 엘지전자 주식회사 파일 포맷을 구성하는 방법과 상기 파일 포맷을 가지는파일을 포함한 디지털 방송 신호를 처리하는 장치 및 방법
KR101036768B1 (ko) * 2009-07-10 2011-05-25 주식회사 코아로직 파일포맷 생성장치, 그 생성장치를 포함한 멀티미디어 장치, 및 그 생성장치를 이용한 파일 복구방법
JP5409214B2 (ja) * 2009-09-07 2014-02-05 三菱電機株式会社 メディアファイル修復方法、メディアファイル作成方法及びメディアファイル再生方法並びに装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3319327A4 (en) * 2015-10-09 2019-01-02 Sony Corporation Information processing apparatus and information processing method
CN110139157A (zh) * 2019-05-16 2019-08-16 腾讯科技(深圳)有限公司 一种精确定位播放方法、装置、设备及介质
CN110139157B (zh) * 2019-05-16 2021-03-16 腾讯科技(深圳)有限公司 一种精确定位播放方法、装置、设备及介质
CN113660442A (zh) * 2021-08-31 2021-11-16 广州盈可视电子科技有限公司 一种视频修复方法、装置、电子设备及可读介质
CN113660442B (zh) * 2021-08-31 2024-03-19 广州盈可视电子科技有限公司 一种视频修复方法、装置、电子设备及可读介质
CN114449316A (zh) * 2021-12-02 2022-05-06 北京快乐茄信息技术有限公司 一种视频处理方法、装置、电子设备及存储介质
CN114449316B (zh) * 2021-12-02 2023-09-22 北京快乐茄信息技术有限公司 一种视频处理方法、装置、电子设备及存储介质
CN114374875A (zh) * 2021-12-31 2022-04-19 浙江大华技术股份有限公司 一种mp4文件的录制方法、装置及可读存储介质
CN114374875B (zh) * 2021-12-31 2024-05-28 浙江大华技术股份有限公司 一种mp4文件的录制方法、装置及可读存储介质
CN114666309A (zh) * 2022-03-23 2022-06-24 中磊电子(苏州)有限公司 流媒体的处理方法、传送装置和接收装置
CN115589480A (zh) * 2022-10-09 2023-01-10 深圳市巨龙创视科技有限公司 一种基于moov的MP4视频修复方法与***
CN117544738A (zh) * 2023-11-10 2024-02-09 深圳麦风科技有限公司 Rsv文件的播放修复方法、设备及存储介质

Also Published As

Publication number Publication date
KR101316579B1 (ko) 2013-10-18

Similar Documents

Publication Publication Date Title
KR101316579B1 (ko) Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법
JP4481889B2 (ja) データ記録装置及びその方法、プログラム、記録媒体
CN104410807B (zh) 一种多路视频同步回放方法及装置
JP3771902B2 (ja) ファイル索引挿入のためにmpegストリームを処理するシステムおよび方法
CN101075462B (zh) 记录/再现/编辑装置、方法
WO2011083626A1 (ja) 画像処理装置、情報記録媒体、および画像処理方法、並びにプログラム
CN105103540A (zh) 文件生成方法、文件生成装置及记录介质
CN110740391B (zh) 一种修复mp4损坏文件的方法
WO2016027579A1 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム
CN101340538A (zh) 记录/再现装置、记录装置和方法、再现装置和方法
KR101711009B1 (ko) 영상 저장장치, 영상 재생장치, 영상 저장방법, 영상 제공방법, 저장매체 및 촬영장치
CN102474588A (zh) 发送控制装置、接收控制装置、发送控制方法、接收控制方法、以及发送控制程序
JP2014027665A (ja) 2d映像メディア標準に基づいて3d立体映像ファイルを生成及び再生するシステム及び方法
US20050025460A1 (en) Information-processing apparatus, information-processing method, program-recording medium, and program
KR101036768B1 (ko) 파일포맷 생성장치, 그 생성장치를 포함한 멀티미디어 장치, 및 그 생성장치를 이용한 파일 복구방법
JP2012170054A (ja) 映像記録装置、映像再生装置および映像復旧装置
RU2522040C2 (ru) Устройство и способ воспроизведения, структура данных, носитель записи, устройство записи и способ записи и программа
KR101051063B1 (ko) 영상 수록 재생 장치, 영상 수록 방법, 영상 재생 방법 및 영상 수록 재생 방법
WO2015178112A1 (ja) 情報処理装置、情報生成装置、情報記録媒体、および情報処理方法、並びにプログラム
CN112929686B (zh) 线上实时回放录制视频的方法及装置
JP2012049956A (ja) 運転記録装置に搭載可能な半導体集積回路およびその動作方法
KR101995270B1 (ko) 비디오 데이터를 재생하는 방법 및 장치
JP2013258655A (ja) 情報処理装置、動画生成装置、制御方法、プログラム、及び修復方法、
JP4383721B2 (ja) 多重化分離装置
CN103202028A (zh) 记录装置/方法/介质、再现装置/方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160923

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180612

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 7