Theory/Multimedia

MPEG-4 파일의 구조 개괄

박스(box)

파일의 기본 단위로 크기와 타입, 데이타를 가진다. 크기는 크기와 타입 필드를 포함한 박스의 전체 크기이다. 데이타는 타입에 따른 데이타나 자식 박스(child box)가 올 수 있다.

예전에는 아톰(atom)으로 불렀다.


파일의 구조

MP4 파일은 데이타와 메타데이타 박스를 구성할 수 있는 다양한 방법을 제공한다.

  • ftyp : 파일의 호환성을 확인하는 파일 타입 박스 (file type box)
  • moov : 미디어의 모든 메타 데이타를 저장하는 무비 박스 (movie box)
    • mvhd: 무비 헤더 박스 (movie header box)
    • trak : 무비 안의 단일 트랙을 정의하는 박스 (track box)
      • tkhd : 트랙의 특성을 기술 (track header box)
      • edts : (edit box)
        • elst : (edit list box)
      • mdia : 트랙의 미디어 타입과 샘플 데이타 (media box)
        • mdhd : 미디어의 특성을 기술 (media header box)
        • hdlr : (handler reference box)
        • minf : (media information box)
          • hdlr : (handler reference box)
          • stbl : (sample table box)
            • stsd : 트랙의 디코딩에 필요한 코덱의 정보 (sample description box)
            • stts : 샘플의 시간 (time-to-sample box)
            • stsz : 청크 내 샘플의 크기 (sample size box)
            • stsc : 청크 내 샘플의 수 (sample to chunk box)
            • stco : 청크의 위치 (chunk offset box)
            • ...
    • trak
    • trak
    • ...
  • mdat : 실제 미디어를 저장하는 미디어 데이타 박스(media data box)
  • mdat
  • ...

moov와 mdat는 위 그림과 달리 순서가 바뀌어도 상관이 없다.
그러나 moov가 mdat 앞에 있으면 플레이어가 비디오/오디오 데이터를 재생하기 전에 이것에 관한 더 많은 정보를 얻을 수 있다.
때문에 moov가 앞에 위치하는 것이 좋다.
일부 플레이어는 HTTP Progressive Download를 이용하는 경우, moov가 앞에 있지 않으면 재생이 되지 않는다.


MPEG-4 파일 도구


참고 싸이트


'Theory > Multimedia' 카테고리의 다른 글

Smooth Streaming Client Manifest Format  (1) 2012.11.21
Smooth Streaming 파일과 프로토콜  (1) 2012.11.20
MPEG-2 Transport Stream 소개  (0) 2012.11.19
MPEG-4 파일의 구조 개괄  (3) 2012.11.19
HTTP 기반 어댑티브 스트리밍  (0) 2012.11.06
H.264 소개  (1) 2012.11.06
  1. M/D Reply

    비밀댓글입니다

    • Favicon of http://unipro.tistory.com unipro M/D

      우선, 직접적인 도움을 드리지 못하는 점을 사과드립니다.

      제가 가진 별도의 특별한 도구는 없습니다. 구글이나 네이버에 "MP4 파일 복구" 등으로 검색해보세요. 꽤 많은 사람들이, 구조요청자님과 같이, 녹화/녹음 시 비정상 종료된 문제로 비슷한 고통을 호소하고 있습니다.

      구조요청자님의 mdat는 대부분 저장되었을 것입니다. 즉, 실제 영상/음성 데이타 자체는 남아있을 것입니다. 물론, 마지막 일부가 유실되었을 가능성도 있습니다. 반면, MP4 파일의 헤더 부분인 moov는 거의 전부 유실되었을 것 같습니다.

      이유는 다음과 같습니다. 녹화/녹음할 때, mdat를 영구 저장 장치(HDD, Flash Memory 등)에 저장하고, moov를 RAM에 저장합니다. 영상/음성 데이타를 적절한 청크 단위로 모이면 mdat에 순서대로 저장합니다. 중단에 수정할 일이 없기 때문에 청크가 만들어지면 영구 저장 장치에 기록하면 됩니다. 반면, moov는 상대적으로 매우 작고, 상황에 따라서 수시로 계속 변하기 때문에 RAM에 올려놓는 것이 좋습니다. moov는 녹화/녹음이 끝나면 비로서 영구 저장 장치에 기록합니다. 이런 이유로, 녹화/녹음이 끝나기 전에 갑자기 중단되면, moov는 유실될 가능성이 매우 높고 mdat는 어쨌거나 살아남습니다.

  2. Favicon of http://www.joyalba.com 알바 . M/D Reply

    관리자의 승인을 기다리고 있는 댓글입니다

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

Today : 57
Yesterday : 120
Total : 183,427