Scroll to navigation

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

НАЗВА

mkvpropedit - Змінити властивості існуючих файлів Matroska без повного перезбирання

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

mkvpropedit [options] {source-filename} {actions}

ОПИС

Ця програма аналізує існуючий файл Matroska і змінює деякі його властивості. Потім він записує ці зміни в існуючий файл. Серед властивостей, які можна змінити, є елементи інформації про сегменти (наприклад, назва) і заголовки доріжок (наприклад, код мови, прапор «доріжка за замовчуванням» або назва).

Налаштування:

-l, --list-property-names

Перелічує всі відомі і редаговані імена властивостей, їх тип (рядок, ціле число, логічне значення тощо) і короткий опис. Після цього програма завершується. Тому параметр source-filename не потрібно вказувати.

-p, --parse-mode mode

Встановлює режим розбору. Параметр 'режим' може бути 'швидким' (який також є за замовчуванням) або 'повним'. 'Швидкий' режим не аналізує весь файл, а використовує мета-елементи пошуку для пошуку необхідних елементів вихідного файлу. У 99% випадків цього достатньо. Але для файлів, які не містять елементів мета пошуку або пошкоджених, користувачеві доведеться встановити 'повний' режим аналізу. Повне сканування файлу може зайняти кілька хвилин, а швидке — лише секунди.

Дії, які впливають на інформаційні властивості доріжки та сегменту:

-e, --edit selector

Встановлює розділ файлу Matroska (інформацію про сегмент або заголовки певної доріжки), з яким діють усі наступні дії add, set та delete. Цей параметр можна використовувати кілька разів, щоб внести зміни до кількох елементів.

За замовчуванням mkvpropedit(1) відредагує розділ інформації про сегмент.

Дивіться розділ про редагування селекторів для повного опису синтаксу.

-a, --add name=value

Додає властивість name зі значенням value. Властивість буде додано, навіть якщо така властивість вже існує. Зауважте, що більшість властивостей унікальні і не можуть зустрічатися більше одного разу.

-s, --set name=value

Встановлює для всіх входжень властивості name значення value. Якщо такої властивості немає, вона буде додана.

-d, --delete name

Видаляє всі входження властивості name. Зауважте, що деякі властивості є обов’язковими і не можуть бути видалені.

Дії, які впливають на теги та глави:

-t, --tags selector:filename

Додає або заміняє теги у файлі на теги з 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 або видаляє їх, якщо filename порожній. mkvpropedit(1) читає ті самі XML і простий формати глав, які читає mkvmerge(1).

Дії для обробки вкладень:

--add-attachment filename

Додати нове вкладення з filename.

Якщо параметр --attachment-name використовувався до цього параметра, його значення використовується як ім'я нового вкладення. Інакше він є похідним від filename.

Якщо параметр --attachment-mime-type використовувався до цього параметра, його значення використовується як тип MIME нового вкладення. Інакше це автоматично виявляється зі змісту filename.

Якщо параметр --attachment-description використовувався до цього параметра, його значення ввикористовується як опис нового вкладення. Інакше опис не встановлюється.

Якщо параметр --attachment-uid використовувався до цього параметра, його значення використовується як UID нового вкладення. Інакше рандомний UID буде згенеровано автоматично.

--replace-attachment selector:filename

Замінює одне або кілька вкладень, які відповідають selector на файл filename. Якщо більше одного наявного вкладення відповідає selector, то весь їх вміст буде замінено вмістом filename.

selector може мати одну з чотирьох форм. Вони пояснюються нижче в розділі Селектор вкладень.

Якщо параметр --attachment-name використовувався до цього параметра, його значення встановлюється як нове ім'я для кожного зміненого вкладення. Інакше імена не змінюються.

Якщо параметр --attachment-mime-type використовувався до цього параметра, його значення встановлюється як новий тип MIME для кожного зміненого вкладення. Інакше тип MIME не змінюється.

Якщо параметр --attachment-description використовувався до цього параметра, його значення встановлюється як новий опис для кожного зміненого вкладення. Інакше опис не змінюється.

Якщо параметр --attachment-uid використовувався до цього параметра, його значення встановлюється як новий UID для кожного зміненого вкладення. Інакше UID не змінюються.

--update-attachment selector

Встановлює властивості одного або кількох вкладень, які відповідають selector. Якщо більше одного наявного вкладення відповідає selector, усі їхні властивості будуть оновлені.

selector може мати одну з чотирьох форм. Вони пояснюються нижче в розділі Селектор вкладень.

Якщо параметр --attachment-name використовувався до цього параметра, його значення встановлюється як нове ім'я для кожного зміненого вкладення. Інакше імена не змінюються.

Якщо параметр --attachment-mime-type використовувався до цього параметра, його значення встановлюється як новий тип MIME для кожного зміненого вкладення. Інакше тип MIME не змінюється.

Якщо параметр --attachment-description використовувався до цього параметра, його значення встановлюється як новий опис для кожного зміненого вкладення. Інакше опис не змінюється.

Якщо параметр --attachment-uid використовувався до цього параметра, його значення встановлюється як новий UID для кожного зміненого вкладення. Інакше UID не змінюються.

--delete-attachment selector

Видаляє одне або кілька вкладень, які відповідають селектору.

selector може мати одну з чотирьох форм. Вони пояснюються нижче в розділі Селектор вкладень.

Параметри дій з вкладенням:

--attachment-name name

Встановлює назву для наступної операції --add-attachment або --replace-attachment.

--attachment-mime-type mime-type

Встановлює тип MIME для використання для наступної операції --add-attachment або --replace-attachment .

--attachment-description 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'.

Інші параметри:

--disable-language-ietf

Зазвичай, коли користувач запитує зміни до властивості заголовка доріжки 'language', mkvpropedit(1) застосує ту саму зміну до нового елемента заголовка доріжки LanguageIETF на додаток до застарілого елемента Language. Якщо використовується цей параметр, зміна буде застосована лише до застарілого елемента Language.

Цей параметр не впливає на зміни, запитувані через властивість 'language-ietf' заголовка доріжки.

--normalize-language-ietf mode

Дозволяє нормалізувати всі мовні теги 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 character-set

Встановлює набір символів заданого в командному рядку для конвертації. Типово використовується набір символів згідно поточної локалі системи.

--output-charset character-set

Встановлює вихідний набір символів заданого в командному рядку для конвертації. Типово використовується набір символів згідно поточної локалі системи.

-r, --redirect-output file-name

Записує всі повідомлення у файл file-name, замість консолі. Хоча це можна легко зробити за допомогою переспрямування виводу, є випадки, коли цей параметр потрібний: коли термінал повторно інтерпретує вихід перед записом його у файл. Набір символів встанвлений з --output-charset враховується.

--ui-language code

Використовується примусовий переклад для мови code (наприклад, 'de_DE' для німецького перекладу). Після введення list' як code програма відобразить список доступних перекладів.

--abort-on-warnings

Повідомляє програмі припинити роботу після першого попередження. Код виходу з програми буде 1.

--debug topic

Увімкнути налагодження для певної функції. Цей параметр корисний лише для розробників.

--engage feature

Вмикає експериментальні функції. Список доступних функцій можна запросити за допомогою mkvpropedit --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).

СЕЛЕКТОРИ РЕДАГУВАННЯ

Параметр --edit встановлює розділ файлу Matroska (інформація про сегмент або заголовки певної доріжки), з яким діють усі наступні дії add, set та delete. Це залишається дійсним, доки не буде знайдено наступний параметр --edit. Аргумент цього параметра називається селектором редагування.

За замовчуванням mkvpropedit(1) відредагує розділ інформації про сегмент.

Інформація про сегменти

Інформацію про сегмент можна вибрати одним із трьох слів: 'info', 'segment_info' або 'segmentinfo'. Він містить такі властивості, як заголовок сегмента або UID сегмента.

Заголовки доріжки

Заголовки доріжок можна вибрати за допомогою дещо складнішого селектора. Усі варіанти починаються з 'track:'. Властивості заголовка доріжки включають такі елементи, як код мови, прапоруць 'доріжка за замовчуванням' або назва доріжки.

track:n

Якщо параметр n є числом, то буде вибрано n-на доріжка. Порядок доріжок такий самий, як і параметр --identify виводу mkvmerge(1).

Нумерування починається з 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, буде вибрано доріжку, елемент якої доріжки дорівнює цьому number. Номери доріжок можна отримати за допомогою mkvinfo(1).

Примітки

Через природу селекторів редагування доріжок можливо, що кілька селекторів дійсно відповідають одному і тому заголовку доріжки. У таких випадках усі дії для цих селекторів редагування будуть об’єднані та виконані в тому порядку, у якому вони вказані в командному рядку.

СЕЛЕКТОРИ ВКЛАДЕННЬ

Селектор вкладень використовується з двома діями: --replace-attachment і --delete-attachment. Він може мати одну з наступних чотирьох форм:

1.Вибір за ідентифікатором вкладення. У цій формі селектор — це просто число, ідентифікатор вкладення, який виводить команда ідентифікації mkvmerge(1).

2.Вибір за UID вкладення (унікальний ідентифікатор). У цій формі селектором є знак рівності =, що слідує за номером, унікальний ідентифікатор вкладення, який виводить команда детальної ідентифікації mkvmerge(1).

3.Вибір за назвою вкладення. У цій формі селектором є буквене слово name:, за яким слідує ім’я наявного вкладення. Якщо цей селектор використовується з --replace-attachment, то двокрапки в назві для відповідності мають екрануватися за допомогою \c.

4.Вибір за типом MIME. У цій формі селектором є буквене слово mime-type:, за яким слід MIME-тип існуючого вкладення. Якщо цей селектор використовується з --replace-attachment, то двокрапки в типі MIME для відповідності мають екрануватися за допомогою \c.

ПРИКЛАДИ

Наступний приклад редагує файл під назвою 'movie.mkv'. Він встановлює назву сегмента та змінює код мови аудіо та доріжки субтитрів. Зауважте, що цей приклад можна скоротити, виключивши перший параметр --edit, оскільки редагування елемента інформації про сегмент є за замовчуванням для всіх параметрів, знайдених перед першим параметром --edit.

$ mkvpropedit movie.mkv --edit info --set "title=The movie" --edit track:a1 --set language=fre --edit track:a2 --set language=ita

Другий приклад видаляє «прапор доріжка за замовчуванням» з першої доріжки субтитрів і встановлює його для другої. Зауважте, що mkvpropedit(1), на відміну від mkvmerge(1), не встановлює «прапор доріжка за замовчуванням» для інших доріжок на «0», якщо для деякої доріжки автоматично встановлено значення «1».

$ mkvpropedit movie.mkv --edit track:s1 --set flag-default=0 --edit track:s2 --set flag-default=1

Заміна тегів для другої доріжки субтитрів у файлі виглядає так:

$ mkvpropedit movie.mkv --tags track:s2:new-subtitle-tags.xml

Щоб видалити всі теги, потрібно залишити ім’я файлу:

$ mkvpropedit movie.mkv --tags all:

Заміна глав у файлі виглядає так:

$ mkvpropedit movie.mkv --chapters new-chapters.xml

Щоб видалити всі глави, потрібно залишити ім’я файлу:

$ mkvpropedit movie.mkv --chapters ''

Додавання файла шрифта (Arial.ttf) у якості вкладення:

$ mkvpropedit movie.mkv --add-attachment Arial.ttf

Додавання файла шрифта (89719823.ttf) у якості вкладення і надання деякої інформації, оскільки це насправді просто Arial:

$ mkvpropedit movie.mkv --attachment-name Arial.ttf --attachment-description 'The Arial font as a TrueType font' --attachment-mime-type application/x-truetype-font --add-attachment 89719823.ttf

Заміна одного файла шрифту вкладення (Comic.ttf) іншим (Arial.ttf):

$ mkvpropedit movie.mkv --attachment-name Arial.ttf --attachment-description 'The Arial font as a TrueType font' --replace-attachment name:Comic.ttf:Arial.ttf

Видалення другого вкладеного файлу, яким би він не був:

$ mkvpropedit movie.mkv --delete-attachment 2

Видалення всіх вкладених шрифтів за типом MIME:

$ mkvpropedit movie.mkv --delete-attachment mime-type:application/x-truetype-font

КОДИ ЗАВЕРШЕННЯ

mkvpropedit; завершає роботу з одним з трьох кодів виходу:

0 -- Цей код виходу означає, що модифікація успішно завершена.

1 -- В цьому випадку mkvpropedit(1) було видано хоча б одне попередження, проте витягування продовжувалось. Попередженню передує текст 'Warning:'. В залежності від помилок, що сталися, результуючі файли можуть бути або цілими, або пошкодженими. Користувачу рекомендується як звернути увагу на саме попередження, так і перевірити результуючі файли.

2 -- Цей код виходу використовується після того, як сталася помилка. mkvpropedit(1) переривається відразу після виведення повідомлення про помилку. Повідомлення про помилки варіюються від неправильних аргументів командного рядка через помилки читання/запису до зламаних файлів.

ТЕКСТОВІ ФАЙЛИ ТА ПЕРЕТВОРЕННЯ НАБОРУ СИМВОЛІВ

Для детального ознайомлення з тим, як усі інструменти в пакеті MKVToolNix виконують перетворення набору символів, кодування введення/виводу, кодування командного рядка та консольне кодування, будь ласка, перегляньте розділ з ідентичною назвою в посібнику користувача mkvmerge(1)

ЗМІННІ СЕРЕДОВИЩА

mkvpropedit(1) використовує змінні за замовчуванням, які визначають локаль системи (сімейства типу LANG і LC_*). Додаткові змінні:

MKVPROPEDIT_DEBUG, MKVTOOLNIX_DEBUG і їх коротка форма MTX_DEBUG

Вміст розглядається так, ніби його було передано за допомогою параметра --debug.

MKVPROPEDIT_ENGAGE, MKVTOOLNIX_ENGAGE і їх коротка форма MTX_ENGAGE

Вміст розглядається так, ніби його було передано за допомогою параметра --engage.

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

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

WWW

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

АВТОР

Moritz Bunkus <moritz@bunkus.org>

Розробник

ПРИМІТКИ

1.
MKVToolNix
2022-08-14 MKVToolNix 70.0.0