Пакет MKVtoolnix: программы MKVmerge и MKVextract. Работа со звуковыми дорожками в контейнере MKV

10.07.2019

Год выпуска: 2012

Жанр: Видео-конверторы

Разработчик: Moritz Bunkus

Сайт разработчика: http://www.bunkus.org/videotools/mkvtoolnix/

Язык интерфейса: Русский

Платформа: Windows 7, Vista, XP

Большинство начинающих пользователей не могут самостоятельно работать с MKV-файлами. Нужно отметить, что лучшей утилитой для обработки этих файлов является программа MKVToolnix.

Конвертер позволяет не только открывать файлы с этим не самым популярным форматом, но и проводить их обработку, а также преобразовать любой другой файл в этот формат. Также MKV Toolnix показывает пользователю подробный отчет о видеофайле, с которым ведется работа.

Программа имеет свою уникальную графическую оболочку, ее предназначение облегчить работу пользователя с утилитой. Нужно отметить, что программа будет очень сложной для начинающих пользователей! Ну а «продвинутые» пользователи очень рады выходу этого конвертера, который регулярно обновляется! С помощью утилиты можно оптимизировать файл под свои нужды, а также разбить его на отдельные главы. Эта функция MKVToolnix Rus поможет в работе с емкими MKV-файлами. Особенно если нужно записать свой фильм на несколько DVD-дисков. Чтобы сделать эту операцию достаточно будет кликнуть несколько раз мышкой.

MKVToolnix 5 дает возможность работать с «внешними» звуковыми дорожками. Только они должны быть в форматах DTS или AC3. Если звуковых дорожек несколько, то пользователь самостоятельно выбирает одну из них, которая будет использоваться в дальнейшем по умолчанию. Если вы хотите скачать MKVToolnix бесплатно, то помните, что звук из HD-фильмов сохраняется лишь с ограничениями. Поэтому для этих целей программа не подойдет!

Постановка будущей задачи

Поскольку инструкцию к MKVToolnix найти будет тяжело, то рассмотрим несколько ключевых моментов работы программы. Для начала необходимо загрузить в программу видеофайл, с которым вы собираетесь работать. Для этого используйте кнопку "add ".

Как вырезать часть ролика из видеофайла?

Активируйте вкладку "Global". Здесь установите галочку на «Enable splitting...». Появится доступ к нескольким режимам обработки:

  1. "...after this size " - функция используется для разбивки файла на части одинакового размера (к примеру, для записи на CD-R);
  2. "...after this duration " - функция используется для разбивки файла на части одинаковой продолжительностью (к примеру, на выходе вы получите куски видео по 10 минут);
  3. "...after timecodes " - ручная опция, с помощью которой можно вырезать любую часть из видео. Пользователь через запятую указывает время, по которому необходимо разрезать файл. Формат времени: «HH:MM:SS.nnnnnnnnn». Миллисекунды указывать не обязательно. Время нужно вводить без пробелов.

    Параметр "max. number of files" дает возможность ограничить количество фрагментов, тогда оставшаяся часть ролика просто не будет обрабатываться.

Как известно, файлы с расширением mkv - это специальный мультимедийный контейнер для хранения видео, звуковых дорог и субтитров. Она же Матрёшка. Ниже будет описано как правильно работать со звуковыми дорожками.

Часто бывает ситуация, когда в контейнере несколько звуковых дорог и субтитров, причем некоторые из них бывают не нужны. Например дороги с незнакомым языком или несколько русских. Или ещё вариант, когда звуковая дорога имеет формат dts , который не всегда воспроизводится "железными" плеерами. Его можно перекодировать в ас3 .

Опишу наиболее оптимальные, по моему мнению, действия для выполнения этих задач.
Понадобятся всего две программы.
Первая - Mkvtoolnix для работы с контейнерами mkv.
Вторая - Xilisoft Video Converter Ultimate . Помимо кодирования dts в ас3 имеет много других полезных возможностей.

Для примера возьмём некогда популярный фильм "Святые из трущоб".
Запускаем mkvmerge GUI из комплекта Mkvtoolnix
Выбираем фильм и получаем примерно такую картину:

В контейнере, помимо самого видео и субтитров, лежат ещё четыре дороги. Английская, две русских и дорога за авторством Гоблина. Вот она как раз и нужна. Снимаем галки с ненужных элементов, выбираем конечный путь и название пересобранного контейнера и нажимаем Start muxing.

После завершения миксирования новый контейнер выглядит так. Видео и одна звуковая дорожка.

Теперь её можно перекодировать в ас3 .
Запускаем Xilisoft Video Converter Ultimate . Добавляем файл, во вкладке Profiles выбираем ас3 и путь для сохранения. Также в правой части программы можно изменить настройки для кодируемой дорожки.
Жмём красную кнопку вверху и ждём.

Получилась отдельная дорожка ас3 . Теперь ею нужно заменить дорожку с расширением dts . Для этого снова открываем mkvmerge GUI, выбираем файл mkv с одной дорожкой dts и кнопкой add добавляем дорожку ас3 , при этом с дорожки dts соответственно галочку снимаем.

Вы спросите зачем все это нужно было?
Исходный файл со всеми дорожками весил 6.56 ГБ, конечный 3.78 ГБ. Помимо того, что он занимает меньше места, его можно относительно быстрее скопировать на флешку и смотреть с устройства, не поддерживающего звук в формате dts (например телевизоры SAMSUNG шестой серии 2009 года, которым даже новая прошивка не помогла научится читать dts ).

Не рекомендуется использовать mkvmerge версии выше чем 4.0.0. Особенно это касается обладателей телевизоров Samsung 2009 года выпуска. (2009 год - это буква "В" в названии модели. Например LE37B *****) Большинство пересобранных контейнеров отказываются запускаться на встроенном плеере вышеописанных телевизоров.

UPDATE2:

А как вытащить отдельно субтитры или звуковую дорожку? Всё просто. Для этого понадобится программа MKVExtractGUI . Её необходимо положить в папку с Mkvtoolnix .

Здесь всё интуитивно понятно: выбираете файл, выходную папку и галочками помечаете необходимые для извлечения из контейнера файлы.


Название:
Логотип:
Скриншот:
MKVToolnix - 4.0.0
Тип: Работа с видео
Тип интерфейса: Console/GUI
Версия: 4.0.0
от: June 5, 2010
Лицензия: GPL
Сайт: http://www.bunkus.org/videotools/mkvtoolnix/index.html

Удобный набор утилит для редактирования Matroska (MKV) видеофайлов в Linux и других Unix-like системах. MKVToolnix схожа с OGMtools, только работает над с MKV форматом. 5 июня 2010 вышел релиз Mkvtoolnix v4.0.0.

MKVToolnix содержит в себе несколько утилит: mkvmerge, mmg, mkvextract, mkvinfo и mkvpropedit.

mkvmerge - консольная утилита для работы с многими форматами мультимедиа файлов, которая может сохранять их в файлы MKV. Любители консольных утилит легко разберутся в ней сами, прочитав man mkvmerge , а для остальных - используйте графическую mmg .

mmg - графическая версия mkvmerge. Может делать то же самое, только в GUI. Позволяет создавать видеофайлы в формате MKV. Вы можете открыть видео в формате AVI, удалить звуковые дорожки, добавить свои и сохранить это все в новом файле. Так же вы можете задавать имена дорожек, языки, теги, устанавливать дорожку по-умолчанию, тайм-коды, задержку аудио, указывать формат к треку видео (FourCC), FPS, формат изображения. Вы можете добавлять вложения, разбивать выходной файл на несколько частей, редактировать главы. Интерфейс mkvmerge GUI (mmg) v4.0.0 полностью переведен на русский язык.

Скриншоты Mkvtoolnix - mmg (mkvmerge)

mkvinfo - выводит подробную информацию о MKV файлах: $ mkvinfo 1.mkv + EBML глава |+ EBML версия: 1 |+ EBML читать версию: 1 |+ EBML максимальная длина ID: 4 |+ EBML максимальная длина размера: 8 |+ Тип документа: matroska |+ Версия типа документа: 2 |+ Тип документа читал версию: 2 + Сегмент, размер 735146180 |+ Искать заголовок (подстатьи будут пропущены) |+ EbmlVoid (размер: 4044) |+ Информация сегмента | + Масштаб тайм-кода: 1000000 | + Мультиплексирование приложение: libebml v1.0.0 + libmatroska v1.0.0 | + Написать приложение: mkvmerge v4.0.0 ("The Stars were mine") сборка от Jun 14 2010 12:03:49 | + Продолжительность: 4827.640s (01:20:27.640) | + Дата: Mon Jun 14 10:20:16 2010 UTC | + Сегмент UID: 0xa4 0x7f 0x5b 0x69 0x50 0x53 0x85 0xe5 0xd4 0xd2 0x3d 0x4f 0x7e 0x36 0x8a 0x63 |+ Дорожки сегмента | + Дорожка | + Номер дорожки: 1 | + Дорожка UID: 3919281211 | + Тип дорожки: video | + Флажок сшивания: 0 | + Минимальный кэш: 1 | + Кодек ID: V_MS/VFW/FOURCC | + CodecPrivate, длина 40 (FourCC: DX50, 0x30355844) | + По умолчанию продолжительность: 40.000ms (25.000 fps для видео дорожки) | + Язык: und | + Видео дорожка | + Ширина пикселя: 640 | + Высота пикселя: 480 | + Ширина дисплея: 640 | + Высота дисплея: 480 | + Дорожка | + Номер дорожки: 2 | + Дорожка UID: 1436813707 | + Тип дорожки: audio | + Кодек ID: A_MPEG/L3 | + По умолчанию продолжительность: 24.000ms (41.667 fps для видео дорожки) | + Язык: und | + Audio track | + Частота дискретизации: 48000 | + Каналы: 2 | + Дорожка | + Номер дорожки: 3 | + Дорожка UID: 1582642828 | + Тип дорожки: audio | + По умолчанию флаг: 0 | + Кодек ID: A_MPEG/L3 | + По умолчанию продолжительность: 26.122ms (38.281 fps для видео дорожки) | + Язык: und | + Audio track | + Частота дискретизации: 44100 | + Каналы: 2 |+ EbmlVoid (размер: 1114) |+ Кластер mkvextract - позволяет сохранять отдельные треки из MKV файлов в другие файлы. $ mkvextract tracks 2.mkv 1:test.mkv Извлечение трек 1 с CodecID "V_MS/VFW/FOURCC" в файл "test.mkv". Контейнер формат: AVI (Microsoft Audio/Video Interleaved) Прогресс: 100% 17:14:35 brainsburn@desktop /files/tmp/2 $ file test.mkv test.mkv: RIFF (little-endian) data, AVI, 640 x 480, 25.00 fps, video: XviD 17:14:38 brainsburn@desktop /files/tmp/2 $ mkvextract tracks 2.mkv 2:test.mkv Извлечение трек 2 с CodecID "A_MPEG/L3" в файл "test.mkv". Контейнер формат: MPEG-1 Audio Layer 2/3 Прогресс: 100% 17:14:45 brainsburn@desktop /files/tmp/2 $ file test.mkv test.mkv: MPEG ADTS, layer III, v1, 32 kbps, 48 kHz, JntStereo mkvpropedit - позволяет модифицировать параметры MKV файлов.

Установить MKVToolnix

присутствует в ряде популярных ОС - Debian, Arch Linux, Gentoo, FreeBSD, NetBSD, Windows и др.
, но вы можете собрать ее и из исходных кодов.

Установка MKVToolnix из исходных кодов

Вам понадобится утилита autoconf для сборки. Процесс установки предельно банален:
Сперва, клонируем Git репозиторий:
$ git clone git://git.bunkus.org/mkvtoolnix.git Затем: $ cd mkvtoolnix $ ./autogen.sh $ make # make install

Возможно, эти материалы Вас заинтересуют.

На сегодняшний день большинство фильмов HD-качества распространяются в формате MKV. Этот формат поддерживают все современные HD-медиаплееры, а также HD-телевизоры со встроенными плеерами. Обычно файлы MKV с HD-видео имеют размер порядка 10 Гб. Копирование и перенос таких файлов является затрудненным, если ваш flash-накопитель небольшого размера или отформатирован в файловой системе FAT-32, не поддерживающей файлы размером больше 4 Гб (без 1 байта). Если у вас возникли подобные трудности, тогда вам поможет бесплатная программа MKVToolNix , и настоящая инструкция. Официальный сайт разработчика.

С помощью данного набора инструментов можно также , содержащиеся в MKV-файлах.

MKVToolNix

MKVToolNix — кроссплатформенное программное обеспечение для работы с файлами формата MKV (Matroska). Последняя версия программы для Windows на момент написания статьи — 7.3.0. Будьте внимательны при скачивании программы, так как существуют отдельно релизы для 32- и 64-bit систем. Кроме стандартной (установочной) версии есть портативная, не требующая установки. Я рекомендую качать стандартную версию, так как портативная еще не полностью отлажена (на момент написания статьи). Во время установки программа предложит выбрать язык интерфейса. В списке присутствует русский язык.

Разбиение видео на части

Допустим нам нужно разбить файл размером 5,67Гб так, чтобы каждый фрагмент не превышал больше 4 Гб.

Запускаем программу с ярлыка на рабочем столе или в меню "Пуск" (ярлык "mkvmerge GUI"). В главном окне, в разделе "Входные файлы" нажимаем на кнопку "добавить" и выбираем желаемый файл на диске компьютера.

Переходим на вкладку "Глобальные" и в разделе "Разбиение" выбираем соответствующий режим разбиения файла. В программе предусмотрено 7 режимов разбиения:

  • разбить по размеру;
  • разбить после этого времени;
  • разбить после тайм-кода;
  • разбить по частям на основе тайм-кодов;
  • разбить на части на основе номеров кадров/полей;
  • разбить после кадров/полей с номерами;
  • разбить перед главами.

Ниже подробно описаны все режимы разбиения, но чаще всего встречаются два случая: нужно разделить фильм на несколько частей и нужно вырезать конкретную часть фильма.

Разделение на части заданного размера

Для разделения файла на несколько частей заданного размера выберите пункт "разбить по размеру" и в поле "Размер" укажите желаемый размер в килобайтах (K), мегабайтах (M) или гигабайтах (G), поставив после размера соответствующую букву. Примеры: 512K, 700M, 4G. Такая градация связана с тем, что программа "понимает" только целые числа.

Важно!!! Эмпирически установлено, что для того, чтобы фрагмент поместился на диск с файловой системой FAT-32, в поле размер нужно ввести значение "4088M", а возможно и меньшее.

В поле "Имя выходного файла" укажите путь и название конечных файлов.

Нажмите на кнопку "Начать обработку" и дождитесь завершения обработки файла.

По окончанию обработки будут созданы файлы (фрагменты видео), в конце имени каждого из которых будет добавлен номер: "-001", "-002" и т.д. Файл оригинала видео останется незатронутый.

Видео

Сохранение заданной части видео

Для сохранения заданной части видео нужно выбрать режим "разбить по частям на основе тайм-кодов" и указать временные метки начала и конца желаемого фрагмента видео, например: "00:05:00-00:15:00", что значит — сохранить 10 минут видео начиная с 6-й минуты исходного фильма.

Если вас интересуют остальные варианты "раскройки" видео, ниже предоставлено описание всех режимов разбиения. Также в конце статьи описана обратная операция по склеиванию фрагментов видео.

Доступные варианты разбиения

Разбить по размеру

Как уже говорилось выше, этот режим режет файл на куски определенного размера. Символы "G", "M" и "K" могут использоваться, для указания гига/мега/килобайт соответственно. Все единицы - степени 1024 (G = 1024 3 , M = 1024 2 и K = 1024).

Разбить после этого времени

Длительность, после которой будет создан новый выходной файл. Время может быть указано либо в формате "ЧЧ:ММ:СС.ннннннннн", либо как количество секунд с приписанным в конце "s". Вы можете опустить количество часов "ЧЧ" и число "ннннннннн" наносекунд. Если наносекунды указаны, вы можете использовать до девяти цифр после запятой. Примеры: 01:00:00 (через час) или 1800s (после 1800 секунд).

Разбить после тайм-кода

Тайм-коды, после которых будет начат новый выходной файл. Тайм-коды относятся ко всему потоку, а не к каждому индивидуальному выходному файлу. Тайм-коды могут быть указаны или в формате "ЧЧ:ММ:СС.ннннннннн" или как число секунд с указанным в конце "s". Вы можете опустить число часов "ЧЧ". Вы можете определить до девяти цифр для числа наносекунд "ннннннннн" или вообще их не указывать. Если использовано два или больше тайм-кода, они разделяются запятыми. При этом можно смешивать форматы. Примеры: 01:00:00,01:30:00 (после одного часа и после одного часа и тридцати минут) или 1800s, 3000s, 00:10:00 (после трех, пяти и десяти минут).

Разбить по частям на основе тайм-кодов

Разделяемый запятыми список временных диапазонов содержания, которые нужно сохранить. Каждый диапазон состоит из времени начала и окончания, разделённых "-", например "00:01:15-00:03:20". Если тайм-код начала не указан, будет использован тайм-код конца предыдущего диапазона, если такого нет - начало файла. Тайм-коды могут быть предоставлены либо в формате "ЧЧ:ММ:СС.ннннннннн", либо как число секунд с указанным в конце "s". Если перед начальным тайм-кодом диапазона стоит "+", его содержание будет записано в тот же файл, что и предыдущий диапазон. В противном случае для него будет создан новый файл.

Разбить на части на основе номеров кадров/полей

Разделяемый запятыми список диапазонов номеров кадров/полей, которые нужно сохранить. Каждый диапазон состоит из номеров начального и конечного кадра/поля, разделённых "-", например "157-238". Нумерация производится с единицы. Этот режим берёт для вывода только первую видеодорожку. Если вывод не является видеодорожкой, разбиение произведено не будет. Числа, заданные с этим аргументом, интерпретируются на основе числа блоков Matroska в выводе. Один блок Matroska содержит либо полный кадр (для прогрессивного видео), либо одно поле (для чересстрочного). mkvmerge не различает эти варианты и просто считает количество блоков. Если номер начального кадра не указан, будет использован номер конечного кадра предыдущего диапазона, если такого нет - начало файла. Если перед номером первого кадра диапазона стоит "+", его содержание будет записано в тот же файл, что и предыдущий диапазон. В противном случае для него будет создан новый файл.

Разбить после кадров/полей с номерами

Разделяемый запятыми список кадров/полей, после которых требуется разбиение. Нумерация производится с единицы. Этот режим берёт для вывода только первую видеодорожку. Если вывод не является видеодорожкой, разбиение произведено не будет. Числа, заданные с этим аргументом, интерпретируются на основе числа блоков Matroska в выводе. Один блок Matroska содержит либо полный кадр (для прогрессивного видео), либо одно поле (для чересстрочного). mkvmerge не различает эти варианты и просто считает количество блоков.

Разбить перед главами

Используется или команда "all" (всё), которая выделяет все главы, или разделенный запятыми список номеров глав, перед которыми нужно делать разбиение. Нумерация производится с единицы. Разбиение будет произведено перед первым ключевым кадром, тайм-код которого больше либо равен тайм-кодам перечисленных глав. Глава, начинающаяся на нулевой секунде, никогда не становится точкой разбиения и отбрасывается без уведомления. Этот режим использует только самый верхний уровень глав во всех записях редакций.

Склеивание видео

Фрагменты разрезанного видео можно склеить обратно программой "MKVToolNix". Откройте первый фрагмент инструментом "mkvmerge GUI", нажав на кнопку "добавить". Затем нажмите на кнопку "присоединить" и выберите файл второго фрагмента видео, который нужно склеить с предыдущим файлом. После добавления второй фрагмент и его дорожки будут обозначены значком "++>".

Важно!!! Не забывайте об очередности добавления фрагментов!

В поле "Имя выходного файла" введите желаемое название будущего склеенного видео и нажмите на кнопку "Начать обработку" для запуска процесса склеивания.

Ранее мы неоднократно писали про различные программы для конвертирования видеофайлов из одного формата в другой. Однако сегодня речь пойдет о программе, которая позволяет работать с файлами наиболее популярного на сегодняшний день контейнера Matroska или как его называют по-русски – Матрешка. MKVToolnix – это не просто программа, это набор программных средств, работающих с большим количеством видеокодеков, аудиоформатов и субтитров.

Сначала сделаем небольшое отступление, поскольку очень многие пользователи, особенно новички, не понимают различия в понятиях кодеков и контейнеров. Очень часто приходится слышать или читать высказывания подобного рода: кодек AVI или кодек MKV. Это в корне неправильно и AVI, и MKV, и MP4 являются контейнерами, т.е. файлами которые содержат в себе видео и аудио потоки, а также субтитры. А вот уже эти самые потоки, могут быть закодированы с помощью различных кодеров (кодеков). Поэтому фраза, что файл в формате MKV однозначно лучше, чем AVI, не всегда будет соответствовать действительности, ведь в контейнер Матрешки можно вставить файлы, закодированные и при помощи кодеков xvid и divx, которые используются в основном для AVI контейнеров.

Основным модулем MKVToolnix (скачать его можно со страницы , там указано достаточно много источников) является mkvmerge GUI. Основное назначение программы – это, так называемое, «собирание» контейнера. Как это работает? Вы указываете, к какому видеопотоку, прикрепить какие аудиоданные и субтитры, а программа собирает их в единый файл. Часто в обсуждениях и описаниях приходится читать, что «mkvmerge кодирует файлы», но это абсолютно неправильно, кодированием занимаются другие программы. Настроек в программе довольно много, но имеющийся русский интерфейс заметно облегчает работу.

Перечислим основные возможности mkvmerge:

— работа с большим количеством видео и аудио кодеков, а также с различными форматами субтитров;
— редактирование файлов формата MKV;
— изменение компонентов внутри контейнера, сдвиг и подгонка звук, добавление, извлечение субтитров и аудио дорожек;
— демультиплексирование;
— изменение контейнера AVI на MKV без перекодирования (подчеркиваю, именно изменение контейнера, а не перекодирование в MKV, как по ошибке пишут многие);
— разбиение на части файла MKV, вырезание кусков и склеивание файлов формата MKV;
— добавление, перемещение, удаление внутри контейнера;
— смена частоты кадров, задержка воспроизведения, необходимая для синхронизации изображения и звука;
— добавление фильтров;
— работа с файлами субтитров;
— редактор глав;
— установка описаний к аудио и видео трекам (имя и язык), флаги воспроизведения.

Без использования mkvmerge просто невозможно создать файл в формате MKV. Кроме того, в состав MKVToolnix входит модуль mkvinfo GUI, позволяющий получать информацию о том, из каких компонентов состоит файл MKV.