Наложение субтитров и логотипов на видеоизображения с помощью программы VirtualDub

(для трансляции видеороликов на плазменных панелях с помощью Dune HD Network и др.)

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

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

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

Основные возможности VirtualDub:

VirtualDub поддерживает обработку файлов размером более 2 Gb, имеет встроенный Motion-JPEG, MPEG-1 декодер, конвертирует MPEG-1 в 24-bit AVI и имеет много других полезных функций. Так, с подключенным плагином VirtualDub умеет работать с .vob-файламами (DVD-фильмы) и форматом MPEG2, а при подключении соответствующих плагинов также поддерживаются и файлы форматов .3gp, .mp4, .mov, .asf, .wma, wmv, .pvn, .flv, .fli, .flc и многие другие.

Особое значение при работе с видео имеют различные фильтры, написанные специально для VirtualDub, которые относительно просты в использовании (установка, настройка, тестирование). Причём эти фильтры могут быть написаны всеми, кто умеет программировать. Именно поэтому даже более наглядные и профессиональные видеоредакторы, такие как Pinnacle Studio и Adobe Premiere, в чём-то уступают VirtualDubу! (Более полную и продробную информацию о работе с VirtualDub приведена на PcTuner.ru и на 3Dnews.ru, а также в оффлайн на PcTuner.ru и на 3Dnews.ru.)

Также существует множество других аналогичных и даже более совершенных программ, созданных на основе VirtualDub, например, VirtualDubMod (скачан сайта Sourceforge.net) или VirtualDub MPEG. Также на основе VirtualDub возможна работа утилиты AVISynth (см. Основы использования утилиты AVISynth при обработке видео и Руководство по утилите AVISynth). Многие могут осудить, что по сравнению с ними сам VirtualDub «давно и безнадёжно» устарел. Но, по моему мнению, научившись работать в основной программе, каждый сможет поэкспериментировать для себя все дополнительные возможности новейших «клонов» VirtualDubа.


Теперь перейдем к теме данной статьи. Для образного представления всех необходимых действий ниже приведён следующий алгоритм:

  1. Подготовка ОС для работы с видео: установка кодеков, проигрывателей, видео конверторов и программы VirtualDub с необходимыми фильтрами;
  2. Подготовка исходных видеороликов для обработки в VirtualDub;
  3. Работа с VirtualDub: начальные установки и редактирование видеоролика без применения фильтров;
  4. Работа с VirtualDub: настройка и применение фильтра resize;
  5. Работа с VirtualDub: настройка и применение фильтра logo;
  6. Работа с VirtualDub: настройка и применение фильтра subtitler;
  7. Работа с VirtualDub: сохранение полученного видеоролика в формат avi;
  8. Преобразование формата avi в vob с помощью конверторов.

1. Для работы с видео на компьютере должны быть установлены нормальные кодеки (кодеры и декодеры), программы для воспроизведения (плееры), преобразования (конверторы) и редактирования (редакторы) аудио и видео. Для воспроизведения и преобразования мультимедиа наиболее качественными являются кодеки из пакета K-Lite Mega Codec Pack (начиная с версии 1.5). При установке данного пакета кодеков рекомендуется установить все кодеки кроме DivX (для воспроизведения DivX-файлов лучше использовать libavcodec от FF Show).

В K-Lite Mega Codec Pack входят проигрыватели Media Player Classic и BS Player, которые намного лучше, качественнее и быстрее работают с множеством форматов аудио и видео, отображают субтитры, позволяют просмотреть свойства аудио и видео, чем стандартный Windows Media Player – очередная недоделка microsoft :-). Если кодеки установлены нормально, то видео среднего качества (640x480, 768x576), воспроизводимое через Media Player Classic, практически не тормозит даже на медленных компьютерах.

Также в качестве видеопроигрывателя можно использовать простой, удобный и бесплатный плеер Light Alloy (версия 4.0 и более), который отлично проигрывает ещё и музыку. Для воспроизведения звука наиболее удобными и многофункциональными являются плееры WinAmp и Aimp.

Видеоконверторов, видеограбберов, видеорипперов и пр. аналогичных программ можно найти очень много. Все они нужны для преобразования видео/аудио информации из одного формата в другой, чтобы исходное видео/аудио можно было просмотреть/прослушать на другом устройстве (DVD-проигрывателе, MP3-плеере, мобильном телефоне) или чтобы его можно было открыть/изменить в любом другом приложении (видеоредакторе, специализированном ПО). При решении этих задач выбрать какой-нибудь универсальный и общий для всех случаев конвертор невозможно. Учитывая многообразие форматов и необходимых требований, предъявляемых к выходному видео/аудио, при выборе подходящих видеоконверторов следует обратить внимание на возможность сохранения/изменения:

Наиболее удачными и проверенными видеоконверторами, на мой взгляд, являются Total Video Converter, Ani Video Converter, Amadis Video Converter Suite, My Video Converter, ImTOO HD Video Converter.

Учитывая огромное разнообразие видеоредакторов, профессиональных и простых, удобных и многофункциональных, на компьютере могут быть установлены десятки различных приложений для захвата, обработки и монтажа видео. Но в данном случае в качестве видеоредактора будем использовать русскую версию VirtualDub v1.8.6.30009 (В этой версии содержится фильтр logo, который понадобится для наложения логотипа!). Также на ваше усмотрение можно предложить более новые английские версии VirtualDub v1.9.6 и VirtualDub 1.9.8, которые есть на сайтах Sourceforge.net и Softodrom.ru.

2. После правильной установки и настройки ПО можно приступать к работе с видео.

Данный VirtualDub понимает не все форматы, и иногда при открытии конкретного файла определенного типа (часто mp4, mov, flv, иногда vob, mpg и avi) видеоизображение либо отображается с искажениями, либо не отображается (черный экран). Поэтому исходное видео приходится предварительно преобразовывать в avi формат с использованием кодека DivX 5.0 и выше. Также этот VirtualDub часто «ругается» на переменный битрейт исходного видео, хотя файл открывается (см. Рисунок 1).


Рисунок 1

Все операции по предварительному преобразованию я проводил через My Video Converter (см. Рисунок 2).


Рисунок 2

3. Когда исходное видео подготовлено (видеофайл нормально открывается в Virtual Dub) можно приступить к непосредственному редактированию. Ответы на вопросы «Как работать в VirtualDub?» подробно описаны на сайтах 3Dnews.ru и PcTuner.ru и в оффлайн на 3Dnews.ru и на PcTuner.ru, да и в инете есть много всякой инфы про него. Поэтому перейдем сразу к делу. Для начала нужно установить оптимальные параметры, которые влияют на сохранение выходных видеофайлов.

Если мы работаем над видеороликом, который будет транслироваться на плазменной панели, то звуковая дорожка не нужна. В меню Аудио ставим маркер возле пункта "Без аудио" (см. Рисунок 3).


Рисунок 3

По умолчанию при запуске VirtualDub компрессия видеоизображения не используется (в меню Видео–>Компрессия... (см. Рисунок 4) выставлено значение "(Uncompressed RGB/YCrCb)"), а если сохранить выходное видео среднего качества, то пара минут видео займёт на жёстком диске несколько Гигабайт! С этим надо поосторожнее...


Рисунок 4

Поэтому для сжатия выходного видео нужно выбрать какой-нибудь кодек из тех, которые приведены на Рисунке 5. Наиболее эффективным, оптимальным и качественным является DivX (это проверено многочисленными опытами, тестами, экспериментами).


Рисунок 5

В настройках кодека устанавливаем следующие параметры (см. Рисунок 6):


Рисунок 6

Версия кодеков может отличаться, поэтому, главное, чтобы видео сохранялось с наименьшими потерями, с наилучшим качеством (quality), с максимальным битрейтом 6000 kbps. Для простоты вывода видео установлен один проход (Rate control mode: 1-pass), хотя Virual Dub позволяет сохранять видео в несколько проходов (см. 3Dnews.ru в интернете и в оффлайне). Значительной разницы в уменьшении размера файла и изменении качества исходного видео при многопроходной и однопроходной компрессиях я не заметил. Поэтому проще использовать однопроходное сжатие.

Также для оптимизации и удобства работы с программой рекомендуется в меню Вид выключить опцию «Отображать входное видео» и включить опцию «Поменять исходную/выходную панель» (см. Рисунок 7):


Рисунок 7

После предварительных установок можно перейти к работе с видео. Открываем исходный видеофайл. Обрезаем начальные и конечные кадры с заставками «konopoisk.ru», «русская версия» и зелёным экраном, оставляя только сам видеоролик.

4. Далее переходим к самому интересному – работе в Virtual Dub с применением фильтров.

Поскольку исходные ролики могут иметь нестандартное или неподдерживаемое разрешение, то довольно часто приходится менять его на стандартное поддерживаемое разрешение для устройств Dune HD Network и др. – 720x576. Наиболее эффективно использовать уменьшение размера кадров, например, если исходный ролик в HDTV формате.

Для этого в Virtual Dub используется стандартный фильтр resize (зайти в меню Видео–>Фильтры...–>Добавить... и выбрать в списке resize). Далее в появившемся окне нужно задать параметры для данного фильтра, также как на Рисунке 8:


Рисунок 8

В настройках фильтра блок «Размеры» изменяет исходное изображение в кадре, и при этом могут происходить искажения по ширине и высоте, а блок «Кадры» изменяет положение этого изображения в кадре относительно его границ, а лишние края изображения могут отсекаться. Блок «Размер по кодеку» задает разрешение по горизонтали и вертикали кратное 4, 8 и 16 пикселям, чтобы видео воспроизводилось данным кодеком без искажений.

Данный фильтр должен быть настроен таким образом, чтобы исходное изображение не искажалось и полностью вмещалось в кадр: в блоке «Размеры» новый размер задается точно в количестве пикселов – 720 по ширине (значение по высоте вычисляется автоматически), соотношение сторон – как в источнике, режим фильтра – Precise bicubic (A=-1.00) [для широкоэкранного формата 16:9 рекомендуется установить Precise bicubic (A=-0.75), хотя значительной разницы нет], без чередования в блоке «Кадры» нужно установить «Заполнение до соотношения сторон» 4:3, цвет заполнения – чёрный, в блоке «Размер по кодеку» установить «Без подстройки» (см. Рисунок 8).

По поводу настроек данного фильтра нужно сделать важное замечание: в частных случаях все настройки могут отличаться от представленных на Рисунке 8! Например, если изображение на исходных видеороликах искажено (вытянуто или сплющено)(при изменении соотношении сторон 16:9->4:3), то при изменении размера кадра можно попытаться восстановить изображение, настраивая при этом фильтр resize наиболее подходящим образом.

Также данный фильтр позволяет сохранить настройки и просмотреть изображение на выходе (см. Рисунок 9):


Рисунок 9

5. Логотип можно наложить на исходное изображение с помощью фильтра logo, который входит в комплект с русской версией VirtualDub v1.8.6.30009. Настройки фильтра предельно просты: открываем рисунок в формате bmp, tga, jpg, png, включаем попиксельное альфа смешивание через альфа канал и указываем координаты рисунка. Логотип «Синема Парк» удобно размещать наверху по центру.

Самое сложное в этом фильтре – это нарисовать необходимый рисунок :-). Поэтому пришлось с помощью GIMPa заранее нарисовать этот логотип под заданное разрешение видеоролика – 720x540 (для плазменных панелей) и 320x240 (для рекламного экрана).

Также стоит отметить, что рисунок должен содержать прозрачные области (альфа канал), а данный фильтр хорошо понимает только формат tga.

Ниже на Рисунках 10 и 11 приведены настройки фильтра и полученный результат:


Рисунок 10


Рисунок 11

6. Чтобы в нижней части видеоизображения были надписи с названием фильма/видеоролика можно воспользоваться фильтром subtitler, который работает с ssa-скриптом (Sub Station Alpha v2.x/4.x). Фильтр Subtitler v2.4 можно скачать с неофициального сайта по VirtualDub VirtualDub.kulichki.ru и установить его в папку \VirtualDub\plugins (обычно это C:\Program Files\VirtualDub\plugins). Русский вариант спецификации скрипта SSA (SubStation Alpha) приводится на сайте Subs.com.ru (Subtitles Catalogue) или здесь в оффлайн. Самое удивительное в этом фильтре то, что его не нужно настраивать: правильное отображение надписей, их положение, цвет, фон, начертание, время отображения и пр. параметры задаются в самом скрипте! Пользуясь приведенной спецификацией, я написал два ssa-файла субтитров: отдельно для видеороликов на плазменные панели и отдельно для видеороликов на экран на улице. Написание сриптовых файлов не требует особых усилий, поэтому, я думаю, и разобраться в них будет не сложно. Ниже привожу тестовый ssa-файл и упрощённый текст ssa-файла для наложения субтитров (красным выделены основные параметры, которыми можно задавать правильное отображение субтитров):

[Script Info]
; скрипт субтитров к видеороликам
Title: Субтитры для плазм
ScriptType: v4.00
Collisions: Normal
PlayResX: 720
PlayResY: 540
PlayDepth: 24
Timer: 100,0000

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Comic Sans MS,65,&HFFFFFF&,&HFFFFFF&,&H3B4144&,&H3B4144&,-1,0,1,1,0,2,3,3,3,0,204

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:00.00,0:10:00.00,Default,,0000,0000,0000,,Название фильма
Dialogue: Marked=0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,

Параметры PlayResX: 720 и PlayResY: 540 задают горизонтальное и вертикальное разрешение видеоролика, на которое настроен скрипт. Для плазменных панелей разрешение обычно равно 720x540.

Параметр 65 указывает на размер шрифта. Для плазменных панелей оптимальным является размер 65 пунктов для названий фильмов, вмещающихся на одну строку, и 62 пункта для длинных названий фильмов, которые приходиться размещать в две строки.

Параметр 0:10:00.00 устанавливает конечный момент времени отображения названия фильма. По умолчанию время выставлено на 10 минут. Но все зависит от длины видеоролика и если длительность его превышает это значение или субтитры должны как-то динамически меняться, то этот параметр следует изменить.

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

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

Также есть второстепенные параметры: начертание шрифта (Comic Sans MS), цвета надписей (&HFFFFFF&,&HFFFFFF&,&H3B4144&,&H3B4144&), а также отступы и выравнивание относительно границ видеоизображения, которые подробно описаны в спецификации.

Все изменения в данные скрипты можно внести при помощи обычного Блокнота. После того как ssa-скрипт исправлен и сохранён, нужно в VirtualDub через фильтр Subtitler указать путь к файлу скрипта. Все остальные параметры фильтра менять не нужно. По умолчанию: установить Enable advanced rasterizer (Разрешить расширенную расторизацию) для отображения оттенков и теней для надписей и {\q0} Smart word wrapping – Automatic, with lines evenly broken (Умный перенос слов – Автоматический с равномерным разделением) для выбора способа переноса слов по умолчанию.

Ниже на Рисунках 12 и 13 приведены настройки фильтра и полученный результат:


Рисунок 12


Рисунок 13

7. После того как все фильтры добавлены и настроены они отображаются в списке фильтров, представленном на Рисунке 14:


Рисунок 14

Фильтры можно включать и выключать. Но при этом очень важно соблюдать порядок действия фильтров.

Далее остается только "Сохранить файл как AVI...", указать директорию и имя выходного файла и запустить процесс преобразования (см. Рисунок 15)! Так следует поступать, если видео сохраняется в один проход!!!


Рисунок 15

Если использовать несколько проходов, то в окне сохранения файла необходимо установить галочку Don’t run this job now; add it to job control so I can run it in batch mode. (Не выполнять это задание сейчас; добавить его в управление заданиями так чтобы я мог управлять им в пакетном режиме), поменять номер прохода в настройках кодека и запустить Управление заданиями. Более подробное описание многопроходного сохранения см. на сайте 3Dnews.ru в интернете и в оффлайне.

8. Итак, видеоролик готов. Но для полной совместимости с сетевыми медиапроигрывателями (Dune HD Network и др.) необходимо преобразовать полученные avi-файлы в vob. Все эти преобразования также легко проводить через My Video Converter (см. Рисунок 16):


Рисунок 16


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


При написании данной статьи были использованы следующие материалы с сайтов: