Здесь будет рассмотрен альтернативый вариант компрессии фильмов, записаных на дисках DVD, кодеками DivX ;-).В цепочке преобразования участвуют три программы и суть заключается в том, что сначала подготавливается виртуальный *.avi-файл, т.е. не существующий в полном объёме на диске, а затем он открывается в программе Virtual Dub и обрабатываетсяна Ваше усмотрение, с применением некоторых своих возможностей. Применять такую сложную, на первый взгляд, цепочку необходимопотому, что открыть непосредственно файлы с DVD-диска, программа Virtual Dub не сможет…
Итак, скачайте и установите необходимый софт:
-
SmartRipper 2.41 / vStrip_08f_css / DVD Decrypter 3.1.7.0 – программы для рипованиясодержимого DVD-диска на винт – воспользуйтесь любой;
-
DVD2AVI – MPEG-2 декодер;
-
VFAPIConv-EN – конвертирует файл проекта из программыDVD2AVI (*.d2v-файл) в *.avi-файл (распакуйте зип и инсталлируйте кодек, запустив файл vifpset.bat;
-
VirtualDub 1.5.9 – в остальных случаях можно воспользоваться одной из стандартных версий программы…
В такой же последовательности использования софта и будет проходить обработка нашего фильма.
Процесс рипования содержимого DVD-диска описывать не буду, поскольку использование приведённых программ не должно вызвать затруднений, да и вообще – рипование – это не есть «хорошо»… Перейдём сразу ко второй программе…
Запустив программу DVD2AVI, сначала открываем папку с нашим рипованым диском, выбирая желаемые *.vob-файлы.Идущие в порядке очерёдности файлы, самостоятельно отображаются в окне выбора, поэтому, желаемые файлы необходимовыбирать конкретно из всего списка, удаляя лишнее. В результате, в основном окошке программы можно будет увидетькадр фильма, причём в оригинальном представлении картинки (например, анаморф WideScreen). Далее, задаём следующие настройки (нерассмотренные настройки остаются выбранными по умолчанию):
- Video=>iDCT Algorithm=>32bit SSE MMX;
- Color Space=>YUV 4:2:2;
- Field Operation=>None;
- Audio=>Dolby Digital=>Demux – если хотите вывести прямой поток звука в *.ac3-файл;
- Audio=>Track Number=>1…8 – выбираем желаемый аудио-поток, либо отключаем вывод звука (как быстро определитьинтересующий нас номер аудио-потока – написано здесь);
- File=>Save Project – задаём имя проекта и выводим его в файл.
Примечание:
Если Вы имеете исходник в системе NTSC, записанный с применением iVTC(29.970fps) и используете стандартную версию программы VirtualDub, то можно сразу сделать iVTC в программе DVD2AVI. Для этого необходимо выбрать опцию Field Operation=>Forced Film, при этом частота кадров будет изменена на 23,976fps. Для фильмов PAL нужно выбиратьField Operation=>None.
Все возможные рассинхроны видео со звуком связаны, в частности, с неправильным использованием данной опции, а также, с изменением частоты дискретизации звука с 48кГц на 44,1кГц и т.п…
Проект начнёт сохранение файла и в окне статистики можно будет увидеть некоторые важные моменты относительно нашегоисточника… Если частота кадров равна 29,97, то применялось Telecine и для дальнейшей обработки мы будем учитывать этот важный параметр. По окончании сохранения проэкта, программа DVD2AVI известит нас об этом звуковым сигналом.
Теперь самое время открыть VFAPI-конвертор, с тем, чтобы преобразовать файл проекта в виртуальный *.avi.Через клавишу Add Job находим наш *.d2v, нажимаем Ok на появившемся окне (при желании можно изменить в соответствующихполях расположение и имя получаемого *.avi) и клавишу Convert. В считанные секунды пробразование будет завершено и конвертерможно теперь закрыть. Надо сказать, что размер виртуального *.avi будет ничтожен в сравнении с исходником, но нас этоволновать не должно, как и иероглифы конвертера…
Наш виртуальный *.avi готов и теперь, наконец-то, его можно открыть в программе Virtual Dub.Задать все необходимые настройки кодеков компрессии Вы сможете самостоятельно (не забудьте включить опцию VariableKeyframes Interval в настройках выбранного кодека для компрессии видео), остановлюсь на одном очень важном моменте – правильной подготовке картинки перед компрессией. Имеется ввиду её уменьшение и обрезание черных полос, если таковыеприсутствовали изначально. Для этого я применяю всего два фильтра программы – resize и null transform…
Нужно сказать, что выбор настроек однозначно зависит от характера нашего исходника. Если это полноэкранный фильм с прогрессивной развёрткой, то достаточно только применить фильтр resize для пропорциональногоуменьшения сторон (например, соотношения 576×432, 512×384, 448×336). Если фильм интерлейсный, то соответственно, необходимовключить фильтр deinterlace.
Если фильм имеет анаморфную картинку WideScreen и записан по методу Telecine с частотой кадров 29.97, то такой случай представляется мне самым сложным и выполнить преобразования необходимо в следующей последовательности:
Здесь я рассмотрю конкретный случай с обработкой фильма «Гладиатор» (анаморф WideScreen).
В результате жарких споров в конференциина тему изменения разрешения кратинки, можно предложить три способа преобразования, первый – математический, второй – интуитивный (более предпочтительная последовательность использования фильтров и более высокая скорость обработки),третий – самый простой и на мой взгляд оригинальный:
Способ первый
Выбрать фильтр Video=>Filters=>Add=>resize=>Configure, задать Filter mode=>Precize Bicubic и соотношение сторон – 640×360, исходя из пропорции для исходного Aspect Ratio 16:9, задавшись значением горизонтали. В нашем случае получается 640/1,777=360 пикселов.
Выбрать фильтр Video=>Filters=>Add=>null transform=>Cropping и обрезать черные полосы у сжатого кадра сверху и снизу, исходя из конечного значения для вертикали (см.таб. ниже). В нашем случае (360-272)/2=44 пиксела. Именно это значение нужно использовать в полях Y1 offset и Y2 offset и пустьВас не смущает картина, отображаемая в окошке предварительного просмотра…:)
Способ второй
Выбрать фильтр Video=>Filters=>Add=>null transform=>Cropping и обрезать черные полосы у исходного кадра сверху и снизу, оставив только саму картинку, причём значения, выбранные в полях Y1 offset иY2 offset могут не совпадать… Пока неизвестно насколько корректно будет обрабатывать получаемое значение оставшегося карда следующий применяемый фильтр resize (в нашем случае получилось 480-54-60=336 – не кратно 8-ми), но на практике он вполне справляется с подобными значениями… На мой взгляд нужно всё-таки стремиться к получаемым значениям по вертикали, кратным 8-ми.
Вот таблица рекомендуемых мною соотношений строн в кадре в зависимости от формата, причём значениегоризонтали всегда кратно 32-м:
* – спорное разрешение… вертикаль не кратна 16-ти и на некоторых видео-картах может не работатьоверлей. Кстати, для карт Matrox G400/450 значение вертикали некритично и может быть даже не целым числом…
Примечание:
В последнее время DivX-плейеры дают возможность корректировать аспект, что есть очень полезная функция! Так, всегда можнозадать правильную пропорцию кадру с несовсем правильным соотношением сторон – например, для картинки 576×320 можно задать Aspect Ratio 16:9 и все колёса сразу станут круглыми…
Как частный случай я использую данную возможность при просмотре DivX-фильмов на проекторе Panasonic PT-AE100E (через карту Matrox G400 DH). Матрица данного проектора – 16:9 и если я имею исходник 16:9 или 2,35, то задаю аспект 4:3 или 16:9, соответственно, при этом картинка идёт в правильных пропорциях на весь экран(в случае с 2,35 сверху и снизу имеются чёрные полосы)…
Способ третий
Обрезать картинку можно с помощью одного лишь фильтра resize, причём и объём конечного файла и кол-во информации в кадре и скорость кодирования абсолютно идентичны методу использования двух фильтров null transform + resize. По-ходу отпадает вопрос – а какой же фильтр использовать первым? Судя по результатам прошлых экспериментов, сначала всё же null transform…
Открываем виртуальный *.avi и сразу заходим в меню выбора фильтров – выбираем resize;
сразу задаём исходное разрешение картинки – если это NTSC, то 720×480, если PAL – 720×576;
выбираем алгоритм резайца – Precise Bicubic;
заходим в поле Cropping и обрезаем видимые чёрные полосы настолько, насколько потребуется (значения для верха и низа могут не совпадать);
закрываем окно и возвращаемся в поле Configure, где изменяем первоначальное (исходное) соотношение сторон в кадре на любое желаемое, исходя из пропорций 2,35(например, 640×272) для WideScreen или 16:9(например, 512×288);
жмём два раза Ок.
Далее, независимо от способа, которым Вы сжимали картинку, необходимо включить опцию Video=>Frame Rate=>Reconstruct from fields – adaptive (for VOB) для применения алгоритма IVTC (Inverse Telecine), написаного И.Антиповым, который наиболее корректно справится с этой задачей на сегодняшний момент.
Задаём название и расположение конечного файла, прописывая расширение *.avi через точку и запускаем процесс компрессии.
Кстати говоря, с помощью фреймсервера программы Virtual Dub можно создать виртуальный *.vdr-файл для использования его в качестве эталонного при технологии смешанного кодирования. Для того, чтобы включить фреймсервер у программы Virtual Dub, сначала нужно запустить файл auxsetup.exe и нажать кнопки Install handler=>Ok. Подробней об этом написано на странице Конвертируем AVI в MPEG-4.
Однако, если фильм был записан по методу Telecine, то воспользоваться фреймсервером для созданияэталона не удастся, поскольку алгоритм IVTC при этом работать не будет – такова структура фреймсервера. В этом случаеэталон можно сделать либо кодеком Low-Motion 6000, либо с помощью, например кодека InterIndeo.
Поскольку эталон должен полностью соответствовать сравниваемым вариантам Low-Motion и Fast-Motion по размеру картинки, то и подготавливать его нужно соответствующим образом, с применением фильтров Virtual Dub. Т.е. сначалаподготавливается один вариант фильма, например сжатый кодеком Fast-Motion с потоком 6000kBit/sec по описаной выше методике, затем создаётся вариант Low-Motion с потоком, скажем, 1500kBit/sec и в заключении создаётсяфреймсервер со всеми выбранными раннее установками для обработки картинки. Далее, в программе ProjectDivXпоочерёдно открываются имеющиеся варианты компрессии, выбирается эталонный файл (наш *.vdr-файл) и запускаетсяпроцесс сравнения вариантов…
В последнее время я применяю именно такую методику преобразования DVD-фильмов, причёмзвук я предпочитаю выводить в формате AC-3 при первом преобразовании в программе DVD2AVI и на заключительном этапе, получив файл с чередованием применяемых кодеков Low-Motion и Fast-Motion,соединяю его с видео по методике, описаной на странице DivX ;-) видео со звуком AC-3.