MKV 파일이란?
MKV(Matroska Video)는 MOV 및 AVI 형식과 유사한 멀티미디어 컨테이너이지만 동일한 파일에서 둘 이상의 오디오 및 자막 트랙을 지원합니다. MKV 파일은 비디오에 사용되는 Matroska 멀티미디어 컨테이너 형식입니다. MKV는 Extensible Binary Meta Language를 기반으로 하며 여러 비디오 및 오디오 압축 형식을 지원합니다. MKV와 다른 비디오 형식의 주요 차이점은 MKV가 코덱이 아니라 컨테이너라는 것입니다. MKV 파일은 .mkv 파일 확장자로 저장됩니다. MKV는 오디오, 비디오 및 자막이 다른 유형의 인코딩을 사용하는 경우에도 단일 파일에 통합할 수 있습니다. 예를 들어 H.264 비디오와 오디오용 MP3 또는 AAC가 포함된 MKV 파일이 있을 수 있습니다. MKV는 또한 설명, 등급, 표지 및 챕터 포인트도 지원합니다. MKV가 미래에 대비할 수 있는 몇 가지 주요 기능이 있습니다. 이러한 기능은 다음과 같습니다.
- 빠른 탐색을 지원합니다.
- 다른 오디오 및 비디오 스트림을 선택하는 기능.
- 자막 지원(하드 코딩 및 소프트 코딩).
- 메타데이터, 챕터 및 메뉴 지원.
- 온라인 스트리밍 기능.
- 손상된 파일을 재생할 수 있는 기능을 제공하는 잘못된 파일을 복구하는 기능.
간략한 역사
MKV 파일은 2002년 러시아에서 시작되었습니다. 수석 개발자는 Matroska의 창립자 Steve Lhomme 및 프로그래머 팀과 함께 작업한 Lasse Kärkkäinen이었습니다. MKV는 공개 표준 프로젝트로 개발되었습니다. 즉, 공개 소스이며 무료로 사용할 수 있습니다. 시간이 지남에 따라 형식이 개선되어 2010년 WebM 멀티미디어 형식의 기초가 되었습니다.
마트로스카 디자인
Matroska는 EBML 사양에 다음 제약 조건을 추가합니다.
- EBML 헤더의 docType은 ‘matroska’여야 합니다.
- EBML 헤더의 EBMLMaxIDLength는 4여야 합니다.
- EBML 헤더의 EBMLMaxSizeLength는 1에서 8(포함) 사이여야 합니다.
모든 최상위 요소는 4 옥텟으로 코딩됩니다.
- 언어 코드: Matroska(버전 1~3)는 3글자의 서지 ISO-639-2 형식(예: 프랑스어의 경우 “fre”)일 수 있는 언어 코드를 사용하거나 “fre-ca"와 같은 추가 국가 코드를 사용할 수 있습니다. “캐나다 프랑스어. Matroska 버전 4부터 ISO 639-2 또는 BCP 47이 언어 코드에 사용될 수 있지만 BCP 47이 권장됩니다.
- 물리적 유형: 오디오 및 비디오 파일 모두에 대해 서로 다른 의미를 갖습니다. 예를 들어 ChapterPhysicalEquiv = 60은 오디오의 경우 (CD / 12” / 10” / 7" / TAPE / MINIDISC / DAT), 비디오의 경우 (DVD / VHS / LASERDISC)를 의미합니다.
- 블록 구조 - 블록 헤더: 블록 헤더에는 트랙 번호, 타임스탬프, 레이싱 유형 등에 관한 정보가 포함됩니다.
- 레이싱: 일반적으로 작은 데이터 블록(프레임)에 사용되는 데이터를 저장할 때 공간을 절약하는 메커니즘입니다. 레이싱에는 3가지 유형이 있습니다.
- Xiph: Frame with a size multiple of 255 coded with a 0 at the end of the size. For example, The code for 765 is 255;255;255;0.
- EBML: The frame size is coded as a difference between the previous size and this size. The first size in the lace is unsigned but others use a range shift to get a sign on each value.
- fixed-size: The size remains the same.
- SimpleBlock 구조: Keyframe 및 Discardable 플래그가 추가된 주요 차이점이 있는 Block 구조에서 영감을 받았습니다. 그 외에는 모든 것이 동일합니다.
마트로스카 구조
Matroska 문서는 Matroska 문서 유형을 사용하는 하나 이상의 EBML 문서로 구성되어야 합니다. 각 EBML 문서는 EBML 헤더로 시작하고 그 뒤에 세그먼트로 정의된 EBML 루트 요소가 와야 합니다. Matroska는 세그먼트 내에서 발생할 수 있는 몇 가지 최상위 요소를 정의합니다.
EBML은 요소 시스템을 사용하여 EBML 문서를 구성합니다. 다음은 Matroska 파일의 최상위 요소 목록입니다.
- EBML 문서: 전체 파일에 대한 래퍼입니다.
- EBML Header: DocType과 같은 파일의 헤더 정보를 담고 있습니다.
- 세그먼트: 다른 모든 최상위 요소를 포함하는 최상위 요소입니다.
- SeekHead: 다른 최상위 요소의 세그먼트 위치를 포함합니다.
- Info: Segment에 대한 일반적인 정보를 담고 있습니다.
- 트랙: 많은 트랙이 설명된 정보의 최상위 요소입니다.
- 챕터: 기본 메뉴 및 파티션 데이터를 정의하는 데 사용됩니다.
- 클러스터: 블록 구조를 포함하는 최상위 요소입니다.
- Cues: 액세스를 빠르게 찾는 세그먼트에 로컬인 모든 항목을 포함하는 최상위 요소입니다.
- 첨부파일: 첨부파일이 포함되어 있습니다.
- 태그: 이 요소는 트랙, 에디션, 챕터, 첨부 파일 또는 세그먼트 전체를 설명하는 메타데이터를 포함합니다.
다음 표는 대부분의 요소가 계층 구조로 표시된 Matroska 문서의 구조를 보여줍니다.
EBML 헤더 | ||||||
세그먼트 | 시크헤드 | 추구 | SeekID | |||
위치 찾기 | ||||||
정보 | 세그먼트UID | |||||
세그먼트 파일 이름 | ||||||
이전 UID | ||||||
이전 파일 이름 | ||||||
다음UID | ||||||
다음파일 이름 | ||||||
세그먼트패밀리 | ||||||
장번역 | ||||||
타임스탬프스케일 | ||||||
기간 | ||||||
날짜UTC | ||||||
제목 | ||||||
먹싱앱 | ||||||
라이팅앱 | ||||||
트랙 | 트랙 엔트리 | 트랙 번호 | ||||
트랙UID | ||||||
트랙 유형 | ||||||
이름 | ||||||
언어 | ||||||
코덱ID | ||||||
코덱개인 | ||||||
코덱 이름 | ||||||
비디오 | 플래그인터레이스 | |||||
필드 오더 | ||||||
스테레오 모드 | ||||||
알파모드 | ||||||
픽셀폭 | ||||||
픽셀 높이 | ||||||
디스플레이 폭 | ||||||
디스플레이 높이 | ||||||
종횡비 유형 | ||||||
색상 | ||||||
오디오 | 샘플링 주파수 | |||||
채널 | ||||||
비트뎁스 | ||||||
장 | 에디션 항목 | 에디션UID | ||||
EditionFlagHidden | ||||||
에디션플래그기본값 | ||||||
EditionFlagOrdered | ||||||
챕터아톰 | 챕터UID | |||||
장문자열UID | ||||||
챕터타임 시작 | ||||||
챕터타임종료 | ||||||
ChapterFlagHidden | ||||||
챕터디스플레이 | 챕스트링 | |||||
채플랭귀지 | ||||||
클러스터 | 타임스탬프 | |||||
사일런트트랙 | ||||||
위치 | ||||||
이전 크기 | ||||||
심플블록 | ||||||
블록그룹 | ||||||
암호화 블록 | ||||||
단서 | 큐포인트 | 큐타임 | ||||
CueTrackPositions | ||||||
첨부 파일 | 첨부파일 | 파일설명 | ||||
파일 이름 | ||||||
파일 마임 유형 | ||||||
파일UID | ||||||
파일추천 | ||||||
파일사용 시작 시간 | ||||||
파일사용종료시간 | ||||||
태그 | 태그 | 대상 | 대상 유형 값 | |||
대상 유형 | ||||||
태그트랙UID | ||||||
태그에디션UID | ||||||
TagChapterUID | ||||||
TagAttachmentUID | ||||||
심플태그 | 태그 이름 | |||||
꼬리표언어 | ||||||
태그기본값 | ||||||
태그 문자열 | ||||||
태그바이너리 | ||||||
심플태그 |
코덱 사용
새 미디어 플레이어를 원하지 않고 기존 플레이어를 사용하는 것을 선호하는 경우 일부 코덱(압축/압축 해제의 줄임말)을 설치해야 합니다. 코덱을 다운로드하는 것이 유효한 옵션이지만 소스에 주의해야 하며 여기에는 맬웨어가 포함될 수 있습니다.