Programming MP4 Container

2008.09.24 15:16

봄이조아 Views:49230

미디어 파일의 확장자를 보면, WAV, AVI, ASF, MOV 등 여러 가지가 있습니다. 이들 파일에는 한개 또는 여러개의 미디어 정보들이 들어 있고, 이 미디어들은  DV,MPEG-I/II, MPEG-4 (XVid, DX40, DIVX),H263/4 등과 같은 영상 압축 방법,   MP1/2/3,AC3,AAC 등과 같은 음성/음악 압축 방법 등을 이용하여 압축된 정보가 담겨져 있습니다.

이처럼 여러 미디어를 담고 있다고 해서, 일반적으로 Container 라구 부르고 있습니다. 이중에서 MP4 (M4V, M4A, M4S) 파일에 대해서 잠시 언급을 드리겠습니다.

사실 MP4 규격은 APPLE에서 사용한 MOV(Quick Time, QT) 형식을 ISO에서 표준으로 인정한 규격이며, 영상은 MPEG-4 또는 H264 로 압축을 하고, 음성은 AAC로 압축하도록 하고 있으며, 나중에 Text(Subtitle), Chapter, 및 Menu 까지 확장되었습니다.

규격 메뉴얼에는 다음과 같으며,

ISO IEC 14496-01 System
ISO IEC 14496-02 Visual
ISO IEC 14496-03 Audio
ISO IEC 14496-08 Contents over IP network

ISO IEC 14496-12 Base media file format
       MP4 파일의 기본 정보를 확인할 수 있습니다. 각종 atoms 종류와 그 데이터 구조를 파악할 수 있습니다.

ISO IEC 14496-14 MP4 file format
       144496-12 문서에서 포함하지 않은 몇개의 확장 atoms 에 대한 설명을 찾을 수 있습니다.

ISO IEC 14496-15 AVC
       영상이 h264/x264로 압축이 되어져 있는 경우에, 추가적인 정보를 제공하기 위한 atoms 에 대한 설명이 추가 되어 잇습니다.

ISO IEC 14496-16 AFX

실제로 추가적으로 참고해야할 문서로는 Apple 사에서 배포하고 있는 Quick Time File Format 문서가 있습니다. MP4를 표준화 할때, 특정 회사에 대한 의존성을 없애기 위해서 MP4 규격 자체가 단순화 되어졌지만, QTFF 문서에는 전체적인 MP4 규격을 참조할 때 좋습니다.

실제로 일반적으로 사용되는 MP4 파일에 정보들을 보면, QTFF 문서에서 그 내용을 제대로 확인할 수 있는 문건들이 상당히 많은 편입니다.