1. Краткое содержание
2. Описание
Это приложение анализирует существующий файл Matroska(tm) и изменяет некоторые его свойства. Затем оно записывает эти изменения в существующий файл. Среди свойств, которые можно изменить, есть элементы информации о сегментах (например, название) и заголовки дорожек (например, код языка, флаг «дорожка по умолчанию» или название).
Параметры:
Option | Description |
---|---|
-l, --list-property-names |
Перечисляет все известные и редактируемые имена свойств, их тип (строка, целое число, логическое значение и т. п) и краткое описание. После этого программа завершается. Поэтому параметр source-filename не нужно указывать. |
-p, --parse-mode режим |
Устанавливает режим разбора. Параметр 'режим' может быть 'быстрым' (которым он также является по умолчанию) или 'полным'. 'Быстрый' режим не анализирует весь файл, а использует мета-элементы поиска для поиска необходимых элементов исходного файла. В 99 % случаев этого достаточно. Но для файлов, которые не содержат элементов метапоиска или повреждённых, пользователю придётся установить 'полный' режим анализа. Полное сканирование файла может занять несколько минут, а быстрое сканирование займёт всего несколько секунд. |
Действия для работы с дорожками и свойствами информационных сегментов:
Option | Description |
---|---|
-e, --edit selector |
Устанавливает раздел файла Matroska(tm) (информацию о сегменте или заголовках определенной дорожки), с которым действуют все последующие действия add, set и delete. Этот параметр можно использовать несколько раз для внесения изменений в несколько элементов. По умолчанию mkvpropedit(1) будет править раздел информации о сегменте. Смотрите раздел редактирование селекторов для полного описания синтаксиса. |
-a, --add name=значение |
Добавляет свойство name со значением. Свойство будет добавлено, даже если оно уже существует. Примечание: большинство свойств уникально и не могут встречаться более одного раза. |
-s, --set name=значение |
Задаёт для всех вхождений свойства имя значение переменной. Если такого свойства не существует, то оно будет добавлено. |
-d, --delete name |
Удаляет все вхождения свойства name. Примечание: некоторые свойства обязательны и не могут быть удалены. |
Действия для работы с тегами и главами:
Option | Description |
---|---|
-t, --tags selector:имя-файла |
Добавляет или заменяет теги в файле на теги из filename или удаляет их, если filename пуст. mkvpropedit(1) читает те же форматы тегов XML, которые читает и mkvmerge(1). selector должен быть одним из слов all, global или track. Для all mkvpropedit(1) заменит или удалит все теги в файле. С global только глобальные теги будут заменены или удалены. С дорожкой mkvpropedit(1) заменит теги для определённой дорожки. Кроме того, теги, прочитанные из filename, будут назначены той же дорожке. Дорожка указывается так же, как указываются селекторы редактирования (см. ниже), например, --tags track:a1:new-audio-tags.xml. |
--add-track-statistics-tags |
Вычисляет статистику для всех треков в файле и добавляет новые теги статистики для них. Если файл уже содержит эти теги, то они будут обновлены. |
--delete-track-statistics-tags |
Удаляет все метки статистики существующей дорожки из файла. Если в файле нет меток статистики дорожки, они не будут изменены. |
-c, --chapters имя-файла |
Добавляет или заменяет главы в файле соответствующим из filename или удаляет их, если filename пуст. mkvpropedit(1) считывает те же XML и простые форматы глав, что и mkvmerge(1). |
Действия для обработки вложений:
Option | Description |
---|---|
--add-attachment имя-файла |
Добавляет новое вложение из имя-файла. Если параметр --attachment-name использовался до этого параметра, его значение используется как имя нового вложения. Иначе он является производным от filename. Если параметр --attachment-mime-type использовался до этого параметра, его значение используется как тип MIME нового вложения. Иначе он автоматически обнаруживается из содержимого filename. Если параметр --attachment-description использовался до этого параметра, его значение используется как описание нового вложения. Иначе описание не устанавливается. Если параметр --attachment-uid использовался до этого параметра, его значение используется как UID нового вложения. В ином случае будет автоматически создан случайный UID. |
--replace-attachment селектор:имя-файла |
Заменяет одно или несколько вложений, которые совпадают с selector по filename файла. Если более одного доступного вложения соответствует selector, то всё их содержимое будет заменено содержимым filename. selector может иметь одну из четырёх форм. Они описаны ниже в разделе селекторы вложений. Если параметр --attachment-name использовался до этого параметра, его значение устанавливается в виде нового имени для каждого изменённого вложения. Иначе имена не меняются. Если параметр --attachment-mime-type использовался до этого параметра, его значение устанавливается в виде нового типа MIME для каждого изменённого вложения. Иначе типы MIME не меняются. Если параметр --attachment-description использовался до этого параметра, его значение устанавливается в виде нового описания для каждого изменённого вложения. Иначе описания не меняются. Если параметр --attachment-uid использовался до этого параметра, его значение устанавливается в виде нового UID для каждого изменённого вложения. Иначе UID не меняются. |
--update-attachment селектор |
Указывает свойства для одного и более вложений, которые совпадают с селектором. Если более одного вложений совпадают с селектором, тогда все их свойства будут обновлены. selector может иметь одну из четырёх форм. Они описаны ниже в разделе селекторы вложений. Если параметр --attachment-name использовался до этого параметра, его значение устанавливается в виде нового имени для каждого изменённого вложения. Иначе имена не меняются. Если параметр --attachment-mime-type использовался до этого параметра, его значение устанавливается в виде нового типа MIME для каждого изменённого вложения. Иначе типы MIME не меняются. Если параметр --attachment-description использовался до этого параметра, его значение устанавливается в виде нового описания для каждого изменённого вложения. Иначе описания не меняются. Если параметр --attachment-uid использовался до этого параметра, его значение устанавливается в виде нового UID для каждого изменённого вложения. Иначе UID не меняются. |
--delete-attachment селектор |
Удаляет одно или несколько вложений подходящих под селектор selector может иметь одну из четырёх форм. Они описаны ниже в разделе селекторы вложений. |
Параметры действий над вложениями:
Option | Description |
---|---|
--attachment-name имя |
Задаёт использование имени для следующей операции --add-attachment или --replace-attachment. |
--attachment-mime-type тип-mime |
Задаёт использование типа MIME для следующей операции --add-attachment или --replace-attachment. |
--attachment-description описание |
Задаёт использование описания для следующей операции --add-attachment или --replace-attachment. |
--enable-legacy-font-mime-types |
Позволяет использовать устаревшие типы MIME для определённых типов вложений шрифтов. Например, «application/x-truetype-font» будет использоваться для шрифтов TrueType вместо «fonts/ttf». Это влияет как на добавление новых вложений, так и на замену существующих вложений, но только если новый тип MIME не указан. Другие доступные вложения не меняются. Затрагиваются типы MIME: «font/sfnt», «font/ttf» и «font/collection»; они сопоставляются с «application/x-truetype-fonts» и «font/otf», который сопоставляется с «application/vnd .ms-opentype». |
Прочие параметры:
Option | Description |
---|---|
--disable-language-ietf |
Обычно, когда пользователь запрашивает изменения в свойстве заголовка дорожки 'language', mkvpropedit(1) применяет то же изменение к новому элементу заголовка дорожки LanguageIETF в дополнение к устаревшему элементу Language. Если используется этот параметр, изменение будет применено только к устаревшему элементу Language. Этот параметр не влияет на изменения, запрашиваемые через свойство 'language-ietf' заголовка дорожки. |
--normalize-language-ietf режим |
Позволяет нормализовать все языковые теги IETF BCP 47 к их канонической форме с режимом «canonical», к их форме расширенных языковых подтегов с помощью режима «extlang» или отключает его в режиме off. По умолчанию применяется нормализация к канонической форме. В канонической форме все подтеги, для которых существуют предпочтительные значения, заменяются этими предпочтительными значениями. Это преобразует, например, «zh-yue-jyutping» в «yue-jyutping» или «fr-FX» в «fr-FR». Для формы расширенных языковых подтегов изначально строится каноническая форма. После этого все основные языки, для которых существует расширенный языковой подтег, заменяются этим расширенным языковым подтегом и его префиксом. Это преобразует, например, «yue-jyutping» обратно к «zh-yue-jyutping», но не влияет на «fr-FR», потому что «fr» не является расширенным языковым подтегом. Эта нормализация применяется только к элементам, которые фактически изменены:
Лучший способ нормализовать все имеющиеся языковые теги в файле — это сделать его ремультиплексирование с помощью mkvmerge(1) и установить его параметр «--normalize-language-ietf» в требуемый режим. |
--command-line-charset кодировка |
Устанавливает кодировку для конвертации строк, указанных в командной строке. Стандартная кодировка привязана с системной локализации. |
--output-charset кодировка |
Указывает кодировку, в которую конвертируются выходные строки. По умолчанию используется текущая кодировка системного языка. |
-r, --redirect-output имя-файла |
Записывает все сообщения в файл file-name вместо консоли. Хотя это можно легко сделать с помощью перенаправления вывода, есть случаи, когда этот параметр нужен: если терминал повторно интерпретирует выход перед записью его в файл. Набор символов, установленный с --output-charset, учитывается. |
--ui-language код |
Принудительно использовать перевод на код языка (напр., «de_DE» для немецкого). Если указать «list» вместо кода, то отобразится список доступных переводов. |
--abort-on-warnings |
Указывает mkvmerge прерывание после появления первого предупреждения. Код завершения программы будет 1. |
--debug тематика |
Включить режим отладки для указанной функции. Этот параметр полезен только для разработчиков. |
--engage функция |
Включает экспериментальные функции. Список доступных функций можно запросить с помощью mkvpropedit --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). |
3. Редактирование селекторов
Параметр --edit устанавливает раздел файла Matroska(tm) (информация о сегменте или заголовках определённого трека), с которым выполняются все последующие действия add, set и delete. Это остаётся действительным до тех пор, пока не будет найден следующий параметр --edit. Аргумент этого параметра называется селектором редактирования.
По умолчанию mkvpropedit(1) будет править раздел информации о сегменте.
3.1. Информация о сегментах
Информацию о сегменте можно выбрать одним из трёх слов: «info», «segment_info» или «segmentinfo». Он содержит такие свойства, как заголовок сегмента или UID сегмента.
3.2. Заголовки дорожки
Заголовки дорожек можно выбрать с помощью несколько более сложного селектора. Все варианты начинаются с «track:». Свойства заголовка дорожки включают такие элементы, как код языка, флаг «дорожка по умолчанию» или название дорожки.
Option | Description |
---|---|
track:n |
Если параметр n является цифрой, то будет выбрана дорожкой с номером n. Порядок дорожек такой же, как и при выводе информации командой mkvmerge(1) с параметром --identify. Нумерация начинается с 1. |
track:tn |
Если параметр начинается с одного символа t, за которым следует n, то будет выбрана n-ная дорожка определённого типа дорожек. Параметр типа дорожки t должен быть одним из четырёх символов: 'a' для звуковой дорожки, 'b' для дорожки кнопки, 's' для дорожки субтитров и 'v' для видеодорожки. Порядок отслеживания такой же, как и параметр --identify вывода mkvmerge(1). Нумерация начинается с 1. |
track:=uid |
Если параметр начинается с «=», за которым следует число uid, будет выбрана дорожка, элемент дорожки UID которой равен данному uid. UID дорожек можно получить с помощью mkvinfo(1). |
track:@номер |
Если параметр начинается с «@», за которым следует число number, будет выбрана дорожка, элемент которой дорожки равен этому number. Номера дорожек можно получить с помощью mkvinfo(1). |
3.3. Примечания
Из-за природы селекторов редактирования дорожек возможно, что несколько селекторов действительно соответствуют одному и тому же заголовку дорожки. В таких случаях все действия для этих селекторов редактирования будут объединены и выполнены в том порядке, в котором они указаны в командной строке.
4. Селекторы вложений
Селектор вложений используется для двух действий: --replace-attachment и --delete-attachment. Он может принимать одну из следующих четырёх форм:
-
Выбор по идентификатору вложения. В этой форме селектор представляет собой число, идентификатор вложения, выводимый командой идентификации mkvmerge(1).
-
Выбор по УИД (уникальному идентификатору) вложения. В этой форме селектор представляет собой символ = с последующим числом, являющимся УИД вложения. Его узнать с помощью детальной команды идентификации mkvmerge(1).
-
Выбор по названию вложения. В этой форме селектором является буквенное слово name:, за которым следует имя имеющегося вложения. Если этот селектор используется с --replace-attachment, то двоеточия в названии для соответствия должны экранироваться с помощью \c.
-
Выбор по типу MIME. В этой форме селектором является буквенное слово mime-type:, за которым следует MIME-тип существующего вложения. Если этот селектор используется с --replace-attachment, то двоеточия в типе MIME для соответствия должны экранироваться с помощью \c.
5. Примеры
Следующий пример редактирует файл под названием 'movie.mkv'. Он устанавливает название сегмента и изменяет код языка аудио и дорожки субтитров. Обратите внимание, что этот пример можно сократить, исключив первый параметр --edit, поскольку редактирование элемента информации сегмента является стандартным для всех параметров, найденных перед первым параметром --edit.
$ mkvpropedit фильм.mkv --edit info --set "title=Фильм" --edit track:a1 --set language=fre --edit track:a2 --set language=ita
Второй пример удаляет «флаг дорожка по умолчанию» с первой дорожки субтитров и устанавливает его для второй. Обратите внимание, что mkvpropedit(1) в отличие от mkvmerge(1), не устанавливает «флаг дорожка по умолчанию» для других дорожек на «0», если для некоторой дорожки автоматически установлено значение «1».
$ mkvpropedit фильм.mkv --edit track:s1 --set flag-default=0 --edit track:s2 --set flag-default=1
Замена тегов во второй дорожке субтитров файла выглядит так:
$ mkvpropedit фильм.mkv --tags track:s2:new-subtitle-tags.xml
Удаление всех тегов требует указания имени файла:
$ mkvpropedit фильм.mkv --tags all:
Замена глав в файле выглядит так:
$ mkvpropedit фильм.mkv --chapters новые-главы.xml
Удаление всех глав происходит без указания имени выходного файла:
$ mkvpropedit фильм.mkv --chapters ''
Добавление файла шрифта (Arial.ttf) в виде вложения:
$ mkvpropedit фильм.mkv --add-attachment Arial.ttf
Добавление файла шрифта (89719823.ttf) в виде вложения и описание информации, что это Arial:
$ mkvpropedit фильм.mkv --attachment-name Arial.ttf --attachment-description 'Шрифт Arial в виде шрифта TrueType' --attachment-mime-type application/x-truetype-font --add-attachment 89719823.ttf
Замена вложенного файла шрифта (Comic.ttf) другим (Arial.ttf):
$ mkvpropedit фильм.mkv --attachment-name Arial.ttf --attachment-description 'Шрифт Arial в виде шрифта TrueType' --replace-attachment name:Comic.ttf:Arial.ttf
Удаление второго вложенного файла, неважно какого именно:
$ mkvpropedit фильм.mkv --delete-attachment 2
Удаление всех вложенных шрифтов по типу MIME:
$ mkvpropedit фильм.mkv --delete-attachment mime-type:application/x-truetype-font
6. Коды завершения
mkvpropedit(1) завершается с одним из трёх кодов:
-
0 -- Этот код завершения означает, что модификация закончилась успешно.
-
1 -- В этом случае mkvpropedit(1) выдал хотя бы одно предупреждение, однако модификация продолжилась. Предупреждению предшествует текст 'Warning:'. В зависимости от произошедших ошибок, результирующие файлы могут быть либо целыми либо повреждёнными. Пользователю рекомендуется обратить внимание на само предупреждение и проверить результирующие файлы.
-
2 -- Этот код завершения используется в случае возникновения ошибки. mkvpropedit(1) прекращает работу сразу после вывода сообщения об ошибке. Ошибки могут возникнуть из-за неверных параметров командной строки, из-за ошибки чтения/записи или просто из-за повреждённых файлов.
7. Преобразование текстовых файлов и кодировок
Подробное обсуждение того, как все инструменты пакета MKVToolNix обрабатывают преобразование наборов символов, кодировку ввода / вывода, кодировку командной строки и кодировку консоли, смотрите в разделе с идентичным названием в справочной странице mkvmerge(1).
8. Переменные среды
mkvpropedit(1) использует стандартные переменные, определяющие системный язык (например: LANG и семейство LC_*). Дополнительные переменные:
Option | Description |
---|---|
MKVPROPEDIT_DEBUG, MKVTOOLNIX_DEBUG и его краткая форма MTX_DEBUG |
Содержимое обрабатывается так, как если бы оно было передано с помощью параметра --debug. |
MKVPROPEDIT_ENGAGE, MKVTOOLNIX_ENGAGE и его краткая форма MTX_ENGAGE |
Содержимое обрабатывается так, как если бы оно было передано с помощью параметра --engage. |
9. Смотрите также
mkvmerge(1), mkvinfo(1), mkvextract(1), mkvtoolnix-gui(1)
10. Домашняя страница
Последняя версия программы всегда доступна на домашней странице MKVToolNix.