Matroska(MKV)의 챕터기능은..널리 쓰이진 않는 것 같지만 잘만 쓰면 아주 유용한 기능이죠.

예를 들어 여러 가수들의 무대가 섞여있는 음악 방송에서 각 가수들의 무대를 챕터로 표시해 놓으면

재생시에 각각의 무대 영상을 쉽고 빠르게 찾아볼 수 있게 해주는 기능입니다.

하지만 이 글에서 소개할 mkv의 Ordered Chapters는 이런 일반적인 챕터와는 약간 다른 방식입니다.


일반적인 챕터파일을 사용한 영상은 챕터파일과 영상의 재생은 아무런 상관이 없습니다.

단지 영상의 특정 부분을 챕터로 구분해주는 역할을 할 뿐입니다.

반면 Ordered Chapters가 사용된 영상은 챕터파일과 영상의 재생이 직접 관련됩니다.

예를 들어 어떤 영상의 재생 시간은 1시간이고 0~10분 구간을 A, 20~30분 구간을 B, 40~50분 구간을 C라고 하면,

일반적인 챕터파일로 A, B, C구간을 챕터로 지정한 다음 영상을 재생해 보면 1시간짜리 영상이 0~60분까지 재생됩니다.

단지 챕터 목록에서 A, B, C를 선택하면 해당 구간으로 곧바로 이동할 수 있을 뿐이죠.

이에 반해서 Ordered Chapters를 적용한 챕터파일로 A, B, C구간을 챕터로 지정한 다음 영상을 재생해 보면

A, B, C의 순서대로 30분짜리 영상이 재생됩니다.

즉, Ordered Chapters를 사용하면 챕터파일에 기록된 챕터들만이 그 순서대로 재생됩니다.

따라서 챕터파일에 기록된 챕터들에 따라서 영상의 재생시간도 얼마든지 변할 수 있습니다.

예로 든 위의 경우에 Ordered Chapters가 적용된 챕터파일의 챕터를 A, B, C구간으로만 지정하지 않고 A, A, C, C, B구간으로

지정하면 A, A, C, C, B의 순서대로 50분짜리 영상이 재생되는 것이죠.

이렇게 Ordered Chapters를 사용하면 재생 순서, 재생 시간 등 영상의 재생을 마음대로 조절할 수 있습니다.

Ordered Chapters가 사용된 영상을 보려면 동영상 플레이어가 Ordered Chapters를 지원해야 합니다.

일부 동영상 플레이어는 Ordered Chapters를 인식하지 못해서 일반적인 .mkv파일처럼 재생합니다.


우선 Ordered Chapters를 사용하는 방법을 말씀드리기 전에 챕터파일의 구조에 대해서 약간의 설명이 필요합니다. 

챕터파일은 Edition을 기본 단위로 해서 만들어지는데 하나의 챕터파일에 여러개의 Edition이 동시에 사용될 수 있습니다.

각각의 Edition 아래로 서브 챕터가 들어가고 이 서브 챕터에서 원하는 구간을 지정해 줄 수 있습니다.

서브 챕터의 아래로 계속해서 서브 챕터를 만드는 것도 가능합니다.

즉, 하나의 챕터파일은 여러개의 Edition으로 구성될 수 있고 각각의 Edition마다 서로 다른 챕터를 지정하는 것이 가능합니다.

예를 들어 연말 가요대전 같은 프로그램을 인코딩하면서 남자가수와 여자가수의 챕터를 따로 만들고 싶다면

Edition 1에는 남자가수 챕터를 구성하고 Edition 2에는 여자가수 챕터를 구성해서 하나의 챕터파일에 Edition 1과 2를

동시에 넣는 것이 가능하다는 말이죠.

(재생 중에는 챕터목록에서 Edition 중 하나를 선택할 수 있습니다.)


정리하면 아래와 같은 구조로 만들어집니다.

[Chapters]
 <Edition 1>
  <sub-chapter 1>
  <sub-chapter 2>
  <sub-chapter 3>
 <Edition 2>
  <sub-chapter 1>
   <sub-sub-chapter 1-1>
   <sub-sub-chapter 1-2>
  <sub-chapter 2>
[/Chapters]


Ordered Chapters는 Edition을 기준으로 사용되기 때문에 위의 경우에 Edition 1에는 Ordered Chapters를 사용하면서

Edition 2에는 Ordered Chapters를 사용하지 않을 수도 있습니다.


Ordered Chapters가 유용하게 사용되는 경우로는 엔딩이 여러개인 영화를 들 수 있습니다.

각각의 엔딩마다 영화의 후반부만 조금씩 달라지는 경우라면 Ordered Chapters를 사용해서 여러개의 엔딩을 동시에 포함하는

영상을 만들 수 있습니다. 여러 개의 영화를 따로 인코딩하는 것보다 경제적이라고 할 수 있겠죠.


예를 들어 1시간짜리 영화의 0~50분은 공통되는 부분이고 50~60분의 엔딩 부분이 2가지로 나뉘는 경우를 생각해 보겠습니다.

먼저 영상의 본편(0~50)과 엔딩1, 엔딩2를 순서대로 연결해서 1시간 10분짜리 영상으로 인코딩을 합니다.

그리고 MKVmergeGUI의 챕터에디터로 다음과 같은 챕터파일을 만듭니다.

[Chapters]
 <Edition 1>
  <본편> 00~50
  <엔딩 1> 50~60
 <Edition 2>
  <본편> 00~50
  <엔딩 2> 60~70
[/Chapters]


이렇게 만든 챕터파일의 Edition 1과 2에 Ordered Chapters를 적용해서 재생하는 경우,

챕터목록의 Edition 1을 선택하면(Edition 1이 기본값으로 선택됩니다.) 엔딩 1로 끝나는 1시간짜리 영화가 재생되고

챕터목록의 Edition 2를 선택하면 엔딩 2로 끝나는 1시간짜리 영화가 재생되겠죠.

Edition에 Ordered Chapters를 적용하려면 챕터에디터에서 해당 Edition을 선택한 후 ordered 플래그에 체크하시면 됩니다.

챕터파일의 다른 항목들에 대한 자세한 설명은 아래 링크를 참조하시기 바랍니다.

http://www.matroska.org/technical/specs/chapters/index.html




그리고 지금까지 설명드린 방식과는 다르게 Ordered Chapters를 이용해서 외부 파일을 본 영상에 링크하는 것도 가능합니다.

예를 들어 동일하게 반복되는 오프닝 영상이나 엔딩 영상이 있는 시리즈 물을 인코딩할 때

반복되는 오프닝 또는 엔딩 영상은 따로 한 번만 인코딩해 놓고 매 회 본 영상의 앞, 뒷 부분에 링크해서 붙여넣는 것입니다.

오프닝, 엔딩 영상까지 포함해서 매 회를 인코딩하는 것보다 더 효율적이겠죠.

 (단, 링크된 영상은 본 영상과 같은 폴더 내에 존재해야 합니다.)


외부 파일을 본 영상에 링크하는 방법은(간단하게 오프닝 영상만 링크하는 경우로 설명하겠습니다.)

우선 MKVmergeGUI의 챕터에디터로 다음과 같은 챕터파일을 만듭니다.

[Chapters]
 <Edition 1>
  <오프닝>
  <본편>
[/Chapters]


그런데 <오프닝>챕터에 해당하는 영상은 따로 인코딩돼서 외부에 있는 파일이죠.

따라서 <오프닝>챕터에 해당하는 외부 파일(오프닝 영상)이 어떤 파일인지 알려주기 위해 오프닝 영상의 Segment UID를 함께 적어줍니다.

Segment UID는 .mkv파일이 가지고 있는 고유번호 같은 개념으로 mkvtoolnix에 포함된 mkvinfo.exe라는 프로그램으로 확인할 수 있습니다.

(mkvinfo.exe가 있는 폴더에서 cmd창을 열고 mkvinfo -g 를 입력하면 mkvinfoGUI가 실행됩니다. 배치파일을 만들어 놓으면 편하겠죠.)

mkvinfoGUI에서 해당 영상을 열어보면 Segment UID라는 항목이 있는데 아래와 같이 hex로 표시된 16개의 값입니다.

0xb1 0xb1 0xbd 0xc7 0x30 0x36 0x11 0x3a 0xb5 0xd7 0xad 0x44 0x58 0xe9 0xa6 0x42


Segment UID를 복사해서 챕터에디터에 있는 <오프닝>챕터의 Segment UID 항목에 적어주면 됩니다. 

마지막으로 Ordered Chapters도 같이 적용해주면 외부에 있는 오프닝 영상이 본편의 앞부분에 연결되어 재생됩니다.




Posted by 김코덱