|
Ключевые слова: dvd, avi, divx, mplayer, (найти похожие документы)
From: Pavel <http://po1tinnik.narod.ru/>; Date: Mon, 18 Nov 2004 14:31:37 +0000 (UTC) Subject: Как превратить DVD в AVI Оригинал: http://po1tinnik.narod.ru/ Данный текст не является ни руководством, ни инструкцией по кодингу в MPEG4. Это просто мой опыт борьбы с видеогигабайтами. Современные кодеки позволяют при грамотной раскладке перегонять фильмы практически без потери качества, при условии качественного первоисточника. В свое время я перепробовал для этого множество программ и остановился на mencoder (http://www.mplayerhq.hu/homepage/design7/news.html). К сожалению (или нет) под Windows (http://www.microsoft.com/) не существует качественного порта mencoder. Win сборка ограниченна по функциональным возможностям и годится лишь для изготовления полуфабрикатов, которые можно скормить VirtualDub (http://www.virtualdub.org/) или его клонам (http://www.doom9.org/software2.htm#editing) (они так и не могут научиться понимать сырой MPEG. странно). Поэтому если у вас нет опыта и желания работать в Linux, (http://www.linux.org/) дальше можно не читать. Что умеет mencoder? Можно сказать, что практически все. На самом деле из пакета собирается 2 программы: mplayer и mencoder. Mplayer понимает и воспроизводит все видеоконтейнеры и все видеопотоки. Очень удобно кстати. Mencoder же умеет эти контейнеры открывать и создавать полноценный avi. Есть только 2 вещи которые неплохо было бы добавить к функциональности mencoder - разрезка файлов по заданным параметрам (эта фича присутствует, но ограничена по возможностям) и добавление нескольких звуковых дорожек. Хотя все это умеет делать другой пакет под названием transcode. (http://zebra.fh-weingarten.de/~transcode/) Итак, перед нами стоит задача перегнать MPEG2 (http://www.mpeg.org/MPEG/index.html) в MPEG4 и запихнуть его в контейнер, придуманный, но как всегда больше не поддерживаемый, MicroSoft, (http://www.microsoft.com/) т.е. Avi (http://www.jmcgowan.com/avi.html#Definition) Я не буду описывать сборку (компиляцию) пакета mplayer, описание можно найти в прилагаемой документации, кстати, оно выполнено великолепно и очень самодостаточно, причем есть и на русском языке. Первый этап - выбор кодека. На момент написания статьи (31.10.2004) лучшим, на мой взгляд, является опенсорсная ветка DivX (http://www.divx.com/) - XviD (http://www.xvid.org/) При равных параметрах, потери в качестве у XviD наименьшие. Да и под linux DivX не особо блистает. Поэтому я буду рассматривать в примерах XviD. Второе, это нужно определиться с размерами готовых файлов. Здесь много вариантов и все зависит от вкусов и желаний. К слову, mencoder имеет встроенный калькулятор битрейта. Работает это так: кладем vob-ы содержащие фильм в какой-нибудь директорий, пишем скрипт:: cat *.vob | mencoder -oac mp3lame -lameopts preset=medium -aid 128 -ovc frameno -ni - cat *.vob | - читаем по порядку vob файлы и отдаем в трубу. -oac mp3lame - перегоняем звук в mp3 -lameopts preset=medium - установка битрейта mp3, причем VBR. можно не указывать, тогда будет standart. детальное описание в man. -aid 128 (0x80) - говорим какая звуковая дорожка. может быть другая, но можно проверить в mplayer и выбрать нужную. -ovc frameno - без видео. для калькулятора само то. -ni - Force usage of non-interleaved AVI parser (fixes playing of some bad AVI files) к слову, не помешает. - - читаем из трубы. в итоге вы получите файл test.avi, содержащий только звук, и расклад по битрейту. Достаточно наглядно, не правда ли? Кстати если DVD с ac3 можете указать -oac copy, тогда получите битрейт с ac3. Если вы определились с битрейтом, то пора приступать к енкодингу. Сперва удалим лишний мусор, который добавляют в vob для совпадения картинки с пропорциями экрана монитора, те croping и изменим размер картинки примерно 512хХХХ, те scaling. Такой формат считается оптимальным соотношением по качеству выходного продукта. Натравливаем mplayer на любой vob (у вас может быть другое имя файла): mplayer -vf cropdetect vts_01_2.vob увидите следущую картинку crop area: X: 8..711 Y: 63..409 (-vf crop=704:346:8:64)% 5,4% 0 0% запомните эти параметры -vf crop=704:346:8:64 (первые 2 цифры размер полезного окна, 3 цифра отступ слева, 4 отступ сверху) и снова с уже известными параметрами пробуете скалинг: mplayer -vf crop=704:346:8:64,scale=512:280 vts_01_2.vob я специально задал второй параметр у скалинга неверный, и mplayer его сам скорректировал (в самом низу картинки). Но так бывает не всегда, иногда требуется явно указывать -aspect 16:9. И это еще не все. Бывает cropdetect тоже не срабатывает, и приходится определять crop вручную. А поскольку дело это неблагодарное и cropотливое, я пользуюсь avidemux2 с его виsуальными настройками этих фильтров. Но тут уж каждый сам себе терапевт... Ну а теперь за дело. Во все том же самом директории пишете новый скрипт: cat *.vob | mencoder -nosound -ovc xvid -xvidencopts vhq=1:pass=1:qpel:trellis -sws 2 -ni -vf \ crop=704:346:8:64,scale=512:280,pp=lb -o /dev/null - -nosound - при первом проходе нам звук не нужен -ovc xvid - собственно XviD :) -xvidencopts vhq=1:pass=1:qpel:trellis - pass=1 это и есть первый проход при котором кодек обсчитывает каждый фрейм и записывает в файл калькуляцию. остальные опции смотрите в man, и решайте стоит их включать или нет. -sws 2 - тоже в man -vf crop=704:346:8:64,scale=512:280,pp=lb - pp=lb убирает деинтерлизинг. нужен только если после скалинга не исчезеат расческа. -o /dev/null - то что получается на выходе отбрасываем. толку от этого не много, нам нужен только xvid-twopass.stats Картинка, правда, от другого процесса, но смысл понятен... По завершению первого прохода делаем второй, причем очень важно сохранить все настройки фильтров идентичными: cat *.vob | mencoder -oac copy -aid 128 -ovc xvid -xvidencopts \ vhq=1:pass=2:qpel:trellis:bitrate=950 -sws 2 -ni -vf \ crop=704:346:8:64,scale=512:280,pp=lb -o Name.ac3.avi - -oac copy - именно copy, так фильм будет качественней. bitrate=950 - фильм получится размером 700 М (первая картинка) а на третий проход, если вы решили сделать звук в mp3 то: mencoder -ovc copy -oac mp3lame -lameopts preset=medium -o Name.mp3.avi Name.ac3.avi Вот в принципе и все, добавлю только что на моем атлоне 2000 час фильма собирается примерно 2-2.5 часа, зато результат остается надолго в коллекции. Вы же в праве делать, так как хотите, хоть все за один проход. ЗЫ. Если появятся практические вопросы по енкодингу, пишите в форум сюда (http://mm.pk.ru/forum/) или сюда (http://linux.pk.ru/phorum/read.php?f=5&i=1&t=1) Постараюсь ответить. CopyLeft (C) 2004 г.
|
Обсуждение | [ RSS ] |
|
Добавить комментарий |
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |