mkvextract(1)

НАЗВА
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
    Субтитри TextST будуть записані у вигляді спеціального формату файлу, винайденого для mkvmerge(1) та mkvextract(1)

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.

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

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

WWW

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

АВТОР

Moritz Bunkus <moritz@bunkus.org>
    Розробник

ПРИМІТКИ

1.  MKVToolNix
    https://mkvtoolnix.download/