Как работать с программой VirtualDub?Семейство VirtualDub - обзорное описание Для несложной обработки видео, типа перекодирования в AVI формат, вырезания отрывков, наложения фильтров и записи с различных видеоисточников вовсе не обязательно покупать и устанавливать дорогущий софт типа Adobe Premier или Ulead Media Studio. Здесь вам поможет прекрасная бесплатная программа VirtualDub для Win32. VirtualDub - это программа для захвата и обработки цифрового видео. Вот её основные преимущества: Лучший и быстрый захват видео.VirtualDub, как и Nandub содержит встроенную функцию видео захвата. Баръер файлов в 2 Гб. VirtualDub может захватывать и обрабатывать файлы превышающие известный 2-х гигабайтный предел, и работать с видео посегментно, то есть он может захватывать аналоговое видео без остановки и автоматически последовательно пронумеровывать файлы, превышающие 2-гигабайта (ограничение для Win95,98,Me). VirtualDub так же свободно читает файлы посегментно захваченные программой видеозахвата AVI_IO Видео монтажные функции. VirtualDub оптимизирован для видео монтажа, что делает его простой программой, которую удобно применять для предварительной обработки, очистки или преобразования видеофайлов. Здесь действительно просто записать видео-ролик, отрезать ненужные части и запустить процесс конвертации одним из установленных кодеков. Поддержка кодеков. Встроенная поддержка кодеков Motion-JPEG, MPEG-1 видео и MP3 аудио.Вы можете менять и удалять файлы черезстрочного видео совершенно свободно, вне зависимости от того, какой MJPEG декодер вы используете.VirtualDub может преобразовывать MPEG-1 в AVI, включая звуковую дорожку. Поддерживаются внешние кодеки, проинсталлированные в вашей оперативной системе, такие как DivX, mpeg4, wma и т.д. Примечание: VirtualDub не поддерживает напрямую форматы видео - mpeg2 и type-1 DV. Применение фильтров. Большинство фильтров VirtualDub могут работать в реальном времени. Это означает, что вы можете вставлять видео фильтры и тут же видеть результаты их применения в правом окне VirtualDub без какого либо кодирования. Все внешние фильтры для VirtualDub можно скачать с интернета и поместить в папку "Plugins" (естественно в разархивированном виде), которая находится в вашей папке с VirtualDub. Таким образом VirtualDub сам обнаружит установленные фильтры и загрузит их, остаётся дело за выбором фильтра... Применение Direct Stream copy |AMP|amp; Frameserver. В VirtualDub есть две отличные функции, которые как правило отсутствуют у многих видео редакторов: 1) Direct Stream copy - прямое копирование (без перекодирования), как аудио, так и видео потоков, что позволяет обрезать в видеофайле ненужные сцены и сохранить уже обрезанную заготовку в исходном формате не теряя при этом качества видео. Требуется дополнительное свободное место на жёстком диске. 2) Frameserver - экономичная функция передачи видеокадров напрямую в какой-нибудь encoder, типа CinemaCraft или TMPEG. Совершенно не требует нескольких гигабайт свободного места на диске. --- передача напрямую кадров без какой либо обработки. --- передача напрямую обработанных кадров с применением фильтров VirtualDub в некомпрессированном формате RGB (экономия свободного места на жёстком диске). Отложенная обработка. Встроенная система управления заданиями позволяет создавать пакеты заданий для отложенной обработки видео. Вы можете построить огромный список задач и запустить его для выполнения на ночь или когда уйдёте на работу. Программа сама будет следить за временем запуска-окончания. Вы всегда сможете переупорядочить список задач, даже когда они уже выполняются. Бесплатное открытое программное обеспечение. VirtualDub - является бесплатно распространяемым, программным обеспечением, с доступным полным исходным кодом. Вы можете изучать исходный код и использовать его части в ваших GNU GPL программах! Я прошу прощения за допущенные, может быть где-то, ошибки, как орфографические, так и технические... Этим материалом я не собираюсь никого учить, поучать или наставлять (я просто делюсь опытом) - вы используете этот материал на своё усмотрение. В начале запустим "AuxSetup" Проинсталируем "install handler" и нажмём "Run VirtualDub" для запуска программы или же запустите сразу, после вышеописанной инсталляции, файл VirtualDub.exe из папки c программой. Простота работы с VirtualDub помогает любому, даже не понимающему в дигитальном видео человеку, обрабатывать, вырезать и захватывать в цифру видео изображение. Здесь мы научимся обрабатывать готовый видео файл, переконвертировать его в другой AVI формат видео с аудио или без него... Для начала откроем видео файл, указав директорию его нахождения (сегментированно захваченные файлы сами загрузятся автоматически до 99 файлов подряд; имеются ввиду файлы захваченные программами AVI_IO или VirtualDub) Можете после открытия файла добавить ещё AVI файл, но имейте ввиду, что он должен быть c теми же параметрами, что и предыдущий файл: формат, размер изображения и "data rate" Обрежем "ненужные" кадры (фреймы), для этого внизу отмечена клавиша начала "ненужных" кадров, нажмём её: затем передвинем бегунок (рендер,слайдер - кому какое название нравится) и отметим конец "ненужных" кадров нажатием следующей кнопки (клавишами курсора ´ и ´>´ можно подрегулировать покадровую точность): И, наконец, нажимаем на клавиатуре клавишу "DEL" и все выделенные фреймы удаляются... Или же, если это сегментированно загруженные файлы, сразу нажмите "Save as AVI..." и ваш, выделенный синим, кусок видео начнет копироваться (при отмеченных в VIDEO/AUDIO - direct stream copy) или кодироваться. Потренеруйтесь перед сохранением файла, а то потом будет поздно чесаться ;)) Теперь начнём настройку нужного аудио формата. Настроим внизу нужную частоту дискретизации, каналы, битность или оставим по умолчанию "interleaving" - совмещение аудио с видео - отметим для каждого фрейма Теперь настроим аудио компрессию: В нашем случае выбираем аудио кодек DivX Audio (этот аудиокодек устанавливается вместе с видеокодеком DivX 3.11_alfa. После инсталляции видеокодека надо запустить файл "Run me first!!!" для инсталляции самого аудиокодека), отмеченный ниже на рисунке, и выберем поток - 64 кб/с стерео for DivX - самый по моему оптимальный аудио кодер и почти не имеющий расхождения видео с аудио (а это большая проблема - ведь вы, уверен, не хотите сначала просмотреть изображение, а только через несколько секунд услышать звук, что не есть хорошо, как понятно ;) ) Одним словом - это формат WMA (windows media audio) - недалеко ушедший от формата mp3, даже мне кажется WMA почище будет Этот же кодек сидит в установках Windows Media Audio V2 64kbps, 44kHz stereo 8Kb/s Хотя вы можете варьировать кодеками, как захотите - можете перекомпрессировать звук в mp3 (при двухпроходной компрессии в mp3 лично у меня в VirtualDub выскакивает сообщение об ошибке в программе, да и сам создатель программы VirtualDub намекает, что со звуком сжатым в mp3 - возможна рассинхронизация аудио и видео). ...или вообще оставьте PCM - не компрессированный звук (кому как нравится). Или же, можете вытащить звук из видео файла в некомпрессированном формате PCM (wav) и обработать его в аудио редакторе в нужный вам формат... Оставим метку на "AVI audio", так как здесь мы будем обрабатывать звук, оригинального AVI, замешанного вместе с видео. Отметим "полный режим обработки", потому что только с этим параметром звук перекодируется, а если вдруг вы решите не изменять формат исходного аудио, то в этом случае надо отметить "direct stream copy" - "прямая копия потока" А ещё можно немного поднять регулятор громкости звука, если вдруг на оригинале - тихий звук (работает только при "Full processing mode") Поставьте галочку и передвиньте регулятор громкости на нужный вам процент: Перейдём к видео настройкам Сначала о фильтрах Нажмём "add" - "добавить" и все внутренние фильтры загрузятся. Чтобы добавить и внешние фильтры вы должны их скачать с интернета и распаковать в папку "Plugins", находящуюся в вашей папке с VirtualDub, тогда и внешние фильтры будут загружаться автоматически при нажатии на "add". После открытия вы увидите определённое количество фильтров, которые используются для редактирования... Я выберу только фильтры, нужные для перегона AVI (захваченного моей Мирой) в DivX формат. ...и первый фильтр - это внешний фильтр "smart deinterlace" - он хорошо справляется с коррекцией смещения при быстром движении. ...и работайте с версией 2.4 (лично мое мнение - я заметил, что от версий 2.6 и 2.7 появляются артефакты). Обязательные настройки для коррекции смещения "Field-only differencing" и "Phase shift" (я отметил справа "Field swap before phase shift", потому что моя Mira делает захват с нечётным расположением полей, если у вас карта захвата с чётным расположением полей, то вы будете должны поставить галочку на "Field swap after phase shift"): Или, можно воспользоваться уже внутренним фильтром - "deinterlace" - этот фильтр хорош тем, что убирает при больших разрешениях (768х576, 720х576, 640х480) видимую на мониторе "расчёску" - которая остаётся после захвата двух полей, но этот фильтр c функцией "blend" замыливает изображение Отметим одну из трёх указанных функций (на ваш вкус) и ОК (я отмечал дублировать поле первое или второе - выходит получше, чем голый "blend") Здесь можете посмотреть моё сравнение с применением "deinterlacing mode". Многие считают, что применение внешнего фильтра "smart deinterlace" - лучшее решение... Я провёл эксперимент: взял 2 клипа (в одном клипе "smart deinterlace" - удачен, а во втором - нет). Во внутреннем "deinterlace" применялась функция "Blend" (к сведению). Оба клипа были захвачены в одно и то же время друг за другом, с одинаковой полной резолюцией (768x576) и с одинаковым data rate=7 Мб/c На этих картинках визуально можно посмотреть разницу между этими двумя, вроде на первый взгляд одинаковыми, клипами... Отсюда делайте выводы, что и когда надо использовать! Все клипы, видимо, разные по структуре??? (бывают фильмы переделанные из прогрессивного в чрезстрочный или возможно был сделан "telecine" - метод преобразования частоты кадров из 24fps в 30fps). Я перед кодированием делаю визуальную проверку в правом окне VirtualDub (окно выходного видео), чтобы просмотреть какой "deinterlace" фильтр лучше применить для текущего клипа. Пойдём дальше и добавим ещё фильтр "re-size" - уменьшение или увеличение изображения Настроим нужный размер и отметим "Precise bicubic", нажмите "просмотр" (обрабатываемый файл должен быть загружен в VirtualDub) и просмотрите, что должно получиться ... Я, лично, уменьшаю резолюцию с 768х576 до 640х480 (лучшее качество) Ну а если вы решите в 2 раза уменьшить размер изображения, укажу на следующий фильтр: Отметим "2:1 reduction (high quality)" - этот фильтр уменьшит разрешение видеофайла в 2 раза, но оставит хорошее качество (рекомендуется для слабых компьютеров) Внимание! Этот фильтр я использую, чтобы уменьшить захваченное видео с резолюцией 768х576 до резолюции 384х288. Будьте осторожны если ваше видеоизображение другого размера (p.s.) Если вы хотите увеличить резкость вашего видео клипа добавьте внутренний фильтр "sharpen", как показано здесь: и сдвинем ползунок до ... я сдвигаю до 32, а вы как решите... Следующая строка "frame rate" - изменение скорости передачи кадров Я отмечаю - как взаимосвязь аудио с видео, чтобы не было рассинхронизации аудио с видео. Очень полезная функция! P.S. Не рассматриваемая здесь функция - "inverse telecine" - метод преобразования частоты кадров из 24 в 30 кадров/сек (частота кадров в американской системе NTSC=30 кадров/сек) смысл этого, что к каждым четырём кадрам добавляется пятый кадр. Делается это делением кадров на черезстрочные поля и использованием двух полей из двух кадров четвёрки дважды. Добрались, наконец, до видео компрессии: В нашем случае выберем DivX Codec здесь рассматривается 4.12 (это может быть любой номер 4-ого кодека заранее скачанный на http://www.divx.com/ и проинсталлированный в вашей системе) и нажмём "configure", для более точных настроек. Теперь объясню по указателям: "Variable bitrate mode" - одна из самых важнейших настроек; в ней устанавливается режим, способом которого вы будете компрессировать свой видеофайл. Режимы: в 1 проход: 1-pass (с тонкими настройками, о которых я расскажу ниже) и 1-pass quality-based (с единственной настройкой "encoding quality", измеряемой в процентах) в 2 прохода: 2-pass - наилучший способ (где первый проход - сбор информации о степени движения, а во втором проходе мы уже получим готовый файл) Двух проходность мы и рассмотрим: "Performance/Quality" - скорость обработки, чем ниже скорость, тем качественнее обрабатывается видео ("slowest" - самая медленная обработка, а "fastest" - самая быстрая). Настроим один из основных параметров "output video bistream" видеопотока, чем он меньше, тем меньше по "весу" выходящий файл , но и качество сильно падает ... Я выставляю в первом проходе=1000 Кб/с, а во втором проходе оставляю те же цифры, что и в первом проходе. Можете выставить ключевые кадры (Maximum keyframe interval)=9999 - эта конфигурация включена внутри кодека и называется VKI (variable keyframes interval), она автоматически расставляет ключевые кадры, где считает нужным, но я оставляю=каждые 50 кадров... Ключевые кадры - это основные кадры - они содержат в себе максимальную информацию о кадре оригинального видео и имеют... ;(( ...больший "вес". При KF=9999 - вставляются, иногда в больших объёмах, в местах изменения сцен или в местах с быстрым движением, а иногда, когда нет изменения сцен и практически нет движения, не вставляются совсем . Помимо KF в видеоинформации присутствуют deltaframes (DF) - вставляются между ключевыми кадрами и содержат в себе не весь кадр фильма, а только разницу между предыдущим ключевым кадром и кадром, на который выпадает этот дельта-кадр, DF по размеру намного меньше, чем KF .. Поэтому, чем больше ключевых кадров, тем : 1) выше качество видео. 2) лучше аудио/видео совмещение (interleaving). 3) лучше навигация по видео фильму (что очень важно - если вы захотите нажать кнопку "пауза", то ваш видео плейер может вернуть вас к предыдущему или последующему ключевому кадру, а это может быть длиной в половину фильма ...). 4) но, естественно, и увеличится объём будущего видеофайла. И в связи с этим я отказался от VKI (9999) и выставляю теперь "Maximum keyframe interval"=50 frames. "Deinterlace" - можете поставить галочку, если не задействуете внутренний фильтр "Deinterlace" программы VirtualDub - я не отмечаю эту функцию, так как пользуюсь внутренним фильтром VirtualDub "Decoding parameters" - уровень "postprocessing" я сдвигаю вправо до конца (рекомендовано изготовителями DivX для Pentium3 и выше). При уровне=0 - ни один фильтр не работает При уровне=1 и 2 сработает фильтр "Deblocking" - помогает уменьшить плотность артефактов (квадратиков): 1 уровень - по горизонтали 2 уровень - по вертикали и по горизонтали При уровне 5 и 6 фильтрация светового и цветового шумов, однако размывает изображение - используется в большинстве случаев для мультипликации (работает минимум с Pentium-3) 1 pass encoding parameters Эти параметры настраиваются для двух проходов сразу (будьте внимательны !!!) - изменить настройки для второго прохода вы уже не сможете - они закроются ... "MAX and MIN Quantizers" Квантизаторы - одни из наиболее важных параметров в видео кодировании (то же самое , что и DRF в NanDub) Квантизаторы изменяются от 2 (лучшее качество, но больший размер файла) до 31 (худшее качество,но размер файла меньше). Я устанавливаю min=2 и max=2 (лучшее качество) "Rate Control" - или сокращённо "RC" "RC averaging period" - измеряется в кадрах.- Большее значение обычно приводит к более точной передачи данных. Но это значение также не должно превышать общее количество кадров вашего видеофайла. Короче, если в вашем видеофайле 10 000 кадров, то ставьте это значение в этих пределах, но не более, чем ваши 10 000 кадров "Rate Control reaction period" - восприятие RC свежих сцен. Большее значение обычно приводит к улучшению качества в быстрых сценах движения и к ухудшению качества в медленных сценах движения. Измеряется в кадрах . Я оставляю=20 кадрам "Rate Control down/up reaction" - коэффициент управления реакцией на быстрые и медленные сцены движения. Большее значение обычно приводит к улучшению качества в быстрых сценах движения, но, вместе с этим, увеличивается и видео поток... Все эти параметры взаимосвязаны, результат их настроек приблизителен и зачастую зависит от настройки других параметров. Я оставляю=10 Quality-based encoding parameters Этот параметр настраивается только если вы не используете двухпроходный метод компрессии, а используете однопроходный режим "1-pass quality-based mode" - измеряется в % . Мы его не будем рассматривать, но от себя добавлю, что качество с этим режимом кодировки при 100% получается отменное, только размер файла выходит огромный... 2-pass encoding parameters Эта функция для "2-pass variable bitrate mode" "Frame dropping" - Этот параметр работает только в "2 - pass variable bitrate mode". Он разрешает кодеру, пропустить кадры, когда они не содержат достаточно существенной информации. Полезно, когда хочется уменьшить битрейт, но сохранить визуальное качество. В этом случае, кодер пропустит большее количество кадров в сценах с низким движением или никаким движением вообще, и сохранит их в сценах с быстрым движением. Настройка по умолчанию=0 и я работаю только с ней. Когда вы всё настроили остаётся указать "log file" для сбора информации о движении в фильме - нажмите "select": Обзовём наш файл "status" и сохраним После этого в окне настроек изменится "log file" и будет: Отметим "Full processing mode"-"полный режим обработки", потому что только с этим параметром видео начинает перекодироваться, а если вдруг вы хотите не изменять видеоформат, то в этом случае надо отметить"Direct stream copy" - "прямая копия потока" Следующий шаг - начало кодирования: ВАЖНО! Нужные вам видео фильтры должны быть загружены и настроены уже в первом проходе, во втором проходе мы их не изменяем. Сохраним в первом проходе, что уже настроили выше, в файле "1-pass" - это ещё не готовый видео файл, а только его информация, которую мы потом выбросим в корзину. Начался сбор информации: Видно, что проектируемый размер файла всего 2,7Мб, а datarate=1Кб/с - понятно, что нормального видео файла с таким потоком видео быть не может ;) Время на сбор информации уйдёт ровно столько же, сколько потом уйдёт на второй проход. Вывод: готовый файл я получу примерно только через 1 час и 10 минут, если только успею вовремя перевести на второй проход ;)) По окончании первого прохода почти ничего в конфигурации кодека не меняем, кроме как изменим в настройках кодека "2-pass, first pass" на "2-pass, second pass" > и "output video bistream" установим на нужный битрейт, я лично получаю хорошее качество при битрейте=1000 КБит/сек (то есть я не изменяю его после первого кодирования). Хорошее качество варьируется начиная от 1000 до 2000 КБит/сек, хотя вы можете ставить значение какое захотите (чем меньшее значение вы установите, тем меньше будет выходной файл, но и качество картинки пострадает) Не трогайте "log file" - даже не думайте его поменять!!! Теперь осталось сохранить готовый файл Это можно сделать двумя способами: способ -1 (так же как сохранялся и первый проход) способ - 2 (нарезать будущий файл, например, по 650 Мб) Нарезка делается так: отмечается определённое кол-во Мб (я отметил пространство CD-диска=650 Мб) и VirtualDub автоматически сохранит и пронумерует файлы по 650 Мб Итак, я назвал свой будущий файл "2 pass", можете назвать как захотите - это уже будет готовый видео файл ... и клик "сохранить" Начался процесс обработки (приоритет я выставляю NORMAL) А здесь изображён кодирующийся видео поток - красные вертикальные линии - это ваши ключевые кадры (KF), а синие вертикальные линии - это дельта-кадры (DF) А это то, что получилось в итоге :) |