Virtual Dub. Предварительный обзор.

Virtual Dub (VD) - довольно мощный инструмент, и статья по всем его возможностям, да еще с учетом различных вскрытых вариантов, будет писаться довольно долго, поэтому пока что я могу предложить небольшой общий обзор и обзоры на те темы, которые вызывают споры и вопросы на разных форумах.

Что умеет Virtual Dub?

Dubbing (Audio Dubbing) в видеотехнике означает подкладывание аудио потока под видеоряд. Как следует из названия программы, она предназначена для слития аудио и видео потоков воедино c возможностью простого редактирования - вырезания-обрезания видеопотока. Но интересы автора пошли дальше простого даббинга, он включил в программу возможность перекодирования, капчинг (захват) видео-аудио, использование фильтров для видеопотока, изменение фрэймрэйта и другие фичи. Программа довольно сложная и интересная. Ее недостатком для кодеров с DVD дисков является невозможность открыть VOB прямо из нее. Но этот недостаток можно обойти использованием фрэймсерва.

Использование VD для кодирования в DivX.

Существует несколько вариантов одной и той же версии программы (1.4с), эти варианты узкоспециализированы и предназначены только для своих целей. Основной вариант VD работает с видеофайлами AVI, MPEG-1, есть вскрытый вариант программы для работы с ASF. Аудио понимает только в виде WAV, причем для VBR MP3 WAV нужен свой вскрытый вариант.

Минусом вскрытых версий является их большое количество. Для работы порой может понадобится несколько версий VD. Для АС3 - одна, для ASF - другая, для VBR MP3 - третья, для VKI - четвертая и т.д. Автору стоило бы давно уже объединить все эти версии под одной крышей.

Есть возможность выбрать фрагмент фильма для работы с ним, применить фильтры к фильму или фрагменту - обрезание кадра, шторки, изменение размера кадра, деинтерлейс, iVTC, и пр. Можно выбрать нужный видео и аудио кодек.

До сих пор все основные (mp3, wma) аудио кодеки в VD глючили - рвется звук. Так что рекомендую использовать другие программы для сжатия аудио, с последующим совмещением его с видео в VD.

Для кодирования фильма в DivX нам нужен AVI файл, т.к. VD не умеет открывать VOB, но это можно обойти применением фрэймсерва, например VFAPI для DVD2AVI или AVIsynth для FlasKMPEG. Как создать фрэймсервный AVI файл рассказывалось в предыдущих статьях. Есть возможность у VD создавать и свой фрэймсервный файл, правда для его использования вам придется держать VD открытым, т.к. он является исключительно он-лайновым фрэймсервером - он создает нужный поток только "на лету".

Скажем мы хотим применить Project DivX для создания фильма с переменным битрэйтом через полный процесс с использованием Virtual Dub. Сливаем с декодированием VOB на винт, открываем его (их) в DVD2AVI, выбираем нужный фрагмент, создаем проект d2v, конвертируем его через VFAPI во фрэймсервный AVI файл, открываем этот короткий AVI в VirtualDub, накладываем нужные фильтры, создаем фрэймсервер и используем проект как оригинальный фильм в Project.

Плюсы.
Максимальное приближение к оригиналу. Оптимальное использование места на винте.
У нас есть ни разу не сжатый, а значит наиболее близкий к DVD-оригиналу, фильм для использования его в Project как оригинального. Весь процесс пойдет параллельно - наложение фильтров VD прямо на оригинальные кадры из VOB и кодирование сразу на два варианта потоков - LM и FM. Значит экономится место на винте от промежуточно-пожатого в VD варианта (LM-FM варианты Project все равно будут записаны на винт). Параллельный процесс займет немного меньше времени, чем последовательный (сначала наложение фильтров и сжатие с максимальным битрэйтом = "МБ", а затем уже использование такого фильма в качестве оригинального), за счет максимального использования возможностей процессора и отсутствие промежуточного кодирования.

Минусы.
Тяжесть процесса. Спорность ускорения процесса.
Во время параллельной работы всех этих программ (VD + PD) машину практически невозможно эксплуатировать - одновременное вытягивание кадров из VOB через фрэймсерв VFAPI плюс наложение фильтров плюс кодирование сжирает почти все ресурсы и тормозит машину довольно сильно. Ее придется оставить и уйти гулять. Причем надолго. Соответственно время кодирования увеличивается по сравнению с кодированием без фрэймсервера (просто из AVI с МБ), и при нестабильных (разогнанных) машинах теоретически больше вероятность прерывания процесса из-за глюков (проц греется в этом случае гораздо сильнее). Кроме того, процесс наложения фильтров Дубом пройдет два раза - первый раз при сжатии на два разных потока, второй раз - при сравнении разножатых AVI с оригиналом, что явно не ускорит времени создания VBR-фильма. При кодировании уже готового МБ-фильма без применения VD фрэймсерва этого не происходит - фильтры уже наложены, так что не факт, что применение Дубового фрэймсерва ускоряет процесс, это нуждается в дополнительной проверке (зависимость скорости процесса от количества фильтров).

Повторение тяжелого процесса при корректировке битрэйта.
Также если вас не удовлетворит качество одного или обоих потоков (LM FM) или качество фильтров, и вы захотите попробовать их на других установках (скажем попробовать повысить битрэйт или уменьшить sharpness), вам придется ожидать всех этих тормозов снова, чего не пришлось бы делать, если бы вы создали сразу в VD фильм на максимальном битрэйте с применением нужных фильтров. МБ (6000-100-1) практически не портит фильм, по крайней мере последующее сжатие на 1200-1800 пройдет по тем же местам и я думаю вы не заметите отличий фильма, сжатого повторно после максимального битрэйта и фильма, сжатого из оригинального через два фрэймсерва.

Глюки и недостатки.
Если машина у вас абсолютно стабильна и времени вам не жалко, а в результатах вы уверены, то пара замечаний.

Первое - не забудьте поставить библиотеки фрэймсервера VD. Они не установлены изначально и ставить их придется отдельно - надо запустить программу AuxSetup из папки VD и выбрать там "Install handler".

Второе - VD почему-то не добавляет расширение к своему проекту. Вручную добавьте к имени файла ".vdr".

Третье - при попытке открыть клиентом фрэймсерверный проект VD вы его можете не найти в клиентских программах (скажем Project DivX), т.к. они предлагают открыть файлы с расширением .avi, а у проекта VD расширение .vdr. После открытия диалога Open клиентской программы нужно выбрать в Типе файлов "All files", после этого выбрать свой проект.

И не забывайте, что VD должен быть открыт для работы с его проектом.

Хитрые возможности.

Если у вас возникает проблема сдвига аудиопотока относительно видео (аудиоряд отстает или опережает видео), ее можно решить в разделе "interleave". Короткая клавиша - Ctrl-I. Audio skew correction задает сдвиг аудиоптока относительно видео в миллисекундах. Задержка аудиопотока может быть как положительной (delay = задержка), так и отрицательной (если аудио отстает от видео).

Если вам не помогает сдвиг аудиоряда - вы задаете задержку, аудио в начале фильма синхронизируется, но потом опять убегает впред, значит вы имеете дело не (или не только) со сдвигом аудио, но и с несовпадением длины аудио и видео рядов. Тогда ваш шанс - в изменении фрэймрэйта с подгонкой потоков. Ctrl-R. Change so video and audio duration match. Если вы отмечаете этот пункт и в окошечке чуть выше встает цифра, отличающаяся от значения в первой строке (current:), то вы были правы и действительно в вашем фильме присутствует разница во времени воспроизведения между аудио и видеоптоками. Теперь надо выставить в меню Video/Direct stream copy и Audio/Direct stream copy и снова записать фильм - File/Save AVI. Этот процесс не займет слишком много времени, так как не производится никакой перекодировки, а фильм просто копируется из файла в файл, возможно с изменением интерливинга (если вы его задавали).


(c) 03/2001, Сибирский Лихоман http://mydivx.lihoman.ru
Следующая статья раздела
Возврат на список статей