НАЗВАНИЕ¶
mkvextract -
извлечение
дорожки из
файлов Matroska в
другие
файлы
КРАТКОЕ СОДЕРЖАНИЕ¶
mkvextract
{имя-файла-источника}
{режим1}
[параметры]
[свойства-извлечения1]
[режим2]
[параметры]
[свойства-извлечения2]
[...]
ОПИСАНИЕ¶
Эта
программа
извлекает
указанные
фрагменты
из файла Matroska в
другие
используемые
форматы.
Первый
аргумент —
имя
исходного
файла,
который
должен
быть
файлом Matroska.
Все
остальные
аргументы
либо
переключают
в
определённый
режим
извлечения,
изменяют
параметры
текущего
активного
режима,
либо
указывают,
в какой
файл
следует
извлечь.
При вызове
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
по мере их
чтения.
-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.
Этот
параметр
можно
использовать
несколько
раз. 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, с
которой
начинается
кластер,
содержащий
ссылочный
элемент.
Примечание
Внутри
файла Matroska CueClusterPosition
находится
относительно
начального
смещения
данных
сегмента.
Однако
значение,
выводимое
в режиме
извлечения
cue
mkvextract(1), уже
содержит
это
смещение и
является
абсолютным
смещением
от начала
файла.
relative_position
Относительное
положение
в байтах
внутри
кластера,
где
начинаются
элементы BlockGroup
или SimpleBlock, на
которые
ссылается
cue-точка.
Примечание
Внутри
файла Matroska 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 записаны в
файлы 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.
Данные
виде
целочисленных
с большим
концом
будут
сконвертированы
в данные с
малым
концом в
процессе.
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,
которые в
дальнейшем
могут
обработаны,
например, с
помощью MP4Box
из пакеты GPAC.
V_MPEG4/ISO/HEVC
Видеодорожки
H.265 / EVC будут
записаны в
виде
элементарных
потоков H.265,
которые в
дальнейшем
могут
обработаны,
например, с
помощью MP4Box
из пакеты GPAC.
V_MS/VFW/FOURCC
Видеодорожки
с
фиксированной
кадровой
частотой и
с данным CodecID
записаны в
виде
файлов AVI./
V_REAL/*
Дорожки
RealVideo записаны
в файлы RealMedia.
V_THEORA
Потоки Theora
будут
записаны в
контейнер
Ogg
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.
ДОМАШНЯЯ СТРАНИЦА¶
Последняя
версия
программы
всегда
доступна
на
домашней
странице
MKVToolNix[1].
АВТОР¶
Мориц
Бункус
<moritz@bunkus.org>
Разработчик
ПРИМЕЧАНИЯ¶
- 1.
- домашней
странице
MKVToolNix