Показать сообщение отдельно
Старый 16.02.2011, 10:09 Вверх   #8
::.V.I.P.::
 
Аватар для boxx
boxx вне форума
Доп. информация
По умолчанию

Как из MKV сделать MP4 без потери качества видео...

Для переразборки MKV -> MP4 нам понадобиться очень много свободного места на винчестере, примерно можно прикинуть это таким образом:
  • разборка MKV на составляющие - + размер 'разбираемого' фильма;
  • перекодирование аудио дорожки (дорожек) - + размер перекодируемых дорожек;
  • сборка контейнера - + удвоенный объем собираемых видео и аудио дорожек;
итого 1+1+2 т.е. у вас должно быть свободного пространства примерно в 3-3.5 раза больше, чем исходный размер фильма..
Первое что нужно сделать - это 'разобрать' контейнер MKV на составляющие его видео/аудио и, возможно, другие потоки. Для этой простой операции нам понадобится программа MKVExtract GUI и место на жестком диске в 2-2.2 раза превышающее объём исходного фильма (т.е. фильм 4.4Гб требует ещё не менее 9Гб свободного пространства) хотя и не обязательно в одном и том-же разделе HDD.

На основной закладке программы General выбираем нужный фильм, нажав на кнопку в подразделе Input. Через некоторое время, зависящее от производительности вашего компьютера и размера выбранного фильма, в окошке Content появляется список потоков и добавочных элементов вашего фильма. На примере взят достаточно сложный контейнер, содержащий 2 аудио дорожки, причём к английской дорожке подключены английские субтитры в формате ASS с 3 дополнительными (нестандартными для ОС Windows) шрифтами. Считаем, что английский язык нам не нужен ни в каком виде и ставим галочки только на видео-дорожке и аудио-дорожке с русским языком (в какой дорожке, какой язык желательно посмотреть перед этим, загрузив фильм в MKVmerge GUI и посмотрев в ней свойства аудио дорожек и порядок расположения,


Eсли-же добрые люди забыли указать язык для аудио-дорожек, это надо смотреть в видео-плейере или программе типа MediaInfo).
В подразделе Output лучше поставить указатель на Other, в противном случае распаковка контейнера произойдёт рядом с исходным фильмом, а это не всегда удобно, и указать каталог для распаковки (на диске со свободным местом не менее, чем размер исходного фильма). Теперь можно нажать на кнопку Extract и подождать конца распаковки. К сожалению процесс никак не отображается на экране и о его окончании можно судить только по снижению активности жёсткого диска или появлению окошка:

Хотя это не очень долго - скорость распаковки достаточно близка к скорости чтения/записи вашего винчестера (с учётом некоторых потерь на 'расщепление' материала контейнера)..
Результатом операции будет наличие в принимающем каталоге 3-х файлов с расширениями в нашем случае h264 (видео-дорожка), ac3 (аудио-дорожка) и txt, который нас не интересует (в принципе это разделение фильма на главы, если таковое было проделано при его изготовлении, как на DVD). Если вам интересно, как выглядит полностью распакованное содержимое этого фильма, смотрите на этом скриншоте - 7 файлов, относительно тех о которых мы говорили добавились 3 TTF-шрифта, английская дорожка в формате DTS и субтитры к ней в формате ASS...



Далее, видео-дорожку в формате h264 контейнер mp4 способен принять в исходном состоянии (вот способно-ли её воспроизвести устройство, для которого вы проделываете эту операцию - вопрос. Но это уже на вашей совести - читайте его спецификации), а вот аудио-дорожку в формате ac3 он не приемлет и её придётся предварительно перекодироватиь в понимаемый mp4 формат aac, если мы хотим сохранить 6-ти канальную структуру или в mp3, если достаточно только stereo. Вы вольны проделать это удобным для вас способом, а предпочитаю бесплатный перекодировщик BeLight (оболочка, которая может работать с перекодировочным движком BeSweet, работает с форматами AAC (в т.ч. 5.1), AC3 (в т.ч. 5.1), MP2, MP3, OGG (в т.ч. 5.1), WAV/PCM). Рассматриваем вариант с перекодированием в формат AAC с сохранением всех 6 каналов (AAC это в принципе основной формат хранения звука в MP4 и всегда лучше сохранять дорожки в нём, чем в mp3, хотя последний и поддерживается MP4). КРАЙНЕ желательно чтобы имя файла было как можно проще, т.е. у нас после распаковки контейнера получилось:
Harry.Potter.and.the.Prisoner.of.Azkaban.2004.720p.BluRay.DTS.x264-ESiR_Track2.ac3
так вот надо переименовать его во что-нибудь типа Harry_Potter_3.ac3. Это необходимо для того, чтобы программы пекодировки не путались и не пытались принимать части имени файла за свои внутренние команды, также у Windows есть неприятная особенность плохо передавать в командной строке параметры длинее 255 символов. В общем я, как говорится, предупредил...
Запускаем программу BeLight (BeLight.exe в каталоге с программой) в меню File->Open... выбираем файл AC3 для кодирования, в меню File->Save..., при необходимости, указываем куда положить получаемый файл и как его назвать. Если не делать этого, то файл будет положен туда-же где и исходный и будет иметь его имя (при совпадении имён файлов перезапись не происходит, просто к имени прибавляется 1). В подразделе azid setting можно установить галочку на Dinamic Compression и установить значение Normal - это приведёт к сжатию динамического диапазона звуковой дорожки, что может быть актуально для прослушивания на портативных устройствах или в условиях повышенного шума, или на не очень качественной акустике. Далее, в подразделе BeSweet OTA? если вы планируете нормализовать уровень громкости звуковых дорожек (например, слишком тихие исходные) нужно поставить галку на Mode и выбрать PreGain.
Теперь выбираем закладку AAC, если уже не выбрано и устанавливаем на ней собственно параметры перекодирования:

  • Output Channels - 5.1 (если работаем с многоканальным звуком, и если устройство, для которого вы выполняете перекодирование действительно умеет работать с таким звуком - для PSP, например, это бессмысленно)
  • Variable Bitrate Mode - NORMAL (можно Streaming, если у вас не супер акустика или что-нибудь круче Normal, если размеры получаемой дорожки не критичны (а больше исходной AC3 она не получится))
  • Profiles - желательно HE (High Effeciency) AAC
  • Quality - High
  • Export ISO 13818... - можно поставить эту галочку, тогда после перекодирования файл звуковой дорожки будет с расширеним .aac и с ним удобнее работать (это лишь моё мнение)
Затем нажимаем на кнопку Advanced Setting и устанавливаем, при желании, это не обязательно, следующее:


  • Normalize to.. - 100 (можно 95%-100% другие значения в нашем случае бессмысленны);
  • галочку на Output Log File (рядом с создаваемым файлом будет положен файл .log в котором, при желании можно посмотреть что и как было. Но это только для тех, кто понимает чего там написано)
Теперь, после установки и проверки всех параметров, нажимаем на кнопку Start Processing и получаем окно, показывающее процесс декодирования:


Вот тут ждать придётся дольше, это настоящее перекодирование и его скорость полностью зависит от мощности вашего центрального процессора. Для примера на Core2Duo 1.86GHz на перекодирование дорожки к фильму длительностью 2ч 20мин в AAC при плагина NERO Digital, с нормализацией уровня громкости, потребовалось 42 минуты..
Если вы решите прервать процесс кодирования - нажмите на красную кнопку снизу, справа окна. Первое нажатие прерывает только текущую операцию кодирование, второе вообще прерывает кодирование и вместо красной появляется зелёная кнопка со стрелкой. Нажатие на неё возвращает вас в основное окно программы.


В возможно использование для перекодирования звука и другой бесплатной оболочки MeGUI которая в принципе предназначена для перекодирования фильмов, так сказать целиком, но её гибкость вполне позволяет проделывать эту операцию отдельно только для звуковой дорожки.

  1. в основном окне программы на закладке Audio / Track 1 в стороке Audio Input выбираем исходный звуковой файл;
  2. в строке Audio Output, при необходимости выбираем куда положить получаемый файл AAC, по-умолчанию он будет лежать там-же где и исходный;
  3. в строке Codec выбираем ND AAC (бесплатный кодер фирмы NERO);
  4. в строке Audio Profile выбираем профиль кодирования (для фильма с DD5.1 можно NSAAD-HE-MultiCannel-128k или NSAAD-LC-MultiCannel-192k, если хочется постараться сохранить оригинальное качество звука, для портативных устройств, само собой это глупо и надо выбирать стерео-профили). Если есть желание ещё более поднять качество получаемого звука (вернее как можно лучше сохранить качество оригинального, с исходной звуковой дорожки) нажимаем на кнопку Config

    и производим подстройку параметров - в строке Output Channel должно быть Keep Original Channels для 6-ти канального звука, и можно включить нормализацию уровня громкости Increase Volume Avtomatically, если вы считаете, что это нужно (на качестве звука это не отражается, но может помочь при очень тихих звуковых каналах в оригинальной AC3-дорожке, да и времени занимает немного, в отличие от собственно перекодирования), ещё можно поковырять NERO Digital AAC Options, в принципе просто немного увеличить суммарный битрейт (исходный многоканальный звукв AC3 обычно имеет битрейт 448kbps, но AAC подобное качество достигается при меньших битрейтах и вполне достаточно установить 256 kbit/s). Про сохранении настроек, если вы их меняли, вас спросят нужно-ли изменить профиль - отказывайтесь, не надо портить хорошую вещь. Если надо просто создайте на страничке Config свой профиль нажав на кнопку New в нижнем подразделе Profiles;
  5. нажимаете на кнопку Enqueue и созданное вами задание по перекодированию звука заносится в список заданий;
Переходим на закладку Queue основного окна программы, где видим своё задание.

Нажимаем на кнопку Start и запускаем его на выполнение. Открывается окно статуса выполнения


и задание начинает выполняться (при этом вы можете, при необходимости, вернуться в основную программу и продолжить работу с ней). В начале кодирования видимых изменений не происходит - это производится сканирование дорожки и построение графика громкости для процедуры нормализации громкости (галочка Increase Volume Avtomatically в настройках аудио профиля), потом вы будете наблюдать прогресс-бар выполняемого задания и при необходимости сможете изменить приоритет выполнения кодирования HIGHT-NORMAL-LOW (строка Priority), если на компьютере предполагается ещё и работать во время кодирования.
Перекодировали. Практически мы готовы к сборке полученных видео и аудио-дорожек в контейнер mp4. Для этого запускаем программу YAMB (YAMB.exe) выбираем нужный подраздел и запускаем его. ВНИМАНИЕ !!! - в процессе сборки контейнера программа создаёт промежуточный файл, размещаемый в том-же разделе диска, что и каталог с исходными дорожками, следите, чтобы на этом диске у вас было достаточно для этого места (свободное место равное сумммарному размеру всех видео и аудио дорожек, упаковываемых в контейнер MP4).:

Получаем вот такое окно, где при помощи кнопки Add подгружаем наши видео (h264 в данном примере) и свежеперекодированную звуковую дорожку (.aac или .mp4 или .m4a, смотря чем перекодировали и какое получилось расширение):


можно настроить свойства дорожек - выделяем мышью нужную дорожку и нажимаем на кнопку Properties. Для видео дорожки, например так. ОБЯЗАТЕЛЬНО нужно указывать частоту кадров видео-дорожки, в противном случае будет использована частота кадров по-умолчанию 25.000 и если у видео дорожки она другая (а обычно это так, особенно для фильмов) произойдёт рассинхронизация со звуком в конечном файле:

для звуковой дорожки так:

Можно, используя кнопки Up и Down выставить порядок дорожек в контейнере, но это имеет смысл только при более, чем одной звуковой дорожке. Также, если нажать на стрелочку под словом Output (не могли нормальную кнопку сделать...) то можно получить доступ к некоторым дополнительным настройкам выходного файла. После всего этого нажимаем на кнопку Next внизу окна программы и начинается процесс сборки контейнера..


B опять таки, в качестве альтернативного сборщика контейнера MP4 можно использовать программу MeGUI в которой имеются соответствующие инструмент. Запускаем программу и вызываем через Tools -> Muxer -> MP4 Muxer инструментик для сборки контейнера MP4:

В которой указываем обязательные и необязательные параметры:
  1. в строке Video Input указываем файл видео дорожки;
  2. обязательно указываем частоту кадров и при желании 'имя' дорожки, которое будет выводится при её выборе в видео плейере;
  3. на закладке Audio 1 в строке Input указываем файл звуковой дорожки;
  4. при желании указываем язык дорожки и её 'имя';
  5. в строке Muxed Output указываем куда положить и как назвать получаемый контейнер MP4;
  6. нажимаем на кнопочку Queue, занося таким образом созданное нами задание в очередь на выполнение.
Далее переходим на закладку Queue в основном окне и выбрав созданное задание, запускаем его на выполнение нажав на кнопку Start. Ждём сборки контейнера.


По окончании процесса обязательно проверьте полученный результат не уничтожая данных разобранного MKV, мало-ли что...
  Ответить с цитированием
 
Время генерации страницы 0.11295 секунды с 9 запросами