Create TOC

2010년 9월 24일

Matroska(.mkv)의 트랙을 추출/합치기

이 문서는 Debian Linux에서 Mastroska(.mkv) 파일의 트랙을 추출하고 합치는 방법에 대해서 기술한다. 간혹 재생이 잘 안되는 Mastroska 파일은 트랙을 추출/합치는 것 만으로 재생이 잘될 때가 있다.

패키지 설치

아래 명령으로 필요한 패키지를 설치한다.

$ sudo apt-get install mkvtoolnix

트랙 추출

정보 얻기

mkvinfo를 이용해서 추출할 트랙 정보를 얻는다.

$ mkvinfo -s filename.mkv | head -3

아래와 같은 정보를 얻을 수 있다.

Track 1: video, codec ID: V_MPEG4/ISO/AVC, default duration: 33.367ms (29.970 fps for a video track), language: und, pixel width: 640, pixel height: 480, display width: 640, display height: 480
Track 2: audio, codec ID: A_MPEG/L3, default duration: 24.000ms (41.667 fps for a video track), language: und, sampling freq: 48000, channels: 2
I frame, track 1, timecode 0 (00:00:00.000000000), size 36297, adler 0x5bfac6c8

여기서 추출할 track을 결정한다(위 예제에서는 video 1개 audio 1개가 있지만, audo track 이 여러 개인 경우가 있다).

추출

mkvextract를 통해서 트랙을 추출한다.

$ mkvextract tracks filename.mkv 1:video1 2:audio1

트랙번호:파일이름 형식을 사용하면 된다. 만일 1번과 3번 트랙을 추출하려면

$ mkvextract tracks filename.mkv 1:video1 3:audio3

트랙 합치기

mkvmerge를 통해서 추출한 트랙을 합친다.

$ mkvmerge --default-duration 0:29.970fps vidio1 audio1 -o output_filename.mkv

이 때 fps 값은 추출한 video track의 fps를 사용한다.