.M4V 파일이란?
Apple에서 개발한 M4V 파일 형식은 개인 정보 또는 복사를 보호하기 위해 DRM(디지털 권한 관리) 복사 방지 기능으로 선택적으로 보호되는 비디오 컨테이너입니다. 비디오 및 오디오 트랙은 재생 스트림을 인덱싱하고 구성하기 위해 컨테이너 파일로 둘러싸여 있습니다. 또한 컨테이너는 DVD와 유사한 챕터의 기능을 제공합니다. Apple은 M4V를 사용하여 iTunes Store에서 비디오를 인코딩합니다. 비디오 구매에 사용된 계정이 있는 인증된 컴퓨터에서만 M4V 파일을 재생할 수 있도록 하여 Apple의 FairPlay 복사 방지를 통해 무단 복제를 방지합니다. 그러나 M4V 파일에서 DRM 보호가 제거되면 확장자를 .m4v에서 .mp4로 변경하여 이러한 파일을 다른 비디오 플레이어에서 재생할 수 있습니다. 이것이 M4V 파일이 MPEG-4와 연결된 이유입니다. M4V는 비디오에 H.264를 사용하고 오디오 인코딩 및 디코딩에 AAC 및 Dolby Digital을 사용합니다.
M4V 파일 구조
M4V 파일에는 각 청크에 8바이트 헤더, 4바이트 청크 크기 및 4바이트 청크 유형이 있는 연속 청크가 있습니다. 첫 번째 청크는 “ftype"이고 오프셋 8에 하위 유형이 있습니다. M4V는 “M4V_“여야 하는 하위 유형에 의해 정의됩니다. 추가 청크 유형은 사전 정의된 서명입니다: “ftyp”, “mdat”, “moov”, “pnot”, “udta”, “uuid”, “moof”, “free”, “skip”, “jP2”, “wide” , “로드”, “ctab”, “imap”, “matt”, “kmat”, “클립”, “crgn”, “동기화”, “chap”, “tmcd”, “scpt”, “ssrc”, " 픽”. 알 수 없는 유형이 감지될 때까지 청크를 반복하면서 M4V 파일을 작성합니다.
다음은 샘플 검사입니다. 샘플 m4v 파일의 바이너리 데이터는 Hex Viewer를 통해 검사되며 QuickTime을 정의하는 오프셋 4에서 서명 ftyp(hex: 66 74 79 70)로 시작하는 것을 관찰할 수 있습니다. 컨테이너 파일 형식. 파일 하위 유형은 M4V(MPEG-4) 파일 유형을 가리키는 M4V_(16진수: 4D 34 56 20)입니다. 첫 번째 블록 크기는 32(16진수: 00 00 00 20, 빅엔디안, 상위 바이트 먼저)이고 오프셋 0에 위치합니다. 오프셋 32(16진수: 20)에는 30,322(16진수 : 00 00 76 72, 빅 엔디안, 하위 바이트 먼저) 및 moov(16진수: 6D 6F 6F 76)를 입력합니다. 다음 청크는 오프셋 32+30,322#30,354(16진수: 00 00 76 92)에 있으며 크기는 8(16진수: 00 00 00 08)이고 유형은 free(16진수: 66 72 65 65)입니다.
M4V에서 사용되는 코덱
비디오 코덱 H.264
H.264는 비디오 압축 표준으로 디지털 비디오를 전송 또는 저장이 필요할 때 더 적은 공간을 필요로 하는 형식으로 변환합니다. M4V는 비디오 압축을 위해 H.264를 사용합니다. DVD, TV, 화상 회의 및 인터넷을 통한 비디오 스트리밍에 이르기까지 응용 프로그램이 다양합니다. H.264는 두 가지 주요 부분으로 구성됩니다. 인코더 – 비디오를 압축하고 디코더 – 압축된 비디오를 다시 압축 해제합니다. 아래 그림에서 인코딩 및 디코딩 프로세스가 강조 표시되고 다른 프로세스는 H.264 표준에서 다룹니다.
H.264의 비디오 코딩 및 디코딩 프로세스
압축된 H.264 비트스트림의 경우 비디오 인코더는 예측, 변환 및 인코딩 프로세스를 수행합니다. 동시에 디코더는 디코딩, 역변환 및 재구성의 역 과정을 수행하여 비디오 파일을 다시 생성합니다. H.264는 MPEG 크기의 절반을 차지합니다.
오디오 코덱
AAC(Advanced Audio Coding)는 손실이 있는 디지털 오디오 압축을 위한 오디오 코덱이며 M4V 컨테이너에 사용됩니다. AAC는 MP3 형식의 후속이며 동일한 비트 전송률로 MP3보다 더 나은 품질을 구현합니다. AAC 형식은 덜 중요한 압축 과정에서 일부 정보를 버립니다. AAC는 각 블록이 1024개의 시간 영역 샘플로 디코딩되는 가변 비트 전송률(VBR) 블록 기반 코덱입니다.