на первую | программы | форум | статьи | галерея



Вернуться в раздел «Статьи и обзоры»
Распечатать

Конвертирование видео в формат SmartMovie (.avi) с помощью VirtualDub

Материал подготовили и детально разобрались со SmartMovie:
Алексей Глушаченков (aka [HC]HUNTER), Евгений Стрельченок (aka Mortal)

Итак, сегодня мы поговорим о конвертировании видео с помощью VirtualDub в формат AVI для просмотра в программе SmartMovie Player. Многие возразят: «Зачем? Ведь есть программа SmartMovie converter из самого комплекта SmartMovie», и будут отчасти правы. Для простейшего и быстрого кодирования видео SMC подходит лучше всего. Но VirtualDub обладает гораздо большими возможностями, и просто не заменим в случае, когда над изображением и звуком приходится делать даже самые примитивные преобразования.

Все описанное ниже подходит для смартфонов и коммуникаторов NOKIA 9500/9300/3650/3660/N-Gage/6600 и SonyEricsson P800/900 с то лишь разницей, что у них разная геометрия дисплеев, и Вам придется выставлять разную геометрию конечной картинки (конкретно под свой аппарат).

Предварительно убедимся, что у нас в системе уже установлены видеокодеки DivX (желательно последний – v5.1.1) и XviD.

Для начала запустим сам VirtualDub и откроем в нем нужный видеофайл (меню «File\Open video file…»). Окно программы будет выглядеть примерно так:

 Теперь поехали всё настраивать…

Для начала необходимо настроить кодирование видеоизображения (это пункт меню «Video»). С начала выбираем пункт меню «Video\Filters». Здесь можно добавить из библиотеки фильтры для обработки изображения, нажав на кнопку «Add». Нам необходимо добавить фильтр «Resize» (изменение геометрических размеров). Обратите внимание, что фильтров превеликое множество: можно накладывать титры, поворачивать картинку, менять яркость и контрастность, и вообще делать просто чудеса!

После добавления указанного фильтра, у нас станут доступны оба пункта меню внизу справа «Cropping» и «Configure». «Cropping» используется для подрезки изображения, например, если требуется убрать черные поля сверху и снизу. Поскольку нам обрезать ничего не нужно, то нас интересует настройка фильтра («Configure»). В открывшемся окне прописываем нужную геометрию картинки. Как ее высчитать? Очень просто. Поскольку размер по горизонтали – константа (для SE P800/900 = 320точек), то очень просто высчитать высоту по формуле:

320 / (исходная ширина / исходная высота )

В качестве метода изменения размера лучше выбрать алгоритм «Lanczos3», т.к. после него картинка приобретает большую четкость, что несколько лучше для мобильника. Но можно также использовать и «Precision Bicubic».

Вот как выглядит данный пункт с окном настройки фильтра:

Далее нужно настроить выходную частоту кадров (пункт «Video\Frame rate»):

Выходная частота нам нужна 12.25 кадров/с (половина от оригинальной). Поэтому конфигурируем это окно, как показано на рисунке.

Теперь дело дошло до настройки кодеков. Это пункт «Video\Compression…».

Для начала хотелось бы подробнее остановиться на самих кодеках. Кодировать мы будет либо с помощью DivX, либо XviD. Но какой лучше? В целом это одного поля ягоды и отличия у них минимальные.

Рассмотрим достоинства/недостатки кодеков по пунктам (преимущества отмечены «+», недостатки «-»):

DivX:

+ изображение мягче (и иногда даже более гладкое!)

+ местами лучше цветопередача

- очень редко, но все же получаются артефакты в виде цветных полос и смазанностей углов изображения… Впрочем, этим DivX очень «славится»… Это отрицательный момент, и файлы сконверченные кодеком DivX обязательно подлежат перепроверке перед публикацией их для других пользователей. И это его свойство проявляется не только в нашем случае, DivX так себя ведет и с настоящими видеофильмами и клипами.

- сам DivX слегка завышает выставляемый бит-рэйт. Если было выставлено 140 кБит/с, то в итоге в конечном файле будет 141-143 кБит/с.

+ очень часто еще более точная синхронизация звука (расхождение не более ± 0,05 сек).

- большой недостаток – слегка «рвет» панорамные сцены, не успевая обрабатывать поток. Кроме этого вы, хоть и достаточно редко, но сможете натолкнуться на небольшие «подтормаживания».

+ также большое преимущество DivX’а в скорости кодирования. DivX v5.1.1 кодирует быстрее XviD’а примерно на 5-10%.

XviD:

+ изображение очень четкое и качественное

+ артефактов почти никогда нет (!). Их появление – очень-очень редкий случай.

+ выходной объем чуть меньше (чем у DivX), буквально на 1-2%.

- слегка (наоборот) занижает битрэйт. Если было 140, то станет 139-140.

+ более гладко проигрывает панорамные сцены.

Каким кодеком кодировать – выбирать вам. Попробуйте и так и сяк. Определитесь. Очень может быть, что для себя вы и вовсе разницы не заметите… Хотя лично я предпочитаю использовать XviD, на таких низких потоках он в выигрыше перед DivX’ом.

В любом случае пробуйте сами. Для одних видеоматериалов может оказаться более выгодным использовать DivX, для других XviD.

Итак, если вам хочется кодировать DivX’ом, то выбираем его и настраиваем, как показано на скриншоте ниже:

Если же нужен XviD, то берем его и настраиваем:

Что касается самой величины потока, то ее изменение отразится как на качестве, так и объеме выходного файла. Чем меньше поток, тем меньше файл, но и тем хуже качество картинки. Слишком «задирая» поток (в погоне за качеством), можно получить тормоза. Так что тут важен баланс с учетом тех требований, что нужно получить в итоге. Для SonyEricsson эту величину целесообразно ставить в пределах 130…170 кБит/с. Для имеющих меньшие экраны NOKIй – 110…135 кБит/с.

Теперь переходим к настройкам звука. Для начала самое главное – настройки чередования звука. Это то самый пункт, в котором была изначально «точка преткновении». Именно тут не получалось сделать звук синхронный с изображением. ТЕпреь эта проблема решена.

Зайдите в меню «Audio\Interleaving…» и настроте всё точно так же как показано ниже:

Теперь настроим конвертирование звука. Идем в «Audio\Conversion…». Частоту и дискретность настраиваем, как показано ниже. А вот с «моно/стерео» тут смотрите сами. Например, для клипов может и имеет смысл стерео оставлять. Для фильмов – точно не имеет смысла. Поскольку кодируем длинный мультик («Ледниковый период» как вы уже догадались по картинкам), то ставим «моно».

Теперь дело за аудио-кодеком. «Audio\Compression…». Если было установлено выше «моно», то тут мы увидим один набор форматов, если «стерео», то более расширенный. В любом случае не ставьте скорость потока выше 40 кБит/с. К примеру, в нашем случае вполне достаточно выставить «24 кБит/с, 16 кГц, Моно».

Пункт меню «Audio\Volume…» потребуется в том случае, если нужно поднять громкость звука в конечном файле. Иногда это бывает просто необходимо. Отметьте галочку «Поднять громкость аудиоканалов» и бегунком укажите нужную величину подъема громкости в % :

Вот, собственно и все. Все настроено. Теперь можно начинать кодирование («File\Save as AVI…»), указав, куда сохранять результат.

Окно процесса выглядит следующим образом:

Здесь в окне VirtualDub слева отображается исходное изображение, а справа как оно будет выглядеть. Видите, оно маленькое такое – как раз под размер дисплея смартфона.

Что касается скорости кодирования, то, как видите весь «Ледниковый период» конвертируется всего-навсего за 25 минут («Total time (estimated)»). Это, конечно же, сильно зависит от мощности машины и от количества операций над изображением/звуком (например от количества добавленных фильтров). Указанное значение приведено для Pentium-4 2,6GHz (HT).

Пару слов об окне статуса процесса, которое выглядит, как показано на рисунке ниже. Здесь отражается полная информация о процессе кодирования. Самая полезная для нас информация – это прошедшее время («Time elapsed»), общее время («Total time (estimated)»), а также предполагаемый размер выходного файла («Projected file size») – помечен красным кружком. Это очень важный параметр, в случае, если необходимо фильм «впихнуть» на карту 128Мб. В таком случае следите, чтобы это число не превышало там значения 118…121 Мб. Значение это все время меняется в окне, т.к. программа пытается подрасчитать («прикинуть») конечный размер, но меняется оно очень незначительно. Примерно через первые 15-20 минут кодирования это значение «устаканивается», и уже можно достоверно судить о конечном размере. Таким образом, вы можете не терять зря время на попытки подогнать конечный файл под требуемый объем, а уже в самом начале процесса прогнозировать результат и в случае чего прервать процесс и что-то изменит в настройках.

Вернуться в раздел «Статьи и обзоры»
Распечатать


 

 © 2005-2011 Алексей Мартынов / Об авторских правах