- Разовая настройка
- Регулярная настройка: перед каждым захватом видео
- Описание технологии оцифровки
- VirtualDub: секреты профессионалов
В этой статье будет описана оптимальная технология захвата видео с помощью простейшей платы видеозахвата (какой является ТВ–тюнер), и дальнейшей его обработки. Описана последовательность действий, которые необходимо выполнить в каждой из 3 популярных программ — iuVCR, VirtualDub и Cool Edit Pro (Adobe Audition), чтобы получить хорошее качество изображения и звука даже при низком качестве исходной записи. Выбор программ в большинстве случаев определяется их функциональными возможностями, а когда их возможности равны — личными предпочтениями. Исчерпывающая подборка теоретических сведений о работе с видео на ПК изложена в большом руководстве по обработке видео.
Примечание. Строго говоря, эту же методику можно применять для захвата видео не только при помощи ТВ–тюнера, но и при помощи видеокарты с возможностью захвата видео (VIVO: video in, video out) и любых карт захвата, допускающих захват несжатого видео и имеющих драйверы, предоставляющие DirectShow интерфейс. Также с минимальными поправками вы можете использовать эту технологию для захвата видео с устройств, обеспечивающих захват сжатого видео: например, DV–камера.Разовая настройка
Часть настроек можно выполнить единожды за всё время работы с видео, другие настройки придётся изменять для каждой новой записи. Для удобства описание настроек разбито на два раздела.
Установка драйверов
Первым делом необходимо установить и настроить драйверы вашей карты захвата. Эта процедура очень разнится в зависимости от того, какая это карта. Для большинства видеокарт с возможностью захвата нужно установить два комплекта драйверов: собственно для видеокарты и отдельно — для чипа оцифровки видео. Желательно устанавливать последнюю версию драйверов, которую можно скачать с сайта производителя вашей карты.
В случае если ваша карта захвата основана на чипе Conexant bt848/878, рекомендуется использовать альтернативные драйверы Ивана Ускова: эти драйверы устанавливаются поверх стандартных драйверов вашей карты захвата. Сначала установите драйвер своей карты, потом установите драйвер Ускова. На некоторых конфигурациях драйвер Ускова не работает (например, вызывает зависания системы) — в таком случае вам придётся использовать стандартный драйвер. Также вы можете попробовать драйвер от Eduardo Jose Tagle однако на моём компьютере с картой Aver 203 он не работает, поэтому я ничего не могу сказать о нём.
Посмотреть, какие драйверы устройств захвата видео установлены в Windows 2000/XP, вы можете через Панель управления Звуки и аудиоустройства Оборудование. Тут вы можете видеть список драйверов, в том числе и драйверы карты захвата: video capture (захват видео), audio capture (захват звука), crossbar (коммутатор аудио и видео входов), TV tuner (ТВ приёмник).
Настройка iuVCR
iuVCR содержит массу возможностей, которые достаточно удобно разбиты на функциональные группы и расположены на разных страницах в небольшом окне интерфейса программы. Разберёмся со всеми настройками по порядку.
Закладка Файл
Имя файла куда будет записываться оцифрованное видео, его можно менять каждый раз. Добавить датувремя к имени файла будет автоматически добавлены дата и время запуска процесса захвата: это очень удобно, собственно, имя файла при этом можно не менять. В разделе Дополнительные тома можно указать несколько дополнительных логических дисков, на которые будет продолжаться захват, когда закончится место на диске с исходным файлом. Обратите внимание, что в вашей системе (Панель управления Электропитание Схемы управления питанием Отключение дисков) отключёние жёстких дисков должно быть выключено (выберите «никогда») в противном случае вы рискуете потерять 23 секунды записи: в это время жёсткий диск будет включаться. Здесь же можно управлять сегментацией записываемого видео: ограничивая размер файла (актуально для файловой системы FAT32, где файл не может быть больше 4 Гбайт), или ограничивая время записи.
Закладка Видео
В группе Параметры нужно выбрать устройство захвата: это может быть карта захвата или IEEE1394 контроллер. При помощи кнопки Настройка можно получить доступ к настройкам драйвера карты захвата или IEEE1394 контроллера. Обычно драйвер карты захвата позволяет выбрать используемый телевизионный стандарт и настроить параметры изображения: яркость, контрастность, цветность. iuVCR позволяет выбирать все эти параметры отдельно для каждого телеканала (см. Закладка Тюнер), потому изменять настройки драйвера не нужно. При помощи настроек драйвера IEEE1394 контроллера можно управлять подключённой цифровой камерой: воспроизведение, пауза, перемотка и прочее это очень удобно.
Ряд кнопок в группе Параметры позволяет управлять настройками карты оцифровки видео. По нажатию левой кнопки мыши iuVCR показывает своё окно, по нажатию правой кнопки стандартное системное (на случай, если у вас чтото не будет работать). Формат записи позволяет выбрать формат видео, который будет использован для записи при захвате: рекомендуется YUV2 (именно в этом виде данные поступают с карты захвата), максимальное допустимое разрешение (обычно 768x576 или 720x576) и 25 кадров в секунду стандартная частота кадров для стандартов PAL и SECAM (для NTSC надо использовать 640x480 и 29,97 или 30 кадров в секунду). Кнопка Формат просмотра позволяет выбрать параметры видео для просмотра во время захвата. iuVCR по кнопке Просмотр Вкл. отображает окно, в котором показывается видео с выбранного источника. Во время захвата окно просмотра обслуживается после процедур захвата видео, потому возможна ситуация, когда вычислительной мощности компьютера не хватает для корректного отображения окна просмотра (пропускаются кадры). Однако это не значит, что iuVCR не успевает корректно производить захват. Формат видео для просмотра устанавливайте по своему вкусу.
Кнопка Коммутатор вызывает окно управления коммутатором аудио и видео сигналов (в некоторых устройствах захвата используется ещё Коммутатор 2). iuVCR автоматически управляет коммутацией сигналов в зависимости от заданных настроек, потому обычно управлять коммутатором напрямую не нужно. ТВ аудио позволяет выбрать формат звука, который будет захватываться с ТВ приёмника.
Группа Компрессия содержит список установленных в системе кодеров видео, доступных для iuVCR: тут нужно выбрать способ сжатия видео «на лету» во время захвата. Кнопка Настройка позволяет изменить настройки выбранного кодера. Кодеры распределены по группам, которые обозначены цветами: без сжатия, захват отдельных изображений, захват цифрового видео (если у вас в системе установлен IEEE1394 контроллер), DirectShow кодеры, VfW кодеры. Для захвата цифрового видео необходимо использовать [DV] DV Interleaved: при этом видео не сжимается компьютером, а лишь захватывается с камеры в оригинальном цифровом виде.
Закладка Аудио
На этой закладке изменяются параметры оцифровки звука. При захвате цифрового видео (когда оцифровки звука не происходит) эту закладку вы можете полностью игнорировать.
В группе Параметры нужно выбрать звуковую карту, при помощи которой будет производиться оцифровка звука во время захвата аналогового видео. В группе Вход микшера выберите вход звуковой карты, куда подаётся звук оцифровываемого аналогового видео (как правило, Line In или Aux) и установите чувствительность этого входа. Чувствительность входа влияет на громкость записываемого звука: в идеале чувствительность должна быть такой, чтобы максимальная громкость записываемого звука была на уровне около 1 дБ (но не доходила до нулевого уровня, это приведёт к искажениям звука). Уровень чувствительности нужно подобрать экспериментально.
В группе Формат нужно выбрать формат записи звука, изменить его можно при помощи кнопки Настройка. Рекомендуется выбрать формат PCM (без сжатия), 48 кГц, 16 бит, моно или стерео (зависит от звука в записываемом видео сигнале, как правило на ТВ и видеокассетах звук моно). Формат записи звука зависит от вашей звуковой карты: если она аппаратно поддерживает не 48, а 44,1 кГц следует выбрать эту частоту дискретизации. Даже если звуковая карта позволяет записывать звук с частотой более 48 кГц или разрядностью больше 16 бит, вряд ли это стоит делать: качества записи 48 кГц, 16 бит более чем достаточно для большинства видеозаписей.
Закладка Тюнер
Эта закладка служит для управления ТВ приёмником и для переключения видео входов. При помощи кнопки Сканер активируется функция поиска ТВ каналов, по кнопке Тюнер вызывается окно настройки драйвера ТВ приёмника. В списке слева находится список настроек для различных источников видеосигнала: разные ТВ каналы или разные входы карты захвата. Варианты настроек можно добавлять или убирать, перемещать вверх и вниз по списку. Для каждого варианта настройки можно выбрать: видеовход (кнопка в виде значка слева от номера канала), номер канала (для ТВ), название варианта настройки, формат видеосигнала; можно подстроить яркость, контрастность, цветность и насыщенность. В качестве видеовхода могут использоваться ТВ приёмник (антенный и кабельный диапазоны) или различные входы карты захвата: композитный, Svideo. Удобно создать несколько вариантов настройки для одного и того же видеовхода, например «Композит PAL» и «Композит SECAM».
Закладка Опции
На этой закладке собраны настройки различных параметров программы.
Группа Разное. Просмотр со Smart Tee включает специальный режим, который обеспечивает возможность просмотра видео во время записи с карт захвата на базе чипа Conexant bt848/878. Выключить скринсейвер на время работы iuVCR выключает экранную заставку системы Windows: это, вопервых, упростит просмотр видео во время захвата, вовторых, позволит не выделять вычислительных мощностей компьютера экранной заставке. Старт с просмотром окно просмотра видео будет открываться автоматически при запуске программы. Внутренний детектор FPS включает альтернативный механизм сбора статистики о захваченных кадрах. Остановка без сигнала позволяет останавливать захват видео по окончании видеосигнала (конец видеокассеты, ТВ передачи и т.п.). Учтите, что короткие паузы между записями на плёнке, как и существенные повреждения записи, будут расцениваться как отсутствие видеосигнала: захват видео будет останавливаться.
Группа Параметры AVI MUX управляет способом записи видео и звука в AVI файл. Чередование всегда устанавливайте в None, AVI compatibility index включает возможность записи файлов в соответствии со старым стандартом AVI (все современные программы работают с новым стандартом, используйте старый стандарт только в случае невозможности открыть полученный файл). Главный поток управляет тем, параметры какого из потоков данных (аудио или видео) будут корректироваться в случае разной длины записанного видео и звука. В идеальном случае их длина должна быть одинаковой — опция выключена. Однако на практике за счёт различных факторов вы можете получить различные по длительности звук и видео. Редкая звуковая карта обеспечит частоту дискретизации ровно в 48 кГц, редкая запись на видеокассете содержит ровно 25 кадров в секунду. iuVCR может скорректировать длину одного из потоков: изменить частоту дискретизации звука (главный поток — видео) или частоту кадров видео (главный поток — аудио). Второй вариант предпочтительнее.
В качестве альтернативы вы можете использовать не стандартные средства системы Windows для формирования AVI файла, а «фирменный» метод iuVCR: для этого отключите Использовать стандартный MUX.
Группа Синхронизация отвечает за параметры синхронизации звука и изображения. Синхронизация по смещению потока позволяет использовать специальные возможности DirectShow для синхронизации потоков, которые обычно не поддерживаются корректно драйверами карт захвата. В случае если эту возможность правильно реализуют драйверы карты захвата и звуковой карты, опцию лучше включить, иначе — выключить. Проверить можно экспериментально: в каком случае синхронизация потоков будет лучшей. Смещение аудио позволяет выставить задержку, после которой при нажатии кнопки Запись начнёт записываться звук. В силу особенностей архитектуры карт захвата, собственно запись видео начинается лишь примерно через 150 мс после начала процесса захвата. Этой опцией вы можете регулировать, начинать ли записывать «лишний» звук, до начала записи видео. Короткие аудиосэмплы позволяет записывать звук отрезками по 50 мс, вместо обычных 500 мс рекомендуется включать. Системный таймер для видео или аудио позволяет избавиться от ошибок вида 80040228, если она у вас появляется во время захвата. Если у вас таких ошибок нет обе опции должны быть выключены.
Закладка Профили
На этой закладке можно сохранять варианты настроек iuVCR профили. Вы можете добавлять, удалять, переименовывать профили и, конечно, применять вместо текущих настроек.
Закладка Инфо
На этой закладке собрана воедино вся информация о процессе захвата. Слева кратко описаны настройки файла захвата: форматы сжатия звука и видео, ограничение размера и параметры сегментации. Также приводится статистика: сколько кадров захвачено, сколько кадров пропущено, средняя частота кадров, текущий размер файла с захваченным видео и объём свободного места (в мегабайтах), время захваченного видео и примерный прогноз программы — сколько ещё времени удастся записать, исходя из объёма свободного места на диске. Средний поток данных выводится во всех возможных единицах: кбит/сек., кбайт/сек., Мбайт/мин, Гбайт/час. Индикатор загрузки процессора даёт представление о вычислительной сложности сжатия аудио и видео «на лету».
Закладка Расписание
При помощи этой закладки можно создать несколько записей в системном расписании Windows (Панель управления Назначенные задания) при их выполнении iuVCR осуществит захват видео с выбранными настройками. Это очень удобно для записи ТВ программ: как правило, хорошее кино показывают поздно вечером или даже ночью. Вы можете добавлять, удалять, переименовывать и редактировать задания для iuVCR. При добавлении задания вам необходимо установить следующие настройки: имя задания, используемый профиль настроек iuVCR, время начала и продолжительность записи, регулярность выполнения (единожды, раз в день, раз в неделю и т.д.), выключать ли звук в системе при запуске задания, какое имя файла использовать для захвата, какой номер варианта настроек (это не номер канала, а именно номер варианта настроек с закладки Тюнер), нужно ли по окончании захвата выключить компьютер или перевести в спящий режим. При сохранении параметров задания нужно указать имя пользователя и его пароль — от имени этого пользователя будет запущена программа даже в том случае, если пользователь не будет работать на компьютере в указанное время.
По кнопке Системный диалог вы можете получить доступ к стандартному окну Windows для настройки этого задания, тут вы можете отрегулировать дополнительные параметры. Очень удобно использовать Разбудить компьютер для запуска этого задания, после этого вы можете перевести компьютер в спящий режим (Hibernate): компьютер будет включён по расписанию, запишет нужную передачу и снова выключится. Помните только, что для включения компьютера необходимо некоторое время: сделайте запас при выборе времени начала задания.
Чтобы задание было запущено, у вас в системе должен быть активизирована служба Назначенные задания (Scheduler).
Закладка Фильтры
iuVCR позволяет при захвате обрабатывать изображение «на лету» фильтрами DirectShow, и лишь потом записывать. Конечно, применение фильтров «на лету» повышает ресурсоёмкость процесса захвата. iuVCR комплектуется набором высокоскоростных фильтров, которые специально оптимизированы для использования во время захвата. Это Inverse для инвертирования цветов видео, Crop video для обрезания краёв, Histogram для удобной настройки яркости и контрастности (баланса белого) и TimeStamp для накладывания на запись текущего времени и даты.
Настройка VirtualDub: захват
После запуска программы выберите File Capture AVI, программа перейдёт в режим захвата видео. Будет автоматически выбрана первая найденная карта оцифровки и захвата видео.
Захватывать цифровое видео через IEEE1394 VirtualDub не может.
Меню File
В меню File вы можете выбрать имя файла, куда будет производиться захват (Set capture file), зарезервировать на диске место для захвата видео (Allocate disk space), сменить на предыдущий или следующий (Previous file ID, Next ID) номер, добавляемый к названию файла для захвата, или выйти из режима захвата (Exit capture mode).
Меню Audio
В меню Audio пункт Compression вызывает окно выбора формата сжатия звука (см. раздел Настройка iuVCR, Закладка Аудио), пункт Volume meter включает индикатор уровня громкости, пункт Windows mixer вызывает системный микшер для выбранной звуковой карты (выбрать звуковую карту для записи вы можете в Панели управления Звуки и аудиоустройства Аудио Запись звука).
Меню Video
Первые три пункта позволяют выбрать режим предварительного просмотра: поступающий с карты захвата сигнал (Overlay), записанное видео (Preview) или записанное видео с гистограммой (Preview w/histogram) последнее удобно для настройки яркости и контрастности (или баланса белого). В пункте Format вы можете выбрать формат видео для захвата (см. Настройка iuVCR, Закладка Видео). В пункте Source можно выбрать источник видеосигнала и карту захвата. Пункт Compression позволяет выбрать кодер для сжатия видео: VirtualDub поддерживает только кодеры с VfW интерфейсом. Пункт Compression (compatibility) также позволяет выбрать кодек, но вместо внутреннего окна VirtualDub используется системный диалог: это имеет смысл использовать в случае, если окно VirtualDub’а не работает.
Следующая группа опций отвечает за различные эффекты, применяемые «на лету» во время записи. Пункт Cropping позволяет обрезать края изображения: Enable включает и выключает режим, Set bounds позволяет задать размер срезаемых краёв. Swap fields позволяет менять местами чётные и нечётные строки (полукадры). Noise reduction включает подавление высокочастотного шума. Vertical reduction позволяет уменьшать картинку вдвое, используя билинейную или бикубическую интерполяцию. Squish luminance range включает автоматическую коррекцию диапазона яркости.
При помощи Set custom format вы можете выбрать какойлибо нестандартный формат изображения для записи. При помощи Filters вы можете выбрать набор фильтров, которые будут применяться «на лету» к захватываемому видео. Enable RGB filtering включает возможность использования фильтров, работающих в формате RGB (далеко не все фильтры могут работать в режиме YUV). Такой режим более ресурсоёмок, потому как необходимо преобразовывать видео из YUV в RGB и обратно. Stretch to window позволяет растянуть область предварительного просмотра видео до размеров окна программы. Histogram выводит окно с гистограммой для настройки яркости и контрастности. BT8x8 tweak позволяет реализовывать какието дополнительные функции при работе с чипом захвата Conexant bt8x8, для этого нужно установить специальную программу BT8x8 tweak. Наконец в самом низу перечислены обнаруженные в системе устройства оцифровки и захвата аналогового видео: вы можете выбрать любое из них.
Меню Capture
Пункт меню Capture содержит управление непосредственно процессом захвата.
Capture video начинает захват, Capture video (compatibility mode) начинает захват в режиме совместимости используйте такой вариант, если Capture video не работает. Test video capture (internal) позволяет проверить, хватает ли вычислительной мощности для обслуживания текущей конфигурации захвата: производится тестовый захват видео, но захваченное видео никуда не записывается.
Hide on capture позволяет не отображать предварительный просмотр при захвате. Display larger timer отображает время захвата крупным шрифтом. Show informational panel отображает справа информационную панель. Enable multisegment capture включает режим захвата в несколько файлов (сегментирование). Start capture on left… позволяет начинать процесс захвата по щелчку левой кнопки мыши в области просмотра программы. Autoincrement filename after capture позволяет после каждого захвата автоматически увеличивать номер, который добавляется к имени файла. Enable DirectDraw acceleration включает использование DirectX для отображения видео такой режим работает быстрее, но не на всех конфигурациях.
Окно Capture Settings содержит установки процесса захвата: записывать ли звук (Capture audio), начинать ли захват немедленно или ждать нажатия кнопки ОК (Wait for OK to capture), частота кадров для захвата (Frame rate), какой клавишей прерывать процесс захвата: никакой (None), Escape или пробел (Space), прерывать ли захват при нажатии левой или правой кнопки мыши (Abort on left/right mouse button) причём клавиша и кнопка мыши для прерывания захвата действуют во всей системе, в какой бы программе вы не работали. Внизу окна находится ряд настроек, работающих только в режиме совместимости (compatibility mode): при каком проценте пропущенных кадров приостановить захват (Drop % limit), ограничение на количество кадров и блоков звука в файле (Maximum index entry), корректировать ли несовпадение длительности звука и видео путём пропускания кадров или добавления пустых кадров (Lock video stream to audio).
Окно Capture Preferences содержит настройки программы в режиме захвата видео: драйвер устройства захвата видео по умолчанию (Default capture driver), имя файла, в которое по умолчанию будет производиться захват видео (Default capture file), позволяет сохранить текущие настройки захвата видео (Save current capture settings as default), настройки формата сжатия видео (video format) и звука (audio format) в качестве настроек по умолчанию. Также для каждого драйвера захвата можно выбрать режим просмотра видео по умолчанию (Initial display mode).
В окне Stop conditions вы можете задать условия остановки захвата: по прошедшему времени захвата (Capture time exceeds … seconds), по достижению файла определённого размера (File size exceeds … megabytes), по уменьшению свободного места на диске до заданного уровня (Free disk space drops below … megabytes) и по превышению количества пропущенных кадров определённого процента (Dropped frame ratio exceeds … percent). Кнопка Save позволяет сохранить настройки на будущее, кнопка Accept только на текущий сеанс работы с программой.
Окно Capture Timing управляет дополнительными возможностями программы по синхронизации видео и звука. В базовой версии программы вы можете лишь включить или отключить возможность корректировать несовпадение длительности звука и видео путём пропускания кадров или добавления пустых кадров. В модифицированной версии программы VirtualDubMod можно выбрать режим автоматической синхронизации звука и видео: передискретизировать звук «на лету», чтобы соответствовать частоте кадров видео (resample audio data…), вставлять или убирать кадры, чтобы соответствовать частоте дискретизации звука (add/drop frames…) или отключить такую коррекцию (no correction).
Окно Disk I/O управляет настройками записи на диск: размер буфера памяти (Chunk size), количество буферов (Chinks in buffer), отключить ли системную функцию кэширования записи на диск (Disable Windows write buffering обязательно отключите кэширование!).
Capture drives позволяет выбрать несколько дисков, на которые будет производиться захват видео.
Информационная панель
Информационная панель отображает текущее состояние процесса захвата. Количество захваченных кадров (Frames captured), прошедшее время (Total time), оставшееся время исходя из количества свободного места на диске (Time left), полный размер захваченного видео (Total file size), объём свободного места на диске (Disk space free), текущая загрузка процессора (CPU usage). Раздел Video содержит такие параметры: размер захваченного видео (Size), средняя частота кадров (Average rate), поток данных (Data rate) и степень сжатия видео (Compression), средний размер кадра (Avg frame size), количество пропущенных кадров (Frames dropped). Раздел Audio: размер захваченного звука (Size), реальная частота дискретизации звука (Relative rate), поток данных (Data rate) и степень сжатия звука (Compression), величина коррекции длительности звука (VT adjust, см. описание пункта меню Capture Timing).
Настройка VirtualDub: обработка и редактирование видео
Настройки VirtualDub’а находятся в окне Options Preferences.
На вкладке Main можно установить приоритет процесса обработки видео по умолчанию: для предварительного просмотра видео в программе (Quick preview defaults Process priority) и для режима обработки видео (Dub defaults Process priority). Рекомендуется использовать Default для просмотра в программе и Even lower для обработки видео при этом вы сможете нормально работать с компьютером, пока VirtualDub обрабатывает видео (выбор приоритета минимального Idle приведёт к тому, что VirtualDub будет иметь приоритет ниже, чем экранная заставка и прочие фоновые системные процессы). Кнопка Save позволяет сохранить настройки на будущее, кнопка Accept только на текущий сеанс работы с программой.
В окне File Job control есть параметр (Options) «выключать компьютер при выполнении всех заданий» (Shutdown when finished).
Также вы можете создать и сохранить набор фильтров, который будет использован для обработки видео после захвата. После того как вы добавили все нужные фильтры и настроили их (подробнее см. раздел VirtualDub обработка видео) выберите File Save processing settings. Если выбрать Include selection and edit list, то вы также сохраните информацию о вырезанных и выбранных частях видео: это не всегда нужно. Для того чтобы загрузить ранее сохранённый набор фильтров, используйте File Load processing settings.
Настройка Adobe Audition (CoolEdit Pro)
Самая важная для нашего случая настройка Adobe Audition находится в окне Options Settings, на закладке System, группа Temporary folders.
Тут вы можете выбрать две папки (на двух разных дисках), в которых Adobe Audition будет хранить свои временные файлы. Также можно задать объём диска, который программа будет оставлять свободным. Временные файлы представляют собой копии звуковых файлов на разных этапах редактирования, записанные без сжатия. Учитывая то, что типичная звуковая дорожка имеет размер около 1 Гбайта, то будьте готовы к тому, что Adobe Audition в процессе работы потребует 510 Гбайт на работу с одной звуковой дорожкой.
Также при помощи окна Options Scripts and batch processing вы можете создать свой сценарий обработки звуковых дорожек, записать соответствующий макрос, сохранить его в файл и использовать позже.Регулярная настройка: перед каждым захватом видео
Подготовка жёсткого диска: дефрагментация
Необходимо считаться с таким явлением, как фрагментация данных на жёстком диске. Если жёсткий диск используется для хранения файлов, то при копировании, удалении, копировании других файлов возникает так называемая «фрагментация свободного места». Это означает, что свободные области на жёстком диске не расположены подряд одна за другой. Жёсткий диск в состоянии стабильно обеспечивать максимальную скорость записи только в случае отсутствия необходимости позиционировать записывающие головки во время записи, то есть в случае непрерывной свободной области. В случае записи на фрагментированный диск, после заполнения одной свободной области жёсткий диск должен найти следующую свободную область и продолжить в запись в неё. Этот процесс требует времени, соответственно, он снижает скорость записи данных на диск. Если фрагментация диска велика, то скорость записи на диск может упасть весьма существенно.
Перед началом оцифровки видео жёсткий диск нужно подготовить. Раздел, на который будет проводиться запись, рекомендуется полностью очистить или хотя бы дефрагментировать. Для этого вы можете использовать стандартную утилиту Windows дефрагментации дисков или же какуюлибо её альтернативу (например, SpeedDisk из пакета Norton Utilities).
iuVCR
Если вы уже настроили программу, как было описано в разделе «Настройка iuVCR», то вам остаётся только запустить процесс захвата: включить воспроизведение в камере или видеомагнитофоне или выбрать ТВ канал и нажать кнопку Начать запись в iuVCR. Единственное исключение: захват NTSC записей после PAL/SECAM и, наоборот: в таком случае нужно ещё изменить размер кадра и частоту кадров в параметрах захватываемого видео. Возможно, вы захотите использовать какойто другой профиль настройки программы или сменить формат сжатия видео всё эти действия нужно выполнить перед началом захвата.
VirtualDub: захват
Изза ограничений системы Video for Windows, программа не может сохранять настройки источника видео (Video Source). Перед началом захвата вам необходимо настроить источник видеосигнала. Все остальные настройки были описаны в разделе «Настройка VirtualDub захват».
VirtualDub: дальнейшая работа с видеозаписью
К сожалению VirtualDub не запоминает настроек своего основного окна по отображению редактируемого видео. Соответствующие настройки находятся в меню Options.
Убедитесь, что у вас отображается видеоряд до и после обработки фильтрами (Display input video и Display output video соответственно). По умолчанию кадр исходного видео отображается слева, а кадр после обработки фильтрами справа. Вы можете поменять изображения кадров местами при помощи параметра Swap input/output panes. Также вы можете расположить изображение одного кадра под другим при помощи параметра Vertical display.
По умолчанию в качестве кадра обработанного видео VirtualDub показывает изображение, каким оно будет после обработки фильтрами. Если включить параметр Display decompressed output, то программа будет отображать этот же кадр после сжатия его выбранным методом (в Video Compression). Такой режим существенно медленнее, но позволяет получить представление о том, как будет выглядеть видеозапись не только после обработки, но и после сжатия. На этапе промежуточной обработки используется метод сжатия без потерь или с минимальными искажениями, потому использование такого режима не является оправданным.
VirtualDub: удаление ненужных фрагментов
Возможно, вы захотите сразу удалить какието фрагменты видеозаписи: например, шум в самом начале и в самом конце файла, реклама в ТВ трансляции и т.п. Для этого откройте полученный в результате захвата файл в VirtualDub, выделите ненужные фрагменты и исключите их из дальнейшей обработки (Edit Delete). Лишь после того, как ненужные фрагменты удалены, сохраните звуковую дорожку в файл для обработки звука (см. раздел «Adobe Audition (CoolEdit Pro) обработка звука») и не закрывая программы приступайте к обработке видео (см. раздел VirtualDub обработка видео).
Для навигации по видеозаписи и выделения фрагментов используйте команды из меню Edit: исключить выделенную часть из дальнейшей обработки (Delete), сбросить выделение (Clear selection), выделить всю запись (Select all), перейти на начало записи (Beginning). Перейти в конец записи (End), предыдущий кадр (Previous frame), следующий кадр (Next frame), предыдущий ключевой кадр (Previous keyframe), следующий ключевой кадр (Next keyframe), назад на 50 кадров (Back 50 frames), вперёд на 50 кадров (Forward 50 frames). Перейти на начало выделенного фрагмента (Move to selection start), перейти в конец выделенного фрагмента (Move to selection end), перейти на кадр по номеру или по времени в записи (Go to), перейти на последний ключевой кадр (Go to last keyframe). Установить начало выделенного фрагмента в текущем кадре (Set selection start), установить конец выделенного фрагмента в предыдущем кадре (Set selection end), отменить все правки и вернуть видеозапись к исходному состоянию (Revert all edits). Большинство этих команд продублированы удобными «горячими клавишами», все они перечислены в меню программы.
Adobe Audition (CoolEdit Pro): обработка звука
Меня поражает то, что подавляющее большинство записей с ТВ или видеокассет содержат звуковую дорожку отвратительного качества: ведь существенно улучшить качество звука не так уж сложно.
Для начала следует отделить звук от видео. Для этого можно использовать функцию «извлечь звук из видеозаписи» (File Extract Audio from Video) программы Adobe Audition. В качестве альтернативы вы можете использовать VirtualDub (VirtualDubMod): надо открыть полученную в результате захвата видеозапись и в меню Audio (для VirtualDubMod в окне Stream list) выбрать Save WAV. Выберите имя файла для звуковой дорожки, убедитесь что Don’t run this job now… выключено. Полученный WAV файл можно открыть в Adobe Audition. Если вы хотите удалить какието фрагменты видеозаписи до обработки (см. раздел «VirtualDub удаление ненужных фрагментов»), то вы должны обязательно сохранять звук после удаления фрагментов: при этом в файле со звуком соответствующие фрагменты также будут удалены.
Верное количество каналов
В первую очередь надо проверить, не записана ли моно запись в стерео режиме. Проще всего это проверить при помощи микширования каналов (Effects Amplitude Channel Mixer): нужно применить сохранённую настройку (Preset) ‘Vocal cut’.
Так получится разница двух каналов: если исходный звук был монофоническим, то результатом будет тишина (или очень тихий шум). Не забудьте отменить это преобразование звука (Edit Undo Channel Mixer)!
Если у вас оказалась моно запись, записанная в стерео файле, преобразуёте её в моно запись: ее размер уменьшится вдвое. Для этого нужно выбрать Edit Convert Sample Type, частоту дискретизации (Sample rate) и разрядность (Resolution) нужно оставить такими же (обычно 48 000 Гц и 16 бит), выбрать Mono и по 50% для левого и правого каналов (Left mix, Right mix).
Промежуточная обработка звука с 32битным разрешением
Создатели программы Adobe Audition настоятельно рекомендуют проводить обработку звука в разрешении большем, чем разрешение конечного результата это позволит повысить точность выполнения всех промежуточных преобразований и положительно скажется на качестве звука. В нашем случае для исходного материала и результата используется 16 бит, поэтому рекомендуется все промежуточные операции проводить с разрешением 32 бита. Для этого перед началом обработки звука нужно преобразовать его в формат 32 бита, а по окончании обработки обратно в 16 бит. Сделать это можно при помощи Edit Convert Sample Type, частоту дискретизации (Sample rate) и количество каналов (Mono/Stereo) оставляем такими же (обычно 48 000 Гц и моно), а для разрядности (Resolution) выбираем 32 или 16 бит соответственно.
Убираем постоянную составляющую
Часто аппаратура при работе со звуком добавляет в звуковой выход некоторую постоянную составляющую. Это приводит к тому, что после записи «синусоида» оцифрованного звука смещена вверх или вниз от центра нулевого уровня. Многие программы по работе со звуком рассчитаны на звук, не содержащий постоянной составляющей. Потому необходимо преобразовать запись так, чтобы отсутствовала постоянная составляющая. Проверить ее наличие в Adobe Audition вы можете при помощи функции Analyze Statistics, результат выводится в графе DC Offset: при отсутствии постоянной составляющей должно быть 0%.
Чтобы убрать постоянную составляющую в звуковом файле используется функция Effects Amplitude Amplify, примените сохранённую настройку (Preset) ‘Center Wave’.
Удаление шумов
Adobe Audition содержит очень полезную функцию удаления фонового шума. Работает она следующим образом: сначала нужно найти часть записи, в которой нет никаких звуков только шум. Как правило такие участки есть перед началом записи или в самом её конце, можно также использовать паузу посреди записи. Нужно получить спектр шума: для этого выделяем участок длиной не менее половины секунды, в котором содержится только шум, выбираем Effects Noise Reduction Noise Reduction и нажимаем кнопку Get Profile from Selection.
Adobe Audition проанализирует выделенную область и отобразит спектр шума. Профиль шума можно сохранить в файл при помощи кнопки Save Profile. Загрузить ранее сохранённый профиль можно при помощи кнопки Load Profile. Для закрытия окна можно нажать Cancel тогда текущий профиль шума будет утерян, или Close тогда текущий профиль шума будет сохранён на время редактирования текущего звукового файла.
Следующим этапом будет удаление шума. Для этого выделите ту часть звукового файла, в которой нужно убрать шум; или если его нужно убрать во всём звуковом файле, можно снять выделение вовсе и отобразить весь файл (кнопкой Zoom Out Full Both Axis). Потом выберите Effects Noise Reduction Noise Reduction, убедитесь что загружен необходимый профиль шума. Под графиком шума должна быть горизонтальная линия, если это не так нажмите кнопку Flat. Выберите Remove noise, установите уровень снижения шума (Reduce by) в 40 dB, Noise Reduction Level на максимум (100). Вы можете предварительно прослушать, как будет звучать ваш звуковой файл после удаления шума при помощи кнопки Preview, при этом вы можете изменять параметры процесса уменьшения шума и сразу же слышать результат это очень удобно для подбора параметров. После того, как нужные параметры установлены запустите процесс удаления шума при помощи кнопки OK.
Нужно быть внимательным при выборе части звукового файла, в которой только шум и нет никаких звуков. Дело в том, что если в этом фрагменте окажется какой–то звук, то Adobe Audition будет удалять все похожие звуки по всей записи. Это приведёт к появлению неприятных «металлических» призвуков, особенно заметных на музыкальных фрагментах. Также вы можете судить о наличии таких звуков в вашем фрагменте по изломам и всплескам на спектре шума в окне Noise reduction. Обычно график спектра шума представляет собою плавно меняющуюся линию без резких изломов, возможно с одним или несколькими всплесками в области высоких частот (справа) (в области высоких частот шумы в звуковом тракте видеотехники особо велики: свист и шипение). Если в результате удаления шума возникли такие призвуки, попробуйте отменить операцию (Edit Undo noise reduction) и повторить всё с самого начала начиная с выделения фрагмента звука с шумом. Если же фрагмент файла с шумом выделен верно, попробуйте уменьшить уровень уменьшения шума (Noise Reduction Level) с 100 до меньшего значения.
Образец шума и очищаемый от шума звуковой фрагмент могут храниться в разных файлах, эти файлы могут иметь разную разрядность: необходимо только чтобы у этих файлов была одинаковая частота дискретизации и количество каналов.
Преимущество этого метода состоит в том, что таким образом удаляются все шумы, вне зависимости от природы их возникновения: шум ленты или ТВ эфира, шум звукового тракта видео аппаратуры или звуковой карты. Результат, обеспечиваемый таким методом удаления шума, звучит намного лучше зашумленного оригинала.
Нормализация
Последняя операция, которую необходимо выполнить с записанным звуком — это максимально увеличить его громкость. В противном случае при прослушивании каждой видеозаписи придётся регулировать громкость: у всех записей будет различный уровень громкости. Для этого нужно воспользоваться функцией Effects Amplitude Normalize. Выберите Decibels format, уровень (Normalize to) в 0,3 dB (или же 97% при выключенном Decibels format), для стерео записей Normalize L/R Equally (иначе стереобаза сместится в сторону), DC Bias Adjust: 0%.
Сценарий
Для выполнения одинаковой последовательности действий по очистке звуковых дорожек видеозаписей от шума в программе Adobe Audition вы можете создать сценарий (script): Options Scripts & Batch Processing. При помощи этого окна вы можете запустить ранее сохранённый сценарий или записать новый.
Вы можете использовать мой сценарий VHS Record Cleaning он переводит файл в разрешение 32 бита, убирает постоянную составляющую из записи, удаляет шум, нормализует запись и переводит в разрешение 16 бит. Сценарий предназначен для работы с моно и стерео записями с частотой дискретизации 48 кГц. Чтобы использовать мой сценарий, распакуйте его на свой жёсткий диск, в окне Options Scripts & Batch Processing нажмите кнопку Open/New Collection и выберите файл VHS Record Cleaning.scp на вашем жёстком диске. Для запуска этого сценария вы должны сначала сохранить профиль шума в файл C:VideoTemp1.fft потом откройте файл звукозаписи для обработки, в окне Options Scripts & Batch Processing выберите VHS Record Cleaning и нажмите Run Script. Сценарий VHS Record processing (записан в том же файле) делает то же самое, кроме шумоподавления.
VirtualDub: обработка видео
Чтобы перевести программу в режим обработки видео, выберите Video Full processing mode. Теперь нужно настроить набор фильтров, который будет использоваться для обработки видео: Video Filters. В этом окне можно добавлять (Add) и удалять (Delete) фильтры для обработки текущего файла, также вы можете изменить настройки любого фильтра (Configure), переместить его выше (Move Up) или ниже (Move Down) по списку: фильтры применяются к изображению в порядке списка (сверху вниз).
Также на время обработки видео имеет смысл отключить обработку звука: Audio No Audio (для VirtualDubMod: Streams Stream list Disable). Это позволит не копировать ненужную звуковую информацию в файл, полученный при обработке видео. В случае если вы планируете дальнейшее редактирование видеозаписи в какомто редакторе видео, вы можете подключить файл с обработанной и очищенной от шума звуковой дорожкой. Для этого найдите в меню Audio WAV Audio... (для VirtualDubMod: Streams Stream list Add) и выберите нужный файл. Редакторы видео позволяют загружать видеоряд и звуковую дорожку из разных файлов, потому подключать звук на этом этапе не обязательно: вы можете это сделать в редакторе, тем самым, сэкономив место на жёстком диске.
Обрезание краёв: cropping
В начале обработки видео нужно обрезать края изображения. По краям кадра содержится различный «мусор», искажённое изображение или же просто чёрные полосы. Для этого добавьте фильтр Null transform: он ничего не делает с изображением. В окне Filters выберите этот фильтр и нажмите Cropping. Появится окно для обрезания краёв кадра: тут вы можете выбрать, на сколько пикселей обрезать каждый из краёв кадра. Также в этом окне вы можете увидеть предварительный просмотр изображения с обрезанными краями, согласно текущим установкам. Проверьте, что края правильно обрезаны для всех частей видеозаписи.
В принципе, VirtualDub позволяет обрезать края перед применением любого фильтра, но рекомендуется добавлять фильтр Null transform: ни для чего более, кроме обрезания краёв, он не пригоден. Так можно будет легко увидеть, на каком этапе в цепочке фильтров у изображения обрезаются края.
Если видеозапись содержит чересстрочное видео, то обрезать верхний и нижний край необходимо только на чётное количество пикселей: иначе нарушится порядок полей.
Устранение цветовых искажений: rmPal
Первый фильтр, который необходимо использовать для записей формата PAL это rmPal. Он используется для устранения постоянного несовпадения цветовой и яркостной составляющих изображения: в силу особенностей формата кодирования видеосигнала PAL, такая ситуация возникает при слабом уровне сигнала. Сигналы в форматах SECAM и NTSC не подвержены этому дефекту.
Пример работы фильтра rmPal: правая половина изображения исходное изображение, левая после применения фильтра. |
Если в вашей записи нет искажений, подобных показанным выше, вы можете не использовать этот фильтр.
Устранение артефактов чересстрочности: deinterlace
Подавляющее большинство фильтров рассчитано на работу с прогрессивным видео. Поэтому как можно раньше изображение необходимо избавить от артефактов чересстрочности. Следующий фильтр, который необходимо использовать QS Deinterlace (или Smart Deinterlace, если QS вас почемуто не устраивает). Настройки у фильтров одинаковы: в группе Обработка видео (Motion processing) нужно выбрать самый медленный и качественный режим Сравнение полей и кадров (Frameandfield differencing), отключить RGBрежим (Compare color channels (instead of luma)) и Режим смешивания цветов (Blend instead of interpolate…, это более быстрые, но менее качественные режимы), отключить Показать карту движения (Show motion areas only, этот режим используется для отладки фильтра), включить Использовать уравнения 3й степени (Use cubic for interpolation) и Очистка шумов движения (Motion map denoising; это более медленные, но более качественные режимы). В группе Пороговые значения нужно указать 1020 для Порога уровня движения (Motion threshold) и 100 для Порога смены сцены в кадре (Scene change threshold).
Группа настроек Работа с полями (Advanced processing) используется для коррекции порядка кадров и полей подробнее см. разделы «Восстановление прогрессивного видео» и «Восстановление чересстрочного видео».
Устранение шума цветности
Далее следует очистить изображение от шума. В силу особенностей кодирования видео сигнала, цветовая составляющая содержит намного больше шумов, чем яркостная. Необходимо применить фильтр, который устранит шум в цветовой составляющей сигнала и не затронет яркостную составляющую. Такой фильтр называется Chroma Noise Reduction. В большинстве случаев подходят настройки по умолчанию, однако иногда приходится уменьшать силу воздействия фильтра: для этого нужно уменьшить ширину всех трёх кривых и степень воздействия на цветовые компоненты до 50-70%. Эффект фильтра более всего заметен на ярких областях изображения: голубое небо приобретает равномерную окраску, без движущихся цветных полос и пятен.
Оригинальное изображение | |
Так этот же кадр выглядит после записи на видеокассету и её последующей оцифровки | |
Тот же кадр после применения фильтра Chroma Noise Reduction |
Описываемый эффект плохо заметен на статических изображениях, но очень бросается в глаза при воспроизведении видео: шум постоянно движется и потому его легко увидеть.
При чересчур сильных настройках фильтр создаёт заметные артефакты: множатся контуры движущихся тёмных объектов на ярком фоне, цвет контрастных объектов «вылезает» за пределы контуров объекта. Обязательно проверьте, нет ли такого эффекта после применения этого фильтра к вашей видеозаписи: найдите участок, где тёмные объекты перемещаются на светлом фоне, и просмотрите десяток–другой кадров подряд (Edit Next frame или стрелка вправо на клавиатуре).
Устранение динамического шума
Следующий этап устранение яркостного шума. Для этого используется фильтра Dynamic Noise Reduction, с параметром 812. Значения намного больше ведут к появлению заметных искажений изображения: очень сильное размытие деталей. Маленькие же значения не эффективны. Обычно значения из указанного диапазона дают оптимальный результат, но вы можете поэкспериментировать: для каждого видеоряда оптимум будет своим.
Оригинальное изображение | |
Так этот же кадр выглядит после записи на видеокассету, её последующей оцифровки и применения фильтра Chroma Noise Reduction | |
Тот же кадр после применения фильтров Chroma Noise Reduction и Dynamic Noise Reduction |
Устранение статического шума
Большинство видеозаписей не нужно дополнительно очищать от шума лёгкий статический шум не будет заметен после изменения разрешения. Также нужно помнить, что применение фильтров, убирающих статический шум, снижает резкость изображения. Лучшим фильтром для устранения шумов является Smart Smoother HQ, однако он работает достаточно медленно. В качестве компромисса между качеством изображения и скоростью работы вы можете попробовать 2D Cleaner.
Настройка Smart Smoother HQ. Укажите диаметр (Diameter) области поиска шумов вокруг каждого пикселя: чем большее число вы укажете, тем большего размера помехи могут быть обнаружены и устранены. Учтите, что скорость работы фильтра и резкость результирующего изображения падают при больших значениях диаметра. Параметр Threshold позволяет задать порог разности яркости для пикселей двух объектов: если яркость пикселей отличается на большую величину, то фильтр будет считать их принадлежащими разным объектам, и не будет сглаживать изображение. Меньшие пороговые значения убирают меньше шумов и меньше размывают изображение. Значение Amount позволяет формировать результирующее изображение, смешивая исходное изображение и результат работы фильтра: чем больше Amount, тем большее влияние будут иметь результат работы фильтра. Рекомендуется использовать наиболее совершенный режим Weighted average, Weighted with difference. Режим сравнения только яркости (Check greyscale) рекомендуется отключить.
Режим Visualize blur позволяет удобно подбирать параметры фильтра. В этом режиме вместо изображения рисуется чёрнобелая картинка: чем темнее область, тем меньше она будет размыта в результате работы фильтра. Нажмите кнопку Show Preview, чтобы увидеть предварительный просмотр изображения после применения фильтра, включите режим Visualize blur. Увеличьте значение Maintain Diffweight таким образом, чтобы шум стал как можно светлее (обозначает размытие), а границы объектов всё ещё были тёмными (означает отсутствие размытия). Также вы можете подобрать параметры Diameter и Threshold, для сохранения резкости желательно их уменьшить. Не забудьте после завершения настройки отключить режим Visualize blur.
Настройка 2D Cleaner. Необходимо указать пороговую величину Threshold и радиусы эллипса для поиска шумов по горизонтали X и по вертикали Y подробное описание параметров см. выше, их природа такая же, как и у фильтра Smart Smoother HQ. При помощи кнопки Show Preview вы можете увидеть предварительный просмотр изображения после применения фильтра: режим Show sharp edges закрасит чёрным области, которые не будут размыты.
Корректирование изображения
После устранения шумов вы можете скорректировать вид вашей видеозаписи при помощи фильтров RGB (подстройка цветовых составляющих), Hue/Saturation/Intensity (подстройка яркости/цветности), Brightness/contrast (подстройка яркости/контрастности), White balance (автоматическая настройка баланса белого), Blur/sharpen (XSharpen, и т.п. уменьшение или увеличение резкости).
Изменение разрешения
Как описано в разделе Разрешение и чёткость изображения, не имеет смысла хранить изображение с очень высоким разрешением. Следующим фильтром должно быть произведено уменьшение разрешения изображения: Resize или Smart resize. Делают эти фильтры одно и то же, но фильтр Smart resize содержит удобный встроенный калькулятор для вычисления размера. Предпочтительно использовать более точные режимы изменения разрешения (precise). Разные режимы изменения разрешения поразному влияют на резкость изображения, вот список возможных режимов в порядке от наиболее увеличивающего резкость до наиболее уменьшающего резкость: Lanczos, Sharp bicubic (A=0.6), Neutral bicubic (A=0.75), Soft bicubic (A=1.0), Bilinear. Чем сильнее фильтр уменьшения разрешения уменьшает резкость, тем меньше статического шума будет заметно в результирующем изображении. Режим Nearest neighbor использовать нельзя: хоть он и самый быстрый, но даёт низкое качество изображения.
Помните, что для более эффективного сжатия в формат MPEG4 разрешение изображения должно быть кратно 16 (как по вертикали, так и по горизонтали): в фильтре Smart resize для соблюдения этого правила достаточно включить калькулятор разрешения (Size calculator: Enable) и режимы Fix width/height to mult of 16.
Устранение статичных элементов изображения
Фильтр DeLogo понадобится, если вы хотите исключить устранить какой–то статичный элемент изображения, например логотип телеканала или дату съёмки. Фильтр практически вымарывает логотип, заполняя область пикселями, похожими на пиксели, окружающие логотип. Это приводит к тому, что вместо логотипа вы получите размытую область, причём, чем больше размер убираемого логотипа — тем больше размытие.
Оригинальное изображение | |
В это кадре хорошо виден логотип | |
Закрасим логотип красным: сделаем маску для фильтра DeLogo | |
Так исходный кадр выглядит после применения фильтра DeLogo |
В силу особенностей устройства фильтра DeLogo, его нужно использовать после изменения разрешения изображения. Для использования этого фильтра необходимо создать маску, по которой фильтр узнает, где находится логотип. В окне настройки фильтра DeLogo нажмите кнопку Show Preview отобразится окно с видеозаписью. Найдите кадр, где логотип хорошо виден на контрастном фоне, как в примере выше. При помощи кнопки Save frame сохраните этот кадр в файл. В какомнибудь графическом редакторе закрасьте логотип чистым красным цветом (RGB #FF0000 или 255, 0, 0) и сохраните файл. Теперь этот файл можно использовать в качестве маски для фильтра DeLogo: нажмите кнопку Load в строке Repair, чтобы загрузить маску.
Фильтр DeLogo также позволяет удалять полупрозрачные статичные элементы, при этом изображение реконструируется на основе той информации, которая «просвечивается» сквозь логотип. Процесс настройки фильтра достаточно сложен, я не буду описывать его здесь. Фильтр распространяется с очень подробной документацией (на английском языке), изучения которой вполне достаточно, чтобы научиться им пользоваться.
Временная стабилизация изображения
Последняя операция над изображением это временная стабилизация изображения. Что это за процесс, легко показать на примере: предположим значение какоголибо пикселя постоянно колеблется вокруг какого-то значения. Если мы приравняем значение этого пикселя постоянному значению, то «мерцание» исчезнет и такую видеозапись можно будет намного эффективнее сжать. Обычно эффект от применения таких фильтров не заметен глазом, зато сжимаемость видео существенно улучшается. Лучший фильтр из этого класса YATS. Его не нужно настраивать: автор рекомендует использовать установки по умолчанию, если фильтр не вносит искажения (мне ни разу не доводилось видеть, чтобы YATS вносил искажения). К сожалению, этот фильтр исключительно медленный, потому вы можете попробовать использовать вместо него Temporal cleaner. Будьте внимательны, поскольку этот фильтр часто смазывает движущиеся объекты в таком случае попробуйте уменьшить значения его параметров.
Выбор и настройка формата промежуточного сжатия
При помощи окна Video Compression необходимо выбрать формат промежуточного сжатия видео. При помощи кнопки Configure вы можете открыть окно настройки соответствующего кодера. На этом этапе рекомендуется использовать формат сжатия HuffYUV (без потерь, настройки по умолчанию) или PICVideo MJPEG с параметром 19. Если вы планируете дальнейшее редактирование видеозаписи, то использование любого из вариантом MPEG сжатия настоятельно не рекомендуется.
Сохранение параметров обработки изображения
При помощи команды File Save processing settings можно сохранить текущие настройки обработки изображения: набор фильтров и их параметры, формат сжатия видео и его настройки, настройки обработки звука. При включённом параметре Include selection… также будет сохранена информация о выделенных и удалённых фрагментах. Для того, чтобы загрузить сохранённые ранее настройки обработки видео используйте команду File Load processing settings.
Запуск обработки видео
Для того, чтобы запустить обработку видео, выберите команду File Save As. Рекомендуется включить режим Don’t run this job now… при этом задание на обработку видео будет добавлено в список заданий программы VirtualDub (File Job control).
Список заданий VirtualDub сохраняется в файл, потому он доступен не только во время текущего сеанса работы с программой. Это позволит легко запустить задание заново, если, например, компьютер зависнет во время обработки видео. Удалить выполненное задание (Status: Done) вы можете кнопкой Delete. Также кнопками Move up и Move down вы можете перемещать задания вверх или вниз по списку: они будут выполняться в порядке списка. При помощи кнопки Postpone вы можете отложить выполнение задания: оно не будет запущено после нажатия Start. Вернуть задание в состояние ожидания выполнения (Waiting) можно двойным щелчком мыши. Вы можете подготовить сразу несколько заданий, а потом запустить их на обработку кнопкой Start: они будут выполнены по очереди. Такой режим особенно удобен, если вы используете двухпроходное сжатие: вы можете настроить VirtualDub для последовательного выполнения двух проходов.
VirtualDub: финальное сжатие видео
Перед финальным сжатием видео необходимо сбросить все настройки по работе с видео и звуком: проще всего это сделать, перезапустив программу. После этого откройте файл с обработанным видеорядом, включите режим обработки видео (Video Full processing mode), в Video Compression выберите и настройте формат сжатия видео. Поскольку качественного сжатия в формат MPEG4 вы можете добиться только в двухпроходном режиме, процесс сжатия придётся выполнять дважды: для первого и второго прохода. Удобно сразу настроить задания для выполнения обоих проходов: выберите команду File Save As, включите режим Don’t run this job now… при этом задание с первым проходом сжатия будет добавлено в список заданий (File Job control). Теперь настройте кодер для выполнения второго прохода и добавьте к списку заданий таким же образом. После этого запустить задания на выполнение можно кнопкой Start в окне Job control, они будут выполнены по очереди. Рекомендуется использовать разные имена файлов для первого и второго проходов: это позволит легко различать задания в окне Job control.
Добавление субтитров
Если вы решили использовать внутренние субтитры, то вам понадобится специальный фильтр: Subtitler поддерживает формат SSA, включая поддержку большинства его эффектов, VobSub поддерживает субтитры в своём собственном формате. Настройка этих фильтров тривиальна и сводится к выбору файла субтитров.
Поток данных (bitrate)
Какой бы способ сжатия не использовался, нужно рассчитать ширину потока данных, до которой будет сжато полученное видео. Для этого необходимо разделить требуемый размер в битах на длительность записи в секундах: получится значение суммарной ширины потока видеозаписи (бит/сек). После этого из полученного значения ширины потока нужно вычесть суммарную ширину потока звуковых дорожек: получится значение ширины потока данных для видео. Этот метод не учитывает то, что собственно файлконтейнер для видеозаписи также занимает некоторое место: несколько мегабайт на час записи.
Пример: есть видеозапись длительностью 1 час 49 минут 57 секунд, её нужно сжать до объёма двух CD (2 x 702 Мбайт). Звуковая дорожка была сжата с потоком 56 кбит/сек. Сначала рассчитаем длительность записи в секундах: 1x60x60+49x60+57=6 597. Теперь рассчитаем размер в битах: 2x702x1 024x1 024x8=11 777 605 632, разделим на 1 000 получим 11 777 606 кбит. Теперь разделим размер на длительность: 11 777 606/6 597=1 785 кбит/сек. Вычтем ширину потока данных для звука: 1 785−56=1 729 кбит/сек именно такой поток данных остаётся в нашей записи для видеоряда.
Для упрощения расчёта вы можете использовать специальные программы для расчёта потока данных (bitrate calculator) или же какиелибо программы имеющие такую функцию (GordianKnot, кодеры XviD и DivX 5.2). Лучшие из этих программ позволяют учитывать размер контейнера для видеозаписи: например, калькулятор встроенный в кодер XviD. Так, при помощи Nic’s Mini Calc (из комплекта поставки кодера XviD) для приведённого выше примера легко рассчитать ширину потока данных с учётом размера AVI контейнера: 1 713 кбит/сек.
Полученное значение ширины потока данных необходимо указать кодеру видео, по крайней мере для второго прохода.
Настройка DivX
Первый проход. Нажмите кнопку Restore defaults, будут загружены установки по умолчанию. После этого выберите режим Multipass, 1st pass и введите рассчитанное значение ширины потока данных (Encoding bitrate). Также можно выбрать имя файла, в который будет записана информация об анализе видеоряда при помощи кнопки Select.
Первый проход с постоянным качеством. Этот вариант вы можете использовать вместо промежуточного сжатия видео и первого прохода финального сжатия. Нажмите кнопку Restore defaults, будут загружены установки по умолчанию. В окне Select Profile Wizard включите режим Disable profiles и подтвердите ваш выбор, нажмите Далее, на следующем шаге оставьте установки по умолчанию, нажмите Готово. Выберите режим 1pass quality based, Quantizer задайте равным 1 (максимальное качество). Включите режим записи файла с анализом видеоряда (Write log file) и при помощи кнопки Select задайте имя этого файла.
Второй проход. Нажмите кнопку Restore defaults, будут загружены установки по умолчанию. После этого выберите режим Multipass, nth pass и введите рассчитанное значение ширины потока данных (Encoding bitrate). Выберите файл, в который на первом проходе сжатия была записана информация об анализе видеоряда при помощи кнопки Select.
Можно сохранить любой из вариантов настроек при помощи окна Settings: выберите в списке и нажмите Add codec settings, после этого введите краткое описание варианта настроек. Для того чтобы загрузить ранее сохранённый вариант настроек, в окне настройки DivX нажмите кнопку Settings, найдите в списке необходимый вариант настроек и нажмите кнопки Load selected settings, OK. Учтите, что вместе с вариантом настроек сохраняются также значение ширины потока данных и имя файла для записи анализа видеоряда эти значения нужно менять для каждого видеоряда. После загрузки варианта настроек не забудьте установить нужные параметры.
Другие настройки кодера описаны в руководстве по обработке видео, раздел «Финальное сжатие видео».
Настройка XviD
Первый проход. Нажмите кнопку Load Defaults, будут загружены установки по умолчанию. После этого выберите режим Twopass 1st pass, в дополнительных настройках (more) выключите Full quality first pass и включите Discard first pass. Вы можете выбрать имя файла, в который будет записана информация об анализе видеоряда при помощи кнопки «…».
Первый проход с постоянным качеством. Этот вариант вы можете использовать вместо промежуточного сжатия видео и первого прохода финального сжатия. Нажмите кнопку Load Defaults, будут загружены установки по умолчанию. После этого выберите режим Twopass 1st pass, в дополнительных настройках (more) включите Full quality first pass и выключите Discard first pass. Вы можете выбрать имя файла, в который будет записана информация об анализе видеоряда при помощи кнопки «…».
Второй проход. Нажмите кнопку Load Defaults, будут загружены установки по умолчанию. После этого выберите режим Twopass 2nd pass, в дополнительных настройках (more) выберите файл, в который на первом проходе сжатия была записана информация об анализе видеоряда при помощи кнопки «…». Нажмите кнопку Target size и введите рассчитанную ширину потока для видеоряда. При помощи кнопки Calc вы можете вызвать встроенный калькулятор для расчёта ширины потока видеоряда: после нажатия кнопки OK в его окне новое значение автоматически будет подставлено в настройки кодера.
Другие настройки кодера описаны в руководстве по обработке видео, раздел «Финальное сжатие видео».
Обработка звука
Обработка звука при финальном сжатии должна быть отключена: Audio No Audio (для VirtualDubMod: Streams Stream list Disable). Это позволит не копировать ненужную звуковую информацию в файл, полученный при обработке видео. Если же сжатый вариант звуковой дорожки уже подготовлен, и окончательное сведение видео и звука (mux) вы согласны доверить VirtualDub, то при подготовке задания для второго прохода добавьте соответствующий звуковой ряд из файла (один или несколько) подробнее см. ниже.
LAME: сжатие звука (mp3)
Для сжатия звука рекомендуется использовать режим ‘--preset ’, для моно записей средний поток данных имеет смысл задавать около 60 кбит/сек для обычных записей, 7080 для качественных записей (музыка, концерты) и 4550, если в записи присутствует только речь. Стерео записи следует сжимать с потоком от 90 до 160 кбит/сек. тем больше, чем более сложный звук записан. Для того чтобы LAME не передискретизировал звук при среднем потоке менее 60 кбит/сек., дополнительно указывайте ключ ‘--resample 48’ (или другую частоту, она должна равняться частоте дискретизации вашего файла).
Возможно, вы захотите сжать звук с постоянным потоком данных, например для совместимости с аппаратными MPEG4 проигрывателями. В таком случае используйте режим ‘--preset cbr ’, а значение ширины потока данных должно быть выбрано из набора: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320.
VirtualDub: сведение видео и звука (muxing)
Для сведения видео и звука VirtualDub имеет специальный режим Video Direct stream copy, в котором видеоряд не обрабатывается, а лишь копируется.
В этом режиме нужно открыть файл с полученным видео и добавить соответствующий звуковой ряд из файла: Audio WAV Audio... VirtualDub позволяет добавлять звук только из wav файлов, в которых может быть PCM звук (без сжатия) или mp3 CBR. После этого запустите процесс сведения: File Save As. Поскольку этот процесс сведения записи занимает всего несколько минут, режим Don't run this job now… имеет смысл отключить: задача сразу же начнёт выполняться.
VirtualDubMod позволяет добавлять звук во многих форматах: Streams Stream list Add и выберите нужный файл. Если использовано VBR mp3 сжатие, то VirtualDubMod спросит о необходимости применять специальный метод сохранения звукового ряда в конечном файле: нужно ответить Нет на вопрос ‘Discard VBR header?’ (или Да на вопрос ‘Keep VBR header?’). Если вы хотите получить запись с несколькими звуковыми дорожками, таким же образом добавьте остальные звуковые дорожки. В окне Streams Stream list можно выбрать необходимый порядок, в котором звуковые дорожки будут записаны в файл. Также можно добавить субтитры, которые будут записаны внутрь конечного файла.
Тип контейнера
В VirtualDubMod можно сохранить файл, используя не только AVI контейнер: поддерживаются также OGM и Матрёшка. Для этого в окне Save As в разделе Тип файла выберите нужный контейнер.Описание технологии оцифровки
В этом разделе шаг за шагом описана процедура оцифровки, обработки, редактирования и сжатия видео; указаны используемые на каждом шаге программы, приведены ссылками на соответствующие разделы этой статьи с более подробной информацией. Предполагается, что читатель ознакомился с разделом «Регулярная настройка перед каждым захватом видео». Вы можете использовать этот раздел как инструкцию (checklist).
- Установите и настройте необходимые программы см. подробнее раздел «Разовая настройка». Вам предстоит выполнить это единожды, а не перед каждым сеансом захвата видео.
- Подготовьте жёсткий диск для захвата видео: очистите его или дефрагментируйте.
- При помощи программы захвата нужно произвести захват видео в файл на диске.
Аналоговое видео должно быть оцифровано при помощи карты захвата, его захват поддерживают iuVCR и VirtualDub.
Цифровое видео необходимо захватывать через интерфейс IEEE1394 программой iuVCR (или Windows Movie Maker, Adobe Premiere).
Захват видео происходит со скоростью воспроизведения видеосигнала. - Откройте полученный в результате захвата видео файл в программе VirtualDub и удалите ненужные фрагменты.
- При помощи VirtualDub сохраните звуковую дорожку в файл для обработки.
- При помощи Adobe Audition произведите обработку и очистку от шумов звуковой дорожки, сохраните результат в файл.
- Если вы не планируете дальнейшее редактирование видеозаписи, произведите сжатие обработанной звуковой дорожки при помощи LAME.
- Этот пункт можно начинать выполнять одновременно с п. 6. Настройте VirtualDub для обработки видео, запустите обработку видео.
Если вы планируете дальнейшее редактирование видео используйте сжатие в промежуточный формат. Иначе вы можете сразу начать финальное сжатие видеозаписи. - На этом этапе вам придётся подождать: на процессоре 1,5 ГГц обработка часа видеозаписи длится в зависимости от настроек 1020 часов.
- Если вы хотите редактировать свою видеозапись в какомлибо редакторе, используйте для этого полученное после обработки видео в промежуточном формате сжатия и обработанную звуковую дорожку в формате без сжатия (PCM).
- После окончания редактирования сохраните видеоряд: сжатие видео в промежуточный формат и звук без сжатия.
Использование промежуточного формата сжатия видео необходимо только в том случае, если вы рассчитываете продолжить редактирование видео. Для экономии места на жёстком диске вы можете использовать «хитрый» первый проход финального сжатия видео: однопроходный режим с постоянным качеством и записью файла анализа видеоряда. - При помощи VirtualDub сохраните в файл звуковую дорожку полученного файла, произведите сжатие звуковой дорожки при помощи LAME.
- Если нужно запишите и смикшируйте дополнительные звуковые дорожки к видеозаписи (Adobe Audition), произведите их сжатие (LAME).
- Если нужно создайте субтитры к вашей видеозаписи (Subtitle Workshop или Sub Station Alpha).
- Произведите финальное сжатие видеоряда (VirtualDub), расчёт потока данных производится исходя из необходимого объёма окончательной видеозаписи.
- Объедините полученные сжатый видеоряд и звуковую дорожку (одну или несколько; а также, возможно, субтитры) в один файл сведение (VirtualDub, AVIMux GUI).
- Переименуйте файл с видеозаписью, файлы с дополнительными звуковыми дорожками и файлы субтитров (если они не были сведены в один файл с видеозаписью).
Различные программыпроигрыватели видео поддерживают различные соглашения об именах этих файлов: большинство проигрывателей автоматически загрузит субтитры при воспроизведении видео, если имя файла субтитров совпадает с именем файла видеозаписи. - Полученные файлы готовы для записи на архивный носитель CD или DVD.
Имеет смысл дополнить набор файлов необходимыми для их воспроизведения программами: декодерами, проигрывателями и прочим (это позволит установить необходимые для просмотра программы, даже если они отсутствуют на компьютере).
В этом разделе будет описано несколько необычных методов работы с программами VirtualDub и VirtualDubMod, которые требуют базовых навыков по работе с программой и определённого уровня знаний в области обработки видео. Насколько мне известно, эти методы не были ранее описаны в какихлибо статьях. Информация о них взята из документации к программам, собрана из разрозненных писем в конференциях и форумах, некоторые идеи принадлежат лично мне.
Список заданий: дополнительные возможности
В разделе «Запуск обработки видео» были описаны базовые возможности списка заданий программы VirtualDub: задания можно сразу запускать на выполнение, а можно добавить в список заданий. Управлять списком заданий вы можете в окне File Job control. Задания в списке можно откладывать (Postpone) или переводить в режим ожидания выполнения (Waiting). Кнопкой Strart вы запускаете процесс выполнения заданий: они будут выполнены по очереди, одно за другим. После успешного выполнения задание помечается как Done, прерванные пользователем задания обозначаются Aborted, в случае возникновения какойлибо ошибки во время выполнения используется пометка Error (двойным щелчком мыши по строке с таким заданием вы вызовете окно с подробной информацией о произошедшей проблеме).
Главное удобство списка заданий в том, что он автоматически сохраняется в файл VirtualDubMod.jobs в каталоге с программой VirtualDubMod это значит, что список заданий будет сохранён, даже если закрыть программу и запустить её заново. Иногда полезна возможность сохранения текущего списка заданий в указанный пользователем файл: позже список заданий можно загрузить из такого файла. В меню Options окна Job control можно включить режим, при котором VirtualDubMod автоматически выключит компьютер после выполнения всех заданий (Shutdown when finished).
jobs файл
Если открыть сгенерированный VirtualDubMod’ом jobs файл в текстовом редакторе, то легко увидеть, что это сценарий (похожий на сценарий редактора AviSynth). В документации к программе VirtualDubMod приведено описание команд языка сценариев, описаны параметры команд. В определённом смысле формат команд сценариев сам себя описывает: немного поэкспериментировав с программой, несложно понять что к чему. Попробуйте создать несколько различных заданий по обработке видео, сохраните их в списке заданий и проанализируйте созданный программой сценарий в файле VirtualDubMod.jobs
Типичный сценарий выглядит так:
VirtualDub.Open("С:\File.avi","",0); | открыть файл С:File.avi (символ «» обратная дробь дублируется, как это принято в синтаксисе языка C) |
VirtualDub.RemoveInputStreams(); | сбросить установки |
VirtualDub.video.SetDepth(24,24); | глубина цвета при обработке: 24 бита |
VirtualDub.video.SetMode(3); | режим: Video Full processing mode |
VirtualDub.video.SetFrameRate(40000,1); | частота кадров (25 кадр/сек = 40 мс/кадр = 40 000 мкс/кадр ) |
VirtualDub.video.SetCompression(0x78766964,0,10000,0); | использовать сжатие видео: тут используются 16ричные коды форматов сжатия видео, соответствие кодов и форматов несложно определить экспериментально |
VirtualDub.video.SetCompData(370,"OAEAAA…"); | настроить параметры кодека видео: параметры кодека сохраняются в закодированном виде (как набор букв) |
VirtualDub.video.filters.Clear(); | очистить набор фильтров |
VirtualDub.video.filters.Add("rmPal"); | добавить фильтр rmPal |
VirtualDub.video.filters.Add("null transform"); | добавить фильтр Null Transform |
VirtualDub.video.filters.instance[1].SetClipping(4,4,6,8); | настроить обрезку краёв для 2го фильтра Null Transform (фильтры нумеруются с нуля) |
VirtualDub.video.filters.Add("dynamic noise reduction 2.1"); | добавить фильтр Dynamic Noise Reduction 2.1 |
VirtualDub.video.filters.instance[2].Config(12); | настроить фильтр DNR: параметр равен 12 |
VirtualDub.subset.Clear(); | сбросить настройки выделения |
VirtualDub.subset.AddRange(0,182879); | обработать диапазон кадров от 0 до 182 879 |
VirtualDub.SaveAVI("C:\File-done.avi"); | сохранить полученный в результате обработки файл в C:File-done.avi |
VirtualDub.Close(); | закрыть файл после обработки |
Для простоты в приведённом выше сценарии были опущены команды по работе со звуковыми дорожками: обрабатывается только видео.
Как видно из примера, команды сценария достаточно просты и понятны. Нужно лишь разобраться в деталях: в каком порядке в команде обрезки краёв перечислены значения и т. п. Если нужно исключить из обработки какойлибо фрагмент файла, то командами AddRange надо добавлять только включаемые в обработку фрагменты (нумерация кадров ведётся по исходному файлу, начиная с нуля). Изза того, что параметры кодека видео сохраняются в виде закодированного блока данных (как набор букв), их можно лишь копировать из сценария в сценарий. Это неудобно: в этом блоке закодированы значение ширины потока данных (bitrate), имя файла анализа видеоряда (log file) и все прочие параметры. С другой стороны, такой подход более универсален, т.к. позволяет использовать любой формат сжатия видео.
Вряд ли комуто захочется писать подобные файлы с нуля, а вот редактируя готовый сценарий несложно переопределить поведение VirtualDubMod по умолчанию: если удалить последнюю строку сценария, то после обработки файл не будет закрыт.
Как приостановить обработку видео и продолжить её после?
В силу особенностей архитектуры обработки видео, невозможно приостановить обработку видео и продолжить её после: в VirtualDub нет и не будет команд «пауза» и «продолжить». В некоторой степени это компенсируется тем, что VirtualDub позволяет во время работы изменять приоритет процесса обработки видео: если приостановить обработку видео нужно для выполнения на компьютере других задач, достаточно изменить приоритет VirtualDub на Idle.
Если необходимо выключить компьютер, то можно воспользоваться Спящим режимом системы Windows (Hibernate): питание компьютера в таком режиме может быть отключено, а при повторном включении компьютера будет полностью восстановлен предыдущий сеанс работы с Windows, включая все запущенные программы.
В следующем разделе описан ещё один способ, который позволит разбить сеанс обработки видео на несколько частей.
Сегментированные файлы
VirtualDubMod содержит замечательную возможность разделять полученное в результате обработки видео на сегменты, которые сохраняются в виде набора файлов с последовательными номерами. Вопервых, это позволит обходить ограничение на размер файла в файловой системе FAT32 (4 Гбайта). Вовторых, таким нехитрым способом можно разделить процесс обработки видео на несколько этапов: это полезно, если понадобится прервать процесс обработки видео или если процесс аварийно прервётся в результате зависания программы (компьютера). В случае, когда файл с обработанным видео разбивается на сегменты, обработку видео не придётся начинать с самого начала: готовые сегменты сохранены в нескольких файлах, их можно просматривать или подвергать дальнейшей обработке.
VirtualDubMod позволяет автоматически открывать набор сегментов видео (параметр Automatically load linked segments в окне File Open video file): достаточно открыть первый файл, остальные сегменты загружаются автоматически.
Для того, чтобы продолжить обрабатывать файл нужно:
- если процесс обработки видео был прерван аварийно, нужно удалить последний сегмент видео: в этом файле отсутствует блок index, описывающий содержимое файла (потому этот файл непригоден для воспроизведения и дальнейшей обработки)
- открыть все обработанные сегменты: File Open video file, включить параметр Automatically load linked segments, выбрать файл с первым сегментом видео
- запомнить количество кадров, которые уже были обработаны: Edit End, Edit Go to, в этом окне вы увидите номер последнего кадра (назовём это число n)
- закрыть обработанную часть видео (File Close video file), создать на диске подкаталог (папку) и переместить туда готовые сегменты видео
- заново открыть исходный файл и в точности восстановить параметры обработки видео (File Load processing setting)
- исключить из обработки первые n кадров: Edit Go to Jump to frame number: n, Edit Set selection end, Edit Beginning, Edit Set selection start, Edit Delete
- запустить на выполнение (сразу же или через список заданий) обработку оставшейся части видео: File Save As
- переименовать полученные сегменты так, чтобы их номера продолжали нумерацию ранее обработанных сегментов
- переместить переименованные сегменты в подкаталог к ранее обработанным сегментам
- теперь можно открыть полностью обработанный файл: File Open video file, включить параметр Automatically load linked segments, выбрать файл с первым сегментом видео
Преимущество этого метода в том, что готовый сегмент видео можно просмотреть ещё до того, как будет окончена обработка всего видеоряда. Обработку видео можно прервать в любой момент и продолжить позже, ценой выполнения несложных манипуляций.
Недостаток метода: он годится только для однопроходного сжатия. При первом проходе двухпроходного сжатия создаётся пустой видеоряд данный метод не подойдёт: сегментирование файла анализа видеоряда (log file) не поддерживается. На втором проходе двухпроходного сжатия использовать этот метод также не рекомендуется: для того, чтобы перераспределение битов производилось по всей длине видеозаписи, необходимо второй проход сжатия производить для всего видеоряда целиком. Попытки использовать такой метод для второго прохода приведут к получению файла неверного размера и к ухудшению качества сжатого видео.
Значение этого недостатка не столь велико, как кажется с первого взгляда: обработка видео, которая занимает много времени (может длиться десятки часов), обычно выполняется в однопроходном режиме. Финальное сжатие видео, которое выполняется в два прохода, занимает всего несколько часов.
Как сэкономить на промежуточном сжатии
Традиционно используются два способа обработки видео. Первый способ: видеозапись обрабатывается набором фильтров, полученный результат сохраняется в файл. Обработка фильтрами требует значительных вычислительных ресурсов и занимает много времени. На этом этапе используется промежуточное сжатие (HuffYUV или MJPEG): такой файл достаточно велик, по размеру он часто равен исходному файлу с оцифрованным видео. Полученный файл с обработанным видео подвергается редактированию и монтажу, а в конце финальному сжатию в формат MPEG в два прохода. Сжатие производится сравнительно быстро.
Второй способ можно использовать, когда вам не нужно редактировать обработанное видео. Исходное оцифрованное видео подвергается сжатию в формат MPEG в два прохода. Поскольку при обоих проходах должен использоваться один и тот же исходный видеоряд, то при каждом проходе необходимо производить одинаковую обработку видео. Оба прохода требуют значительных вычислительных ресурсов и занимают много времени.
Есть ещё третий способ, который вы можете применять вместо второго: когда вам не нужно редактировать обработанное видео. Он описан в Официальном руководстве по DivX 5.2. Вместо промежуточной обработки видео и первого прохода нужно использовать режим 1pass quality based с включённой записью файла с анализом видеоряда (write log file) именно он создаётся при первом проходе двухпроходного сжатия. При этом рекомендуется использовать максимальное качество видео: 1. Размер этого файла будет примерно в 510 раз меньше того же видео, сжатого HuffYUV или MJPEG. На втором проходе используйте полученную на первом проходе видеозапись в формате DivX (без какихлибо фильтров и правок: файл содержит уже обработанное видео) и полученный файл с анализом видеоряда (log file). Кодер XviD также способен на такой фокус: выполните первый проход в режиме Two pass 1st pass, при этом в дополнительных настройках (more) включите Full quality first pass и выключите Discard first pass. Подробнее финальное сжатие видео описано в разделе VirtualDub: финальное сжатие видео.
Используя этот график, вы можете сравнить различные способы обработки видео. Цифры приведены приблизительно соответствующие реальным: размер исходной оцифрованной видеозаписи и размер обработанной записи в формате HuffYUV равны 50 ГБайт, размер обработанного видео в формате DivX 6 ГБайт, размер готового видео 1,5 Гбайт (2 CD). Время обработки видео комплектом фильтров 20 часов, время одного прохода сжатия в DivX 2 часа. (Щёлкнув на трёхмерную диаграмму, вы можете увидеть эквивалентную плоскую диаграмму.)
Может показаться, что в таком варианте будут допущены потери качества изображения: в качестве промежуточного формата используется сжатие с потерями MPEG4. Однако это не так: при сжатии в DivX с максимальным качеством (минимально возможный коэффициент квантования 1) будут выполнено только лишь квантование изображения (разделение изображения на квадратные блоки). Все остальные блоки кодера DivX, которые уменьшают размер видео и ухудшают качество изображения (применение кривой сжатия и увеличение коэффициента квантования и т.д.) в этом режиме не работают. При выполнении второго прохода сжатия, алгоритм MPEG–4 в первую очередь разобьет изображение на блоки, выполнит квантование. Но именно в таком виде оно и записано в сжатом файле! (Происходящее несколько упрощено, но в целом соответствует действительности.) Устройство всех трёх способов обработки видео схематически приведено ниже:
Такой метод позволяет существенно уменьшить время обработки видео и снизить требования к необходимому дисковому пространству. Применение такого метода не приводит к потере качества изображения.
Как добавить в список заданий оба прохода сжатия видео
Изза того, что на втором проходе в качестве исходного используется файл, который будет создан в результате выполнения первого прохода, штатными средствами не удастся добавить в список заданий задания для выполнения обеих проходов. В этой ситуации сработает маленькая хитрость.
Запустите первый проход на выполнение, выключив режим Don’t run this job now… После того, как несколько кадров будет обработано, отмените выполнение первого прохода (Abort). При этом будет создан файл, который будет использоваться как исходный для второго прохода. Ничего не меняя в настройках, нужно сохранить задание для первого прохода: File Save As, режим Don’t run this job now… надо включить. Запомните количество кадров, которое содержит обрабатываемый видеоряд: Edit End, Edit Go to, в этом окне вы увидите номер последнего кадра (назовём это число n). Далее нужно открыть файл, полученный в результате прерванного первого прохода, настроить задание для второго прохода и сохранить его в списке заданий. Закройте VirtualDubMod, оба задания будут сохранены в файле VirtualDubMod.jobs в каталоге программы. Откройте этот файл в текстовом редакторе, найдите сценарий для выполнения задания для второго прохода (последнее задание). В команде VirtualDub.subset.AddRange второй параметр нужно поменять на число n. Сохраните файл. Теперь вы можете запустить VirtualDubMod и выполнить оба прохода: File Job control Start.
Распределённая обработка видео
Предыдущая ветка развития программы VirtualDubMod (1.4.13) содержала функцию распределённой обработки видео: несколько компьютеров объединяется в вычислительный кластер, один из компьютеров назначается ведущим (master) он следит за выдачей заданий всем компьютерам кластера остальные компьютеры становятся ведомыми (slave). Идея проста: ведущий компьютер делит файл на части и раздаёт нескольким ведомым компьютерам задания на обработку фрагментов. Несколько компьютеров, работая параллельно, выполнят задачу быстрее одного компьютера. После того, как все фрагменты будут обработаны, ведущий компьютер «склеивает» их в один файл. Кластер управляется с ведущего компьютера, отсюда же можно наблюдать за работой всех компьютеров.
Ниже описана настройка кластера на базе VirtualDubMod 1.4.13.2v2 (это последняя версия из ветки 1.4.13, её можно скачать с сайта программы). В файле справки к программе эта функция достаточно подробно описана (на английском языке), точнее там описано, как эта функция должна работать. Программа содержит уйму ошибок: по этой причине функция распределённой обработки не была включена в новую ветку программы 1.5. Например, мне так и не удалось заставить работать параметр командной строки ‘/j’, который должен при запуске автоматически переводить VirtualDubMod в ведомый режим.
По очевидным причинам таким способом можно выполнять только однопроходную обработку видео: при первом проходе двухпроходного сжатия создаётся пустой видеоряд; а разбиение на фрагменты и последующее склеивание файла анализа видеоряда (log file) не поддерживается. На втором проходе двухпроходного сжатия использовать этот метод также не рекомендуется: для того, чтобы перераспределение битов производилось по всей длине видеозаписи, необходимо второй проход сжатия производить для всего видеоряда целиком. Попытки использовать распределённый метод для второго прохода приведут к получению файла неверного размера и к существенному ухудшению качества сжатого видео. Однако значение этого недостатка не столь велико, как кажется с первого взгляда: именно обработка видео занимает много времени (одним компьютером может выполняться десятки часов), именно её обычно производят в однопроходном режиме. Финальное сжатие видео, которое выполняется в два прохода, даже одним компьютером выполняется всего за несколько часов.
Установка программ
На каждом из компьютеров должен быть установлен VirtualDubMod с комплектом используемых фильтров и кодеков, причём нужно использовать одинаковые версии всех компонентов. Учтите, что запустить VirtualDubMod из одного сетевого каталога с общим доступом не получится: вероятно, он хранит какуюто информацию о запущенной сессии в файлах конфигурации. Кодеки можно использовать любые: я пробовал DivX 5.05 (однопроходный режим с заданным потоком данных, однопроходном с заданным уровнем качества), HuffYUV 2.1.1 и PICvideo MJPEG. Не забудьте зарегистрировать кодек PICvideo MJPEG на каждом компьютере! В противном случае в части фрагментов вы получите бегущую строку с рекламой.
Использование большого количества компьютеров предъявляет повышенные требования к стабильности работы программ и фильтров. Во время своих экспериментов я использовал бетаверсию фильтра QS Deinterlace 0.52b: на моём компьютере он отлично работал. При распределённой обработке от него пришлось отказаться, так как он вызывал зависания VirtualDubMod’а на трёх компьютерах. Если используется версия фильтра, оптимизированная под набор команд какоголибо процессора, нужно убедиться, что этот набор инструкций поддерживают процессоры всех компьютеров кластера.
Настройка
Настройки процесса обработки видео выполняются на ведущем компьютере.
Длина фрагмента (Segment length): рекомендуется использовать минимальную длину в 1 мин. Это позволит более аккуратно распределять вычислительные ресурсы. Например: есть два компьютера, со скоростью 5 и 10 условных единиц. Если разделить исходное видео на 2 части, то скорость всего процесса обработки видео будет ограничена скоростью медленного компьютера. Если видео разделить на 9 частей, то быстрый компьютер выполнит обработку вдвое большего количества частей, потому к результату мы придём быстрее. Максимальное количество частей, на которые может быть разделена видеозапись 512. Даже если использовать фрагменты диной в минуту, это создаёт ограничение на длину обрабатываемого видео в более чем 8,5 часов (на практике видеозаписи такой длины не встречаются).
Приоритет (Process priority). Эта настройка определяет приоритет процесса кодирования, её можно изменить независимо на каждом компьютере. Рекомендуется на всех компьютерах выставить Idle: в этом режиме все программы на компьютере будут иметь приоритет над кодированием видео, что позволит нормально работать за любым их компьютеров кластера. На кодирование видео будет расходоваться процессорное время, оставшееся после выполнения остальных задач (обычно в это время процессор ничего не делает).
Всегда перезапускать задания (Always restart jobs) будет ли кластер продолжать задание, в случае если его остановить и запустить заново; или же начнёт обрабатывать видео заново. Мне не удалось заставить кластер продолжить обработку остановленного задания, потому следует включить этот параметр.
Обработку звука (Process Audio) рекомендуется выключать. Поскольку она происходит во много раз быстрее, чем обработка видео, гораздо проще выполнить обработку звука на одном компьютере. Потом звук несложно присоединить к обработанному видео. Если вы хотите, чтобы кластер обрабатывал звук, учтите: с синхронизацией звука возникают некоторые проблемы. Подробности описаны в документации.
Send slave to tray при минимизации VirtualDubMod на ведомом компьютере, соответствующая кнопка будет убрана из Панели задач, взамен появится значок (icon) в Области уведомлений (system tray). Это удобно для тех пользователей, которые работают за ведомыми компьютерами: в Панели задач нет «лишних» программ: только те, которые запустил пользователь.
Выключать ведомые компьютеры по завершении (Shutdown clients when finished) после окончания процесса обработки ведущий компьютер выключит все ведомые компьютеры. Параметр Выключать по завершении (Shutdown when finished) также позволяет выключить ведущий компьютер после окончания процесса обработки видео.
Исходное и обработанное видео
Каждый из компьютеров использует одинаковый путь для файлов с исходным и обработанным видео. По этой причине удобнее всего использовать сетевые пути: тогда не нужно держать копию файлаисточника на каждом компьютере. Конечно, все участники процесса должны иметь разрешение на чтение из этого каталога с общим доступом.
С результатом обработки не всё так просто: если вы будете сохранять его в доступном по сети каталоге с общим доступом, то там нужно будет в два раза больше свободного места, чем занимает файл результата. Во–первых, там будут сохраняться фрагменты обработанного видео, а во–вторых там же будет сохранён склеенный файл результата: он склеивается из фрагментов автоматически после окончания обработки видео. Файл результата нужно сохранять на жёсткий диск ведущего компьютера: в противном случае при финальной сборке фрагментов результата, ведущий компьютер будет считывать фрагменты через сеть, и сохранять готовый файл также по сети. Это вызовет перегрузку сети.
Фрагменты после склеивания будут удалены, но именно на момент склеивания нужно много места на диске. Для того чтобы обойти эту проблему, я написал специальную программу: см. раздел «Жёсткий диск enlargement». В качестве альтернативы можно сохранять результат обработки видео в некий каталог C:Dir — надо, чтобы такой каталог существовал на каждом компьютере, и там было достаточно места (надо вместить все фрагменты, обрабатываемые этим компьютером). На ведущем компьютере в этом каталоге должен также поместиться склеенный файл результата. Также надо проверить наличие прав на запись в этот каталог у всех участников процесса.
Запуск обработки
На ведущем компьютере нужно создать задание по обработке видео: всё делается как обычно, за исключением путей к файлам (см. выше). В окне Save AVI включаем Put in job list. Таким образом, можно создать несколько заданий. Далее в окне Job control нужно нажать Update (будет выведен список компьютеров в сети), Master (компьютер будет назначен ведущим) и Start (начать обработку заданий). Ведущий компьютер сразу выделит себе фрагмент видеозаписи и начнёт его обработку. Изза необходимости контролировать кластер, производительность ведущего компьютера снижается на 510%. По мере обнаружения ведомых компьютеров, им также будут выделены фрагменты видеоряда и переданы задания на обработку.
На ведомом компьютере нужно только лишь запустить VirtualDubMod, в окне Job control нажать Update (будет выведен список компьютеров в сети) и Slave (назначить компьютер ведомым). Ведомый компьютер будет ждать получения задания на обработку фрагмента видео от ведущего компьютера, а когда такое задание будет получено начнётся его выполнение. Случается, что ведомый компьютер не распознаётся ведущим, тогда попробуйте перезапустить программу на ведомом компьютере. Эти проблемы возникают достаточно спонтанно и бессистемно: я так и не понял, как с ними эффективно бороться.
За процессом обработки видео кластером можно очень наглядно наблюдать с ведущего компьютера: в окне Job control индикатор прогресса отображает границы фрагментов, разными цветами выделены уже обработанные фрагменты видео, обрабатываемые в данный момент какимто из компьютеров и ожидающие своей очереди. В списке перечислены все компьютеры сегмента, среди них указаны участвующие в процессе обработки видео. Для каждого из компьютеров кластера отображается средняя скорость обработки видео, начало и конец фрагмента видеоряда. Любой из ведомых компьютеров можно исключить из процесса обработки видео кнопкой Abort.
Предупреждаю ещё об одной ошибке программы: при создании задания нельзя выделять фрагмент для обработки, иначе программа будет генерировать пустые файлы. Вместо этого выделите и удалите (Edit Delete) ненужные фрагменты перед необходимым фрагментом и после него.
Надёжность распределённой обработки
В случае остановки одного из ведомых компьютеров по причине остановки пользователем с ведущего или ведомого компьютера, или же в результате аварийного завершения изза зависания программы или компьютера ведущий компьютер направит «недоделанный» фрагмент другому компьютеру. Зависший ведомый компьютер можно заново включить, настроить и подключить к процессу обработки: он получит новое задание. На надёжность распределённой обработки видео влияет только надёжность ведущего компьютера и сетевых папок с общим доступом, из которых все компьютеры считывают исходное видео и куда записывают результат обработки.
В моих экспериментах программы запускались на ОС Windows XP, XP SP1, 2000 SP2. Попытка использовать ведомый компьютер под управлением Windows 98 SE привела к тому, что VirtualDubMod на ведомом и ведущем компьютерах вошли в состояние «Не отвечает на системные запросы» (Not respondning). Надо отдать должное, после отключения ведомого компьютера под Windows 98, процесс обработки видео продолжился.
Загрузка сети
Программа содержит массу ограничений на использование сети: все компьютеры должны находиться в пределах одного сегмента сети, в одном сегменте может быть запущена только одна распределённая задача (только один ведущий компьютер). Также программа ведёт себя нестабильно при большом количестве компьютеров: так, в корпоративной сети большого предприятия с 200 компьютерами в одном сегменте, программа зависала прежде, чем выдавала список компьютеров в сегменте сети. В небольшой же офисной сети с 1015 компьютерами такой проблемы никогда не было.
В моих экспериментах исходным был файл (PicVideo MJPEG @ 19, 768x576) с битрейтом примерно 25 Мбит/с. Все 8 компьютеров считывали его из одного каталога с общим доступом. Загрузка 100 Мбит сетевого интерфейса составляла примерно 20% пропускной способности. Результат (HuffYUV, 384x288) записывался на другой компьютер: там создавался примерно такой же поток данных и примерно такая же загрузка сетевого интерфейса.
При попытке держать исходное видео и файл результата на одном компьютере наблюдалась весьма неприятная картина: сетевая карта Realtek 8139 так загрузила процессор, что за компьютером было невозможно работать, даже мышь двигалась рывками. Если вы планируете использовать распределённую обработку видео, подумайте о покупке хорошего сетевого оборудования (Intel, 3COM такие сетевые карты не занимают процессор своими задачами). Возможно, имеет смысл задуматься о сети с гигабитной пропускной способностью, ведь в моём случае передавались не очень большие потоки информации: вопервых, разрешение обработанного видео невелико, вовторых, скорость обработки видео не очень высока (примерно 1 кадр/сек. на каждый 1 ГГц процессора).
Что это даёт?
Результат моих экспериментов: обработка видео одним компьютером (Intel Celeron 1100A @ 1,47 ГГц) занимает 20 часов; кластер из 8 компьютеров от 866 МГц до 2,4 ГГц справился с задачей за 4 часа. Во время обработки видео все сотрудники работали за своими компьютерами как обычно. «Эффективная скорость» кластера составила примерно 7,5 ГГц — ни один современный процессор не в состоянии обеспечить такой скорости работы. Один из компьютеров во время выполнения задачи пришлось выключить — на качестве результата это никак не сказалось.
Жёсткий диск enlargement
Мне очень не понравилось то, что на жёстком диске нужно вдвое больше места, чем размер результирующего файла: зачем платить за жёсткий диск в 120 Гбайт, если на него можно сохранить файл размером не более 60 Гбайт? Чтобы выйти из этого положения, я написал специальную программу.
Идея проста: не нужно склеивать фрагменты видео в один файл, ведь их запросто можно последовательно открыть в VirtualDubMod’е при помощи функции Добавить фрагмент (File Append AVI segment) и обрабатывать так же, как один склеенный файл. Первое препятствие на пути к желаемой цели: количество фрагментов. Открыть 60 файлов это значит 60 раз выполнить операцию File Append AVI segment. Вопервых, это неудобно и утомительно. Вовторых, положение осложняется тем, что порядок фрагментов видео не соответствует порядку их нумерации. Программа выдаёт фрагментам номера в соответствии с порядком их обработки, а этот порядок не соответствует последовательности фрагментов в видеозаписи.
VirtualDubMod записывает подробности о распределённой обработке видео в файл с расширением parts, имя его совпадает с именем сохраняемого AVI файла. Моя программа VDMCH (VirtualDubMod 1.4.13 Cluster compression Helper) анализирует файл parts и создаёт файл с расширением jobs.part, его содержимое нужно вставить в сценарий VirtualDubMod вместо команды Open. В этом файле записан набор команд: Open и множество Append с нужными именами фрагментов в нужном порядке. Это позволит составить финальный видеоряд из фрагментов в нужном порядке, в готовом для дальнейшей обработки в VirtualDubMod виде.
Сценарий распределённой обработки видео с использованием моей программы получается таким:
- Настроить задание по обработке видео и запустить его на обработку кластером компьютеров, пусть обработанное видео сохраняется в файл с именем FileName.avi
- После того, как обработка будет выполнена, ведущий компьютер приступит к «склеиванию» фрагментов в один файл: работу программы можно прервать (Abort). Обработка видеоряда к этому моменту уже закончена.
- Скопируйте программу VDMCH.exe в каталог, куда сохранялось обработанное видео. Запустите программу командой ‘VDMCH FileName’ программа создаст файл с именем FileName.jobs.part
- Для дальнейшей обработки видео вы можете использовать VirtualDubMod версии 1.5. Запустите VirtualDubMod, в котором вы хотите продолжить обработку полученного видео. Откройте в нём один из фрагментов обработанного видео, настройте задание по дальнейшей обработке видео и сохраните его в списке заданий. Можно создать несколько заданий, например несколько проходов двухпроходного сжатия. Закройте VirtualDubMod.
- Откройте файл сценария VirtualDubMod.jobs, принадлежащий соответствующему VirtualDubMod, в текстовом редакторе. Отыщите только что созданные задачи по дальнейшей обработке видео. Для всех этих задач строку с командой Open необходимо заменить на содержимое файла FileName.jobs.part: он содержит команду Open и ряд команд Append. Сохраните файл сценария.
- К этому моменту все фрагменты обработанного видео должны находиться в одном каталоге. Запустите VirtualDubMod, в котором вы хотите продолжить обработку полученного видео. Чтобы начать выполнение заданий нажмите кнопку Start в окне File Job control.
Учтите, что формат файла сценария в VirtualDub версий 1.4 и 1.5 несколько различается. Команды Open и Append имеют одинаковый формат, потому файл, сгенерированный программой VDMCH, можно использовать для редактирования сценариев VirtualDubMod версий 1.4 и 1.5.[Все статьи в разделе «Цифровое Видео»]