Введение

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

Типичные задачи, успешно решаемые с помощью "Дуба", включают в себя:

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

Немаловажным плюсом является и то, что VirtualDub занимает на диске всего 1-2 мегабайта, не требует установки, распространяется свободно (текущую версию можно скачать с http://virtualdub.sourceforge.net). Кстати, последнее обстоятельство привело к тому, что помимо самого VirtualDub, существует еще ряд его модификаций (VirtualDubMod, VirtualDub-MPEG2 и т.д.), отличающихся дополнительными возможностями.

Архитектура работы

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

VirtualDub нацелен на работу прежде всего с AVI файлами. Точнее, так: на выходе мы получаем AVI файл (хотя есть возможность работы в роли т.н. фреймсервера (frameserver), аналогично утилите AviSynth; модификация VirtualDubMod умеет дополнительно сохранять в контейнеры Matroska (MKV) и OGM), а на вход можно подавать AVI, MPG, AVS и некоторые другие типы файлов. При этом из общих соображений понятно, что AVI на входе и на выходе - это некоторая выделенная ситуация (действительно, в таком случае можно производить обработку без перекодирования - об этом ниже).

AVI файлы, как вы, наверное, знаете, содержат обычно один поток видео и 0, 1 или больше потоков звука. При этом само расширение файла не говорит практически ничего о его содержимом: AVI файл - это всего лишь контейнер, в котором могут храниться данные с различными форматами сжатия. Возможность работы с ними определяется наличием соответствующих кодеков (отдельно для видео и звука). В Windows существует две разные подсистемы работы с видеоданными - более старая Video for Windows (VfW) и более современная DirectShow (DS). И та, и другая предусматривает унифицированный интерфейс работы с любыми форматами сжатия - программа, работающая с видеофайлом, не обязана знать, как именно он закодирован - достаточно, чтобы в системе был зарегистрирован соответствующий модуль декодирования. VirtualDub и многие другие видеоредакторы используют интерфейс VfW, в то время как большинство проигрывателей - технологию DirectShow.

Что это означает на практике? Может оказаться так, что какой-либо файл, который прекрасно проигрывается плеером, VirtualDub не сможет открыть, т.к. в системе есть только DS декодер данного формата, но нет VfW кодека (в Video for Windows практически всегда компрессор и декомпрессор идут вместе и называются словом кодек, в то время как в DirectShow часто бывает только декодер). Например, раньше часто можно было встретить ситуацию, когда видео с цифровой камеры miniDV на "чистой" системе проигрывалось с использованием DS декодера от Microsoft, но не открывалось в дубе - требовалось установить VfW кодек, например, от MainConcept или Canopus. (В последних версиях VirtualDub имеется встроенный декодер (но не кодировщик!) для формата DV, также как и для формата MJPG, часто используемого в аппаратных платах аналогового видеозахвата). Отметим еще, что в противоположном случае, когда для формата сжатия есть только VfW кодек, то он автоматически будет воспроизводиться и в подсистеме DirectShow. Наконец, упомянем, что можно "подружить" дуб и с DirectShow - см.раздел про VirtualDubMod в конце статьи.

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

Настала пора обратиться к интерфейсу программы.

Интерфейс

Основную часть окна программы занимают два окна, отображающие входной и выходной (после применения фильтров) видеопотоки. (Поскольку фильтры могут менять размер изображения, то в общем случае оба окна неодинаковы по размеру; кроме того, можно вручную установить масштаб, отличный от 100%). Под ними находится линейка прокрутки с подписанными номерами кадров. В отличие от настоящих программ монтажа, в VirtualDub нет ни многодорожечного режима, ни timeline в обычном понимании - только одна полоса прокрутки. Причем если вы удалили какой-либо кусок, то он бесследно исчезает из обращения (впрочем, всегда есть кнопка Undo и команда Edit/Revert all edits, которая сбрасывает все операции с полосой прокрутки). Если вы пристыковали несколько клипов друг к другу, то полоса будет отображать их суммарную длительность. Само собой, перемещением маркера по полосе прокрутки мы добиваемся отображения нужного кадра в обоих окошках. Номер кадра и время, которое ему соответствует, показано чуть ниже, вместе с информацией о типе кадра (в квадратных скобках). Для AVI файлов K обозначает ключевой кадр (Keyframe), пусто - дельта-кадр, D - пропущенный кадр (Dropped frame, в нормальной ситуации таких быть не должно).

Для Mpeg файлов исторически обозначения другие: I - ключевой кадр, P - дельта-кадр, B - двунаправленный дельта-кадр. В Avi файлах часто ключевые кадры отстоят друг от друга на несколько сотен кадров, поэтому отображение произвольного кадра потребует распаковки всех дельта-кадров от предыдущего ключевого, что может быть достаточно медленным делом. Для перемотки в файле, кроме двигания маркера мышью, служат курсорные клавиши с различными модификаторами (см. в меню Go), из которых самый полезный - нажатие Shift, позволяющее перемещаться только по ключевым кадрам (также и при движении мышью). Такое перемещение не очень точно, но зато быстро - требуется декодировать только один кадр, а не целую цепочку. Еще отметим, что Home и End не приводят к перемещению в начало и конец клипа (для этого служат Ctrl+влево/вправо), а отмечают начало и конец фрагмента для обработки. Далее можно либо удалить отмеченный фрагмент кнопкой Del (можно сделать и что-нибудь более конструктивное, например, с помощью Ctrl+C-Ctrl+V скопировать и вставить его в другое место на линейке прокрутки Дуба, но не в другое приложение), либо же при сохранении файла будет обработана только выделенная область.

После того, как вы открыли нужные файлы, вырезали ненужные куски, настроили фильтры и прочие параметры обработки (см.ниже), выбираете File/Save as AVI и запускаете процесс обработки, во время которого на экран выводится индикатор прогресса с дополнительной информацией, а в окошках отображаются кадры исходного и обработанного видео (не все подряд, а раз в секунду, и только в режиме Full processing mode).

При сохранении файла возможны два различных варианта работы: если вся обработка сводится к вырезанию кусков или склейке файлов, либо к замене звука, и при этом исходный файл (файлы) были в формате AVI, то можно и нужно использовать режим без перекодирования (Direct Stream Copy в меню Video). В этом случае сжатые кадры видео напрямую передаются из входного в выходной поток (естественно, без раскодирования и показа на экране), соответственно, качество и размер файла не меняется. Во всех других случаях нужно ставить режим Full Processing Mode и, соответственно, задавать кодек для сжатия (меню Video - Compression) и настроить его параметры (через диалог, вызываемый кнопкой Configure; настройки на общем экране выбора кодеков - Quality и target data rate - в современных условиях чаще всего не применяются).

Есть еще два промежуточных режима: Fast recompress имеет смысл использовать при перекодировании из одного формата сжатия в другой без наложения фильтров в VirtualDub. В частности, для сжатия видео, подаваемого через AviSynth скрипт. В этом случае также на экран при сохранении может ничего не выдаваться. Режим Normal recompress практически не имеет смысла применять. Аналогичные режимы есть и для звука, только там варианта всего два - прямое копирование и полная обработка (в т.ч. с указанием сжатия и применением звуковых фильтров).

Еще из полезных особенностей можно отметить возможность отображения в выходном окошке видеоданных, полученных после распаковки сжимаемого видеопотока (Display decompressed output). Таким образом можно оценить качество сжатия и, если оно недостаточно, прервать обработку, не дожидаясь завершения всего процесса. Хотя эта опция замедляет работу и не всегда применима. Также можно полюбоваться работой фильтров без сохранения файла (режим Preview): в этом случае на экран выводятся все кадры, причем если скорость обработки недостаточно высока, то скорость показа будет соответственно меньше нормальной, а звук будет прерываться. Практически такой же результат (проигрывание выходного потока) достигается нажатием кнопки в левом нижнем углу, а кнопка , соответственно, воспроизводит только входной поток.

Возможности по обработке видео

Перейдем к описанию того, что же, собственно, можно делать с видео. Как уже было сказано, кроме возможности резки-склейки файлов без перекодирования (которую мы подробнее разберем в первом примере) VirtualDub славится своими фильтрами. Имеется три десятка встроенных фильтров и возможность подключения внешних плагинов, которых написано довольно много разными людьми. Порою не имеется сопоставимых по качеству аналогов для других программ. (Справедливости ради надо сказать, что в последние годы фокус внимания фильтрописателей сместился в сторону создания плагинов для AviSynth, утилиты, имеющей сходную архитектуру, но совершенно другой интерфейс). Фильтры можно добавлять в произвольном количестве и порядке через меню Video - Filters:

Рядом с каждым фильтром отображается размер кадра до и после его применения (с учетом обрезки - Cropping), а также некоторые его параметры. Подробное описание фильтров и рекомендации по их применению выходят за рамки данной статьи - да и возможностей столько, что нужно в каждом случае разбираться отдельно. Здесь мы дадим только общие рекомендации. Фильтры можно приблизительно разделить на несколько тематических групп:

  • изменение размеров изображения (Resize), обрезка/добавление полей (Null transform с опцией crop), поворот (Rotate - для видео, снятого фотоаппаратом в вертикальной ориентации, не делайте так в следующий раз!);
  • очистка от шумов (Chroma noise reduction, Smart smoother HiQ, Dynamic noise reduction, Temporal smoother, NeatVideo и т.д. - в основном внешние плагины);
  • настройка изображения (Levels, Brightness/contrast, Autocorrection of white balance, Grayscale и т.д.);
  • работа с чересстрочным (interlaced) изображением (различные варианты Deinterlace, включая встроенный);
  • прочие фильтры (Deshaker - устранение дрожания камеры, Logo и Delogo - нанесение логотипов и борьба с оными, Subtitler - добавление субтитров и т.д.).

Работу фильтра можно ограничить определенным диапазоном кадров (кнопка Blend и команда View/Curve editor). Мы не будем останавливаться на этой возможности (ее описание можно найти в справке), а рассмотрим подробнее одну из самых часто используемых функций - масштабирование (resize) и обрезка краев (crop). В последних версиях этот, в сущности, простой фильтр приобрел пугающее количество настроек:

На самом деле ничего сложного нет. Нужно иметь в виду, что формат AVI не предусматривает хранения информации о соотношении сторон кадра (Aspect ratio), предполагается, что оно равно соотношению ширины и высоты в пикселях (т.е. "квадратный пиксель"). С другой стороны, в некоторых случаях это не так: самый типичный пример - формат DV, с размером кадра 720х576 (т.е. 5:4) и пропорциями кадра при корректном отображении 4:3 для обычного и 16:9 для широкоэкранного формата. (Поэтому открытый в дубе DV файл будет немного вытянут по вертикали, если не изменить настройки отображения, хотя обычные проигрыватели покажут его правильно). В то же время в файлах DivX/Xvid пиксель обычно квадратный, т.е. при масштабировании DV нужно переключить пункт Aspect ratio с Same as source на Compute height from ratio и задать там 4:3 или 16:9. Ну и общее правило для всех кодеков - желательно иметь ширину и высоту кратную 2, 4, 8, а лучше 16 (для этого служит раздел Codec-friendly sizing).

Что же касается обрезки краев, то специального фильтра для этого нет - зато есть кнопка Cropping, позволяющая задать обрезку перед применением указанного фильтра. В частности, это может быть фильтр-пустышка Null transform, единственный смысл которого и заключается в сочетании с Cropping. Обрезать, конечно, тоже лучше кратно 2 или 4.

Некоторых комментариев удостоится еще работа с чересстрочным (интерлейсным) видео. Как известно, в большинстве видеокамер именно этот режим является основным (часто единственным) вариантом, и он отлично сочетается с просмотром на ЭЛТ телевизорах. Если вы собираетесь делать DVD из своего видео, то также лучше всего оставить изображение чересстрочным - при воспроизведении на компьютере или LCD/плазменном телевизоре автоматически будут приняты соответствующие методы деинтерлейса. С другой стороны, если нужно, например, закодировать видео в какой-либо из вариантов MPEG-4 (DivX, Xvid, ...), например, для размещения в интернете, то разумно будет применить деинтерлейс и затем уменьшение размеров кадра (как на скриншоте выше, где еще добавлена стадия очистки от шума и небольшая обрезка краев). В качестве метода деинтерлейса не стоит выбирать встроенный фильтр Deinterlace в режиме Blend fields - вопреки надписи best рядом с ним, ничего хорошего, как правило, не выйдет, будут двоящиеся контуры. Лучше воспользоваться сторонними плагинами, хотя и здесь тоже самые современные и качественные разработки существуют только в варианте для AviSynth. И никогда без особых причин не меняйте размер кадра в чересстрочном видео!

Типовые задачи

Теперь опишем некоторые типовые сценарии, в которых VirtualDub применяется для решения специфических задач.

Пример №1: Для начала разберемся с линейным монтажом, т.е. резкой-клейкой и перестановкой кусков. Как уже было сказано, эту операцию можно проводить без перекодирования, если исходное видео было в контейнере AVI. Добавление нескольких файлов происходит командой File/Append AVI segment, причем если они пронумерованы по порядку, то можно загрузить сразу несколько (галка Autodetect additional segments by filename). При этом форматы сжатия видео и звука должны быть строго одинаковы (вплоть до некоторых параметров, скрытых от пользователя: например, может случиться так, что DV-файл с камеры, обработанный в Dub-е и сжатый опять в DV, нельзя пристыковать к такому же файлу, но полученному непосредственно с камеры.. С другой стороны, файлы, сжатые в DivX одинаковым образом, но с разными битрейтами, спокойно можно склеить). Между прочим, многие (но не все "скрытые") параметры файла можно узнать командой File/File information, хотя более универсальной является отдельная утилита GSpot: http://www.headbands.com/gspot.

Со "склейкой" разобрались, теперь обратимся к "резке", т.е. удалению ненужных фрагментов (например, рекламы из записи телепередачи), а заодно и к перестановке фрагментов местами (через механизм типа буфера обмена - Ctrl+X, Ctrl+C, Ctrl+V, только в пределах одной программы). Здесь ситуация различается в зависимости от того, сжат файл кодеком с межкадровым (например, DivX/Xvid, VP6, Indeo) или покадровым (MJPG, DV, HuffYUV и т.д.) сжатием. Если во втором случае можно спокойно вырезать любой кусок, т.к. каждый кадр кодируется независимо от других, то в первом ситуация сложнее. Ведь для того, чтобы декодировать некоторый кадр, нужно найти ближайший стоящий перед ним ключевой кадр и пройти всю цепочку от него до нужного кадра. Например, рассмотрим такое выделение:

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

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

мы получим видеоряд с кадрами с 1 по 4 и с 11 (а не 13) по 15. Отсюда вывод - чтобы не ошибиться в нарезке, делайте это по ключевым кадрам. А именно, если вы удаляете фрагмент, то он должен заканчиваться на ключевом кадре, а если оставляете, то, наоборот, начинаться. Здесь как раз пригодится возможность перемещения только по ключевым кадрам при нажатом Shift. Кстати, отметка конца выделения относится к предыдущему кадру (т.е. выделено все до текущего, не включая его), поэтому ставить конец надо как раз на сам ключевой кадр.

А что делать, если нужно более точное позиционирование для резки/клейки? В последних версиях Дуба появилась очень полезная галочка Smart Render, активная в режиме Full processing mode. Действие ее следующее: если участок может быть обработан в режиме Diect stream copy, то так и происходит, иначе запускается указанный в настройках кодек (он должен быть тем же, с каким сжат исходный файл) и с его помощью кодируется фрагмент вплоть до следующего ключевого кадра (естественно, он начнется с вновь сделанного ключевого кадра), а на нем опять переключается в режим Direct stream copy.

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

Кроме того, есть команда Video/Select range, результат которой сводится к тому, что удаляется участок до первого и после последнего указанного кадра. Связанная с этим задача - разбить длинный файл на куски, например, по 700 мегабайт, для записи на CD, удобнее решается с помощью VirtualDubMod, в котором рядом с номером кадра дополнительно выводится "расстояние" от начала файла в мегабайтах.

Подчеркнем, что резать MPEG-файлы таким образом не получится, для этого удобно использовать MPEG Video Wizard: http://womble.com.

Пример №2: Предположим, вы смонтировали фильм в какой-либо программе монтажа, например Pinnacle Studio или Adobe Premiere. Дальше его нужно как-то сохранить, причем часто бывает нужно иметь его в нескольких вариантах: например, если формат исходной съемки был miniDV, то разумно готовый фильм из монтажки экспортировать тоже в DV AVI и потом его скинуть обратно на ленту (если камера это позволяет); почти наверняка требуется сделать DVD; может быть, хочется разместить фильм в интернете (даже если вы собираетесь использовать сервис типа YouTube, который сам пережимает видео в свой формат, причем довольно скудного качества, все равно загружать на сервер исходный DV AVI может быть слишком долго и непроизводительно). В последнем случае имеет смысл готовый DV AVI загрузить в дуб, добавить при необходимости фильтры деинтерлейса и уменьшения размера и сохранить во что-нибудь типа DivX, желательно в два прохода. Конечно, можно сделать это и непосредственно из монтажной программы, но в этом случае все монтажные эффекты и переходы будут просчитываться два раза, а ведь у нас уже есть DV-AVI файл, подготовленный для записи на камеру.

Пример №3: Допустим, вы снимали в условиях недостаточной освещенности и хотите почистить видео от шумов, или желаете избавиться от дрожания камеры при съемке с рук. В этих случаях имеет смысл делать выборочную фильтрацию только для тех эпизодов, которые в этом нуждаются (в DVD-камерах каждый эпизод записывается в отдельный файл, при захвате видео с miniDV также, как правило, включают разбиение на сцены с записью каждой сцены в отдельный файл). Желательно проводить обработку перед загрузкой фрагмента в программу монтажа - в этом случае вы можете подбирать и настраивать нужные фильтры отдельно для каждого фрагмента. Впрочем, можно применить и другой ход (реализуемо только в случае AVI файлов с камеры miniDV): смонтировать весь фильм с исходными файлами, а перед окончательным экспортом определить фрагменты, требующие обработки, пропустить их через VirtualDub, исходный файл переместить в архивную папку, а на его место поместить обработанный файл под тем же именем. Затем запустить заново программу монтажа и экспортировать уже с новыми файлами. Обрабатывать видео можно как фильтрами самого VirtualDub, так и через AviSynth, что описано в соответствующей статье. В последнем случае, впрочем, все равно желательно AVS скрипт загрузить в дуб и сохранить как регулярный AVI файл (например, с тем же кодеком DV) - не все монтажные программы работают с AVS скриптами, да и удобнее работать с готовым файлом, чем с "тяжеловесным" (в смысле времени обработки) скриптом. Стабилизации видео с помощью фильтров VirtualDub и AviSynth будет посвящена отдельная статья.

Пример №4: Нужно сделать скриншот с видео, чтобы разглядеть его на предмет качества или наличия дефектов. Из проигрывателя это делать не стоит, т.к. он может вносить какие-либо модификации в изображение (например, принудительный деинтерлейс или коррекцию яркости). В то же время VirtualDub откроет файл "как есть", при условии, конечно, что он поддерживается им. Кстати, о форматах: по умолчанию, кроме AVI, VirtualDub умеет открывать mpeg-1 файлы. С помощью плагинов от fccHandler"а (http://fcchandler.home.comcast.net/~fcchandler/) можно научить его открывать MPEG-2 (кстати, можно открыть и склеить подряд несколько VOB-файлов за раз) и WMV/ASF; есть также плагины для работы с MOV и FLV контейнерами, а модификация VirtualDubMod умеет работать с MKV файлами. Остальные форматы можно попробовать открыть с использованием AviSynth (см.ниже). Ну а собственно сохранение скриншотов делается командой File/Export/Image sequence (нужно выделить участок для экспорта - если нужен один кадр, то поместить его под курсор и нажать Home, стрелка вправо, End).

VirtualDubMod и AviSynth

Несколько слов про важную ветвь развития "дуба" - VirtualDubMod. Это отдельная программа, основанная на исходных кодах VirtualDub и множестве полезных добавлений. Ее имеет смысл поместить в ту же директорию, что и сам VirtualDub, чтобы использовать общий набор плагинов. (В принципе, можно вообще заменить ей сам дуб, разве что последняя версия DubMod"а основана на версии 1.5.10 от 2005 года, т.е. в ней отсутствуют возможности, добавленные в Dub за последнее время - впрочем, их не так много). Интерфейс VirtualDubMod похож на VirtualDub, одно существенное отличие состоит в том, что меню Audio заменено на Streams, что отражает нацеленность на работу с несколькими аудиопотоками. Второе полезное нововведение заключается в более тесной интеграции с AviSynth. Нам будет полезно одно ее свойство - умение работать с подсистемой DirectShow наряду с VideoForWindows. Вкратце, AviSynth - это скриптовый язык и программа для его интерпретации, а интерфейс его взаимодействия с остальными программами очень прост - вы пишете текстовый файл со скриптом, а затем открываете его в (почти) любой программе видеообработки, кодировщике или проигрывателе, как обычный видеофайл, и работаете точно так же, как с видеофайлом на жестком диске. Видеоряд и звук формируются командами, записанными в скрипте. Для наших целей достаточно просто установить AviSynth, и тогда при открытии видеофайла в VirtualDubMod будет доступна опция Use AviSynth template:

Это значит, что для открытия файла будет автоматически создан промежуточный AviSynth скрипт, содержащий соответствующую команду открытия (в данном случае DirectShowSource), и уже его загрузит VirtualDubMod. Таким образом можно попытаться работать практически с любыми типами файлов, которые воспроизводятся проигрывателями - RealVideo, QuickTime (MOV), MPEG2-TS (в нем обычно находится видео с видеокамер формата HDV и AVCHD), MP4 (тоже частый вариант в фотокамерах и комбинированных фотовидеокамерах). Надо отметить, что этот способ, во-первых, не всегда работает, во-вторых, не такой надежный, как открытие "родными" средствами (в частности, может неверно работать позиционирование по файлу и т.д.). Поэтому всегда при возможности лучше пользоваться встроенными или специализированными средствами (MPEG2-PS, в частности, DVD файлы (VOB), открываются непосредственно в VDMod, а для перевода MP4 файлов в AVI существует специальная программа MP4Cam2AVI).

Еще отметим, что в VirtualDubMod есть специальный Script Editor (в меню Tools), предназначенный для оперативного контроля и настройки параметров AviSynth скрипта. Просто меняйте текст скрипта, а затем нажимайте F5 или F7, чтобы увидеть в окне VirtualDub результат работы скрипта. Подчеркнем, что и обычный VirtualDub прекрасно открывает AVS скрипты, просто в VDMod интеграция с AviSynth более удобная. Нужно помнить, что AviSynth скрипт, открытый в любой программе, представляется несжатым файлом, так что копирование без пересжатия в этом случае невозможно. (Если не требуется дополнительно использовать фильтры VirtualDub, то лучше выбирать режим Fast Recompress, а не Full processing mode)."

Короче говоря, VirtualDub (а также VirtualDubMod и AviSynth) должны быть в арсенале всякого, кто работает с цифровым видео на уровне чуть выше стартового. Изучайте и применяйте! В статье были рассмотрены далеко не все возможности VirtualDub, так что читайте Help. Детальное описание пунктов меню можно найти на специализированных ресурсах (впрочем, для довольно старых версий Дуба). В сети есть также и русскоязычные сборки VirtualDub, правда, скорее всего, не последних версий.

Полезные советы по работе с VirtualDub

Совет 01 - Сохраняйте настройки обработки видео.

VirtualDub позволяет полностью сохранить настройки обработки видео (Меню "File" - "Save/Load Processing Settings..."). При этом сохраняется все: настройки и последовательность наложенных фильтров, вырезанные фрагменты, настройки кодеков, и т.д. Очень полезно, если часто приходиться обрабатывать однотипные видео файлы, или просто, часто приходится накладывать одну и ту же последовательность фильтров...

Совет 02 - Горячие клавиши перемещения по видео.

Очень удобно при движении по видео пользоваться следующими горячими клавишами:

Стрелки [<] и [>] - предыдущий и следующий ключевой кадр (для перемещения по видео сжатому в MPEG4).

Стрелки [<] и [>] - 50 кадров назад и вперед, соответственно (для перемещения по видео сжатому в MJPEG, Nuffyuv, ... т.к. здесь каждый кадр является ключевым).

Совет 03 - Комфортное MPEG4 кодирование в два прохода.

Когда все настройки VirtualDub и кодеков сжатия выставлены, и настало время производить первый проход сжатия в MPEG4, удобнее поступить следующим образом:

(уточняю) в настройках DivX кодека выбран первый проход.

Сохраняем, меню "File" - "Save as AVI ...", задаем имя и расположение AVI файла, а так же ставим галочку напротив "Don"t run this job now...". Теперь жмем кнопку "Сохранить".

Заходим в настройки DivX кодека, выбираем второй проход. Напомню, что больше ничего менять нельзя!

Снова, меню "File" - "Save as AVI ...", задаем имя и расположение AVI файла (имя другое), а так же ставим галочку напротив "Don"t run this job now...". Жмем кнопку "Сохранить".

Теперь, меню "File" - "Job control...". В открывшимся окне мы видим два назначенных нами задания (первый и второй проходы), жмем "Start".

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

Читайте и пишите полезные

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

Обрезка видео (убрать лишнее из видео ролика)

Одной из самых популярных функций VirtualDub, за которую он снискал славу самого популярного конвертера видео в Рунете, является обрезка видео. Очень часто возникает необходимость уменьшить размер видео файла или убрать из него лишнее (например, титры или заставку). Это намного проще сделать, чем кажется на первый взгляд. На представленном видео Вы можете увидеть, что в VirtualDub этот процесс занимает всего несколько кликов:


Компрессия видео (уменьшение размера видео ролика)


Выбор аудио дорожки в ролике (поменять звук в фильме)

Очень часто возникает ситуация, когда фильм или ролик имеет более одной звуковой дорожки (несколько вариантов перевода или звукового сопровождения). Не все плееры могут корректно работать с файлами, у которых более 1 звуковой дорожки. А иногда просто хочется уменьшить размер видео за счет ненужного варианта перевода. Используя VirtualDub 1.10.1, можно, буквально, в 3 клика поменять "главную" дорожку в ролике (или убрать лишнюю):


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


Программа поддерживает работу в:
Windows 7 , VISTA , Windows XP

Захват видео (вариант 2)

Осуществляя захват аналогового видео из источников с невысоким качеством на не профессиональном оборудовании (или даже полупрофессиональном), сложно получить хорошо сжимаемый (для того, что бы занимал меньше места) и достаточно чистый сигнал (для того, что бы не рябило в глазах). Однако применяя для захвата программы позволяющие регулировать параметры входного сигнала, например, программу VirualDub написанную Avery Lee о которой будет рассказано в дальнейшем, и позволяющие применять фильтры для очистки захваченного видео от шумов можно получить достаточно (для домашнего просмотра и не только) качественный метериал.

Для сохранения видео со сжатием и без потери качества для последующей обработки рекомендую использовать кодек Microsoft Video 1 (или аналогичный) который позволяет сжимать видео с частотой в 25 кадров/сек с размером фрейма 640х480 с коэффициентом сжатия около 4-5 без выпадения кадров. Что позволяет сохранять 1 час на 15 Гбайтах. Можно воспользоваться и любым другим кодаком (например, поставляемым с драйверами устройства захвата видое), который позволяет сжимать видео без потерь и который будет успевать захватывать без пропуска (потери) кадров.

1. Запускаем программу VirtualDub, выбираем в меню "Файл - Захват AVI" ("File - Capture") и попадаем в режим захвата видео.

2. В меню Файл (File) выбираем "Файл захвата...." (Set capture file...) где и указываем имя файла и его размещение. Необходимо учитывать что для захвата 1 часа необходимо около 16 Гбайт.

3. Если у вас не NTFS, а FAT32, то это позволяет создавать файлы размером только до 4 Гбайт необходимо задать местоположение и размер нарезаемых фрагментов. Для этого открываем меню Capture и устанавливаем Enable multisegment capture. После чего выбираем Capture drives...

В окне Spill System Setup указываем диски (или папки) на которых будут размещаться фрагменты захваченного видео и устанавливаем их минимальный (меньше которого не создавать, а присоединить к предыдущему фрагменту) и максимальный (больше которого не создавать, а начинать новый фрагмент) размеры.

4. В меню Capture включаем информационную панель (Show information panel) по которой можно следить за процессом оцифровки, где: Frames captured - количество захваченных кадров; Total time - время захвата; Time left - сколько времени ещё можно цифровать, пока не закончиться место на диске; Total file size - количество записанных байт; Disk space free - оставшееся место на диске; CPU usage - загрузка процессора (на PIII-800 МГц при выше приведённых параметрах - 85%, а на Athlon 1200 МГц - 50%); далее идут параметры видеопотока - размер, средняя скорость захвата (кадров в секунду), скорость передаваемых данных, сжатие, средний размер одного кадра и самое главное - количество пропущенных кадров; а на последок параметры звукового потока.

5. Открываем окно настройки параметров захвата (Capture Settings... {F9}) и устанавливаем следующие параметры:

Уменьшить Размер Изображения: 92% от оригинального размера [ 552 x 257 ]

Capture audio - захватывать звук или нет; в разделе Advanced (в нижней части окна) необходимо не забыть установить Lock video stream to audio для синхронизации видео и звука.

Wait for OK to capture - позволяет более точно начать захват.

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

Abort options - здесь можно изменить клавиши по которым будет происходить остановка захвата.

Раздел Advanced - в этом разделе ни чего кроме флага Lock video stream to audio можно не изменять.

6. Если необходимо, то в Stop conditions можно задать условия при выполнении которых будет прекращён захват.

7. Установим параметры захвата звука:

7.1. В меню Audio-Compression выбираем формат: PCM с атрибутами: 44,1 кГц; 16 бит; Моно (или Стерео, если Вы уверены, что исходный материал был записан со стерео звуком).

7.2. Через меню Audio-Volume meter можно установить громкость захватываемого звука.

8. Переходим к разделу меню посвящённому видео.

8.1. Во первых устанавливаем режим Просмотр с гистограммой - Preview w/ histogram {Shift-P}.

8.2. Затем выбираем источник видео - Source... {S}

8.2.1. Переходим к одному из ответственных этапов подготовки захвата видео - настройки параметров устройства (закладка Параметры устройства - Device Settings в только что открытом окне Источник видео - Video Source).

В общем случае доступна коррекция яркости, контраста и насыщенности цвета. Регулировка этих параметров до начала захват позволит в дальнейшем работать с более качественным материалом. Некоторые параметры, в зависимости от драйверов устройства, могут оказаться недоступными. Для удобства подстройки параметров и был включен режим предпросмотра с гистограммой (Preview w/ histogram). Рассмотрим работу этих регуляторов по очереди:

8.2.2. Яркость (Brightness).

8.2.2.1. Когда картинка слишком тёмная гистограмма смещена в левую часть.

8.2.2.2. На засвеченной картинке гистограмма смещена в право.

8.2.3. Контрастность (Contrast).

8.2.3.1. Изображение с низким контрастом - гистограмма сжата.

8.2.3.2. Высококонтрастное изображение - гистограмма как-бы пытается раздвинуть границы.

8.2.4. Оттенок (Hue) - позволяет придать изображению красный (параметр ~0) или зелёный (~10000) оттенок.

8.2.5. Насыщение (Saturation).

8.2.5.1. Низкое насыщения цвета - картинка превратилась в чёрно-белую, происходит разряжение гистограммы.

8.2.5.2. Насыщенное изображение - позволяет усилить блеклые цвета, гистограмма как-бы съёживается.

8.2.6. Чёткость (Sharpness) - достаточно сложно охарактеризовать данный регулятор, при его увеличении края гистограммы расплываются, при уменьшении - края гистограммы поджимаются.

8.2.7. Баланс белого (White balance) - позволяет убрать желтизну из белого цвета (или добавить).

8.2.8. Гамма (Gamma) - изменение гаммы позволяет придать изображению особый колорит, на практике позволит скорректировать гамму изображения передаваемого с камер с азиатцими настройками (с уходом в тёплые цвета).

8.2.9. Съёмка против света (Backlight Comp) - данный регулятор позволит частично компенсировать засветку из-за съёмки против источника света.

Варьируя данные параметры можно уменьшить шумы и улучшить качество ещё на этапе захвата видео.

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

В этом окне необходимо выбрать размер и формат захватываемого видео. При выборе значений необходимо учитывать ограничения накладываемые на пропорции изображения кодаком, которым будет осуществлятся кодирование захваченного видео, и поддерживаемые форматы данных. Поскольку предполагается захват для дальнейшей обработки, то есть необходимо использовать кодак сжимающий без потери качества, то выбираем формат данных YUY2 (YUV 4:2:2 interleaved). Использование данного формата при кодировании позволит снизить загрузку процессора, что позволит избежать пропуска кадров. Однако мощности компьютеров растут и вы можете попробовать сделать захват с более высокими параметрами.

Выбирать размер захватываемого изображения необходимо исходя из возможностей источника и желаемого качества. Так видеоисточники бытового качества (видеоплееры/магнитофоны/камеры) выдают кадр имеющий только до 300 линий и только 4-х дорожечные видеомагнитофоны имеют - 400 линий. Поэтому установка размера по вертикали больше чем 288 линий приведёт к появлению дефекта лесенки, который будет особенно заметным в подвижных частях изображения. Учитывая, что стандарные пропорции кадра 4х3 (широкий формат 16х4 оставим для захвата видео высокого качества), то размер по горизонтали должен быть 384. Однако при таких размерах трудно удалить шум из некачественного видеоматериала. Кроме того, комфортным размером видео при просмотре на экране монитора является 512х384. Таким образом установим удвоенную ширину (768) захватываемого видео. Затем, после удаления шумов, размеры видео изменим до 512х384. Для примера на рисунке (см. выше) показано разрешение 640х480 - это наиболее удачное сочитание для просмотра на телевизоре. Возможно при хороших параметрах компьютера у вас получится сделать захват с таким разрешением и получить более качественную картинку.

8.4. Выбираем кодак - Compression... {Shift-C}

Уменьшить Размер Изображения: 96% от оригинального размера [ 532 x 305 ]

В данном окне будут перечислены только кодаки которые поддерживают выбранный на предыдущем шаге формат данных (YUY2). Выбор первого (Без сжатия) позволит сохранить захваченное видео как есть, без внесения в него каких-либо искажений. Однако под него потребуется около 16 Мбайт для хранения 1 секунды видео размером 768х288 х24бита х25кадров. Использование DivX позволит значительно с экономить место на диске (1 час хорошего качества можно уместить в 500 Мбайтах), однако использовать этот кодак для захвата имеет смысл только на очень быстрых ЭВМ (> 2ГГц) и при захвате видео хорошего качества, которое не предпологается затем обрабатывать. Для сжатия (от 3-х - 4,5 раз) без потери качества выберем кодак Microsoft Video 1 и проверим его настройки (кнопка Изменить - Configure).

Здесь можно установить качество кодируемого сигнала. При смещении движка вправо вы получите лучшее качество и соответственно больший объем файла.

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

8.5. Обрезка краёв - Cropping

Поскольку часто оцифровываемый материал имеет краевые дефекты - несколько нижних чередующихся линий сдвинуты относительно друг друга или не содержат информации о цвете (т.е. чёрно-белые), а изображение по краям как-бы завёрнуто само на себя, то имеет смысл сразу обрезать эти края. Для этого необходимо задать обрезаемые границы: Cropping - Set bounds...

При указании отступов от краёв необходимо учитывать, что сжимающих кодак должен получать картинку со сторонами кратными некоторой величине (обычно 8, 16, 24 или 32). В противном случае возможно появление артефактов или значительное замедление работы. Поэтому рекомендуется отсекать части кратные указанным величинам. После задания границ необходимо включить отсекание: Cropping - Enable.

8.6. Замечание: в режиме захвата видео - наложение фильтров через меню Filters... {F} не работает.

9. Захват - Capture - Capture video {F6}

Когда начнётся видеофрагмент, который необходимо оцифровать, нажимаем Начать - Begin. Для завершения оцифровки просто нажмите {ESC} или другую клавишу, указанную в Capture Settings... {F9}или как на рисунке - Прервать...

Семейство 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 " фильтр лучше применить для текущего клипа.

Настроим нужный размер и отметим "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 )

VirtualDub — популярное приложение для монтажа видео. Несмотря на относительно простой интерфейс по сравнению с такими гигантами как Adobe After Effects и Sony Vegas Pro , описываемый софт обладает весьма обширным функционалом. Сегодня мы поведаем вам о том, какие именно операции можно выполнять с помощью VirtualDub, а также приведем практические примеры.

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

Открываем файлы для редактирования

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


Вырезаем и сохраняем отрывок клипа

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

  1. Открываем документ, из которого требуется вырезать часть. О том, как это сделать, мы рассказали в предыдущем разделе.
  2. Теперь надо установить бегунок на таймлайне примерно там, где будет начинаться нужный вам отрывок клипа. После этого с помощью прокрутки колеса мышки вверх и вниз можно установить более точное положение самого бегунка вплоть до конкретного кадра.
  3. Далее на панели инструментов, расположенной в самом низу окошка программы, необходимо нажать на кнопку установки начала выделения. Ее мы выделили на изображении ниже. Также эту функцию выполняет клавиша «Home» на клавиатуре.
  4. Теперь этот же ползунок переносим в то место, где выбранный отрывок должен закончиться. После этого на панели инструментов внизу жмем «Конец выделения» или клавишу «End» на клавиатуре.
  5. После этого найдите в верхней части окна софта строчку «Видео» . Нажмите на нее один раз левой кнопкой мышки. В выпадающем меню следует выбрать параметр «Прямопотоковое копирование» . Просто нажмите по указанной надписи один раз ЛКМ. В результате вы увидите отметку слева от параметра.
  6. Аналогичные действия нужно повторить и со вкладкой «Аудио» . Вызываем соответствующее выпадающее меню и также включаем опцию «Прямопотоковое копирование» . Как и в случае со вкладкой «Видео» появится отметка в виде точки рядом со строчкой опции.
  7. Далее открываем вкладку с названием «Файл» . В открывшемся контекстном меню кликаем один раз на строчке «Сохранить сегментированный AVI…» .
  8. В результате откроется новое окно. В нем необходимо указать местоположение для будущего клипа, а также его имя. После того, как данные действия будут завершены, жмем «Сохранить» . Обратите внимание, что тут же есть дополнительные опции. Ничего изменять не нужно, просто оставьте все как есть.
  9. На экране появится небольшое окно, в котором будет отображаться прогресс выполнения поставленной задачи. По завершению сохранения фрагмента оно автоматически закроется. Если отрывок небольшой, то вы и вовсе можете не заметить его появления.

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

Вырезаем лишний фрагмент из ролика

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


Теперь следует зайти в папку, в которую вы сохраняли файл. Он готов к просмотру или дальнейшему использованию.

Изменяем разрешение видео

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

  1. Открываем в программе необходимый ролик.
  2. Далее открываем раздел «Видео» в самом верху и жмем ЛКМ на самой первой строчке «Фильтры» .
  3. В открывшейся области следует найти кнопку «Добавить» и нажать на нее.
  4. Откроется еще одно окно. В нем вы увидите большой список фильтров. В данном списке нужно найти тот, что называется «resize» . Кликнуть один раз ЛКМ по его названию, после чего нажать «OK» тут же.
  5. Далее надо переключиться на режим пиксельного изменения размера и указать желаемое разрешение. Обратите внимание, что в пункте «Соотношение сторон» обязательно должен стоять параметр «Как источник» . В противном случае результат получится неудовлетворительным. Выставив нужное разрешение, необходимо нажать «OK» .
  6. Указанный фильтр с настройками добавится в общий список. Проследите, чтобы возле названия фильтра обязательно была поставлена отметка в чекбоксе. После этого закрываем область с самим списком нажатием на кнопку «OK» .
  7. На рабочей области программы вы сразу же увидите результат.
  8. Остается лишь сохранить полученный ролик. Перед этим проверьте, чтобы во вкладке с одноименным названием был включен «Режим полной обработки» .
  9. После этого жмем на клавиатуре клавишу «F7» . Откроется окошко, в котором следует указать место для сохранения файла и его название. В завершении жмем на «Сохранить» .
  10. После этого появится небольшое окно. В нем вы сможете отслеживать процесс сохранения. Когда сохранение завершится, оно самостоятельно закроется.

Зайдя в выбранную ранее папку вы увидите ролик с новым разрешением. Вот собственно и весь процесс изменения разрешения.

Поворот видео

Очень часто случаются ситуации, когда при съемке камера держится не в том положении, в каком нужно. В итоге получаются перевернутые ролики. С помощью VirtualDub вы легко сможете исправить подобную проблему. Отметим, что в данном софте вы сможете выбрать как произвольный угол поворота, так и фиксированные значения типа 90, 180 и 270 градусов. Теперь обо всем по порядку.

  1. Загружаем в программу клип, который будем поворачивать.
  2. Далее заходим во вкладку «Видео» и в выпадающем списке нажимаем на строчку «Фильтры» .
  3. В следующем окне жмем «Добавить» . Это позволит внести нужный фильтр в список и применить его к файлу.
  4. Откроется список, в котором необходимо выбрать фильтр в зависимости от нужд. Если вам подойдет стандартный угол поворота, тогда ищите «rotate» . Для указания угла вручную следует выбрать «rotate2» . Находятся они рядом. Выделяем нужный фильтр и жмем кнопку «OK» в этом же окошке.
  5. Если был выбран фильтр «rotate» , то появится область, где на выбор будут представлены три типа поворота — на 90 градусов (влево или вправо) и 180 градусов. Выбираем нужный пункт и кликаем на «OK» .
  6. В случае с «rotate2» все почти так же. Появится рабочая область, в которой нужно будет в соответствующее поле ввести угол поворота. После указания угла следует подтвердить ввод данных путем нажатия «OK» .
  7. Выбрав нужный фильтр, закройте окно с их перечнем. Для этого нажмите снова кнопку «OK» .
  8. Новые параметры тут же вступят в силу. Результат вы увидите на рабочей области.
  9. Теперь проверяем, чтобы во вкладке «Видео» работал «Режим полной обработки» .
  10. В завершении следует лишь сохранить полученный результат. Жмем клавишу «F7» на клавиатуре, выбираем в открывшемся окне место для сохранения, а также указываем название файла. После этого нажимаем «Сохранить» .
  11. Через некоторое время процесс сохранения завершится и вы сможете использовать уже отредактированный ролик.

Как видите, перевернуть ролик в VirtualDub очень легко. Но это еще не все, на что способна данная программа.

Создание GIF анимации

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

  1. Открываем документ, из которого будем создавать гифку.
  2. Далее требуется оставить лишь тот кусок, с которым будем работать. Для этого можно воспользоваться руководствами из раздела «Вырезаем и сохраняем фрагмент видео» данной статьи или просто выделить и удалить лишние части ролика.
  3. Следующим шагом будет изменение разрешения картинки. Файл анимации с большим разрешением будет занимать слишком много места. Для этого заходим во вкладку «Видео» и открываем раздел «Фильтры» .
  4. Теперь следует добавить новый фильтр, который изменит разрешение будущей анимации. Жмем «Добавить» в открывшемся окне.
  5. Из предложенного списка выбираем фильтр «resize» и жмем кнопку «OK» .
  6. Далее выбираем то разрешение, которое будет применено в будущем к анимации. Подтверждаем внесенные изменения путем нажатия кнопки «OK» .
  7. Закрываем окно со списком фильтров. Для этого снова кликаем «OK» .
  8. Теперь снова открываем вкладку «Видео» . На этот раз из выпадающего списка выбираем пункт «Частота кадров» .
  9. Нужно активировать параметр «Перевод в кадр/сек» и вписать в соответствующее поле значение «15» . Это самый оптимальный показатель смены кадров, при котором картинка будет воспроизводиться плавно. Но вы можете выбрать более подходящий вариант, в зависимости от ваших нужд и ситуации. После установки показателя жмем «OK» .
  10. Для того чтобы сохранить полученную гифку, необходимо зайти в раздел «Файл» , нажать на «Экспорт» и в появившемся справа меню выбрать пункт «Создать GIF-анимацию» .
  11. В открывшемся небольшом окошке вы можете выбрать путь для сохранения гифки (нужно нажать на кнопку с изображением трех точек) и указать режим воспроизведения анимации (проигрывать ее один раз, зациклить или повторять определенное количество раз). Указав все эти параметры, можно нажимать «OK» .
  12. Спустя несколько секунд анимация с нужным расширением будет сохранена в указанное ранее место. Теперь вы можете использовать ее по своему усмотрению. Сам же редактор можно после этого закрыть.

Запись картинки с экрана

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

Герой нашей сегодняшней статьи справляется с этим на достойном уровне тоже. Вот как это реализовывается здесь:

  1. В верхней панели разделов выбираем пункт «Файл» . В выпадающем меню находим строчку «Захватить видео в AVI» и нажимаем по ней один раз левой кнопкой мыши.
  2. В результате откроется меню с настройками и предварительным просмотром захватываемой картинки. В верхней части окна находим меню «Устройство» и в выпадающем списке выбираем пункт «Screen Capture» .
  3. Вы увидите небольшую область, которая будет захватывать выделенный участок рабочего стола. Для того, чтобы установить нормальное разрешение заходим в пункт «Видео» и выбираем в меню пункт «Установить формат» .
  4. Внизу вы увидите пустой чекбокс рядом со строчкой «Другой размер» . Ставим в данный чекбокс отметку и вписываем в поля, которые расположены чуть ниже, необходимое разрешение. Формат данных оставляете без изменений — «32-bit ARGB» . После этого жмем кнопку «OK» .
  5. В рабочей области программы вы увидите множество окон открытых одно в другом. Это предварительный просмотр. Для удобства и для того, чтобы не нагружать лишний раз ПК, отключаем эту функцию. Заходим во вкладку «Видео» и кликаем по первой строчке «Не отображать» .
  6. Теперь нажмите кнопку «C» на клавиатуре. Это вызовет меню с настройками компрессии. Она нужна, так как в противном случае записываемый ролик займет много места на вашем жестком диске. Обратите внимание, что для отображения многих кодеков в окне необходимо установить кодек-паки типа K-Lite . Посоветовать какой-то конкретный кодек мы не можем, так как все зависит от выполняемых задач. Где-то требуется качество, а в некоторых ситуациях можно им пренебречь. В общем, выбираем необходимый и жмем «OK» .
  7. Теперь нажимаем кнопку «F2» на клавиатуре. Откроется окно, в котором вам нужно будет указать место для записываемого документа и его название. После этого нажмите «Сохранить» .
  8. Теперь можно приступать непосредственно к записи. Открываем вкладку «Захват» с верхней панели инструментов и в ней выбираем пункт «Захватить видео» .
  9. О том, что захват видео начался, будет сигнализировать надпись «capture in progress» в шапке главного окна.
  10. Для того чтобы остановить запись, нужно снова открыть окно программы и зайти в раздел «Захват» . Появится уже знакомое вам меню, в котором на этот раз нужно кликнуть по строке «Прервать захват» .
  11. После остановки записи можете просто закрыть программу. Ролик будет находиться в указанном ранее месте под присвоенным ему именем.

Вот так выглядит процесс захвата картинки с помощью приложения VirtualDub.

Удаление звуковой дорожки

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


В результате звук из вашего клипа будет полностью удален.

Как открыть ролики формата MP4 и MOV

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

  1. Сперва зайдите в корневую папку приложения и посмотрите, есть ли в ней вложенные папки с названиями «plugins32» и «plugins64» . Если таковые отсутствуют, то просто создайте их.
  2. Теперь надо найти в интернете плагин «FccHandler Mirror» для VirtualDub. Скачиваете архив с ним. Внутри вы найдете файлы «QuickTime.vdplugin» и «QuickTime64.vdplugin» . Первый из них нужно скопировать в папку «plugins32» , а второй, соответственно, в «plugins64» .
  3. Далее вам понадобится кодек под названием «ffdshow» . Его также можно без проблем отыскать на просторах интернета. Загружаете установочный пакет и инсталлируете его на компьютер. Обратите внимание, что разрядность кодека должна совпадать с разрядностью VirtualDub.
  4. После этого запускаете редактор и пробуете открыть ролики с расширением MP4 или MOV. На этот раз все должно получиться.

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

16 комментария