Scroll to navigation

mkvextract(1) Команды пользователя mkvextract(1)

ИМЯ

mkvextract - извлечение дорожки из файлов Matroska(TM) в другие файлы

КРАТКОЕ СОДЕРЖАНИЕ

mkvextract {имя-файла-источника} {режим1} [параметры] [свойства-извлечения1] [режим2] [параметры] [свойства-извлечения2] [...]

ОПИСАНИЕ

Эта программа извлекает указанные фрагменты из файла Matroska(TM) в другие используемые форматы. Первый аргумент — имя исходного файла, который должен быть файлом Matroska(TM).

Все остальные аргументы либо переключают в определённый режим извлечения, изменяют параметры текущего активного режима, либо указывают, в какой файл следует извлечь. При вызове mkvextract могут использоваться несколько режимов, что позволяет извлекать несколько элементов за один проход. Большинство параметров могут использоваться только в определённых режимах с несколькими параметрами, применяемыми ко всем режимам.

В настоящее время поддерживается извлечение дорожек, тегов, вложений, глав, файлов разметки CUE, меток времени и cue.

Общие параметры

Следующие параметры доступны во всех режимах и описываются в этом разделе единожды.

-f, --parse-fully

Устанавливает режим анализа на 'полный'. Стандартный режим не анализирует весь файл, а использует элементы метапоиска для нахождения элементов в исходном файле. В 99 % случаев этого достаточно. Но для повреждённых файлов и для тех, в которых нет элементов метапоиска, пользователю придётся использовать этот режим. Полное сканирование файла может потребовать несколько минут, в то время как быстрое сканирование проходит за секунды.

--command-line-charset кодировка

Устанавливает кодировку для конвертации строк, указанных в командной строке. Стандартная кодировка привязана с системной локализации.

--output-charset кодировка

Указывает кодировку, в которую конвертируются выходные строки. По умолчанию используется текущая кодировка системного языка.

-r, --redirect-output имя-файла

Все сообщения записываются в файл имя-файла вместо консоли. Хотя это можно сделать и через перенаправление вывода, есть отдельные случаи применения именно этого параметра: когда терминал интерпретирует в другой способ вывода перед записью файла. Кодировка, указанная в --output-charset, учитывается.

--flush-on-close

Указывает программе сбросить все данные, закэшированные в памяти, в хранилище при закрытии файлов, открытых для записи. Это может быть использовано для предотвращения потери данных при отключении питания или для обхода определённых проблем в операционной системе или драйверах. Недостатком является то, что паковка займёт больше времени, так как mkvmerge придётся ждать, пока все данные не будут записаны в хранилище перед выходом. Смотрите проблемы #2469 и #2480 в трекере ошибок MKVToolNix, где подробно прокомментированы плюсы и минусы.

--ui-language код

Принудительно использовать перевод на код языка (напр., «de_DE» для немецкого). Если указать «list» на месте кода, то отобразится список доступных переводов.

--abort-on-warnings

Указывает mkvmerge прерывание после появления первого предупреждения. Код завершения программы будет 1.

--debug тематика

Включить режим отладки для указанной функции. Этот параметр полезен только для разработчиков.

--engage функция

Включить экспериментальные функции. Список доступных функций может быть вызван с помощью mkvextract --engage list. Эти функции не предназначены для повседневного использования.

--gui-mode

Включает режим графического интерфейса. В этом режиме могут отображаться специально отформатированные строки для отправки управляющих сообщений интерфейсу. Формат сообщений — «#GUI#message». За сообщением могут быть указаны пары ключа и значения, например, «#GUI#message#key1=value1#key2=value2...». Сообщения и ключи не переводятся и всегда выводятся на английском.

-v, --verbose

Вести расширенный вывод и показывать все важные элементы Matroska(TM) по мере их чтения.

-h, --help

Показать сведения об использовании и выйти.

-V, --version

Показать сведения о версии и выйти.

@файл-параметров.json

Считывает дополнительные аргументы командной строки из файла options-file. Полное описание поддерживаемых форматов для таких файлов смотрите в разделе "Файлы параметров" на странице документации mkvmerge(1).

Режим извлечения дорожки

Синтаксис: mkvextract имя-исходного-файла дорожки [параметры] TID1:имя-целевого-файла1 [TID2:имя-целевого-файла2 ...]

Следующие параметры командной строки доступны для каждой дорожки в режиме извлечения «tracks». Они должны присутствовать перед указанием дорожки (см. ниже), к которой будут применяться.

-c кодировка

Указывает набор символов, который должна содержать следующая дорожка субтитров после конвертации. Применяется только тогда, когда ID следующей дорожки указывает на дорожку субтитров. По умолчанию используется UTF-8.

--blockadd уровень

Сохранить BlockAdditions только до этого уровня. По умолчанию сохраняются все уровни. Этот параметр влияет только на определённый тип кодеков, например WAVPACK4.

--cuesheet

Выполняет с помощью mkvextract(1) извлечение списков CUE из информации о разделах и из данных тегов данной дорожки в файл с названием выходной дорожки и расширением '.cue'.

--raw

Извлекает необработанные данные в файл без контейнера. В отличие от флага --fullraw этот параметр не приводит к записи содержимого элемента CodecPrivate в файл. Этот режим работает со всеми CodecIDs, даже с теми, которые mkvextract(1) не поддерживает, но это может привести к созданию повреждённого файла.

--fullraw

Извлекает необработанные данные в файл без контейнера. Содержимое элемента CodecPrivate будет записано первым в файл, если дорожка содержит подобный элемент заголовка. Этот режим работает со всеми CodecIDs, даже с теми, которые mkvextract(1) не поддерживает, но это может привести к созданию повреждённого файла.

TID:выходное-имя

Извлекает дорожку с ID TID в файла выходное_имя при условии, что такая дорожка содержится во исходном файле. Этот параметр можно задавать несколько раз. 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 имя-исходного-файла вложения [параметры] AID1:выходное-имя1 [AID2:выходное-имя2 ...]

AID:выходное-имя

Производит извлечение вложения из ID AID в файл outname при условии, если такое вложение содержится во входном файле. Если же оставить outname пустым, то будет использоваться название вложения из входного файла Matroska(TM). Этот параметр можно использовать несколько раз. ID вложений должны быть такие же как и при выводе информации командой mkvmerge(1) с параметром --identify.

Режим извлечения глав

Синтаксис: mkvextract имя-исходного-файла главы [параметры] имя-выходного-файла.xml

-s, --simple

Экспорт главы информации в простой формат, используемый в инструментах OGM (ГЛАВА01=..., ГЛАВА01ИМЯ=...). В этом режиме некоторая информация должна быть отброшена. По умолчанию главы выводятся в формате XML.

--simple-language язык

Если включён простой формат, то mkvextract(1) будет выводить только единственную запись для каждого встречающегося атома глав, даже если атом глав содержит более одного названия главы. По умолчанию mkvextract(1) будет использовать первый обнаруженный заголовок главы для каждого атома вне зависимости от его языка.

Использование этого параметра даёт возможность пользователю определить, какие имена глав выводятся, если атомы содержат более одного имени главы. Параметр language должен быть кодом из ISO 639-1 или ISO 639-2.

Главы записаны в указанный выходной файл. По умолчанию используется понятный для mkvmerge(1) формат XML. Если в файле нет глав, то выходной файл не создан.

Режим извлечения меток

Синтаксис: mkvextract имя-исходного-файла теги [параметры] имя-выходного-файла.xml

Теги записаны в указанный выходной XML-файл, понятный для mkvmerge(1). Если в файле нет тегов, то выходной файл не создан.

Режим извлечения файлов разметки CUE

Синтаксис: mkvextract имя-исходного-файла cuesheet [параметры] имя-выходного-файла.cue

Cue sheet (файл разметки) записан в указанный выходной файл. Если в файле нет глав или тегов, то выходной файл не создан.

Режим извлечения метки времени

Синтаксис: mkvextract имя-исходного-файла метки-времени_v2 [параметры] TID1:имя-целевого-файла1 [TID2:имя-целевого-файла2 ...]

TID:выходное-имя

Извлекает временные метки дорожки с ИД TID в файла выходное_имя при условии, что такая дорожка содержится во исходном файле. Этот параметр можно задавать несколько раз. ИД дорожек должны быть такие же как и при выводе информации командой mkvmerge(1) с параметром --identify.

Пример:

$ mkvextract input.mkv timestamps_v2 1:ts-track1.txt 2:ts-track2.txt

Режим извлечения файлов разметки CUE

Синтаксис: mkvextract имя-исходного-файла cue-файлы [параметры] TID1:имя-целевого-файла1 [TID2:имя-целевого-файла2 ...]

TID:имя-целевого-файла

Извлекает дорожку с ID TID в файла выходное_имя при условии, что такая дорожка содержится во исходном файле. Этот параметр можно задавать несколько раз. ID дорожек должны быть такие же как и при выводе информации командой mkvmerge(1) с параметром --identify, при этом не должны совпадать с цифрами, содержащимися в элементе CueTrack.

Выходной формат представлен в текстовом виде: один элемент CuePoint на линию с парой ключ=значение. Если элемент параметра не представлен в CuePoint (напр. CueDuration), то вместо значения будет тире.

Пример:

timestamp=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11

Возможные ключи:

метка времени

Длительность точки cue с точностью до наносекунд. Формат: HH:MM:SS.nnnnnnnnn. Этот элемент всегда устанавливается.

длительность

Длительность точки cue с точностью до наносекунд. Формат: HH:MM:SS.nnnnnnnnn.

cluster_position

Абсолютная позиция в байтах внутри файла Matroska(TM), с которой начинается кластер, содержащий ссылочный элемент.


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

relative_position

Относительное положение в байтах внутри кластера, где начинаются элементы BlockGroup или SimpleBlock, на которые ссылается cue-точка.


Примечание
Внутри файла Matroska(TM) CueRelativePosition относительно начальному смещению данных кластера. Однако значение, выводимое режимом извлечения метки mkvextract(1), зависит от идентификатора кластера. Абсолютное положение внутри файла можно вычислить добавлением cluster_position и relative_position.

Пример:

$ mkvextract input.mkv cues 1:cues-track1.txt 2:cues-track2.txt

ПРИМЕРЫ

Извлечение глав и тегов в их соответствующие форматы XML за один раз:

$ mkvextract фильм.mkv chapters главы-фильма.xml tags теги-фильма.xml

Извлечение пары треков и их соответствующие временные метки за один раз:

$ mkvextract "Другой фильм.mkv" tracks 0:video.h265 "1:основное аудио.aac" "2:комментарии режиссёра.aac" временные метки_v2 "0:временные метки видео.txt" "1:временные метки основного аудио.txt" "2:временные метки комментариев режиссёра.txt"

Извлечение глав в формат Ogg/OGM и перекодирование дорожки текстовых субтитров в другую кодировку:

$ mkvextract "Мой фильм.mkv" chapters --simple "Мои главы.txt" tracks -c MS-ANSI "2:Мои субтитры.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. Данные виде целочисленных с большим концом будут сконвертированы в данные с малым концом в процессе.

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

Текстовые субтитры WebVTT будут записаны в виде файлов WebVTT.

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 / EVC будут записаны в виде элементарных потоков H.265, которые в дальнейшем могут обработаны, например, с помощью MP4Box(TM) из пакеты GPAC(TM).

V_MS/VFW/FOURCC

Видеодорожки с фиксированной кадровой частотой и с данным 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.

Метки времени

Временные метки сначала сортируются и затем выводятся в формате временных меток v2, совместимом для использования в mkvmerge(1). Извлечение в другие форматы (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.

СМОТРИТЕ ТАКЖЕ

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

ДОМАШНЯЯ СТРАНИЦА

Последняя версия программы всегда доступна на домашней странице MKVToolNix[1].

АВТОР

Мориц Бункус <moritz@bunkus.org>

Разработчик

ПРИМЕЧАНИЯ

1.
домашней странице MKVToolNix
2024-10-19 MKVToolNix 88.0