Как пользоваться VirtualDub: уроки по конвертации видео файлов. Virtual Dub

Детские товары 03.08.2019
Детские товары

1. VirtualDub переводится в режим захвата: «Файл->Захватить видео в AVI»

2. Задается имя файла: «Файл->Установить захватываемый файл»

3. Выбирается устройство захвата

4. Выбирается источник видео. Для ТВ тюнера это либо сам модуль ТВ, или один из входов.

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

6. Далее проверяются некоторые пункты меню «Видео»: «Опция захвата», «Опция просмотра», «Фильтр захвата», «Переходник», «Установить формат». Общее правило - надо проверить соответствие системы цвета PAL/SECAM, установить разрешение, формат. Для предыдущего ТВ тюнера на чипе BT878 (Avermedia 203) я использовал разрешение 768*576 (YUY2). Метод захвата в разрешение 704*576 с добавлением бордюров до 720*576 с имеющийся картой был неприемлем, так как нарушалась геометрия, т.е. соотношение сторон 4:3 - круг становился овалом. Для тюнера AverTV 307 разрешение ставлю 720*576 (YUY2).

7. В пункте «Компрессия» выбирается подходящий видеокодек для сжатия при захвате.

8. В разделе «Аудио» первым делом включается измеритель сигнала. Затем следует выбрать устройство, аудиовход, источник. Неважно, есть ли звук в динамиках, наличие сигнала определяется по включенному измерителю уровня. Через системный микшер системы устанавливается уровень аудиосигнала. Для точной регулировки и избежания перегрузки все же нужно провести несколько пробных захватов.

9. Формат захвата mono (если устройство моно), частота 48000 Гц. (стандарт DVD). При использовании тюнера на BT 878 и аудиокарты SB Live Value 5.1 я ставил частоту 44100, иначе возникала рассинхронизация. Поэтому, при наличии проблем с синхронизацией с этим параметром следует поэкспериментировать.

10. Компрессия для звука - РСМ, то есть без сжатия.

11. Проверка пункта «Захват->Настройки->Частота кадров 25.000». Возможно, там по умолчанию окажется другое значение, например 15.000, что приведет к рассинхронизации.

12. Установка активным пункта «Захват->Увеличении имени файла после захвата» позволит не затереть случайно уже захваченный файл, и полезно при захвате фрагментами.

13. В разделе «Видео» (вызывать удобнее клавишами «L» и «H») выводятся регуляторы уровней видеосигнала и гистограмма.

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

Насыщенность, резкость устанавливаются визуально.

14. Можно пройтись повторно по настройкам что бы убедиться, что какой то пункт «не слетел».

15. Запуск захвата - F5, остановка - ESC.

При наличии качественного источника, как правило, получается видеофайл с синхронизированным звуком. Так, при захвате с видеокамеры HI8 кассеты длительностью 1.5 часа тюнером на BT878 в моей практике практическая рассинхронизация на протяжении всей длинны записи обычно составляла 1-2 кадра, что вполне достойный результат. Тем не менее, при захвате с VHS кассеты с затертыми или плохими участками, срывом синхронизации, с эфира с потерей сигнала и в др. сложных случаях можно было все же получить смещение аудиодорожки. Предположу, что наличие аппаратной аудиокарты дает больше шансов на успешный захват, нежели использование встроенного звука. Важным для успешного захвата является также исключение дефрагментации диска, отсутствии загрузки процессора какими либо фоновыми процессами, отключение компьютера от сети при наличии таковой. Впрочем, даже в случае неспешного по синхронизации звук/видео захвата сведение дорожек в видеоредакторе несложная задача.

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

VirtualDub нацелен на работу прежде всего с AVI файлами. Точнее, так: на выходе мы получаем AVI файл (хотя есть возможность работы в роли т.н. фреймсервера (frameserver), аналогично утилите ; модификация 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, хотя более универсальной является отдельная утилита .

Со «склейкой» разобрались, теперь обратимся к «резке», т.е. удалению ненужных фрагментов (например, рекламы из записи телепередачи), а заодно и к перестановке фрагментов местами (через механизм типа буфера обмена - 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-файлы таким образом не получится, для этого удобно использовать .

Пример №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 файлы. С помощью плагинов от можно научить его открывать 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 существует ).

Ещё отметим, что в 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: захват видео, монтаж и конвертация.

После того, как вы решили скачать программу VirtualDub , придется потратить 5-10 минут на то, чтобы разобраться в меню и способах управления, - от этого никуда не деться! Однако наша инструкция VirtualDub облегчит процедуру ознакомления с функционалом.

Захват видео

Итак, вы наверняка уже разобрались, как запустить VirtualDub - для этого у вас есть установочный файл VirtualDub.exe. Пожалуй, главной кнопкой в открывшемся меню будет «Файл» («File»). Именно в этой закладке находится функция Capture avi.

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

Далее приступаем к захвату видео, нажав «Capture video»(«Захватить видео»). Кстати, есть и более быстрый вариант начать запись - нажатие клавиши F6 в диалоговом окне проги. Захват начнется сразу же. Чтобы прервать его, достаточно кликнуть Esc. Важно помнить, что, если объем захватываемого видео превышает 2 ГБ, то оно будет делиться на куски в пределах этих размеров.

Монтаж

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

Мы снова-таки обращаемся к кнопке File => Open video file => выбираем видео на компьютере => нажимаем «Открыть». В этой же закладке есть и кнопка «Добавить сегмент avi», позволяющая добавить и соединить два разных клипа. На панельке с кнопками «Старт», «Пауза», «Перемотка» вы увидите значки в виде стрелочек с одной зазубриной. Они позволяют вырезать или обрезать фрагмент, первая (с зазубриной слева) отмечает начало ненужного эпизода, а вторая - конец.

Для склейки кадров обращаемся к Append video segment. Другие инструменты по обработке находятся в закладках Edit и Tools.

В Video можно выбрать эффекты и установить количество кадров в секунду - за это отвечает Frame rate. Это понадобится, если звук отстает от видео. Кнопка Audio может здорово выручить в случае, если в фильме слабый звук - тут присутствует регулятор громкости, который можно поднять и зафиксировать. Чтобы применить фильтр, нажимаем «Add Filter».

Так, с помощью Deinterlace мы можем «уменьшить шумы» и увеличить чёткость кадров, Re-size уменьшит или увеличит изображение, а Levels - откорректирует уровень освещенности изображения.

Конвертация

Мы рекомендуем отключить обработку аудиопотока, чтобы не нагружать процессор и не затягивать процесс конвертации. Поэтому в закладке Audio выбираем No Audio. Далее следуем по пути: Video =>Full processing mode =>Compression.

Перед нами откроется окошко. Там выбираем кодек, к примеру - DivX (он отличается стабильностью и совместимостью с большинством внешних плееров). После этого переходим к закладке Main. Тут мы можем повысить качество, двигая ползунок на Quality. Правда, чем выше будет этот показатель, тем больше времени уйдёт на кодирование.

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

25.04.2011

Программное обеспечение для обработки цифрового видео, как правило, стоит довольно дорого, но не VirtualDub.

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

За простым интерфейсом VirtualDub скрываются широкие возможности

Программа VirtualDub (www.virtualdub.org) -- редкое и потому приятное исключение из правил. Во-первых, эта утилита распространяется бесплатно. Когда ее автор, студент колледжа Avery Lee, начинал разработку, он делал все, что называется, «для себя», поэтому программа вышла очень продуманной и гибкой. Во-вторых, VirtualDub способна выполнять некоторые очень важные и полезные операции, которых можно не найти даже в дорогих коммерческих видеоредакторах. Конечно, при размере в несколько мегабайт этой утилите не потягаться с такими известными пакетами для обработки видео, как Adobe Premiere Pro, Edius и т.д., однако большинство наиболее важных операций с помощью данного приложения выполнить удастся.
Кроме того, следует отметить высокую скорость и стабильность работы утилиты, обусловленные тем, что она построена по принципу «ничего лишнего». Аскетичный интерфейс, отсутствие второстепенных функций и вдобавок поддержка многопоточности позволяют эффективно использовать аппаратные возможности и максимально задействовать мощности современных процессоров.
В этой статье мы рассмотрим восемь востребованных задач, которые можно легко и быстро решить с помощью VirtualDub.

Сохранение звуковой дорожки
В некоторых случаях бывает нужно сохранить звуковую дорожку в виде отдельного файла. Например, вы хотите слушать концертную запись в плеере по дороге в институт или на работу либо извлечь аудиоданные из видеофайла, чтобы отредактировать в аудиоредакторе неудачно записанную звуковую дорожку. Подобные задачи VirtualDub решает быстро и качественно.
Одно из достоинств программы состоит в том, что она сохраняет аудио- и видеопотоки без повторной компрессии. Она будет очень полезна при сохранении аудиотрека отдельным файлом. Чтобы отделить звук от видео, следует открыть в программе видеофайл и выяснить, находится ли переключатель в меню Audio в положении Direct stream copy. Затем нужно сохранить файл, выбрав команду File > Save as wav.
Записать звуковую дорожку можно сразу в определенный формат, к примеру в поддерживаемый каким-нибудь портативным устройством, скажем MP3-плеером. В результате исходный файл будет конвертироваться в формат, указанный пользователем. Для этого необходимо в меню Audio установить переключатель в положение Full processing mode и выбрать команду Audio > Compression. В появившемся меню нужно указать тип кодека, который будет использоваться для сжатия аудиотрека, а также его параметры -- частоту дискретизации и битрейт, определяющие качество сохраняемого файла. Далее следует выбрать команду File > Save as wav. После завершения описанных выше действий программа выполнит конвертирование звуковой дорожки в требуемый формат.
Учтите, что файл будет сохранен с расширением.wav, из-за чего не все устройства и приложения сумеют корректно определить его содержимое. А когда программа сконвертирует и запишет аудиофайл на жесткий диск, его разрешение можно изменить вручную в любом файловом менеджере, установив «правильное» MP3 или другое.

Резка клипа без потерь
Как уже было отмечено, VirtualDub помогает редактировать видеофайлы без повторной компрессии. Благодаря этому в программе можно, например, вырезать из концертной записи определенную композицию. Чтобы выполнить такую операцию, откройте исходный файл и передвиньте ползунок в положение, соответствующее началу фрагмента, который необходимо сохранить на диск отдельным файлом. Обозначьте начало этого клипа, нажав на клавиатуре клавишу или выбрав в меню программы Edit пункт Set selection start. Теперь передвиньте ползунок на конец вырезаемого эпизода и нажмите клавишу или укажите в меню программы Edit пункт Set selection End. На временной шкале выделенный промежуток будет обозначен цветом.


Чтобы вырезать фрагмент из клипа, нужно указать его границы

Чтобы избежать повторной компрессии, выберите пункт Direct stream copy в меню Video и аналогичный пункт в меню Audio. Теперь можно сохранять файл с помощью команды File > Save as AVI. Поскольку не требуется повторное сжатие, то процесс сохранения отдельного фрагмента видео занимает очень мало времени и фактически сводится к записи файла на диск.

Объединение нескольких клипов в один
Главное неудобство, которое ощущается при работе с VirtualDub, -- отсутствие многодорожечного интерфейса. На первый взгляд может даже показаться, что программа работает только с одним клипом. На самом же деле VirtualDub способна выполнять такую полезную операцию, как «склейка», объединяя неограниченное число фрагментов в один.
Склейка осуществляется двумя способами -- по отдельности и пакетно. Объединение двух и более файлов без повторной компрессии выполняется лишь при условии, что они имеют одинаковые параметры. Чтобы присоединить один фрагмент к уже открытому клипу, следует выбрать в меню программы команду File > Append AVI segment и указать присоединяемый файл. Убедиться в том, что клипы предварительно склеены, поможет временная шкала -- продолжительность видео должна увеличиться.
Когда же нужно объединить группу видеофайлов, необходимо назвать их определенным образом: video001.avi, video002.avi, video003.avi и т.д. И тогда при изготовлении из отдельных фрагментов целого видео файлы автоматически встанут в том порядке, в каком они пронумерованы. Пользователю останется добавить лишь первый файл. Далее операция склейки выполняется точно так же, как и при работе с двумя файлами.

Замена звуковой дорожки
Выполнять данную операцию имеет смысл, например, при работе с двумя видеофрагментами, скажем парой фильмов. В одном -- плохое видео, но качественное звуковое сопровождение, в другом -- изображение хорошее, но звук неважный. Значит, для получения требующегося результата нужно будет подменить звуковую дорожку, совместив хорошее качество видео и нормальный звук.
А чтобы замена аудиодорожки осуществилась корректно, необходимо соблюдать определенные условия. Так, продолжительность аудио не должна сильно отличаться от исходной продолжительности видео. Кроме того, следует учитывать, что некоторые форматы видео совместимы со звуковыми дорожками только определенного формата. Аудиодорожку лучше всего подготовить в другой программе (например, в бесплатном аудиоредакторе Audacity), хотя в данной утилите и есть функция импорта аудиотрека из другого видеофайла.
Для замены звуковой дорожки нужно открыть исходное видео в VirtualDub и выполнить команду Audio > Audio From Another File. А затем следует указать путь к аудио- или видеофайлу и сохранить результат.

Пакетная обработка видео в VirtualDub

Редактор VirtualDub содержит так называемый список заданий (Job List), позволяющий автоматизировать обработку файлов. Например, стоит задача конвертировать с десяток видеофайлов в разные форматы. Если бы в программе не было поддержки пакетной обработки, пришлось бы по очереди загружать в нее видео, указывать каждый раз новые настройки, ждать, пока она запишет файл на диск, затем открывать следующее видео и снова ждать, пока VirtualDub справится с процессом сжатия и т.д. Благодаря поддержке пакетной обработки видео, можно лишь указать, какие операции должны быть выполнены, а затем оставить компьютер без присмотра. Утилита обработает данные, строго придерживаясь оставленных инструкций. Чтобы занести какое-нибудь задание в список Job List, необходимо использовать набор команд в меню File > Queue batch operation.

VirtualDub умеет обрабатывать файлы в пакетном режиме

Скажем, если нужно последовательно выполнить сжатие двух файлов, необходимо проделать следующие действия. Открыть первый файл, указать параметры сжатия и, если потребуется, начало и конец сохраняемого клипа. Потом следует выбрать в меню File > Queue batch operation > Save as AVI. После этого программа не будет выполнять никаких действий, и можно открыть следующий файл, настроить новые параметры его экспорта и еще раз выбрать нужную команду из подменю Queue batch operation. Далее, когда все задания будут составлены, необходимо раскрыть список Job List в меню File > Job control и нажать в нем кнопку Start, чтобы запустить процесс пакетной обработки.

Многопроходное кодирование
Если требуется подготовить видео для просмотра на мобильном устройстве или перевести его в определенный формат для публикации на одном из онлайновых сервисов, это поможет сделать VirtualDub. Многие алгоритмы сжатия видео поддерживают кодирование в несколько потоков, однако далеко не все знают, как эту технологию применить на практике.
Допустим, необходимо сжать файл кодеком x264vfw (он устанавливается дополнительно, например, вместе с пакетом кодеков K-lite). Когда файл будет открыт в программе, нужно выбрать в меню Video > Full processing mode, а затем -- команду Video > Compression. В списке установленных видеокодеков следует указать пункт x264vfw - H.264/MPEG-4 AVC codec. Затем в правой части окна надо нажать кнопку Configure, чтобы перейти к настройке процесса сжатия. Потом в окне настроек кодека, в раскрывающемся списке Rate Control, нужно выбрать пункт Multipass 1st pass (он обозначает первый проход при многопроходном кодировании) и установить флажок Zero Latency, а в поле Target bitrate kbit/s задать скорость потока. Чем больше этот параметр, тем выше будет качество изображения. Далее следует нажать на кнопку ОК и указать формат звуковой дорожки (команда Audio > Compression) и тип кодека, например Mp3 48 кГц 128 kBit/s, stereo.

Настройка многопроходного кодирования

Теперь нужно выбрать в меню программы File > Queue batch operation > Save as AVI. Затем необходимо еще раз перейти к настройкам кодека для сжатия видеодорожки и в списке Rate Control выбрать пункт Multipass Nth pass (проход кодирования, отличный от первого). Никакие другие настройки изменять при втором, третьем и следующих проходах не придется. Далее следует повторно занести команду сохранения файла в список заданий File > Queue batch operation > Save as AVI. Если же понадобится выполнить кодирование в три (или более) прохода, то следует добавить в список заданий команду сохранения файла столько раз, сколько требуется. При каждом выборе этой команды имя файла должно оставаться одним и тем же. Многопроходное кодирование позволит кодеку оцифровать данные в несколько проходов. После каждого цикла компрессии программа записывает, а затем обновляет вспомогательный файл статистики, информация из которого используется алгоритмом многопроходного сжатия при любом очередном проходе.
Когда все задания будут добавлены в список, нужно открыть список пакетной обработки заданий VirtualDub Job Control, нажав клавишу. В нем отображена вся последовательность действий, которые должна выполнить программа. Для начала кодирования надо нажать кнопку Start и дождаться окончания обработки файла программой. Когда процесс конвертирования видео завершится, в списке заданий напротив каждой строки в колонке Status будет стоять Done (Готово). Чтобы не возникло случайных ошибок, при обработке видео не рекомендуется запускать ресурсоемкие приложения и вообще работать в это время на компьютере. Поскольку принцип многопроходного кодирования идентичен независимо от выбираемого кодека, сжатие с его использованием кодеками DivX, VP70 и пр. будет мало отличаться от описанного варианта для x264.

Применение фильтров
Чтобы откорректировать цветопередачу, наложить логотип на видео, изменить соотношение сторон и выполнить другие операции с видеофайлом, потребуются видеофильтры. Так вот в VirtualDub их множество, причем самых разных.
К одному ролику допустимо применять любое количество фильтров. Чтобы назначить фильтр, необходимо выполнить команду Video > Filters, нажать кнопку Add и выбрать нужный. Если в фильтре присутствуют какие-то настройки, они отобразятся на экране сразу же после его добавления. А чтобы вернуться к ним после выбора фильтра в списке стандартных модулей VirtualDub, достаточно указать в меню команду Video > Filters и, выделив в перечне установленный, нажать кнопку Configure.


Встроенные и дополнительные фильтры -- главные инструменты VirtualDub

Среди наиболее полезных фильтров, употребляемых для обработки видео, стоит выделить следующие:
Deinterlace -- устраняет эффект «гребенки», возникающий при наличии в видео смещения четных и нечетных строк изображения. Стандартный фильтр деинтерлейсинга в VirtualDub позволяет устранить этот недостаток изображения, используя несколько алгоритмов решения проблемы.
Resize -- помогает изменить размер картинки обрабатываемого видеофайла. При изменении оригинального размера картинки можно выбирать тип аппроксимации точек, чтобы получить наиболее четкую картинку.
Logo -- позволяет нанести на видео водяные знаки. С помощью данного инструмента легко поместить в любое место экрана картинку из файла формата JPG, TGA, PNG, BMP или JPEG. В настройках фильтра Logo можно использовать параметр прозрачности и маску альфа-канала для накладываемой на видео картинки.
Rotate -- предоставляет возможность подбирать оптимальную ориентацию кадра видео для просмотра на экране мобильного устройства, например смартфона. С его помощью удастся повернуть исходное изображение на 90, 180 или 270 о
Rotate2 -- действует аналогично предыдущему. Однако в настройках этого фильтра разрешается указывать произвольный угол поворота, а положение смещенных точек кадра аппроксимируется по одному из нескольких алгоритмов. Кроме того, в настройках фильтра предлагается установить цвет поля, которое становится видимым при повороте картинки.
Помимо стандартных фильтров в программе VirtualDub можно использовать дополнения сторонних разработчиков, в том числе как бесплатные модули, так и коммерческие.

Рассинхронизация видео и звука
Эта проблема часто возникает при воспроизведении некорректно сжатых файлов. Причин рассинхронизации может быть много -- от неправильно выбранных настроек кодирования до ошибок при обработке видеопрограммой. К счастью, существует несколько способов решить ее.
Если аудиотрек имеет постоянную величину смещения видео относительно звука, необходимо в настройках кодирования указать параметр задержки аудиодорожки. Для этого в меню Audio нужно выбрать пункт Interleaving, установить флажок Enable audio/video interleaving и в поле Delay audio track by указать значение в миллисекундах, на которое происходит отставание или опережение звука. Если аудио опережает видео, следует указать положительное значение, если отстает --- отрицательное.

Если аудио отстает от видео или наоборот, есть возможность справиться

с такой проблемой

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

Поскольку VirtualDub имеет открытый код, отдельные энтузиасты создали ряд модификаций этой утилиты. Среди наиболее популярных «форков» стоит выделить VirtualDubMod (virtualdubmod.sourceforge.net) и NanDub (ndub.sourceforge.net). Если по каким-то причинам вас не устраивает VirtualDub, вы можете поработать с разными версиями данного видеоредактора. Интерфейс, а также основные функции в этих программах совпадают. Однако следует иметь в виду, что оригинальная версия, в отличие от ее ответвлений, регулярно обновляется.



Рекомендуем почитать

Наверх