Как работать с программой 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
На этих картинках визуально можно посмотреть разницу между этими двумя, вроде на первый взгляд одинаковыми, клипами...
Отсюда делайте выводы, что и когда надо использовать! Все клипы, видимо, разные по структуре??? (бывают фильмы переделанные из прогрессивного в чрезстрочный или возможно был сделан "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)

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

|