mkvextract - Matroska 파일에서
다른 파일로 트랙
추출
개요
mkvextract {소스-파일명}
{모드1} [옵션] [추출-스펙1]
[모드2] [옵션] [추출-스펙2]
[...]
설명
이 프로그램은 Matroska
파일에서 특정 부분을
다른 유용한 형식으로
추출합니다. 첫 번째
인수는 소스 파일의
이름이며 Matroska
파일이어야 합니다.
다른 모든 인수는
특정 추출 모드로
전환하거나, 현재 활성
모드에 대한 옵션을
변경하거나, 무엇을
어떤 파일에 추출할
것인지를 지정합니다.
Mkvextract의 동일한 호출에서
여러 모드를 사용하여
한 번에 여러 항목을
추출할 수 있습니다.
대부분의 옵션은 모든
모드에 적용되는 몇
가지 옵션이 있는 특정
모드에서만 사용할 수
있습니다.
현재 지원되는 것은
트랙, 태그, 첨부 파일,
챕터, 큐 시트,
타임스탬프 및 큐의
추출입니다.
공통 옵션
다음 옵션은 모든
모드에서 사용
가능하고 이 부분에서
단 한번만
설명합니다.
-f, --parse-fully
분석 모드를
'전부'로 설정합니다.
기본 모드는 전체
파일을 분석하지
않지만 소스 파일의
필요한 요소를 찾기
위해 메타 탐색 요소를
사용합니다. 이것은 99%
가량의 모든 경우에
충분합니다. 그러나
메타 탐색 요소를
포함하지 않거나
손상된 파일에서
사용자는 이 모드를
사용해야 할 지
모릅니다. 빠른 스캔은
몇 초밖에 안 걸리지만,
파일 전체 스캔은 이
삼분 걸릴 수
있습니다.
--command-line-charset 문자셋
명령행에 주어진
문자열을 변환할
문자셋을 정합니다.
기본값은 현재 시스템
로케일에 따른
문자셋입니다.
--output-charset 문자셋
출력할 문자열을
변환할 문자셋을
정합니다. 기본값은
현재 시스템 로케일에
따른 문자셋입니다.
-r, --redirect-output
파일명
모든 메시지를
콘솔 화면 대신
파일명 파일에
기록합니다. 이것은
출력 방향 전환으로
쉽게 할 수 있지만 이
옵션이 필요한 경우가
있습니다: 터미널이
파일에 출력하기 전에
출력을 재해석할 때.
문자셋 설정은 --output-charset
을 준수합니다.
--flush-on-close
쓰기 위해 열린
파일을 닫을 경우
메모리에 캐시된 모든
데이터를 플러시
하도록 프로그램에게
지시합니다. 이를 통해
정전 시 데이터 손실을
방지하거나 운영 체제
또는 드라이버의 특정
문제를 방지할 수
있습니다. mkvmerge는 모든
데이터가 저장소에
기록될 때까지
기다리기 때문에
멀티플렉싱 시간이 더
오래 걸린다는 단점이
있습니다. 장단점에
대한 자세한 내용은 MKVToolNix
버그 트래커의 #2469 및
#2480호를 참조하십시오.
--ui-language 코드
언어
코드의
번역을 강제로
사용합니다 (예: 강제
사용할 독일어 번역
코드는 'de_DE'). 'list'를
코드로 입력하면
mkvextract(1) 에서 이용
가능한 번역 목록을
출력할 것입니다.
--abort-on-warnings
첫 번째 경고가
발생한 후 프로그램을
중단하도록
지시합니다.
프로그램의 종료
코드는 1입니다.
--debug 토픽
특정 기능에
대해 디버깅을 켭니다.
이 기능은
개발자에게만
유용합니다.
--engage 기능
실험적인 기능을
켭니다. 이용 가능한
기능 목록은 mkvextract --engage
list로 요청할 수
있습니다. 이 기능들은
보통 상황에서는
사용하면 안 됩니다.
--gui-mode
GUI 모드를 켭니다.
이 모드에서는 GUI 동작시
무슨 일이 일어나는지
알려줄 수 있는
특별하게 형식화된
줄을 출력할 것입니다.
이 메시지들은 '#GUI#message'
형식을 따릅니다. 이
메시지 뒤에
'#GUI#message#key1=value1#key2=value2...' 형태의
키/값 쌍이 붙을 수
있습니다. 메시지나
키값들은 결코
번역되지 않고 항상
영어로 출력됩니다.
-v, --verbose
읽어들인 모든
중요한 Matroska 요소를
자세하게 보여
줍니다.
-h, --help
사용법에 관한
정보를 표시하고
종료합니다.
-V, --version
버전 정보를
표시하고
종료합니다.
@옵션 파일.json
추가 명령행
인수는
옵션-파일
파일에서 읽어보세요.
이러한 파일용 지원
형식에 대한 자세한
설명은
mkvmerge(1) man page에서
"옵션 파일"이라는
섹션을 참고하세요.
트랙 추출 모드
구문: mkvextract
소스-파일명
트랙
[옵션]
TID1:대상-파일명1
[TID2:대상-파일명2 ...]
다음 명령행 옵션은
'트랙' 추출 모드에서
각 트랙에 대해 사용할
수 있습니다. 이
옵션들은 적용이 되야
하는 트랙 사양(아래
참고) 의 앞쪽에
나타나야 합니다.
-c 문자셋
다음 자막
트랙을 변환할
문자셋을 설정합니다.
다음 트랙 ID가 텍스트
자막 트랙을 대상으로
하는 경우에만
유효합니다. 기본값은
UTF-8.
--blockadd 수준
이 수준까지만
BlockAddition을 유지합니다.
기본값은 모든 수준을
유지하는 것입니다. 이
옵션은 WAVPACK4같은 특정한
코덱에만 효과가
있습니다.
--cuesheet
mkvextract(1)로
큐시트를 챕터
정보에서 추출하고
다음 트랙의 데이터를
파일명이 트랙의 출력
이름이고 확장자가 '.cue'
인 파일에 태그로
기록합니다.
--raw
컨테이너에서
원시 데이터를 파일로
추출합니다.
--fullraw
플래그와 다르게 이
플래그는 CodecPrivate 요소의
내용이 그 파일에
기록되지 않습니다. 이
모드는 모든 CodecIDs와
동작합니다. 그 외에
mkvextract(1)가 지원하지 않는
CodecIDs에서도 동작이
됩니다. 다만 그 결과로
나오는 파일은 아마도
사용하지 못할
것입니다.
--fullraw
원시 데이터를
컨테이너에 넣지 않고
단순한 파일로
추출합니다. CodecPrivate
요소의 내용은 만약
트랙이 그런 헤더
요소를 포함하고
있으면 파일에 먼저
기록될 것입니다. 이
모드는 모든 CodecIDs과
mkvextract(1) 가 지원하지
않는 CodecIDs에서도
동작하지만 그 결과로
나오는 파일은 아마도
사용하지 못할
것입니다.
TID:출력이름
소스 파일에
TID
ID의 트랙이 있으면
출력이름 파일로
추출합니다. 이 옵션은
여러 번 사용할 수
있습니다. 트랙 ID는
mkvmerge(1)'s
--identify 옵션으로
나오는 것과 같습니다.
각 출력 이름은 한
번만 사용해야 합니다.
RealAudio와 RealVideo 트랙은
예외적입니다. 다른
트랙들에 같은 이름을
사용하면 해당
트랙들은 같은 파일에
저장이 될 것입니다.
예:
$ mkvextract input.mkv tracks 0:video.h264 2:output-two-vobsub-tracks.idx 3:output-two-vobsub-tracks.idx
첨부 파일 추출
모드
구문: mkvextract
소스-파일명
attachments [옵션]
AID1:출력명1
[AID2:출력명2 ...]
AID:출력이름
소스 파일에 ID
AID의 첨부 파일이
있으면
출력이름
파일로 추출합니다.
출력이름이 없으면
소스 Matroska 파일 안의 첨부
파일명을 대신
사용합니다. 이 옵션은
여러 번 사용할 수
있습니다. 첨부 파일 ID는
mkvmerge(1)'s
--identify 옵션으로
나오는 출력과
같습니다.
챕터 추출 모드
구문: mkvextract
소스-파일명
챕터
[옵션]
출력-파일명.xml
-s, --simple
챕터 정보를 OGM
도구에서 사용되는
단순 형식(CHAPTER01=...
CHAPTER01NAME=...)으로 내보냅니다.
이 모드에서 몇몇
정보는 폐기되어야만
합니다. 기본값은
챕터를 XML 형식으로
출력하는 것입니다.
--simple-language 언어
간단한 형식이
활성화된 경우
mkvextract(1)는
챕터 아톰에 두 개
이상의 챕터 이름이
있어도, 마주치는 각
챕터 아톰에 대해 단일
항목만 출력합니다.
기본적으로
mkvextract(1)는 그
언어와 상관없이 각
아톰에 대해 찾은 첫
번째 챕터 이름을
사용합니다.
이 옵션을 사용시
아톰이 둘 이상의 챕터
이름을 포함하는 경우,
출력할 챕터 이름을
결정할 수 있습니다.
언어 매개 변수는 ISO 639-1
또는 ISO 639-2 코드여야
합니다.
챕터는 지정된 출력
파일에 기록됩니다.
기본적으로 mkvmerge(1)가
이해하는 XML 형식이
사용됩니다. 파일에
챕터가 없으면 출력
파일이 작성되지
않습니다.
태그 추출 모드
구문: mkvextract
소스-파일명
태그
[옵션]
출력-파일명.xml
태그는 mkvmerge(1)가
이해하는 XML 형식으로
지정된 출력 파일에
기록됩니다. 파일에
태그가 없으면 출력
파일이 생성되지
않습니다.
큐시트 추출 모드
구문: mkvextract
소스-파일명
큐 시트
[옵션]
출력-파일명.cue
큐 시트는 지정된
출력 파일에
기록됩니다. 파일에
챕터나 태그가 없으면
출력 파일이 생성되지
않습니다.
타임스탬프 추출
모드
구문: mkvextract
소스-파일명
타임스탬프_v2
[옵션]
TID1:대상-파일명1
[TID2:대상-파일명2 ...]
TID:출력이름
소스 파일에
TID
ID의 트랙이 있으면
출력이름 파일로
추출합니다. 이 옵션은
여러 번 사용할 수
있습니다. 트랙 ID는
mkvmerge(1)'s
--identify 옵션으로
나오는 것과 같습니다.
예:
$ mkvextract input.mkv timestamps_v2 1:ts-track1.txt 2:ts-track2.txt
큐 추출 모드
구문: mkvextract
소스-파일명
큐 [옵션]
TID1:대상-파일명1
[TID2:대상-파일명2 ...]
TID:대상 파일명
ID가
TID인 트랙에
대한 큐가 소스 파일에
있는 경우 해당 트랙이
outname 파일로
추출됩니다. 이 옵션은
여러 번 지정할 수
있습니다. 트랙 ID는
mkvmerge(1)의
--identify 옵션에
의해 출력되는 ID와
동일하며 CueTrack 요소에
포함된 번호가
아닙니다.
형식 출력은 key=value
쌍이 있는 CuePoint 요소당 한
줄씩의 간단한 텍스트
형식입니다. 옵션
요소가 CuePoint(예: CueDuration)에
없는 경우 대시가
값으로 출력됩니다.
예:
timestamp=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11
가능한 키:
타임스탬프
나노초 정밀도로
큐 포인트의
타임스탬프입니다.
형식은 HH:MM:SS.nnnnnnnnn입니다. 이
요소는 항상
설정됩니다.
지속 시간
나노초 정밀도로
큐 포인트의
타임스탬프입니다.
형식은 HH:MM:SS.nnnnnnnnn입니다.
클러스터_위치
참조된 요소를
포함하는 클러스터가
시작되는 Matroska 파일 내의
절대 위치(바이트 단위).
Note
Matroska 파일 내에서 CueClusterPosition은
세그먼트의 데이터
시작 오프셋에
상대적입니다. 그러나
mkvextract(1)의 큐 추출
모드에 의해 출력되는
값은 이미 오프셋을
포함하고 있으며
파일의 시작부터 절대
오프셋입니다.
상대적인_위치
큐 포인트가
참조하는 BlockGroup 또는 SimpleBlock
요소가 시작되는
클러스터 내의 상대
위치(바이트 단위).
Note
Matroska 파일 내 Cue Relative Position은
클러스터의 데이터
시작 오프셋을
기준으로 합니다.
그러나
mkvextract(1)의 큐
추출 모드에 의해
출력되는 값은
클러스터의 ID에
상대적입니다. 파일
내의 절대 위치는
cluster_position과 relative_position을
추가하여 계산할 수
있습니다.
예:
$ mkvextract input.mkv cues 1:cues-track1.txt 2:cues-track2.txt
보기
챕터와 태그를 각각
XML 형식으로 동시에
추출:
$ mkvextract movie.mkv chapters movie-chapters.xml tags movie-tags.xml
트랙 두 개 및 해당
타임스탬프를 동시에
추출:
$ mkvextract "Another Movie.mkv" tracks 0:video.h265 "1:main audio.aac" "2:director's comments.aac" timestamps_v2 "0:timestamps video.txt" "1:timestamps main audio.txt" "2:timestamps director's comments.txt"
Ogg/OGM 형식의 장을
추출하고 텍스트 자막
트랙을 다른 문자
집합으로 다시
인코딩하는 방법:
$ mkvextract "My Movie.mkv" chapters --simple "My Chapters.txt" tracks -c MS-ANSI "2:My Subtitles.srt"
텍스트 파일과
문자셋 변환
MKVToolNix 제품군의 모든
도구가 문자 집합 변환,
입력/출력 인코딩,
명령줄 인코딩 및 콘솔
인코딩을 처리하는
방법에 대한 자세한
내용은 mkvmerge(1) 매뉴얼
페이지에서 동일한
이름의 섹션을
참조하십시오.
출력 파일 형식
출력 형식에 대한
결정은 출력 파일
이름에 사용된
확장자가 아니라 트랙
유형에 따라
결정됩니다. 현재
지원되는 트랙 유형은
다음과 같습니다.
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC
모든 AAC 파일은 각
패킷 전에 ADTS 헤더가
있는 AAC 파일에
기록됩니다. ADTS
헤더에는 사용되지
않는 강조 필드가
포함되지 않습니다.
A_AC3, A_EAC3
이 파일은 원본 AC-3
파일로 압축
해제됩니다.
A_ALAC
ALAC트랙은 CAF파일에
쓰여집니다.
A_DTS
이 파일은 원본 DTS
파일로 압축
해제됩니다.
A_FLAC
FLAC트랙은
원본FLAC파일에
쓰여집니다.
A_MPEG/L2
MPEG-1 오디오 레이어
II 스트림이 원본 MP2
파일로 추출됩니다.
A_MPEG/L3
이것들은 원본 MP3
파일로 압축
해제됩니다.
A_OPUS
Opus트랙은
OggOpus파일에
쓰여집니다.
A_PCM/INT/LIT, A_PCM/INT/BIG
원본PCM데이터는
WAV파일에 쓰여집니다.
Big-endian 정수 데이터는 이
과정에서 little-endian
데이터로
변환됩니다.
A_REAL/*
RealAudio트랙은
RealMedia파일에
쓰여집니다.
A_TRUEHD, A_MLP
이것들은 원본
TrueHD/MLP 파일로 압축
해제됩니다.
A_TTA1
TrueAudio트랙은
TTA파일에 쓰여집니다.
Matroska의 제한된
타임스탬프 정밀도로
인해 추출된 파일의
헤더는 data_length(파일에
있는 샘플의 총 수)와
CRC의 두 필드에 대해
다릅니다.
A_VORBIS
Vorbis 오디오는 OggVorbis
파일로 기록될
것입니다.
A_WAVPACK4
WavPack트랙은
WV파일에 쓰여집니다.
S_HDMV/PGS
PGS자막은 SUP파일에
쓰여집니다.
S_HDMV/TEXTST
S_KATE
Kate스트림은
Ogg컨테이너에
쓰여집니다.
S_TEXT/SSA, S_TEXT/ASS, S_SSA, S_ASS
SSA와 ASS 텍스트
자막은 각각 SSA/ASS 파일로
작성됩니다.
S_TEXT/UTF8, S_TEXT/ASCII
간단한 텍스트
자막은 SRT파일에
쓰여집니다.
S_VOBSUB
VobSub 자막은 각
인덱스 파일과 함께 SUB
파일로 작성되며, IDX
파일로 작성됩니다.
S_TEXT/USF
USF 텍스트 자막은 USF
파일에 쓰여집니다.
S_TEXT/WEBVTT
WebVTT 텍스트 자막은
WebVTT 파일에
쓰여집니다.
V_MPEG1, V_MPEG2
MPEG-1과 MPEG-2 비디오
트랙은 MPEG 기본
스트림으로
작성됩니다.
V_MPEG4/ISO/AVC
H.264 / AVC 비디오
트랙은 H.264 기본
스트림에 기록되며, GPAC
패키지의 MP4Box와 같이
추가로 처리할 수
있습니다.
V_MPEG4/ISO/HEVC
H.265 / HEVC 비디오
트랙은 H.265 기본
스트림에 기록되며, GPAC
패키지의 MP4Box와 같이
추가로 처리할 수
있습니다.
V_MS/VFW/FOURCC
코덱으로 고정된
FPS 비디오 트랙 수정ID'는 AVI
파일에 기록됩니다.
V_REAL/*
RealVideo트랙은
RealMedia파일에
쓰여집니다.
V_THEORA
Theora스트림은
Ogg컨테이너에
쓰여집니다.
V_VP8, V_VP9
VP8 / VP9트랙은
IVF파일에 쓰여집니다.
태그
태그가 XML
형식으로 변환됩니다.
이 형식은
mkvmerge(1)가 태그
읽기에 지원하는
형식과 동일합니다.
첨부 파일
첨부 파일은
출력 파일에 그대로
기록됩니다. 어떠한
변환도 수행되지
않습니다.
챕터
챕터는 XML
형식으로 변환됩니다.
이 형식은
mkvmerge(1)가 챕터
읽기에 지원하는
형식과 동일합니다.
또는 스트립된 버전을
간단한 OGM 스타일
형식으로 출력할 수
있습니다.
타임스탬프
타임스탬프가
먼저 정렬된 다음
mkvmerge(1)에 공급될 준비가
된 타임스탬프 v2 형식
호환 파일로
출력됩니다. 다른
형식(v1, v3 및 v4)으로의
추출은 지원되지
않습니다.
종료 코드
mkvextract(1) 종료 코드 세
개 중 하나로 종료:
•0 -- 이 종료
코드는 추출이
성공적으로
완료되었음을
의미합니다.
•
1 -- 이 경우
mkvextract(1)는 경고를 하나
이상 출력했지만
추출은
계속되었습니다. 경고
앞에 'Warning:'이라는
텍스트가 붙습니다.
관련된 문제에 따라
결과 파일이 정상 또는
그렇지 않을 수
있습니다. 사용자는
경고와 결과 파일을
모두 확인해야
합니다.
•
2 -- 오류가
발생한 후 이 종료
코드가 사용됩니다.
오류 메시지를 출력한
후
mkvextract(1)가 바로
중단됩니다. 오류
메시지는 읽기/쓰기
오류에 대한 잘못된
명령줄 인수에서
손상된 파일에
이르기까지
다양합니다.
환경 변수
mkvextract(1)는 시스템의
로케일을 결정하는
기본 변수(예: LANG 및 LC_*
제품군)를 사용합니다.
추가 변수:
MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG 와 그
간략한 형태인MTX_DEBUG
내용은 --debug
옵션을 통해 전달된
것으로 간주됩니다.
MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE 와
그 간략한 형태인
MTX_ENGAGE
내용은 --engage
옵션을 통해 전달된
것으로 간주됩니다.
이전 버전은 언제나
MKVToolNix 홈페이지[1]에서
찾을 수 있습니다.
Moritz Bunkus <moritz@bunkus.org>
개발자
- 1.
- MKVToolNix 홈페이지
https://mkvtoolnix.download/