Захват видео.

VirtualDub запущен, переходим в режим захвата видео.

По умолчанию файл в который будет производиться захват расположен на диске C: и называется Capture.avi, при необходимости это можно изменить.

Выбираем источник видео сигнала.

Я выбираю "Видеотюнер", тут же можно настроить яркость/контрастность/насыщенность/... , для этого необходимо выбрать закладку "параметры устройства". Если у вас эти параметры не доступны для регулировок - в этом виноват WDM драйвер, попробуйте поставить другой (я предпочитаю драйвер от Eduardo Jose Tagle).

Выбираем формат, в который будем производить захват.

При захвате под Windows2000/XP, используя WDM драйвер - максимальное разрешение, с которым можно захватить видео программой написанной под VideoForWindows (а VirtualDub именно такой и является), равно 352x288. Правда есть небольшое исключение, о котором я узнал совсем недавно : если использовать WDM драйвер от Eduardo Jose Tagle, то даже VideoForWindows программами можно захватить видео с разрешением вплоть до 720x576. Как такое возможно - не знаю, но факт остается фактом. :-)
И так выбираем разрешением и глубину цвета. Глубину цвета, как уже говорилось, лучше выбирать YUY2.

Выбираем формат звука и количество кадров в секунду.

Чаще всего следует выбирать следующим образом, см. ниже.

По умолчанию, звук записывается без сжатия. На всякий случай можно зайти и убедиться, что все так и есть.

Должно быть выбрано "PCM", убедитесь, что все в порядке. Выбирать какой-то кодек для звука настоятельно не рекомендую, поскольку в этом случае звук обязательно разойдется с видео потоком.

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

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

И ставим пометку, против "Lock video stream to audio".

При желании можно подрезать неровные края. Для этого необходимо поставить галочку против "Enable" и зайти в "Set bounds ...", что бы выставить размеры обрезаемых полей.

Выставляя поля можно сразу видеть результат - это очень удобно.

Если позволяет производительность компьютера и есть желание можно наложить фильтры.

Теперь все готово и можно переходить непосредственно к захвату видео :
Кнопка F6 - начать захват.
Esc - прервать захват.
В ходе захвата можно видеть всю необходимую статистику.

[Вернуться] [Далее]


Обработка видео : варианты сохранения AVI.
При сохранении AVI файла необходимо определиться, что вы хотите получить в итоге, и в соответствии с этим сделать некоторые настройки. Возможно сохранение следующим образом :
  • Переработка, сжатие, аудио и видео потоков.
  • Переработка, сжатие, только видео потока - звук остается неизменным.
  • Переработка, сжатие, только аудио потока - видео остается неизменным.

Выставляем настройки для видео потока.
Если требуется сжать заново видео поток, возможно более компактным кодеком. Или обработать поток фильтрами, а затем так же его сжать - необходимо выбирать "Full processing mode".

Для звука все аналогично.
Выбрав "Full processing mode", убедитесь что, верно, выставлен и настроен аудио кодек.

Когда все настроено - сохраняем AVI.

Еще несколько моментов.

Можно сохранить видео совсем без звука. Для этого, соответственно, необходимо выбрать :

Можно и на оборот, сохранить только звук (в WAV файл). Это может понадобиться, например, для обработки его в более продвинутом аудио редакторе. Мне приходилось вытаскивать, таким образом, звук, что бы обработает его фильтрами в CoolEdit.
Для этого, не требуется делать каких то специфических настроек. Просто открываем AVI файл в VirtualDub и сразу :

Что бы присоединить звук обратно к видео, делаем так : AVI файл должен быть уже открыт в VirtualDub, выбираем файл со звуком :

Теперь, если неободимо, просто сохранить все как есть, без всякой обработки - выбираем для видео и аудио потоков "Direct stream copy" и сохраняем AVI.

[Вернуться] [В начало] [Далее]


Обработка видео : вырезание ненужных фрагментов.

Допустим вы захватили с эфира какой-нибудь фильм, и пока этот фильм шел раз десять вставляли различную рекламу, теперь требуется вырезать эту рекламу. Делается это очень просто.

Открываем файл в VirtualDub.

Находим кадр с которго начинается реклама. Искать саму рекламу быстрее и удобнее всего, претаскиванием бегунка, мышиным курсором.

Реклама найдена, теперь необходимо остановиться на кадре, с которого она начинается. Для этого удобно пользоваться клавишами со стрелками на клавиатуре "<" и ">" - преход на предыдущий/следующий кадр. Тоже самое можно делать, нажимая кнопки на экране.

И так кадр с которого начинается реклама найден, нажимаем на клавиатуре кнопку "Home", таким образом мы пометили начало удаляемого фрагмента. Тем же образом ищем конец рекламы, находим последний кадр рекламы - нажимаем "End". Фрагмент выделен, что бы его удалить нажимаем "Delete". Все, фрагмент удален !
Тоже самое можно делать нажимая кнопки на экране.

Что бы изменения вступили в силу необходимо сохранить AVI файл. Различные способы сохранения мы рассмотрим дальше.

[Вернуться] [В начало] [Далее]


Обработка видео : обработка изображения фильтрами.

Обработка видео фильтрами может производиться непосредственно при захвате, но большинство фильтров, очень требовательны к ресурсам и по этому мало пригодны для обработки в реальном времени. По этому чаще всего фильтрами приходится обрабатывать уже захваченное видео. Именно этот случай мы и рассмотрим подробно.

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

В открывшемся окне сначала ничего нет, для добавления фильтра, нажимаем кнопку "Add ...".

Изначально программа VirtualDub уже содержит в себе некоторое количество фильтров, они встроены и в списке значатся как "Internal". Но встроенных фильтров часто бывает недостаточно. Так, например для того, что бы убрать "гребенку" лучше пользоваться внешним фильтром. Внешние фильтры скачиваются из интернета дополнительно.
Непосредственно сам фильтр (внешний) представляет собой файл с расширением .vdf , что бы подключить такой фильтр к VirtualDub необходимо просто поместить его в каталог : "каталог_где_установлен_VirtualDub\Plugins".

Выбрав один из фильтров, нажимаем "ОК".

Таким образом, мы выбираем необходимое количество фильтров, обязательно производим их настройку. Настроить фильтр можно, нажав кнопку "Configure ...".
В каком порядке расположены фильтры в этом списке, в том порядке они и будут накладываться на изображение - это необходимо учитывать. При необходимости можно двигать фильтры вверх или вниз - кнопки соответственно "Move Up" и Move Down".

Выбрав и настроив необходимые фильтры - нажимаем "ОК" и возвращаемся к нашему AVI файлу. Теперь мы можем видеть полученный результат.

Размеры кадров часто бывают очень большими, что даже не помещаются на экране монитора, как в выше приведенном примере. В этом случае, можно поменять исходный и полученный кадры местами. Т.е. результат теперь будет виден полностью, а исходный кадр - уже что поместиться.

Теперь, что бы все эти фильтры окончательно наложить на исходный AVI файл его необходимо сохранить. Но предварительно обязательно убедиться, что для видео выбран "Full processing mode".

Собственно сохранение.

[Вернуться] [В начало] [Далее]


Обработка видео : описание основных фильтров
  • 2:1 reduction (high quality) - Уменьшает размер изображение по горизонтали и по вертикали ровно в 2 раза.

  • 3x3 average - Обрабатывает изображение, путем заменены каждого пикселя картинки на некоторый "средний пиксель", который получен после анализа соседних пикселей. :-)

  • Blur и Blur more - В разной степени размывают изображение.

  • Box blur - Настраиваемый фильтр размытия изображение. В настройках есть кнопка "Show preview", нажав которую можно сразу видеть результат работы фильтра.

  • Brightness/Contrast - Позволяет изменить яркость и контрастность изображения.

  • Deinterlace - Встроенный фильтр для устранения "гребенки". Честно говоря результат его работы мне не понравился, лучше пользоваться внешним фильтром "Smart deinterlace".

  • Emboss - В Adobe Photoshop этот эффект называется "рельеф". Трудно на словах объяснить, что он делает, проще показать. :-)

  • Flip horizontally - Перевернуть изображение по горизонтали.

  • Flip vertically - Перевернуть изображение по вертикали.

  • Grayscale - Делает изображение черно-белым.

  • Invert - Инвертирует цвета.

  • Levels - Фильтр позволяет корректировать уровень освещенности изображения. Предлагается, передвижением ползунков, выставить значение для самых темных/светлых пикселей, а так же некое среднее значение.
    Нажмите кнопку "Show Preview" что бы сразу следить за результатом работы фильтра. Так же, периодически, нажимайте кнопку "Sample frame", чтобы видеть гистограмму, по ней проще сориентироваться и проще выставить ползунки.

  • Motion blur - Размывает движения. Переместившиеся объекты исчезают несразу.

  • Null transform - Дословно : нулевая трансформация, т.е. сам по себе этот фильтр ничего не делает. Обычно он выбирается для подрезания неровных краев.

  • Resize - Позволяет изменить размер картинки. Задайте новые размеры ширины и высоты. В списке "Filter mode" я обычно выбираю "Precise bicubic (A=-1.0)", можете поэкспериментировать и выбрать что-то на свой вкус. Нажмите кнопку "Show Preview" что бы следить за происходящим.

  • Rotate - Поворачивает картинку на 90, 180 или 270 градусов.

  • Rotate2 - Этот фильтр представляет более широкие возможности поворота картинки, здесь угол поворота, вы вписываете сами.

  • Sharpen - Увеличивает контраст между сливающимися элементами в изображении, если попроще : увеличивает резкость изображения.

  • Smoother - Размывает картинку. Фильтр позволяет задать степень размытия.

  • Temporal smoother - Размывает картинку по времени. :-) Фильтр чем-то похож на "Motion blur", но эффект несколько другой.

  • Threshold - Преобразует изображение в черно-белое (оттенки серого отсутствуют полностью).


Соединяем несколько AVI файлов в один.
Соединять воедино несколько AVI файлов не такое простое дело как может показаться по началу. Дело в том, что чаще всего отдельные фрагменты, имеют разный FPS, и именно по этой причине VirtualDub отказывается их соединять.

Разный FPS, другими словами разное количество кадров в секунду, могло получиться из-за того, что при захвате видео вы делали привязку видео потока к звуку, во избежание рассинхронизации видео и звука. Что же теперь делать, спросите вы...

Самый простой и верный способ избежать таких проблем - это захватывать видео не кусками, а все сразу. Тем более, то, как создавать большие по продолжительности и по объему AVI файлы вы уже знаете, и знаете, что особых проблем при этом нет (если вы еще не в курсе, обратитесь к статье "захват видео").

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

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

1. Идеальный вариант - AVI файлы имеют одинаковый FPS.

Открываем в VirtualDub первый фрагмент, с которого в дальнейшем начнется будущий ролик.

Присоединяем, к уже открытому фрагменту, следующий, для этого выбираем команду:

Выбираем файл. Открытый, таким образом, файл будет присоединен в конец предыдущего.

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

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

Сохранить тоже можно по разному, можно с пережатием и без пережатия видео и аудио потоков.

В общем, не буду повторяться - вы все это знаете из предыдущих описаний...

2. Не идеальный вариант - AVI файлы имеют различный FPS.

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

Для начала надо узнать некий средний FPS всех фрагментов, что бы к нему приводить все файлы. Можно конечно и не ломать голову, а привести все файлы к целому числу, допустим 25 FPS, особенно это актуально если число FPS всех фрагментов будет близко к этому целому числу.

Что бы узнать какой FPS имеет отдельно взятый файл необходимо открыть его в VirtualDub.

Затем в меню "Video" выбрать:

В открывшемся окне видим FPS текущего файла:

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

Переходим к обработке, открываем в VirtualDub первый фрагмент и переходим к уже знакомому диалоговому окну:

Выбираем пункт "Change to...". Вписываем требуемое значение, нажимаем ОК.

Теперь что бы сохранить изменения, сохраняем AVI файл.

При этом, выбирая для видео и аудио потоков "Direct stream copy".

Но это еще не все! Дело в том, что, изменив FPS для AVI файла, мы неизбежно получили рассинхронизацию видео и звука, и чем больше вы изменили при этом FPS, тем больше рассинхронизация. Именно по этому, лучше приводить FPS файлов к среднему значению, в этом случае уход будет меньше.

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

Что бы синхронизировать видео и звук зайдите:

Здесь изменяя значение "Delay audio track by" вы можете немного сжать или наоборот растянуть аудио поток. Положительное значение используйте, если звук опережает видео. Отрицательные значения используйте, если наоборот звук отстает от видео.

Таким образом, подбирая данное значение, можно добиться приемлемой синхронизации видео и звука.

Далее что бы сохранить изменения, необходимо так же сохранить AVI файл, при этом потоки можно не пережимать, т.е. снова выбираем для видео и аудио потоков "Direct stream copy". Не торопитесь закрывать VirtualDub и открытый AVI файл в нем...

После того как файл сохранен, откройте его любым видео проигрывателем и убедитесь еще раз, что звук соответствует изображению. Я сталкивался с тем, что даже всех этих манипуляций была рассинхронизация, и приходилось еще корректировать значение "Delay audio track by". А если вы еще не закрыли данный файл, в VirtualDub, это будет сделать проще.

...Просто подкорректируйте еще значение "Delay audio track by" и сохраните снова.

Таким мутным образом обрабатываются все фрагменты, которые нужно склеить, для всех вы меняете FPS на одно и то же число.

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

Ну вот вроде и все!

Если вы знаете более простой способ, буду очень рад с ним познакомиться. Хотя я для себя уже сделал некоторые выводы :
  • Захват кусками (фрагментами) не допустим, захватывать необходимо все сразу.
  • Если куски все же получились - ничего не делать с ними. :-)