7. Калькулируем.
Для принятия правильного решения по выбору
видео-битрейта и размера картинки нужно учитывать множество параметров.
Длительность фильма и качество исходного материала, динамичность фильма, битрейт
звукового потока, цели создания рипа (только чтобы посмотреть, для своей
коллекции, для друзей), тип носителя, на который он будет
записан.
7.1. Видео-битрейт.
Вначале договоримся о
приемлемых границах величины видео-битрейта. Рекомендуется в любом случае
придерживаться границ, скажем, от 1000 до 2500 Kbps. Если исходный
материал качественный (лицензонный DVD, реставрированное старое кино), то
лучше стремиться к величине не меньше 2000.
Конечно, если фильм
делается только для себя и будет записан на DVD-носитель, то размер
выходного файла, как правило, не так критичен. В этом случае можно выбрать любой
приемлемый битрейт. Но в большинстве случаев это не так. Рано или поздно вы
решите поделиться фильмом с друзьями, а у них нет DVD-привода. Придется
разбивать файл на куски и записывать на CD. Поэтому, чтобы обеспечить
некоторую универсальность, давайте следовать правилу, что выходной размер рипа
должен быть кратен размеру CD-болванок: 700 Мб, 1400 Мб,
2100 Мб, 2800 Мб, 3500 Мб и т.д. (одно но: для
3-дисковых рипов желательно придерживаться ограничения в 2 Гб для
совместимости со стационарными плеерами). Теперь остается только решить на
сколько болванок делать рип. Это просто.
Вариант
1: Считаем на пальцах.
Имеем следующие величины: Time -
длительность фильма в секундах; ABitrate - битрейт аудио-потока в
Kbps; VBitrate - рассчетный видео-битрейт в Kbps; AllSize,
ASize, VSize, ISOSize - размеры всего файла, аудио-потока,
видео-потока и ISO-области в Мб.
Возьмем, к примеру
длительность фильма Time, равную 125 минут = 7500 сек;
ABitrate = 448 Kbps; делаем рип на 2 CD, т.о.
AllSize = 1400 Мб; размер области ISO считаем приближенно равным
5 Мб * 2 CD = 10 Мб.
Подсчитаем видео-битрейт
(приведенные формулы достаточно точны, хотя и не учитывают размер индексной
области будущего AVI-файла):
ASize = ((AllTime *
ABitrate) / 8 / 1024 / 1024) * 1000 =
((7500 * 448) / 8 / 1024 / 1024) *
1000 = 400.54 Мб
VSize = AllSize -
ASize - ISOSize = 1400 - 400.54 - 10 =
989.46 Мб
VBitrate = (VSize * 1024 * 1024
* 8) / (1000 * AllTime) = (989.46 * 1024 *
1024 * 8) / (1000 * 7500) ~ 1107
Kbps
Как видим, в данном случае видео-битрейт получился довольно
низким, для некоторых случаев - неприемлемо низким. Поэтому, по результату
рассчета можно принять решение об увеличении размера выходного файла (особенно,
если речь идет о качественном исходном видео-материале и/или в фильме в изобилии
присутствуют динамичные сцены). Повторный рассчет для размера выходного файла
2100 Мб, например, дает уже вполне приличную величину видео-битрейта
VBitrate ~ 1890 Kbps.
К счастью, у нас нет необходимости
проделывать подобные рассчеты вручную. Для этого существуют специальные
битрейт-калькуляторы.
Вариант 2: Считаем на
встроенном калькулаторе кодека DivX Pro:
Вариант
3: Считаем на встроенном калькулаторе утилиты
AvsTweak.
Вариант 4: Считаем на калькуляторе, встроенном в пакет
Gordian Knot.
Кроме
того имеется достаточно много отдельных битрейт-калькуляторов, например: DivX
Bitate Calculator by Alonzo, Advanced DivX Bitrate Calc by
Mick Thunder, AvsCalc by Valky. Как калькуляторы в вариантах 1 - 4, так и эти отдельные калькуляторы
пользуются при подсчетах несколько разными формулами, поэтому результаты они
могут показывать разные:
- так Advanced DivX Bitrate Calc
оперирует формулой для старых DivX-кодеков, полагающей, что 1
Kbps видео-битрейта равен 1024 bps, тогда как в современных DivX
кодеках эта величина принимается равной 1000 bps;
- DivX Bitate
Calculator значительно завышает битрейт, от значений видео-битрейта,
полученных с его помощью приходиться отнимать ~1.5%, чтобы вписаться в
заданный размер файла;
- как работает встроенный калькулятор современных
DivX-кодеков доподлинно неизвестно, но считает он достаточно точно,
практически в ноль;
- калькулятор, встроенный в AvsTweak и калькулятор
AvsCalc работают по формулам, приведенным в варианте 1 и немного (примерно на 0.3%)
занижают видео-битрейт, в результате при назначенном размере в 1400 Мб
получается файл ~ 1396-1397 Мб. Это тоже неплохо, учитывая, что при этом
мы получаем некоторую свободу маневра в разбитии файла на части для записи на
CD.
Несколько дополнительных замечаний по рассчетам:
1.
Длительность фильма узнать просто: откройте AVS-скрипт в
VirtualDubMod'е и сдвиньте бегунок в крайнее правое положение; внизу в
скобках за номером фрейма увидите время. Другой вариант: запустите медиа-плеер и
откройте в нем либо тот-же AVS-файл, либо файл звукового потока
AC3.
2. Величина аудио-потока прописана в названии звукового
файла AC3 (например в файле "Sample AC3 T01 3_2ch
448Kbps DELAY 2027ms.ac3" содержится 5-канальный аудио-поток с битрейтом
448 Kbps и величиной задержки 2027 ms).
3. Если в фильме
присутствуют долго идущие титры (обычно в конце фильма), то их можно сжать
отдельно с существенно меньшим видео-битрейтом. Сэкономленный битрейт при этом
перейдет в основную часть фильма. Иногда это помогает вписаться в нужный размер
файла. Кстати, калькуляторы AvsTweak и AvsCalc позволяют
рассчитывать видео-битрейт с учетом пережатия титров.
4. Существуют
программы (например, Sonic Foundry Soft Encode) для пережатия потока
AC3 в поток с меньшим битрейтом. Такая программа может пережать поток с
битрейтом 448 Kbps в поток, скажем, 320 Kbps без существенной
потери качества. Высвобожденный битрейт опять же пойдет в
видео-поток.
7.2. Размер кадра и фактор качества.
Итак, мы
сделали предварительный расчет видео-битрейта. Осталось определиться с размером
кадра и узнать какое мы при этом получим качество видео-потока. Если качество
будет неудовлетворительным нам придется либо увеличивать видео-битрейт (что не
всегда возможно), либо уменьшать размер кадра. Фактор качества измеряется в
единицах Bit / Pixel и вычисляется по следующей
формуле:
Quality = VBitrate * 1000 / (Fps *
XSize * YSize), где VBitrate - видео-битрейт, Kbps;
Fps - частота кадров; XSize * YSize - размер кадра
К
сожалению, не все калькуляторы вычисляют фактор качества. Из перечисленных выше
калькуляторов фактор качества умеют подсчитывать только Gordian Knot, а
также AvsTweak и AvsCalc.
Какое значение фактора качества
считать "правильным" сказать трудно. В какой-то степени ответ зависит и от
назначения рипа. Рискнем установить в качестве нижней границы значение в
0.2. Рипы с качеством меньшим 0.2 будем считать рипами неприемлемо
низкого качества. А в качестве границы, к которой желательно стремиться, рискнем
предложить величину, равную 0.3.
Из формулы видно, что на качество
влияют в одинаковой степени и размер X и размер Y. В первую
очередь, как уже говорилось, необходимо определиться с размером по горизонтали
(X). Не рекомендуется делать этот размер большим, чем 640. Да и
это значение рекомендуется использовать только тогда, когда качество исходного
материала высокое, а выбранный битрейт вполне ему соответствует (скажем, в
районе 2000 KBps и выше). Меньшие значения размера получаем, отнимая от
640 значение кратности - 32. Таким образом, имеем для X
следующий ряд значений:
640, 608, 576, 544, 512
С размером Y
определиться проще. Он должен быть, во-перых, кратен 16 и, во-вторых, в
кадре не должно наблюдаться искажения естесственных пропорций. Из условия
кратности получаем ряд значений:
480, 464, 448, 432, 416, 400, 384,
368, 352, 336, 320, 304, 288
Для проверки отсутствия искажений
можно:
- применить инструментальный метод - запустить DVD-плеер
(например, PowerDVD), открыть в нем VOB-файлы с фильмом и измерить
линейкой размеры (вертикаль и горизонталь) светлой части кадра, узнав эту
пропорцию, нетрудно для размера X подобрать наиболее подходящее значение
Y;
- открыть подготовленный AVS-скрипт файл, содержащий команду
"BicubicResize()" в VirtualDubMod или в
AvsTweak и
просканировать фильм в поисках любого круглого предмета:
колесо автомобиля, светильник, дуло пистолета и т.п., наконец, в голливудских
фильмах в конце титров присутствует знак Киноассоциации с кружком внутри; если
не доверяете глазомеру, скопируйте кадр из VirtualDubMod (меню Video->Copy source frame
to clippboard или Ctrl+1) и
вставьте в Photoshop, увеличьте и проверьте округлость с помощью
инструмента выделения (режим эллипс с фиксированным соотношением сторон); на
картинке ниже видно, что Киноассоциацию явно плющит:
Утилита AvsTweak имеет
встроенные стредства, помогающие определить (правда, тоже на глазок)
правильность пропорций круглых предметов в кадре. В случае малейших сомнений не
поленитесь и поработайте с линейкой или с фотошопом.
Особый случай -
видео-материал с высоким значением Aspect ratio (отношения X к
Y), далеким от компьютерно-мониторного 4:3 (например, с Aspect
ratio равным или большим 1.85). В этом случае результатом рипа может
стать т.н. амбразура (узкая полоска в середине экрана с большими
бесполезными полями сверху и снизу). Амбразуры с соотношением сторон хуже, чем
640 x 288 однозначно не приветствуются.
Чтобы частично избежать этого
неприятного результат рекомендуется увеличить значения кропинга слева и справа.
Увеличивайте кропинг в диапазоне от 4 до 40 пикселей с каждой
стороны, ориентируясь на свой вкус и чувство меры и чтобы не пострадала
информативность киноряда и за кадром не остались важные детали. Попутно,
манипулируя значениями кропинга по X, можно также решить задачу точного
попадания в требуемую пропорцию X:Y. Но это уже почти из области
фантастики
8. Сжимаем.
8.1. Настройка
кодека.
Запускаем VirtualDubMod и открываем наш
AVS-скрипт-файл (меню File->Open video file):
Идем в меню Video, устанавливаем
режим Fast recompress, затем открываем
Compression:
В меню Select video compression
выбираем из списка кодеков наш кодек Divx 5.2.1 Codec, после чего
нажимаем кнопку Configure:
В открывшейся первой страничке настройки
параметров кодирования (General) нас
интересуют в первую очередь три вещи:
(1) -
режим кодирования, задающий соотношение скорость/качество - Encode Performance
(2) - значение видео-битрейта - Average bitrate
(3) - режим кодирования, задающий число проходов -
Encode mode
Чем выше все эти три параметра, тем выше будет качество рипа. С
битрейтом мы уже определились, остается выбрать соотношение скорость/качество и
число проходов. Настройками по умолчанию выставлены режим Standard и "однопроходный" (1-pass) режим, но эти настройки не годятся для
рипов высокого качества!
Если вам необходимо высокое качество рипа
ставьте режим кодирования Slow. То же самое
касается и многопроходных режимов кодирования. Так, добавление второго прохода
существенно улучшает качество результата за счет лучшего
перераспределения битрейта между различными по динамике сценами фильма. При этом
мы получаем не только лучшее воспроизведение динамичных сцен, но и более высокий
коэффициент сжатия. Но второй проход также и увеличивает время кодирования в два
раза. Иногда применяется и большее, чем 2 число проходов - в случае, если
следующие проходы (3-й, 4-й) влияют на результат, либо если
требуется точное попадание в размер выходного файла.
Общая рекомендация
такова: если вы делаете фильм только для себя, у вас недостаточно
быстрый процессор, ограничено время, короче говоря, лишь бы побыстрее сделать,
тогда оставляйте режим 1-pass. В остальных
случаях всегда делайте 2-х (и при необходимости более) проходные рипы. У
вас также есть возможность попробовать закодировать несколько тестовых
фрагментов фильма в разных режимах и сравнить качество результата.
Еще одна
тонкость в настройке связана с величиной максимального битрейта (Max bitrate). По умолчанию, для текущего профиля
Home Theater значение Max bitrate установлено равным 6951.2 kbps и
его невозможно изменить (см. картинку выше). Однако для лучшей совместимости
рипа со стационарными DVD-плеерами рекомендуется уменьшить это значение
до 4500 kbps. Чтобы сделать это, нужно во-первых отключить профили. Жмем
на кнопку Select DivX Certified Profile
(4). В появившемся окне Step 1 of 2 - Select a DivX Certified profile убираем
галочку с DivX Certified:
Нажимаем кнопку Next, а на следующем окне (Step
2 of 2...) кнопку Finish:
После этого мы возвращаемся в General окно настроек кодека и теперь можем задать
необходимую нам величину Max bitrate:
Обратите внимание, что если вы после
этого будете менять значение Average bitrate,
то и Max bitrate также снова изменится (так уж
решили создатели DivX), поэтому после настройки
Average bitrate следует снова установить значение Max bitrate = 4500.
8.2. Настройка
многопроходного режима и кодирование.
Для задания многопроходного режима
выберите сперва Encode mode = Multipass, 1st pass:
В последующих проходах выберите Encode
mode = Multipass, Nth pass:
Если текущий (2-й,
3-й,...) проход не является последним, оставляем галочку Update log file:
Если проход последний, убираем галочку (впрочем, если забудете
убрать, ничего страшного не случиться):
На второй страничке настройки параметров кодирования (Video) в основном оставляем параметры в указанном ниже
состоянии (по умолчанию). Кроме: Scene change
threshold, если эта опция доступна (зависит от режима), делаем
20%; Max Keyframe interval - этот
параметр делаем равным 150-200.
Настроив параметры кодирования, нажимаем ОК внизу окна настройки параметров и еще раз ОК в окне Select video
compression. Теперь чтобы начать кодирование идем в меню File и выбираем Save
As...:
Если кодиуем в
однопроходном режиме, то просто задаем имя выходного файла и жмем Сохранить. В результате появляется окно, отображаущее
процесс кодирования и нам остается только дождаться окончания работы
кодека:
Кодирование же в 2
прохода делается так. Сначала задаем в настройках кодека 1-й проход, идем в меню
Save As..., задаем имя файла для первого
прохода - ((1) - например, "Movie-Pass1") отмечаем галочкой Don't run this job... - (2) (в старых версиях программы - Add operation to job list...) и жмем Сохранить:
При установленной галочке Don't run this
job... кодирование заданного прохода не начинается, вместо этого
задание на кодирование попадает в список отложенных заданий (Job Control).
Далее мы задаем в настройках кодека
2-й проход, (в новых версиях программы для это можно воспользоваться
кнопочкой Change -
(3)), возвращаемся в меню Save
As..., задаем имя файла для второго прохода (например, "Movie-Pass2"), убеждаемся, что галочка Don't run this job... отмечена и еще раз жмем Сохранить.
Аналогично поступаем, если проходов
больше. Не забудьте только для каждого прохода задать соответствующее имя файла.
После того, как все проходы таким образом внесены в список отложенных заданий,
идем в меню File -> Job cintrol:
Указываем на первое внесенное нами в список задание и нажимаем
Start:
По завершению кодирования всех заданий, нажаем ОК. На этом кодирование видео завершено. Смотрим
полученный в результате последнего прохода AVI-файл и если все ОК -
переходим к приклейке звука.
8.3. Кодирование пробных
фрагментов.
Для кодирования произвольного фрагмента фильма необходимо
отметить начало и конец фрагмента кнопочками, расположенными под полосой
прокрутки. Кнопкой (1) отмечаем начало
фрагмента, а кнопкой (2) - конец:
Далее кодируем фрагмент точно так же, как
описано выше применительно ко всему фильму.
9. Приклеиваем
звук.
В меню File->Open video file открываем файл с результатом
кодирования последнего прохода видео. Идем в меню Video и устанавливаем для видео режим прямого
копирования (Direct stream copy):
В меню Audio выбираем пункт AC3
Audio (если вместо меню Audio вы
видите Streams, значит у вас более современная
версия VirtualDubMod, там нужно действовать немного иначе, смотри
описание ниже):
В открывшемся
окне выбираем AC3-файл с аудио-потоком, потом в меню Audio нажимаем Interleaving...:
Настраиваем параметры интерлива так, как показано ниже, за
исключением окошечка ввода Delay audio track
by - сюда заносим величину задержки аудио-потока из названия
AC3-файла (т.е., если файл назывался "Sample AC3 T01
3_2ch 448Kbps DELAY 2027ms.ac3", то в окошко Delay... заносим число 2027. Обратите
внимание на то, что это значение может быть также и отрицательным, в таком
случае название файла было бы "Sample AC3 T01 3_2ch 448Kbps
DELAY -2027ms.ac3" и в окошко Delay...
нужно было бы занести число -2027.
Если у вас установлена свежая версия VirtualDubMod, то для
приклейки аудио-потока нужно идти в меню Streams и выбрать там Stream
list:
В открывшемся
окне жмем кнопку Add:
В открывшемся окне выбираем
AC3-файл с аудио-потоком. Теперь мы видим этот файл в списке потоков.
Указываем на него мышкой и жмем правую кнопку, в появившемся меню нажимаем
Interleaving...:
Параметры интерлива настраиваются
также, как и в старой версии программы.
После того, как мы выбрали
аудио-поток и настроили интерлив, можно наконец сохранить фильм уже со звуком в
новом файле. Для этого опять идем в меню File
-> Save as AVI..., задаем имя файла для
фильма и жмем Сохранить. На этом наша работа
по созданию рипа окончена.
10. Резка фильма на части.
Если
полученный фильм нужно разрезать на части (например, для записи на CD),
откройте его в VirtualDubMod, установите меню Video в режим Direct stream
copy) и отметьте первую часть фильма. Резать теперь можно только по
ключевым кадрам - используйте для движения по ним стрелочки с
ключиком:
Размер от начала
файла в мегабайтах можно увидеть на информационной панели VirtualDubMod
справа от навигационных кнопок:
Cохраните отмеченное в отдельных файл. Если не попали в размер
CD-болванки, придется подкорректировать позицию конца фрагмента и
попробовать еще раз. Затем отметьте следующую часть и сохраните ее в другой
файл.
Старайтесь по-возможности разрезать фильм так, чтобы разрез попадал на
смену сцен в кадре. Обычно на этом месте находится и ключевой
кадр.
End!