НАЗВА¶
mkvextract -
витягування
доріжок з
файлів Matroska(TM)
до інших
файлів
КОРОТКИЙ ОПИС¶
mkvextract {source-filename} {mode1} [options]
[extraction-spec1] [mode2] [options] [extraction-spec2] [...]
ОПИС¶
Ця
програма
витягує
певні
частини з
файлу Matroska(TM) в
інші
корисні
формати.
Першим
аргументом
є ім'я
вихідного
файлу, яким
має бути
файл Matroska(TM).
Усі інші
аргументи
або
перемикаються
в певний
режим
витягування,
змінюють
параметри
для
поточного
активного
режиму або
вказують,
що
витягувати
в який файл.
Під час
одного
виклику mkvextract
можна
використовувати
декілька
режимів, що
дозволяє
витягувати
декілька
частин за
один крок.
Більшість
параметрів
можна
використовувати
лише в
певних
режимах, а
деякі
параметри
застосовуються
до всіх
режимів.
В даний
час
підтримується
витягування
доріжок,
тегів,
вкладеннь,
розділів, CUE
листів,
міток часу
і cue.
Загальні параметри¶
Нижчевказані
параметри
доступні у
всіх
режимах і
тому лише
раз
описуються
в данному
розділі.
-f, --parse-fully
Встановлює
режим
аналізу як
'full'. За
допомогою
типового
режиму не
аналізується
увесь файл,
а
використовуються
елементи
метапошуку
для
виявлення
необхідних
елементів
вхідного
файла. В 99%
випадків
цього
достатньо.
Але для
аналізу
файлів, що
не містять
елементів
метапошуку
або є
пошкодженими
треба
використовувати
цей режим.
Повне
сканування
файлу може
тривати
кілька
хвилин, в
той час як
швидке -
кілька
секунд.
--command-line-charset character-set
Встановлює
набір
символів
заданого в
командному
рядку для
конвертації.
Типово
використовується
набір
символів
згідно
поточної
локалі
системи.
--output-charset character-set
Встановлює
вихідний
набір
символів
заданого в
командному
рядку для
конвертації.
Типово
використовується
набір
символів
згідно
поточної
локалі
системи.
-r, --redirect-output file-name
Всі
повідомлення
записуються
до файлу file-name
замість
консолі.
Хоча це
можна
зробити
через
переспрямування
виводу, є
деякі
випадки,
коли
необхідно
застосовувати
саме даний
параметр:
коли
термінал
інтерпретує
в інший
спосіб
вивід
перед
записом до
файлу.
Набір
символів,
заданий
через --output-charset
враховується.
--flush-on-close
Повідомляє
програмі
перенести
до сховища
кешовані в
пам’яті
дані під
час
закриття
файлів, що
були
відкриті
на запис. Це
можна
використовувати,
щоб
запобігти
втраті
даних при
відключенні
електроенергії
або обійти
певні
проблеми в
операційній
системі чи
драйверах.
Недоліком
є те, що
мультиплексування
займе
більше
часу,
оскільки mkvmerge
буде
чекати,
поки всі
дані
будуть
записані в
сховище,
перш ніж
вийти.
Дивіться
проблемы 2469 і
2480
баг-трекера
MKVToolNix щоб
дізнатися
про
переваги
та
недоліки.
--ui-language code
Використовується
примусовий
переклад
для мови code
(наприклад,
'de_DE' для
німецького
перекладу).
Після
введення list'
як code
програма
відобразить
список
доступних
перекладів.
--abort-on-warnings
Повідомляє
програмі
припинити
роботу
після
першого
попередження.
Код виходу
з програми
буде 1.
--debug topic
Увімкнути
налагодження
для певної
функції.
Цей
параметр
корисний
лише для
розробників.
--engage feature
Увімкнути
експериментальні
функції.
Список
доступних
функцій
можна
запросити
за
допомогою
mkvextract --engage list. Ці
функції не
призначені
для
використання
у
звичайних
ситуаціях.
--gui-mode
Вмикає
режим
графічного
інтерфейсу.
У цьому
режимі
можуть
бути
виведені
спеціально
відформатовані
рядки, які
можуть
повідомляти
керуючому
графічному
інтерфейсу,
що
відбувається.
Ці
повідомлення
мають
формат '#GUI#message'.
За
повідомленням
можуть
слідувати
пари
ключ/значення,
як у '#GUI#message#key1=value1#key2=value2...'.
Ані
повідомлення,
ані ключі
ніколи не
перекладаються
і завжди
виводяться
англійською.
-v, --verbose
Задає
відображення
розширеної
інформації
про
важливі
елементи
Matroska(TM).
-h, --help
Відображається
інформація
про
використання
додатку і
відбувається
завершення
роботи
додатку.
-V, --version
Відображається
інформація
про версію
додатку і
відбувається
завершення
роботи
додатку.
@options-file.json
Читає
додаткові
аргументи
командного
рядка з
файлу
options-file.
Повне
пояснення
про
підтримувані
формати
для таких
файлів див.
розділ
"Файли
параметрів"
у
посібнику
користувача
mkvmerge(1).
Режим витягування доріжок¶
Синтаксис:
mkvextract source-filename
tracks [options]
TID1:dest-filename1
[TID2:dest-filename2 ...]
Наступні
параметри
командного
рядка
доступні
для кожної
доріжки в
режимі
витягування
'tracks'. Вони
мають бути
присутні
після
вказання
доріжки
(див. нижче),
до якої
будуть
застосовуватись.
-c character-set
Задається
набір
символів,
який має
містити
наступна
доріжка
субтитрів
після
конвертації.
Застосовується
лише тоді,
коли ID
наступної
доріжки
вказує на
доріжку
субтитрів.
Типовим
набором
символів є
UTF-8.
--blockadd level
Залишати
лише BlockAdditions до
цього
рівня.
Типово
враховуються
усі рівні.
Даний
параметр
може
вплинути
лише на
деякі
кодеки, як
то WAVPACK4.
--cuesheet
Відбувається
витягування
списків CUE з
інформацією
про
розділи і
дані тегів
даної
доріжки у
файл, ім’я
якого є
вихідною
назвою
доріжки з
додаванням
розширення
'.cue'.
--raw
Відбувається
витягування
необраблених
даних до
файлу без
контейнера.
На відміну
від
прапорця
--fullraw даний
параметр
не
призводить
до запису
складових
елементу CodecPrivate
до файлу.
Даний
режим може
працювати
з усіма CodecIDs,
навіть з
тими, які
mkvextract(1) не
підтримує,
але це може
призвести
до
створення
пошкодженого
файлу.
--fullraw
Відбувається
витягування
необроблених
даних до
файлу без
контейнера.
Складові
елементу CodecPrivate
будуть
записуватися
до файлу
першими,
якщо
доріжка
містить
такий
елемент
заголовку.
Даний
режим може
працювати
з усіма CodecIDs,
навіть з
тими, які
mkvextract(1) не
підтримує,
але це може
призвести
до
створення
пошкодженого
файлу.
TID:outname
Відбувається
витягування
доріжки з ID
TID до файлу
outname за умови,
якщо така
доріжка
міститься
у вхідному
файлі.
Даний
параметр
можна
задавати
декілька
разів. ID
доріжок
мають бути
такі самі
як і при
виведенні
інформації
командою
mkvmerge(1) з
параметром
--identify.
Кожна
назва
вихідного
файлу має
використовуватися
лише раз.
Виняток
становлять
доріжки RealAudio і
RealVideo. Якщо
використовувати
однакові
назви для
різних
доріжок, то
вони
будуть
збережені
до одного й
того
самого
файлу.
Наприклад:
$ mkvextract input.mkv tracks 0:video.h264 2:output-two-vobsub-tracks.idx 3:output-two-vobsub-tracks.idx
Режим витягування вкладень¶
Синтаксис:
mkvextract source-filename
attachments [options]
AID1:outname1 [AID2:outname2 ...]
AID:outname
Відбувається
витягування
вкладення
з ID
AID до
файлу
outname за
умови, якщо
таке
вкладення
міститься
у вхідному
файлі. Якщо
ж залишити
outname пустим,
то буде
використовуватися
назва
вкладення
з вхідного
файла Matroska(TM).
Даний
параметр
можна
задавати
декілька
разів. ID
вкладень
мають бути
такі самі
як і при
виведенні
інформації
командою
mkvmerge(1) з
параметром
--identify.
Режим витягування розділів¶
Синтаксис:
mkvextract source-filename
chapters [options]
output-filename.xml
-s, --simple
Витягується
інформація
про
розділи у
простому
форматі, що
використовується
в
інструментарії
для роботи
з OGM (CHAPTER01=..., CHAPTER01NAME=...). В
цьому
режимі
деяка
інформація
пропускається.
За
замовчуванням
розділи
витягуються
у форматі XML.
--simple-language language
Якщо
ввімкнено
простий
формат,
mkvextract(1)
виведе
лише один
запис для
кожного
зустріченого
атома
розділу,
навіть
якщо атом
розділу
містить
більше
однієї
назви
розділу. За
замовчуванням
mkvextract(1)
використовуватиме
назву
першого
розділу,
знайдену
для
кожного
атома,
незалежно
від його
мови.
Використання
цього
параметра
дозволяє
користувачеві
визначити,
які назви
розділів
виводяться,
якщо атоми
містять
більше
однієї
назви
глави.
Параметр
language має бути
кодом ISO 639-1 або
ISO 639-2.
Розділи
записуються
у вказаний
вихідний
файл. За
замовчуванням
використовується
зрозумілий
mkvmerge(1) формат XML.
Якщо у
файлі не
знайдено
жодних
розділів,
вихідний
файл не
створюється.
Режим витягування тегів¶
Синтаксис:
mkvextract source-filename tags
[options] output-filename.xml
Теги
записуються
у вказаний
вихідний
файл у
зрозумілий
mkvmerge(1) формат XML.
Якщо у
файлі не
знайдено
тегів,
вихідний
файл не
створюється.
Режим витягування списків Cue¶
Синтаксис:
mkvextract source-filename
cuesheet [options]
output-filename.cue
Список cue
записується
у вказаний
вихідний
файл. Якщо у
файлі не
знайдено
жодних
розділів
або теґів,
вихідний
файл не
створюється.
Режим витягування міток часу¶
Синтаксис:
mkvextract source-filename
timestamps_v2 [options]
TID1:dest-filename1
[TID2:dest-filename2 ...]
TID:outname
Відбувається
витягування
міток часу
доріжок з ID
TID до файлу
outname за умови,
якщо така
доріжка
міститься
у вхідному
файлі.
Даний
параметр
можна
задавати
декілька
разів. ID
доріжок
мають бути
такі самі
як і при
виведенні
інформації
командою
mkvmerge(1) з
параметром
--identify.
Наприклад:
$ mkvextract input.mkv timestamps_v2 1:ts-track1.txt 2:ts-track2.txt
Режим витягування списків Cue¶
Синтаксис:
mkvextract source-filename cues
[options] TID1:dest-filename1
[TID2:dest-filename2 ...]
TID:dest-filename
Відбувається
витягування
списків cue
для
доріжки з ID
TID до файлу
outname за умови,
якщо така
доріжка
міститься
у вхідному
файлі.
Даний
параметр
можна
задавати
декілька
разів. ID
доріжок
мають бути
такі самі
як і при
виведенні
інформації
командою
mkvmerge(1) з
параметром
--identify, а не
числа, що
містяться
в елементі
CueTrack.
Формат
виведення
є простим
текстовим
форматом:
один рядок
на елемент
CuePoint з парами
key=value. Якщо
необов’язковий
елемент
відсутній
у CuePoint
(наприклад,
CueDuration), тоді у
якості
значення
буде
виведено
тире.
Наприклад:
timestamp=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11
Можливі
ключі:
мітка
часу
Мітка
часу точки
списка cue з
наносекундною
точністю.
Формат: HH:MM:SS.nnnnnnnnn.
Цей
елемент
завжди
встановлений.
тривалість
Тривалість
точки
списка cue з
наносекундною
точністю.
Формат: HH:MM:SS.nnnnnnnnn.
позиція_кластеру
Абсолютна
позиція в
байтах
всередині
файла Matroska(TM), де
починається
кластер що
містить
посилання
на елемент.
Примітка
Всередині
файла Matroska(TM) CueClusterPosition
є
відносним
зміщенням
початку
даних
сегмента.
Однак
значення,
виведене
mkvextract(1) у режимі
витягування
списка cue, вже
містить це
зміщення і
воно є
абсолютним
зміщенням
від
початку
файлу.
відносна_позиція
Відносна
позиція в
байтах
всередині
кластера,
звідки
починається
елемент BlockGroup
або SimpleBlock, на
який
посилається
точка
списка cue.
Примітка
Всередині
файла Matroska(TM) CueRelativePosition
є
відносним
зміщенням
початку
даних
кластера.
Однак
значення,
виведене
mkvextract(1) у режимі
витягування
списка cue, є
відносним
до 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
будуть
записані
до файлів AAC з
заголовками
ADTS перед
кожним
пакетом.
Заголовки ADTS
не будуть
містити
застарілого
поля
особливого
призначення.
A_AC3, A_EAC3
Це буде
витягнуто
до
необроблених
файлів AC-3.
A_ALAC
Доріжки
ALAC(TM)
записуються
до файлів
CAF(TM).
A_DTS
Це буде
витягнуто
до
необроблених
файлів DTS.
A_FLAC
Доріжки
FLAC(TM)
записуються
до
необроблених
файлів FLAC(TM).
A_MPEG/L2
Потоки MPEG-1
Audio Layer II будуть
витягнуті
до
необроблених
файлів MP2.
A_MPEG/L3
Це буде
витягнуто
до
необроблених
файлів MP3.
A_OPUS
Доріжки
Opus(TM)
записуються
до файлів
OggOpus(TM).
A_PCM/INT/LIT, A_PCM/INT/BIG
Необроблені
PCM дані
будуть
записані
до файлу WAV. В
процесі big-endian
цілі дані
будуть
перетворені
в little-endian дані.
A_REAL/*
Доріжки
RealAudio(TM)
записуються
до файлів
RealMedia(TM).
A_TRUEHD, A_MLP
Це буде
витягнуто
до
необроблених
файлів TrueHD/MLP.
A_TTA1
ДоріжкиTrueAudio(TM)
записуються
до файлів TTA.
Майте на
увазі, що
через
обмежену
точність
міток часу
Matroska(TM),
витягнуті
заголовки
файлів
будуть
різними, що
зазначено
у двох
полях: data_length
(сумарна
кількість
семплів у
файлі) і CRC.
A_VORBIS
Файли
аудіо Vorbis
будуть
записані
до файлу OggVorbis(TM).
A_WAVPACK4
Доріжки
WavPack(TM)
записуються
до файлів
WV(TM).
S_HDMV/PGS
PGS
субтитри
будуть
записані
до файлів SUP.
S_HDMV/TEXTST
S_KATE
Потоки Kate(TM)
будуть
записані
до
контейнеру
Ogg(TM).
S_TEXT/SSA, S_TEXT/ASS, S_SSA, S_ASS
Текстові
субтитри SSA і
ASS будуть
записані
до файлів SSA/ASS
відповідно.
S_TEXT/UTF8, S_TEXT/ASCII
Прості
текстові
субтитри
будуть
записані
до файлів SRT.
S_VOBSUB
Субтитри
VobSub(TM) будуть
записані
як файли SUB
разом із
відповідними
файлами
індексу, як
файли IDX.
S_TEXT/USF
USF
текстові
субтитри
будуть
записані
до файлів USF.
S_TEXT/WEBVTT
USF
текстові
субтитри
будуть
записані
до файлів USF.
V_MPEG1, V_MPEG2
Відеодоріжки
MPEG-1 і MPEG-2 будуть
записані
як
елементарні
потоки MPEG.
V_MPEG4/ISO/AVC
H.264 / AVC
доріжки
відео
записуються
до
елементарних
потоків H.264,
які можуть
надалі
бути
оброблені
за
допомогою,
наприклад,
MP4Box(TM) зі збірки
GPAC(TM).
V_MPEG4/ISO/HEVC
Доріжки
відео H.265/HEVC
записуються
до
елементарних
потоків H.265,
які можуть
надалі
бути
оброблені
за
допомогою,
наприклад,
MP4Box(TM) зі збірки
GPAC(TM).
V_MS/VFW/FOURCC
Доріжки
відео з
виправленим
FPS з таким CodecID
записуються
до файлів AVI.
V_REAL/*
Доріжки
RealVideo(TM)
записуються
до файлів
RealMedia(TM).
V_THEORA
Потоки
Theora(TM) будуть
записані
до
контейнеру
Ogg(TM).
V_VP8, V_VP9
Доріжки
VP8 / VP9
записуються
до файлів IVF.
Теги
Теги
конвертуються
до формату XML.
Цей формат
є тим самим,
який
mkvmerge(1)
підтримує
для
читання
тегів.
Вкладення
Вкладення
записуються
як є до
файлу на
виході.
Ніяких
перетворень
не
виконується.
Розділи
Розділи
конвертуються
до формату XML.
Цей формат
є тим самим,
який
mkvmerge(1)
підтримує
для
читання
розділів.
Як
альтернатива,
можна
витягувати
розділи до
спрощеного
стильового
формату OGM.
Мітки
часу
Мітки
часу
спочатку
сортуються
і потім
виводяться
у
сумісному
файловому
форматі
міток часу
версії 2 для
використання
mkvmerge(1).
Витягування
до інших
форматів
(версій 1, 3 і 4)
не
підтримується.
КОДИ ЗАВЕРШЕННЯ¶
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.
WWW¶
Остання
версія
завжди
може бути
знайдена
на
веб-сторінці
MKVToolNix[1].
АВТОР¶
Moritz Bunkus <moritz@bunkus.org>
Розробник