Scroll to navigation

mkvextract(1) Користувацькі команди mkvextract(1)

НАЗВА

mkvextract - витягування доріжок з файлів Matroska до інших файлів

КОРОТКИЙ ОПИС

mkvextract {source-filename} {mode1} [options] [extraction-spec1] [mode2] [options] [extraction-spec2] [...]

ОПИС

Ця програма витягує певні частини з файлу Matroska в інші корисні формати. Першим аргументом є ім'я вихідного файлу, яким має бути файл Matroska.

Усі інші аргументи або перемикаються в певний режим витягування, змінюють параметри для поточного активного режиму або вказують, що витягувати в який файл. Під час одного виклику 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.

-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. Даний параметр можна задавати декілька разів. 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, де починається кластер що містить посилання на елемент.


Примітка
Всередині файла Matroska CueClusterPosition є відносним зміщенням початку даних сегмента. Однак значення, виведене mkvextract(1) у режимі витягування списка cue, вже містить це зміщення і воно є абсолютним зміщенням від початку файлу.

відносна_позиція

Відносна позиція в байтах всередині кластера, звідки починається елемент BlockGroup або SimpleBlock, на який посилається точка списка cue.


Примітка
Всередині файла Matroska 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 записуються до файлів CAF.

A_DTS

Це буде витягнуто до необроблених файлів DTS.

A_FLAC

Доріжки FLAC записуються до необроблених файлів FLAC.

A_MPEG/L2

Потоки MPEG-1 Audio Layer 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

Субтитри TextST будуть записані у вигляді спеціального формату файлу, винайденого для mkvmerge(1) та mkvextract(1)

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

USF текстові субтитри будуть записані до файлів USF.

V_MPEG1, V_MPEG2

Відеодоріжки MPEG-1 і MPEG-2 будуть записані як елементарні потоки MPEG.

V_MPEG4/ISO/AVC

H.264 / AVC доріжки відео записуються до елементарних потоків H.264, які можуть надалі бути оброблені за допомогою, наприклад, MP4Box зі збірки GPAC.

V_MPEG4/ISO/HEVC

Доріжки відео H.265/HEVC записуються до елементарних потоків H.265, які можуть надалі бути оброблені за допомогою, наприклад, MP4Box зі збірки GPAC.

V_MS/VFW/FOURCC

Доріжки відео з виправленим FPS з таким CodecID записуються до файлів AVI.

V_REAL/*

Доріжки RealVideo записуються до файлів RealMedia.

V_THEORA

Потоки Theora будуть записані до контейнеру Ogg.

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.

ДИВІТЬСЯ ТАКОЖ

mkvmerge(1), mkvinfo(1), mkvpropedit(1), mkvtoolnix-gui(1)

WWW

Остання версія завжди може бути знайдена на веб-сторінці MKVToolNix[1].

АВТОР

Moritz Bunkus <moritz@bunkus.org>

Розробник

ПРИМІТКИ

1.
MKVToolNix
2023-02-12 MKVToolNix 74.0.0