Как работать с программой VirtualDub?

Семейство VirtualDub - обзорное описание
Для несложной обработки видео, типа перекодирования в AVI формат, вырезания отрывков, наложения фильтров и записи с различных видеоисточников вовсе не обязательно покупать и устанавливать дорогущий софт типа Adobe Premier или Ulead Media Studio. Здесь вам поможет прекрасная бесплатная программа VirtualDub для Win32.

VirtualDub - это программа для захвата и обработки цифрового видео. Вот её основные преимущества:

Лучший и быстрый захват видео.VirtualDub, как и Nandub содержит встроенную функцию видео захвата.

Баръер файлов в 2 Гб.

VirtualDub может захватывать и обрабатывать файлы превышающие известный 2-х гигабайтный предел, и работать с видео посегментно, то есть он может захватывать аналоговое видео без остановки и автоматически последовательно пронумеровывать файлы, превышающие 2-гигабайта (ограничение для Win95,98,Me). VirtualDub так же свободно читает файлы посегментно захваченные программой видеозахвата AVI_IO

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

Поддержка кодеков.
Встроенная поддержка кодеков Motion-JPEG, MPEG-1 видео и MP3 аудио.Вы можете менять и удалять файлы черезстрочного видео совершенно свободно, вне зависимости от того, какой MJPEG декодер вы используете.VirtualDub может преобразовывать MPEG-1 в AVI, включая звуковую дорожку. Поддерживаются внешние кодеки, проинсталлированные в вашей оперативной системе, такие как DivX, mpeg4, wma и т.д.
Примечание: VirtualDub не поддерживает напрямую форматы видео - mpeg2 и type-1 DV.

Применение фильтров.
Большинство фильтров VirtualDub могут работать в реальном времени. Это означает, что вы можете вставлять видео фильтры и тут же видеть результаты их применения в правом окне VirtualDub без какого либо кодирования. Все внешние фильтры для VirtualDub можно скачать с интернета и поместить в папку "Plugins" (естественно в разархивированном виде), которая находится в вашей папке с VirtualDub. Таким образом VirtualDub сам обнаружит установленные фильтры и загрузит их, остаётся дело за выбором фильтра...

Применение Direct Stream copy |AMP|amp; Frameserver.
В VirtualDub есть две отличные функции, которые как правило отсутствуют у многих видео редакторов:

1) Direct Stream copy - прямое копирование (без перекодирования), как аудио, так и видео потоков, что позволяет обрезать в видеофайле ненужные сцены и сохранить уже обрезанную заготовку в исходном формате не теряя при этом качества видео. Требуется дополнительное свободное место на жёстком диске.

2) Frameserver - экономичная функция передачи видеокадров напрямую в какой-нибудь encoder, типа CinemaCraft или TMPEG. Совершенно не требует нескольких гигабайт свободного места на диске.
--- передача напрямую кадров без какой либо обработки.
--- передача напрямую обработанных кадров с применением фильтров VirtualDub в некомпрессированном формате RGB (экономия свободного места на жёстком диске).

Отложенная обработка.
Встроенная система управления заданиями позволяет создавать пакеты заданий для отложенной обработки видео. Вы можете построить огромный список задач и запустить его для выполнения на ночь или когда уйдёте на работу. Программа сама будет следить за временем запуска-окончания. Вы всегда сможете переупорядочить список задач, даже когда они уже выполняются.

Бесплатное открытое программное обеспечение.
VirtualDub - является бесплатно распространяемым, программным обеспечением, с доступным полным исходным кодом. Вы можете изучать исходный код и использовать его части в ваших GNU GPL программах!

Я прошу прощения за допущенные, может быть где-то, ошибки, как орфографические, так и технические...

Этим материалом я не собираюсь никого учить, поучать или наставлять (я просто делюсь опытом) - вы используете этот материал на своё усмотрение.

В начале запустим "AuxSetup"

Проинсталируем "install handler" и нажмём "Run VirtualDub" для запуска программы или же запустите сразу, после вышеописанной инсталляции, файл VirtualDub.exe из папки c программой.

Простота работы с VirtualDub помогает любому, даже не понимающему в дигитальном видео человеку, обрабатывать, вырезать и захватывать в цифру видео изображение. Здесь мы научимся обрабатывать готовый видео файл, переконвертировать его в другой AVI формат видео с аудио или без него...

Для начала откроем видео файл, указав директорию его нахождения (сегментированно захваченные файлы сами загрузятся автоматически до 99 файлов подряд; имеются ввиду файлы захваченные программами AVI_IO или VirtualDub)

Можете после открытия файла добавить ещё AVI файл, но имейте ввиду, что он должен быть c теми же параметрами, что и предыдущий файл: формат, размер изображения и "data rate"

Обрежем "ненужные" кадры (фреймы), для этого внизу отмечена клавиша начала "ненужных" кадров, нажмём её:

затем передвинем бегунок (рендер,слайдер - кому какое название нравится) и отметим конец "ненужных" кадров нажатием следующей кнопки (клавишами курсора ´ и ´ можно подрегулировать покадровую точность):

И, наконец, нажимаем на клавиатуре клавишу "DEL" и все выделенные фреймы удаляются... Или же, если это сегментированно загруженные файлы, сразу нажмите "Save as AVI..." и ваш, выделенный синим, кусок видео начнет копироваться (при отмеченных в VIDEO/AUDIO - direct stream copy) или кодироваться. Потренеруйтесь перед сохранением файла, а то потом будет поздно чесаться ;))

Теперь начнём настройку нужного аудио формата.

Настроим внизу нужную частоту дискретизации, каналы, битность или оставим по умолчанию

"interleaving" - совмещение аудио с видео - отметим для каждого фрейма

Теперь настроим аудио компрессию:

В нашем случае выбираем аудио кодек DivX Audio (этот аудиокодек устанавливается вместе с видеокодеком DivX 3.11_alfa. После инсталляции видеокодека надо запустить файл "Run me first!!!" для инсталляции самого аудиокодека), отмеченный ниже на рисунке, и выберем поток - 64 кб/с стерео for DivX - самый по моему оптимальный аудио кодер и почти не имеющий расхождения видео с аудио (а это большая проблема - ведь вы, уверен, не хотите сначала просмотреть изображение, а только через несколько секунд услышать звук, что не есть хорошо, как понятно ;) )

Одним словом - это формат WMA (windows media audio) - недалеко ушедший от формата mp3, даже мне кажется WMA почище будет

Этот же кодек сидит в установках Windows Media Audio V2 64kbps, 44kHz stereo 8Kb/s

Хотя вы можете варьировать кодеками, как захотите - можете перекомпрессировать звук в mp3 (при двухпроходной компрессии в mp3 лично у меня в VirtualDub выскакивает сообщение об ошибке в программе, да и сам создатель программы VirtualDub намекает, что со звуком сжатым в mp3 - возможна рассинхронизация аудио и видео).

...или вообще оставьте PCM - не компрессированный звук (кому как нравится).

Или же, можете вытащить звук из видео файла в некомпрессированном формате PCM (wav) и обработать его в аудио редакторе в нужный вам формат...

Оставим метку на "AVI audio", так как здесь мы будем обрабатывать звук, оригинального AVI, замешанного вместе с видео.

Отметим "полный режим обработки", потому что только с этим параметром звук перекодируется, а если вдруг вы решите не изменять формат исходного аудио, то в этом случае надо отметить "direct stream copy" - "прямая копия потока"

А ещё можно немного поднять регулятор громкости звука, если вдруг на оригинале - тихий звук (работает только при "Full processing mode")

Поставьте галочку и передвиньте регулятор громкости на нужный вам процент:

Перейдём к видео настройкам

Сначала о фильтрах

Нажмём "add" - "добавить" и все внутренние фильтры загрузятся. Чтобы добавить и внешние фильтры вы должны их скачать с интернета и распаковать в папку "Plugins", находящуюся в вашей папке с VirtualDub, тогда и внешние фильтры будут загружаться автоматически при нажатии на "add".

После открытия вы увидите определённое количество фильтров, которые используются для редактирования...

Я выберу только фильтры, нужные для перегона AVI (захваченного моей Мирой) в DivX формат.

...и первый фильтр - это внешний фильтр "smart deinterlace" - он хорошо справляется с коррекцией смещения при быстром движении.
...и работайте с версией 2.4 (лично мое мнение - я заметил, что от версий 2.6 и 2.7 появляются артефакты).

Обязательные настройки для коррекции смещения "Field-only differencing" и "Phase shift" (я отметил справа "Field swap before phase shift", потому что моя Mira делает захват с нечётным расположением полей, если у вас карта захвата с чётным расположением полей, то вы будете должны поставить галочку на "Field swap after phase shift"):

Или, можно воспользоваться уже внутренним фильтром - "deinterlace" - этот фильтр хорош тем, что убирает при больших разрешениях (768х576, 720х576, 640х480) видимую на мониторе "расчёску" - которая остаётся после захвата двух полей, но этот фильтр c функцией "blend" замыливает изображение

Отметим одну из трёх указанных функций (на ваш вкус) и ОК (я отмечал дублировать поле первое или второе - выходит получше, чем голый "blend")

Здесь можете посмотреть моё сравнение с применением "deinterlacing mode".

Многие считают, что применение внешнего фильтра "smart deinterlace" - лучшее решение...

Я провёл эксперимент: взял 2 клипа (в одном клипе "smart deinterlace" - удачен, а во втором - нет). Во внутреннем "deinterlace" применялась функция "Blend" (к сведению). Оба клипа были захвачены в одно и то же время друг за другом, с одинаковой полной резолюцией (768x576) и с одинаковым data rate=7 Мб/c

На этих картинках визуально можно посмотреть разницу между этими двумя, вроде на первый взгляд одинаковыми, клипами...

Клип №1 Клип №2

Отсюда делайте выводы, что и когда надо использовать! Все клипы, видимо, разные по структуре??? (бывают фильмы переделанные из прогрессивного в чрезстрочный или возможно был сделан "telecine" - метод преобразования частоты кадров из 24fps в 30fps).

Я перед кодированием делаю визуальную проверку в правом окне VirtualDub (окно выходного видео), чтобы просмотреть какой "deinterlace" фильтр лучше применить для текущего клипа.

Пойдём дальше и добавим ещё фильтр "re-size" - уменьшение или увеличение изображения

Настроим нужный размер и отметим "Precise bicubic", нажмите "просмотр" (обрабатываемый файл должен быть загружен в VirtualDub) и просмотрите, что должно получиться ...

Я, лично, уменьшаю резолюцию с 768х576 до 640х480 (лучшее качество)

Ну а если вы решите в 2 раза уменьшить размер изображения, укажу на следующий фильтр:

Отметим "2:1 reduction (high quality)" - этот фильтр уменьшит разрешение видеофайла в 2 раза, но оставит хорошее качество (рекомендуется для слабых компьютеров)

Внимание! Этот фильтр я использую, чтобы уменьшить захваченное видео с резолюцией 768х576 до резолюции 384х288. Будьте осторожны если ваше видеоизображение другого размера (p.s.)

Если вы хотите увеличить резкость вашего видео клипа добавьте внутренний фильтр "sharpen", как показано здесь:

и сдвинем ползунок до ... я сдвигаю до 32, а вы как решите...

Следующая строка "frame rate" - изменение скорости передачи кадров

Я отмечаю - как взаимосвязь аудио с видео, чтобы не было рассинхронизации аудио с видео. Очень полезная функция!

P.S. Не рассматриваемая здесь функция - "inverse telecine" - метод преобразования частоты кадров из 24 в 30 кадров/сек (частота кадров в американской системе NTSC=30 кадров/сек) смысл этого, что к каждым четырём кадрам добавляется пятый кадр. Делается это делением кадров на черезстрочные поля и использованием двух полей из двух кадров четвёрки дважды.

Добрались, наконец, до видео компрессии:

В нашем случае выберем DivX Codec здесь рассматривается 4.12 (это может быть любой номер 4-ого кодека заранее скачанный на http://www.divx.com/ и проинсталлированный в вашей системе) и нажмём "configure", для более точных настроек.

Теперь объясню по указателям:
"Variable bitrate mode" - одна из самых важнейших настроек; в ней устанавливается режим, способом которого вы будете компрессировать свой видеофайл.

Режимы:
в 1 проход: 1-pass (с тонкими настройками, о которых я расскажу ниже) и 1-pass quality-based (с единственной настройкой "encoding quality", измеряемой в процентах)
в 2 прохода: 2-pass - наилучший способ (где первый проход - сбор информации о степени движения, а во втором проходе мы уже получим готовый файл)

Двух проходность мы и рассмотрим:

"Performance/Quality" - скорость обработки, чем ниже скорость, тем качественнее обрабатывается видео ("slowest" - самая медленная обработка, а "fastest" - самая быстрая).
Настроим один из основных параметров "output video bistream" видеопотока, чем он меньше, тем меньше по "весу" выходящий файл , но и качество сильно падает ... Я выставляю в первом проходе=1000 Кб/с, а во втором проходе оставляю те же цифры, что и в первом проходе.
Можете выставить ключевые кадры (Maximum keyframe interval)=9999 - эта конфигурация включена внутри кодека и называется VKI (variable keyframes interval), она автоматически расставляет ключевые кадры, где считает нужным, но я оставляю=каждые 50 кадров...
Ключевые кадры - это основные кадры - они содержат в себе максимальную информацию о кадре оригинального видео и имеют... ;(( ...больший "вес".
При KF=9999 - вставляются, иногда в больших объёмах, в местах изменения сцен или в местах с быстрым движением, а иногда, когда нет изменения сцен и практически нет движения, не вставляются совсем .
Помимо KF в видеоинформации присутствуют deltaframes (DF) - вставляются между ключевыми кадрами и содержат в себе не весь кадр фильма, а только разницу между предыдущим ключевым кадром и кадром, на который выпадает этот дельта-кадр, DF по размеру намного меньше, чем KF ..
Поэтому, чем больше ключевых кадров, тем :

1) выше качество видео.

2) лучше аудио/видео совмещение (interleaving).

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

4) но, естественно, и увеличится объём будущего видеофайла.

И в связи с этим я отказался от VKI (9999) и выставляю теперь "Maximum keyframe interval"=50 frames.
"Deinterlace" - можете поставить галочку, если не задействуете внутренний фильтр "Deinterlace" программы VirtualDub - я не отмечаю эту функцию, так как пользуюсь внутренним фильтром VirtualDub
"Decoding parameters" - уровень "postprocessing" я сдвигаю вправо до конца (рекомендовано изготовителями DivX для Pentium3 и выше).

При уровне=0 - ни один фильтр не работает

При уровне=1 и 2 сработает фильтр "Deblocking" - помогает уменьшить плотность артефактов (квадратиков):

1 уровень - по горизонтали

2 уровень - по вертикали и по горизонтали

При уровне 5 и 6 фильтрация светового и цветового шумов, однако размывает изображение - используется в большинстве случаев для мультипликации (работает минимум с Pentium-3)

1 pass encoding parameters
Эти параметры настраиваются для двух проходов сразу (будьте внимательны !!!) - изменить настройки для второго прохода вы уже не сможете - они закроются ...

"MAX and MIN Quantizers"
Квантизаторы - одни из наиболее важных параметров в видео кодировании (то же самое , что и DRF в NanDub)

Квантизаторы изменяются от 2 (лучшее качество, но больший размер файла) до 31 (худшее качество,но размер файла меньше). Я устанавливаю min=2 и max=2 (лучшее качество)

"Rate Control" - или сокращённо "RC"

"RC averaging period" - измеряется в кадрах.- Большее значение обычно приводит к более точной передачи данных. Но это значение также не должно превышать общее количество кадров вашего видеофайла.

Короче, если в вашем видеофайле 10 000 кадров, то ставьте это значение в этих пределах, но не более, чем ваши 10 000 кадров

"Rate Control reaction period" - восприятие RC свежих сцен. Большее значение обычно приводит к улучшению качества в быстрых сценах движения и к ухудшению качества в медленных сценах движения. Измеряется в кадрах . Я оставляю=20 кадрам

"Rate Control down/up reaction" - коэффициент управления реакцией на быстрые и медленные сцены движения. Большее значение обычно приводит к улучшению качества в быстрых сценах движения, но, вместе с этим, увеличивается и видео поток...

Все эти параметры взаимосвязаны, результат их настроек приблизителен и зачастую зависит от настройки других параметров. Я оставляю=10

Quality-based encoding parameters

Этот параметр настраивается только если вы не используете двухпроходный метод компрессии, а используете однопроходный режим "1-pass quality-based mode" - измеряется в % . Мы его не будем рассматривать, но от себя добавлю, что качество с этим режимом кодировки при 100% получается отменное, только размер файла выходит огромный...

2-pass encoding parameters

Эта функция для "2-pass variable bitrate mode"

"Frame dropping" - Этот параметр работает только в "2 - pass variable bitrate mode".
Он разрешает кодеру, пропустить кадры, когда они не содержат достаточно существенной информации. Полезно, когда хочется уменьшить битрейт, но сохранить визуальное качество.
В этом случае, кодер пропустит большее количество кадров в сценах с низким движением или никаким движением вообще, и сохранит их в сценах с быстрым движением.
Настройка по умолчанию=0 и я работаю только с ней.

Когда вы всё настроили остаётся указать "log file" для сбора информации о движении в фильме - нажмите "select":

Обзовём наш файл "status" и сохраним

После этого в окне настроек изменится "log file" и будет:

Отметим "Full processing mode"-"полный режим обработки", потому что только с этим параметром видео начинает перекодироваться, а если вдруг вы хотите не изменять видеоформат, то в этом случае надо отметить"Direct stream copy" - "прямая копия потока"

Следующий шаг - начало кодирования:

ВАЖНО! Нужные вам видео фильтры должны быть загружены и настроены уже в первом проходе, во втором проходе мы их не изменяем.

Сохраним в первом проходе, что уже настроили выше, в файле "1-pass" - это ещё не готовый видео файл, а только его информация, которую мы потом выбросим в корзину.

Начался сбор информации:

Видно, что проектируемый размер файла всего 2,7Мб, а datarate=1Кб/с - понятно, что нормального видео файла с таким потоком видео быть не может ;)

Время на сбор информации уйдёт ровно столько же, сколько потом уйдёт на второй проход. Вывод: готовый файл я получу примерно только через 1 час и 10 минут, если только успею вовремя перевести на второй проход ;))

По окончании первого прохода почти ничего в конфигурации кодека не меняем, кроме как изменим в настройках кодека "2-pass, first pass" на "2-pass, second pass" > и "output video bistream" установим на нужный битрейт, я лично получаю хорошее качество при битрейте=1000 КБит/сек (то есть я не изменяю его после первого кодирования).

Хорошее качество варьируется начиная от 1000 до 2000 КБит/сек, хотя вы можете ставить значение какое захотите (чем меньшее значение вы установите, тем меньше будет выходной файл, но и качество картинки пострадает)

Не трогайте "log file" - даже не думайте его поменять!!!

Теперь осталось сохранить готовый файл

Это можно сделать двумя способами:

способ -1 (так же как сохранялся и первый проход)

способ - 2 (нарезать будущий файл, например, по 650 Мб)

Нарезка делается так: отмечается определённое кол-во Мб (я отметил пространство CD-диска=650 Мб) и VirtualDub автоматически сохранит и пронумерует файлы по 650 Мб

Итак, я назвал свой будущий файл "2 pass", можете назвать как захотите - это уже будет готовый видео файл ... и клик "сохранить"

Начался процесс обработки (приоритет я выставляю NORMAL)

А здесь изображён кодирующийся видео поток - красные вертикальные линии - это ваши ключевые кадры (KF), а синие вертикальные линии - это дельта-кадры (DF)

А это то, что получилось в итоге :)

 


2008 © Computer repair