MKVToolNix: набор инструментов для работы с Matroska¶
MKVToolNix — это набор свободных кроссплатформенных консольных и графических утилит для создания, редактирования, инспектирования и извлечения дорожек из мультимедийных контейнеров формата Matroska (MKV). Инструментарий также поддерживает родственные форматы на основе EBML (Extensible Binary Meta Language), такие как WebM. Программа ориентирована на работу именно с контейнерами, а не с кодеками, поэтому она не выполняет перекодирование видео- и аудиопотоков, а лишь управляет их упаковкой и метаданными.
¶История и разработка
Проект был создан немецким разработчиком Морицем Бункесом (Moritz Bunkus) и впервые опубликован в 2002 году. Название происходит от сочетания «MKV» (расширение файлов Matroska Video) и английского слова «toolnix» (набор инструментов). Изначально MKVToolNix распространялся только в виде консольных утилит для Linux, однако со временем появились версии для Windows и macOS, а также графическая оболочка.
Исходный код написан на языках C++ и Qt (для графического интерфейса) и распространяется под лицензией GPLv2+, что делает программу полностью свободной. Разработка ведётся активно; релизы выходят регулярно, добавляя поддержку новых спецификаций Matroska, улучшая совместимость с другими инструментами и исправляя ошибки. Актуальные версии собираются для 64-битных операционных систем; поддержка 32-битных систем была прекращена в более поздних выпусках.
¶Состав пакета
Пакет MKVToolNix включает несколько отдельных программ, каждая из которых выполняет узкую задачу. Ключевые компоненты:
- mkvmerge — основная утилита, предназначенная для объединения (мультиплексирования) видео-, аудио- и субтитровых дорожек из разных исходных файлов в один контейнер MKV/WebM. Позволяет выбирать нужные дорожки, задавать язык, названия, флаги «по умолчанию» и «принудительно», а также разбивать выходной файл на несколько частей по времени или размеру.
- mkvinfo — выводит подробную техническую информацию о содержимом файла Matroska: список дорожек, их кодеки, параметры потока, главы, теги, атрибуты и структуру элементов EBML.
- mkvextract — выполняет обратную операцию — извлечение (демультиплексирование) отдельных дорожек из MKV-файла в отдельные файлы (например, видео в H.264, аудио в AAC или субтитры в SRT/ASS).
- mkvpropedit — редактирует свойства уже существующих файлов Matroska без их повторного мультиплексирования: изменяет метаданные, главы, теги, прикреплённые вложения и флаги дорожек.
- mkvmerge GUI (или просто MKVToolNix GUI) — графический интерфейс, построенный на Qt, который предоставляет удобный доступ к функциям mkvmerge, mkvpropedit и mkvinfo через визуальный интерфейс с предпросмотром дорожек и настройками.
¶Функциональные возможности
¶Мультиплексирование и редактирование
Основная задача MKVToolNix — сборка MKV-файла из разнородных источников. Программа поддерживает чтение большого числа форматов: AVI, MP4, MOV, TS, M2TS, WMV, Ogg, FLAC и самих MKV/WebM. При этом она корректно обрабатывает разные частоты кадров, перестановку кадров (B-frames) и временные метки. Пользователь может добавлять неограниченное количество видео-, аудио- и субтитровых дорожек, а также вложения (шрифты, изображения, документы).
Важной особенностью является отсутствие перекодирования: все потоки копируются в новый контейнер «как есть», что обеспечивает высокую скорость работы и сохранение исходного качества. Для точной синхронизации доступны опции сдвига времени (задержки) в миллисекундах для каждой дорожки в отдельности.
¶Работа с главами и тегами
MKVToolNix позволяет создавать и редактировать главы (Chapters) в формате XML, поддерживая вложенную структуру (главы и подглавы), а также теги (Tags), описывающие метаданные файла — название, исполнителя, обложку, жанр и прочие поля, совместимые со спецификацией Matroska. Редактор глав в GUI предоставляет визуальную шкалу времени для точной установки маркеров.
¶Сегментирование и объединение
Утилита mkvmerge поддерживает разбиение выходного файла на несколько частей по заданному количеству секунд, размеру в мегабайтах или по определённым временным меткам. Также реализована функция объединения нескольких файлов с одинаковыми параметрами дорожек в один, что полезно для склейки эпизодов или частей записи.
¶Продвинутые опции
К числу менее очевидных, но важных функций относятся:
- Прикрепление вложений — добавление в контейнер шрифтов для субтитров, постеров или любых других файлов.
- Управление флагами дорожек — установка признаков «по умолчанию» (default) и «принудительно» (forced) для субтитров и аудио, что влияет на автоматический выбор дорожек плеером.
- Сжатие субтитров — использование алгоритмов сжатия (zlib) для текстовых дорожек с целью уменьшения размера файла.
- Работа с несколькими языками — задание кодов языков ISO 639 для каждой дорожки.
- Поддержка меню — ограниченная работа с элементами меню, определёнными в спецификации Matroska.
¶Графический интерфейс
Современные версии MKVToolNix поставляются с единым графическим окном, в котором вкладки соответствуют различным функциям: «Мультиплексирование», «Извлечение», «Редактор глав», «Редактор заголовков», «Инспектор файлов». Интерфейс переведён на множество языков, включая русский. Окно мультиплексирования разделено на две панели: в верхней отображается список всех распознанных дорожек из исходных файлов (с флажками для выбора), в нижней — настройки выходного файла, такие как имя, разделение, параметры глав и вложений.
¶Применение
MKVToolNix является стандартом де-факто среди энтузиастов и профессионалов, занимающихся обработкой видео, благодаря своей надёжности, гибкости и строгому следованию спецификации Matroska. Основные сценарии использования:
- Сборка MKV-файлов из видео, нескольких аудиодорожек (например, оригинальной и дублированной) и субтитров.
- Удаление ненужных дорожек из готового файла без перекодирования.
- Извлечение субтитров в формате SRT/ASS для последующего редактирования или перевода.
- Добавление или изменение обложек, глав и метаданных.
- Разбиение больших файлов для записи на носители с ограниченной ёмкостью.
¶Критика и ограничения
Поскольку MKVToolNix работает только с контейнером Matroska, она бесполезна для прямого редактирования файлов в форматах MP4, AVI или MOV — для них требуется предварительная конвертация в MKV. Также программа не умеет перекодировать потоки, поэтому для изменения кодека необходимо использовать другие инструменты (например, HandBrake или FFmpeg). Некоторые пользователи отмечают, что графический интерфейс перегружен техническими деталями, что создаёт трудности для новичков, однако консольные утилиты предоставляют исчерпывающую документацию и подходят для автоматизации.
¶Источники
- Официальная документация и руководство пользователя MKVToolNix.
- Репозиторий исходного кода проекта на GitHub.
- Спецификация формата Matroska (matroska.org).
