Есть у нас дома маленький старенький медиацентр от Sony. Кроме DVD он еще может проигрывать avi-файлы, записанные на DVD/CD болванках. Но, к сожалению, в avi-шках поддерживается только DivX для видео и MP3, AC-3 для аудио. Поэтому видеофайлы для воспроизведения на этом комбайне приходится перегонять в DivX.
Раньше я пользовался двумя программами: VirtualDub (когда нужно было из XviD-а в DivX перегонять) и Auto Gordian Knot (для преобразования DVD в DivX). Пробовал еще много всякой всячены, но добавил к себе в список инструментов только одну программулину под скромным названием SUPER. Последней я пользовался когда нужно было mkv файлы в avi преобразовывать.
Нужно сказать, что со временем SUPER стала основным инструментом. Как я понимаю, в ней используется два разных тулкита: ffmpeg и mencoder. При декодировании можно выбирать любой из них. Первый, как мне кажется, работает шустрее но временами ломается. Второй стабильнее, медленнее, но качественнее. По крайней мере mkv в avi с помощью mencoder-а пережимаются без проблем чаще, чем в ffmpeg-ом.
Так вот, потребовалось пережать большой mkv файл в avi. Желательно с максимальным качеством и с сохранением звука 5+1. С перепаковкой видео из AVC в DivX SUPER (посредством mencoder-а) справился без проблем. А вот со звуком, который был в DTS-е, возникли проблемы. Ни mencoder, ни ffmpeg сделать это нормально не смогли (либо процесс конвертации вообще не запускался, либо же звук оказывался записанным в avi-шку неправильно).
Пришлось искать решение. Что заняло некоторое время, поскольку в видео/аудио я полный дилетант и знаю разве что названия кодеков/форматов, но не более.
Для начала я нашел интересный обзор инструментов для конвертации видео/аудио. Попробовал iWisoft Free Video Converter, FormatFactory и Any Video Converter. Но не получилось. Либо программы не поддерживали конвертацию в DivX, либо же не позволяли для DivX-овой avi-шки задавать звук в AC-3, либо же ограничивали количество каналов для AC-3 всего двумя.
Кстати говоря, из всего этого набора больше всего мне понравился FormatFactory.
Попробовал так же AviDemux. Он так же не позволял конвертировать видео в DivX, а с преобразованием DTS в AC-3 не справлялся.
Вообще, у меня сложилось впечатление, что все эти бесплатные программы используют одни и те же сторонние наработки. Соответственно, если в какой-нибудь свободной AC-3 библиотеке есть баг, то он проявляется сразу во всех бесплатных перекодировщиках.
В общем, бесплатного GUI-инструмента для преобразования mkv (avc+dts) в avi (divx+ac3) несколькими кликами мышки я не нашел (вполне возможно, что таковые и есть, просто мне не попались в нужный момент). Пришлось искать иные способы. Коих сразу нашлось два и оба они построены на том, что звуковая дорожка в DTS-формате вырезается из файла, затем преобразуется в AC-3, и новая дорожка помещается в результирующий avi-файл.
Первый способ основывается на использовании transcode. Вроде бы нужно натравить transcode на DTS, получить 6 wav-файлов (по одному на каждую дорожку), затем через внешние утилиты (к примеру BeSweet/BeHappy) эти wav-файлы собираются в один AC-3 файл. Мне этот способ показался слишком муторным, поэтому я воспользовался вторым.
А второй способ заключается в использовании утилиты eac3to. Он оказался очень простым. Я запустил из командной строки “eac3to my.dts my.ac3” и все – утилитка сама проанализировала dts-файл, сделала два прохода по нему и создала нормальный ac3-файл на выходе. Как говорится, без шума и пыли.
Итого, что мне потребовалось:
- SUPER;
- eac3to;
- AviDemux.
Происходило все так:
- С помощью SUPER я перегнал mkv-файл в avi-файл с преобразованием AVC в DivX и с сохранением исходной звуковой дорожки. Получился my-tmp.avi в котором лежали divx+dts.
- С помощью AviDemux вырезал звуковую дорожку из my-tmp.avi и сохранил ее в my-tmp.dts.
- С помощью eac3to преобразовал my-tmp.dts в my-tmp.ac3.
- С помощью AviDemux создал из my-tmp.avi результирующий my-file.avi. Для этого я указал копировать видео поток из my-tmp.avi, а звуковой поток брать из внешнего файла my-tmp.ac3.
Вот и все.
Примечание. Вместо AviDemux здесь можно было бы использовать и VirtualDub. По крайней мере вырезать аудио поток из avi-шки VirtualDub может точно, я это проделывал. А вот может ли он вклеить AC-3 поток в avi-файл я не проверял.
Ну и раз уж пошла такая пьянка еще до кучи:
- В AviDemux есть интересная фича – он автоматом режет результирующий avi-файл на фрагменты ограниченного размера. Например, если на выходе я ожидал 7Gb avi, то получил два avi – первый на 4Gb, второй на 3Gb. Самое плохое в этом то, что AviDemux их странно обзывает: первый получается my-file.avi, а второй my-file.avi01, третий –my-file.avi02 и т.д. Приходится их затем вручную переименовывать.
- Есть такой мега-монстро-комбайн MediaCoder. Ставил его себе несколько раз, пробовал разные его версии. Но все время плевался и сносил нафиг. Какой-то он глючный, падает то и дело. Да и в настройках его хрен разберешься. В общем, когда я нашел SUPER, про MediaCoder я больше не вспоминал, хотя его часто упоминают как очень хороший перекодировщик.
- Насколько я смог понять, DTS в двухканальный AC-3 можно перегнать в foobar2000. Шестиканальный AC-3 у меня сделать не получилось, а вот 6-ти канальный wav-файл из DTS-а foobar2000 строит.
- Забавный эффект был в SUPER, когда я с помощью ffmpeg-а пытался конвертировать DTS в AC-3: началась конвертация довольно шустро, а вот затем… :) Затем работа шла, похоже, по принципу маляра Шлемиля – чем дальше ffmpeg уходил от начала файла, тем медленнее шла конвертация. И, когда я его прервал через сутки непрерывной работы, результирующий AC-3 поток оказался неправильным.
Комментариев нет:
Отправить комментарий