mkv в avi - ручная работа

версия для печати

Есть задача: перегнать кино из "матрешки" (mkv-файл) в avi-контейнер (aka mkv2avi). На вопрос "А зачем?" я отвечать не буду, лучше расскажу, "Как можно это сделать". Притом полезно об этом написать, поскольку методы проверены временем. Не стану спорить, есть и другие решения и однокнопочные редакторы, которые все за вас сделают. Кому-то мой подход покажется извращением - ну что ж.. "на вкус и цвет", как говорится :)

Ссылки

Для пересадки понадобятся некоторые инструменты. Логичнее было бы разместить ссылки после статьи, но лучше увидеть весь айсберг сразу!

  • Все-в-одном можно скачать c облака mail.ru. Состав архива: avc2avi_gui 1.2, AVI-Mux_gui 1.17.8.0, MKVToolnix 4.9.1 + MKVExtractGUI 2.2.2.9, VirtualDubMod Surround 1.6.0.0, AviSynth 2.58
  • http://www.videohelp.com - "готовые к употреблению" проги для обработки видео.
  • MKVToolnix - кроссплатформенный набор инструментов для создания, изменения и исследования файлов "матрешки" (aka Matroska, mkv). Тулза консольная, хотя есть и GUI - mmg.exe. Указанная сслыка ведет на офсайт. После скачивания придется разбираться, какие еще нужны библиотеки. Проще найти уже собранный вариант на сайте, указанном в начале списка, или взять мой пакет.
  • MKVExtractGUI - экстрактор треков из mkv-контейнера. Представляет собой GUI и работает вместе с MKVToolnix.
  • avc2avi - инструмент для смешивания "сырых" avc/h.264 потоков в avi-контейнере без перекодирования. Программа консольная, для нее есть визуальная облочка (GUI), которая требует установленный .NET framework 2.0. Оболочку AVC2AVI_GUI можно найти на videohelp.com. Там по ссылкам скачивается собственно прога и gui-оболочка.
  • AVI-Mux GUI - программа, которая собирает несколько видео-, аудиопотоков и субтитры в один файл. Ей можно собирать avi-шки и mkv. В некоторых случаях можно перегнать медиаданные между avi и mkv.
  • VirtualDubMod - модификация знаменитой программы VirtualDub. Она настолько популярна, что любой софтосайт обязательно имеет в наличии какую-нибудь версию. В архиве версия "Surround" - еще более навороченный VirtualDub, хотя для поставленной задачи это не принципиально.
  • AviSynth. Это утилита (фрейм-сервер), используемая для редактирования и обработки видео совместно с другими программами (VirtualDub и др.). Обладает мощными возможностями, реализуемыми командами вызова функций в файле-скрипте. Тоже очень популярная программа, единственная из пакета, требующая установку. Сайт с русской документацией - avisynth.org.ru
Mkv в avi без пережатия

Есть mkv-файл (h264, несколько AC3, субтиры). Нужно переложить картинку и звук в avi. План такой:

  1. разбираем mkv на отдельные файлы;
  2. преобразуем h264-файл в avi-файл;
  3. собираем все нужное в avi.

  1. Прога MKVextractGUI, заранее размещенная в каталоге проги MKVToolnix. Запускаем MKVextractGUI2.exe. Открываем в ней исходник, выбираем нужные потоки для извлечения (их в исходнике может быть больше двух), извлекаем. Получим два файла: track1.h264 и track2.aс3.


    MKVextractGUI лицом :)

  2. Прога avc2avi (запускающий файл avc2avi_gui.exe). Открываем в ней track1.264 (предварительно подправив у него расширение), ставим FPS исходного файла (fps можно узнать через MediaInfo или KMPlayer; дробное число пишем через точку), жмем "mux" и ждем. Ни каких сигналов процесса не будет, только пустое окно консоли. Когда она закончит, сама скажет. Получим track1.264.avi. Это еще не полноценный фильм, там нет индексов и звука.


    "дружественный" интерфейс

  3. Прога AVI-Mux GUI (запускающий файл avimux_gui.exe). Кидаем ей track1.264.avi полученный в п.2, а так же track2.ac3. Жмем "start", указываем имя файла и тип (по умолчанию - avi), Ок. Вот и вся сборка.
    Иногда AVIMux не хочет принимать avi-"кандидат"-файл. Альтернативный вариант - использовать VirtualDubMod. Один из его плюсов - возможность управлять потоками в контейнере. Кидаем в него track1.264.avi, VDM долго будет с ним возиться, пытаясь проиндексировать. После чего идем в Streams > Stream list. В новом окне добавляем аудио-файл(ы). Далее сохраняем все без компрессии (режим "Direct stream copy").

    AVIMux VDM. Stream list

Результат: получили avi-файл (h264, AС3), перегнав mkv-фильм в avi без пережатия. Такой способ удобен, если в mkv лежат потоки уже подходящего разрешения/сжатия/кодека. Т.е. как в этом примере, mkv-файл содержал "лишние" дорожки, и контейнер меня не устраивал. Кстати, можно было бы собрать опять матрешку только из нужных треков (см. [MKVToolnix\mmg.exe])


KMP понял файл

Пережатие mkv-файла с помощью VirtualDubMod
Вариант 1.

Пишем avs-скрипт (script.avs):

DirectShowSource("E:\temp\film.mkv", fps=23.976)

Здесь FPS исходного фильма, разумеется. Этот скрипт открываем в VDM. Далее - обычные операции над видеофайлом: выбираем отрезок для пережатия, выставляем кодек, запускаем сохранение. Все :) Чтобы скрипт работал, должен быть установлен AviSynth. Иначе при открытиии в VDM будет ошибка: "AVI Import Filter error (Unknown) 80040154". Причины ошибки могут быть и другие, но эту вы легко можете исправить.

Зачем вообще скрипт, когда VirtualDubMod сам понимает mkv-формат? А затем, что напрямую с таким форматом VDM работает не стабильно, ругается и вылетает, а через AviSynth вроде как все ровно идет.

Вариант 2.

Разбираем на потоки. Перегоняем через avc2avi видеопоток в avi-контейнер (см. ранее пункты 1 и 2). Потом подкитываем полученый avi-ник в VirtualDubMod, выставляем кодек пережатия, сохраняем. Аудиопоток пережимаем как-нибудь, если нужно. Полученные файлы собираем в avi-контейнер. Собрать можно в VDM или через AVI-Mux (см.пункт 3)

Баги - как с ними бороться.

В VirtualDubMod иногда бывают глюки с avi-"кандидатами". Если попытаться выбрать отрезок для пережатия, программа вылетает/виснет. В таком случае просто не трогайте ползунок, пережмите весь файл, а потом уже вырезайте, что нужно, из нового файла.

Была у меня запарка с пережатием одного файла. Ни какие скрипты не помогали, VDM вылетал с руганью на AviSynth. Переупаковка только видео в mkv тоже не помогала. Сделал так. Вытащил видео из матрешки, получил .h264-файл. Его засунул в avi-контейнер через avc2avi. Полученный avi открыл в VDM. Не двигая ползунок выставил быструю рекомпрессию. В настройках кодека DivX выставил битрейт, изменение размера. Там есть такое изменение, где можно указать только ширину (я указал 720), высоту кодек сам пропорционально расчитывает. После пережатия добавил выдранные ранее аудио-дорожки. Все :)

Очевидный плюс всех этих программ - их не надо устанавливать, т.е. весь rip-пак можно один раз собрать и не переживать о переустановках Винды, все будет работать (только AviSynth переставлять). К тому же вместе эти инструменты дают намного больше возможностей, чем и описано в этой статье. А минус в следующем: если чего-то программам будет не хватать для работы, они будут выдавать невразумительные ошибки :( Например, пока я не поставил нужный .NET framework, avc2avi вылетала с ошибкой (более "образованные" проги требуют установить для них фреймвок ,-)) Другой пример я привел выше: ругань VDM на фильтр трудно связать с отсутствием в системе нужного фрейм-сервера.

Почему так важен правильный FPS в операциях? Если поставить не верную частоту кадров, получите рассинхронизацию звука. Это когда звук по ходу фильма будет все больше отставать или обгонять картинку. Такой косяк исправить не возможно, в отличии от обычного смещения звука раньше/позже картинки. Постоянное по времени смещение можно подправить в VDM, в настройках Stream list > ПКМ по нужному потоку > Interleavig > cекция "Audio skew correction". Положительное число будет задерживать звук, отрицательное - подгонять. После точной коррекции можно сохранить файл без дополнительного пережатия (режим "Direct stream copy").

Заметки по "однокнопочным" конвертерам и звуку

Пробовал разные конвертеры в свое время, все они не особо впечатлили, ярких результатов не давали. Запомнилось вот это:

  • Super: раз нормально перевел mkv-формат, на других файлах ничего не получилось. Справедливости ради нужно заметить, что в целом это не плохой конвертер. Для работы использует известные консольные модули, типа ffmpeg, т.е. Super - эт оболочка, GUI, объединяющая множество конвертеров.
  • mkv to avi convect - платная кривая прога, г.. полное. Конструктивно критиковать не могу, на уме только маты.
  • MediaCoder-0.7.1.4488 (16.7 Mb): типо комбайн. При инсталляции полез в инет че-то еще докачивать. Косячный интерфейс. Так и не разобрался, как этим выкидышем конвертировать. При запуске проги, а так же при открытии определенных вкладок запускается браузер с линками на различные сайты. Отстойная программа.

Конвертер звука. Всего одно слово XRECODE. Масса всяческих направлений кодирования, русский интерфейс, portable-версия, почти бесплатно ;) Если не регистрироваться, то при каждом запуске появляется напоминание. Больше ни каких ограничений без регистрации я не нашел. А как пройти регистрацию, я вобще не понял %)

[1oo%, EoF]

Понравилась статья? Расскажите о ней друзьям:

Метки: кино, ламерOff

Комментарии
Для работы модуля комментариев включите javaScript


Показать/скрыть правила
Имя
[i] [b] [u] [s] [url]
:-) ;-) :D *lol* 8-) :-* :-| :-( *cry* :o :-? *unsure* *oops* :-x *shocked* *zzz* :P *evil*

Осталось 1000 символов.
Код защиты от спама Обновить код
Каждый комментарий проходит ручную модерацию. 100% фильтрация спама.
Продвижение
Время
Метки
Щелкни мышей, чтобы закрыть