Поиск:

Вернуться   Форум > Кино > Видео Лаборатория

Видео Лаборатория Техническая поддержка.

Закрытая тема
 
Опции темы
Старый 23.06.2007, 21:09 Вверх     #1
AlexStorm
Свой Человек
 
Аватар для AlexStorm
 
   Возраст: 66
Регистрация: 11.06.2006
Был(а) у нас: 24.11.2020 09:23
Сообщений: 16,544

Пол: Мужской
По умолчанию Знакомьтесь, VirtualDub, обзор программы в 3-х частях

Знакомьтесь, VirtualDud. Обзор программы VirtualDub.

Пожалуй, все кто занимается или пытался заниматься видеомонтажом, сталкивался с программой VirtualDub. Преимущества VirtualDub над другими программами очевидны - программа бесплатна, проста в освоении (при знании основ работы с видео), постоянно совершенствуется и обновляется и что самое полезное - для неё написано много фильтров обработки видео.
Естественно, с такими монстрами, как Adobe Premier или Ulead Media Studio ей тягаться просто невозможно, но несложные операции над видеоматериалом VirtualDub делает на “ура”. Более того, VirtualDub умеет выполнять те операции, которые не под силу этим монстрам. Например, очистка видео от специфических помех. Всё дело в том, что фильтры для VirtualDub могут писать все, кто имеет навыки программирования, что очень сильно развязывает руки при обработке видео.
Данная статья освоить программу VirtualDub в полной мере. В этой статье содержится описание работы с VirtualDub и в конце приведены маленькие примеры работы с ней.

Рассматривать будем "стандартный VirtualDub".
Вы спросите, что значит - "стандартный VirtualDub"? Дело в том, что эту программу написал (и продолжает писать) Avery Lee, но на основе VirtualDub уже написано несколько модов - VirtualDubMod, VirtualDub Mpeg2. Не надо думать, что мод это что-то плохое, наоборот, за основу был взят VirtualDub и добавлены некоторые дополнительные возможности.
В двух словах расскажу о том, как работает VirtualDub внутри. Это поможет вам понять логику некоторых операций и станет более понятно написанное.

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



Меню File

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



Здесь сгруппированы все команды VirtualDub, которые открывают или создают различные файлы. Начнём их обзор сверху.
"Open video file" - открывает файл с вашим видео. Ну это,вроде, понятно, но...
Изначально, VirtualDub может открыть множество видео форматов, перечислять их нет большого смысла. Если вы не смогли открыть какой-то формат, то можете попробовать VirtualDubMod или VirtualDub-Mpeg2, в них заложена поддержка бОльшего количества форматов.
Если же у вас видео состоит из множества кусков (или вы составляете видеоряд из множества картинок), то вы можете автоматизировать их открытие.
Для этого, в окне открытия файлов нужно поставить галочку "Automatically load linked segments" (внизу окна). Далее, у всех кусков видео, должны быть одинаковые имена и отличаться только окончанием - номером куска. Например: Video_1, Video_2, Video_3…



При этом, все файлы, которые попадут под этот шаблон будут открыты в соответствии с номером в конце файла. Откроются, правда, однотипные файлы (BMP только с BMP, AVI только с AVI…). Галочка "Ask for extended options after this dialog" отвечает за дополнительное меню при открытии файлов.
При выставлении этой галочки, после открытия видео появится следующее меню:



Поясню, что значат пункты этого меню.
"Re-derive keyframe flags" - восстановление ключевых кадров. Зачем это надо? При передаче файлов по Интернету (или чтении AVI файла с повреждённого диска или…), периодически возникает ситуация, когда повреждаются заголовки AVI. При этом, вся информация о ключевых кадрах теряется и полноценная навигация по фильму будет невозможна. Но внутри видео потока эти кадры никуда не делись и их можно восстановить. Эта команда этим и занимается.
"Open in AVIFile compatibility mode" - если исходить из названия функции, то при открытии файла, VirtualDub должен переходить в режим работы с AVI файлом. Реально же, не зависимо от расширения файла, VirtualDub распознаёт что там внутри и соответственно открывает.
"Force video format FOURCC code to" - включает обработку открываемого видео при помощи кодека, указанного в окошке FOURCC метки. FourCC метка - это четырёх знаковый индекс. В AVI файле их ставится 2 штуки: один обозначает кодек, при помощи которого был сжат данный видео файл, а второй обозначает кодек, при помощи которого нужно просматривать данное видео. При открытии видео файла AVI, проигрыватель смотрит на FourCC метку и ищет соответствующий кодек в системе. Так вот, при открытии видео в VirtualDub можно подменить эту метку и в программе видео откроется при помощи указанного кодека. В жизни это на вряд ли пригодится, разве что для Mpeg4 совместимых кодеков. Полный список FourCC меток можно посмотреть здесь.
"Force video codec handler FOURCC code to" - как я уже сказал, в AVI файле есть 2 FourCC метки. При открытии AVI в VirtualDub, он смотрит на метку кодека, при помощи которого было сжато и открывает соответствующим кодеком. Проигрыватели же смотрят на метку, при помощи которой нужно воспроизводить видео. Если в поле "Force video codec handler FOURCC code to" поставить какую-либо метку, то на работу VirtualDub это никак не отразится. А вот если сделать после этого сохранение видео в режиме "Direct stream copy", то FourCC метка кодека (при помощи которого нужно воспроизводить видео) будет заменена на ту, которую вы укажете.
По большому счёту, работа с FourCC метками достаточно бесполезные функции. Уже давно вышли отдельные программы, которые позволяют не производя копирования видео заменять обе FourCC метки.
"Force audio sampling rate to" - эта функция изменяет частоту дискретизации звуковой дорожки. Не знаю, для чего может пригодиться эта функция. Ведь при изменении частоты дискретизации изменяется и продолжительность звука. Разве что, это позволяет устранить ошибки, которые были допущены ранее при записи звука.
"Disable optimized streaming I/O (saves memory)" - вот с этой функцией есть определённые "непонятки". Описания её нет. В моём понимании, она отключает оптимизацию работы с потоками, что поможет экономить память, но замедляет работу.
"Use VirtualDub routines for MJPEG (disables any hardware decompression)" - эта функция включает внутреннюю обработку VirtualDub-ом формата сжатия MJPEG, при этом не будут работать аппаратные декодеры, которые установлены на компьютере. Иногда это избавляет от определённых сбоев. Но основная прелесть этой функции в том, что она даёт нам возможность работать с полями.
После активизации этой функции, можно будет произвести с ними следующие операции:
"Normal" - не производятся никакие действия с полями.
"Split interlaced frames into two fields (unswapped) and double framerate" - производит разложение кадров на поля. При этом, производится увеличение частоты кадров в 2 раза и снижение высоты кадра в 2 раза. Порядок полей при этом разложении - верхнее поле первое (TFF). Если видео открытое при помощи этой опции будет смотреться не правильно (кадры будут прыгать то назад, то вперёд), значит ваше видео с нижним полем первым (BFF) и открывать его нужно при помощи следующей опции.
"Split interlaced frames into two fields (swapped) and double framerate" - это то же самое, что и предыдущая функция, но порядок открытия полей - нижнее поле первое (BFF).
"Discard first field" - при разложении на поля, откидывает первое (верхнее) поле. При этом производится уменьшение высоты кадра в 2 раза.
"Discard second field" - при разложении на поля, откидывает второе (нижнее) поле. При этом производится уменьшение высоты кадра в 2 раза.
"Swap field" - меняет порядок полей в кадре. Эта опция пригодится для видео, которое было сжато со сбоями во время работы MJPEG кодека.

Снова вернёмся к первому разделу в панели меню



После "Open video file" идёт функция “Reopen Video File”. Если вы сделали какую-то ошибочную манипуляцию с видео-файлом, например – ошибочно вырезали какой-то кусок.
Далее идёт функция "Append AVI segment". Здесь можно произвести присоединение какого-либо видео к вашему. При присоединении учтите, что видео должно иметь те же параметры, что и уже открытое. То есть, у открываемого видео должны быть те же размеры и частота кадров. В звуке так же не должно быть различий (частота дискретизации, число уровней квантования). При открытии дополнительных видео файлов, можно поставить галочку "Autodetect additional segments by filename", которая автоматически определит дополнительные сегменты видео.
"Preview input" - эта функция включает просмотр видео, которое открыто в VirtualDub.
"Preview filtered" - эта функция включает просмотр видео, после прохождения обработки во всех фильтрах.
"Preview output from start" - эта функция включает просмотр видео потока на выходе VirtualDub. Если включить VirtualDub в режим "Direct stream copy", то VirtualDub покажет поток видео, который находится внутри открытого AVI файла.
"Save as AVI" - тут задаётся имя файла, в который будет производиться запись. Здесь есть единственная галочка ("Don`t run this job now; add it to job control so I can run it in batch mode"), которая позволит вместо моментальной записи, произвести отложенную запись. Подробнее, что это такое. Объясню чуть ниже.
"Save as old format AVI" - при сохранении видео в этом формате, в AVI файле ставится заголовок старого типа (1.0). Для файлов этого типа есть ограничения в 2 Гигабайта. Использование этого типа AVI файла на данный момент не имеет какого-то смысла и она была сделана для старых программ, которые не понимают AVI формата 2.0.
"Save segmented AVI" - эта функция позволяет при сохранении видео делить его на куски.



Допустим, вы пользуетесь файловой системой FAT16, для неё есть ограничение на максимальный размер файла - 2 гигабайта. Так же вам может потребоваться разделить видео на куски по 25 кадров, при помощи этой функции это возможно. А конкретнее: "Don`t run this job now; add it to job control so I can run it in batch mode" - как уже писалось выше, эта функция заносит запись в список отложенных заданий, которые можно будет запустить позже.
"Limit number of video frames per segment:" - если поставить галочку в этом поле и указать количество кадров, то выходящее видео будет разбито на отдельные файлы, в каждом из которых будет содержаться то количество кадров, которое вы укажете. Правда, есть тонкости при работе этой функции:
1. Реальное количество кадров в куске будет выставленное плюс 1 (если выставить, как показано на картинке, то в каждом куске будет по 25 кадров)
2. Если выходной поток состоит из ключевых и дельта кадров, то в большинстве случаев, количество кадров, входящих в один кусок, не будет совпадать с выставленным. Это происходит потому, что отдельный видео кусок не может начинаться с дельта кадра, поэтому в предыдущий кусок пишется до первого ключевого кадра, а следующий кусок начинается с этого ключевого кадра.
"File segment size limit in MB (50-2048 ):" - здесь задаётся максимальный объём файла, который будет создаваться. При превышении этого объёма, начинается запись следующего куска.
"Close video file" - эта функция закрывает открытый для редактирования видео файл. По большому счёту, пользоваться этой функцией нет необходимости. По этому поводу есть 2 соображения:
1. Если файл открыт и производились какие-то настройки фильтров, кодеков… то при открытии следующего файла все эти настройки останутся. По этому, лучше совсем закрыть VirtualDub, а потом запустить заново и открыть нужное нам видео. В этом случае от предыдущих настроек точно ничего не останется.
2. Если же вам нужно оставить настройки и применить их для следующего видео, то можно его открывать сразу, без закрытия предыдущего (оно автоматически закроется).
Рассмотрим следующее поле.



"File Information" - здесь вы можете посмотреть информацию об открытом видео:



"Set text information" здесь вы можете внести тэги в сам файл.



"Save striped AVI", "Save stripe master" - это довольно интересная функция, но на данный момент она не очень то пригодится. Смысл её сводится к тому, что при записи, видео будет разбито на несколько потоков и будет записываться в разные файлы. Это напоминает работу RAID массивов. Файлы с расширением .stripe создаются вручную, и в них прописывается, куда и как будет производиться запись. Для тех, кто захочет разобраться подробно, как работает эта функция, рекомендую взять Help (VirtualDub_help.rar) от первых версий VirtualDub и почитать его.
"Save image sequence" - эта функция, которой можно пользоваться для определения, на сколько ухудшилось качество видео (или для сравнения разных кодеков). При использовании этой функции, кадры вашего видео будут преобразованы в картинки и записаны в файлы. Потом, мы сможем подробно рассмотреть каждый кадр.



Рассмотрим поподробнее это окошко:
"Filename prefix:" - какое-либо имя или символ, который будет добавлен перед названием файлов (точнее говоря их номерами).
"Filename suffix, include extension:" - окончание имени файла (добавляется после порядкового номера).
"Minimum number of digits in name:" - количество цифр в порядковом номере. Если поставить 4, то отсчёт начнётся с 0001, 0002… 9999 и после того, как порядковый номер уйдёт за пределы 4 цифр, буде добавлена ещё одна цифра - 10000, 10001…
"Directory to hold images" - здесь указывается директория, в которую будет производиться запись графических файлов. Для того, что бы выбрать эту директорию, нужно нажать на кнопку "…" в конце этого поля (или же, можно написать в ручную, если вам это больше нравится).
"First frame filename" и "Last frame filename" - показывают, куда и с какими именами будут сохранены первый и последние файлы картинок.
"Output format" - выставляется графический формат, в котором будет производиться запись. Я предпочитаю BMP (формат без сжатия), что вы выставите - большого значения не имеет.
"Don`t run this job now; add it to job control so I can run it in batch mode" - пока я только обещаю рассказать, что даёт отложенная запись, но не рассказываю. Видно не пришёл ещё черёд рассказа, про отложенную запись. Потерпите немного. Если поставить эту галочку, то картинки не начнут записываться сразу, а встанут в очередь отложенных записей.
Теперь тонкость при работе с этой функцией. Для того, что бы правильно сохранялись картинки, нужно выставить режим работы "Full processing mode" и поставить формат сжатия (Video->Compressin) - Uncompressed RGB. Только в этом случае на формирование изображений пойдёт правильный поток. Далее, когда будете разглядывать картинки, не забудьте, что Mpeg4 кодеки формируют B-frames, которые хуже соседних кадров по качеству.
"Save WAV" - производит запись звуковой дорожки видеофильма в WAV формате. При пользовании этой функцией, нужно учитывать определённые особенности. Запись в WAV формате не производит декомпрессии сжатого звука, а записывает его как он есть внутри видео файла, просто подставляя заголовок WAV. Я использую эту функцию при монтаже видео. Допустим, я свёл несколько фрагментов в один фильм (производя попутно подрезку, стыковку…). Естественно, что бы потом звук совпал с видео, мне нужно его сохранить вместе со всеми этими обрезками. Вот в этом случае я пользуюсь функцией "Save WAV" (звук у всех фрагментов был не сжат и спокойно сохраняется в WAV формате). Далее, произвожу действия с видео и в последнюю очередь свожу звук и видео.
Ниже по меню находятся пункты, отвечающие за работу с профайлами:



"Load processing settings" - Производится запись установок VirtualDub, которые были сделаны для данного видео. Вы спросите, какие же конкретно установки записываются? Да все. Начиная с установок фильтров (видео и аудио) и заканчивая кодеками, установленными для кодирования и их установками. Единственное, что не записывается - системные установки, находящиеся в меню "Options".
"Save processing settings" - Производится установка параметров VirtualDub из профайла, записанного ранее.
Теперь разберёмся, что можно делать при помощи файла конфигурации. Допустим, вы подготовили к сжатию видео. То есть, настроили фильтры, сделали все вставки, вырезки, настроили кодеки на сжатие. Сохранили всё это в профайл и запустили на сжатие из VirtualDub. Но… о неудача, размер сжатого видео зашкалил за нужные нам размеры файла. Заново настраивать фильтры, делать вырезки, довольно муторно. Мы просто открываем открытое ранее видео и загружаем профайл. Единственное, что нужно сделать, настроить заново кодек на меньший битрейт и запустить процесс сжатия видео заново. Или, вы введёте покадровое редактирование 6 часового фильма - вырезка плохих кадров идёт долго и нудно. Как правило, это не получается сделать за один раз. На время перерывов можно записывать вырезки в профайл, а когда настанет время продолжить редактирование, открыть видео и загрузить профайл. Все ранее сделанные вырезки сохранятся и можно будет продолжить с того места, где вы закончили. В целом, эта функция довольно полезная и стоит всегда помнить о её наличии.

Далее по меню "File



"Start frame server" - фреймсервер, хм, попытаюсь объяснить, что это такое. Допустим, вы сделали определённые действия над видео в программе VirtualDub (фильтры, вырезки…) и хотите произвести сжатие в другой программе (например, в формат Mpeg2, ведь VirtualDub этого не может). У нас есть 2 пути решения этой задачи. Первое - сохранить видео в промежуточный файл, сжатый кодеком без потерь (или с минимальными потерями), потом сжимать из этого промежуточного файла в нужной нам программе сжатия. Второй - воспользоваться фреймсервером. Для этого, из VirtualDub запустить фреймсервер и в нужной программе сжатия открыть промежуточный файл фреймсервера. Немного подробнее о работе фреймсервера: при запуске фреймсервера, он создаёт файл на винчестере (в этом файле нет реальных видео данных), при обращении к которому фреймсервер начинает выдавать кадры программе, обратившейся к этому файлу.
Теперь, о преимуществах и недостатках этих способов. Первый способ - занимает на винчестере много места. Второй способ - довольно медленный, но не требует больших объёмов винчестера. Есть так же третий способ, который предпочитаю я, но он уже не имеет отношения к VirtualDub - воспользоваться утилитой Avisynth, которая позволяет подгружать фильтры от VirtualDub и имеет собственные большие возможности для работы с видео.
Что такое фреймсервер я рассказал, а вот как им воспользоваться, как-нибудь потом. Для тех, кто захочет им воспользоваться, могу предложить почитать об этом на странице автора VirtualDub тут и в уже упомянутом Help от старых версий VirtualDub. Если же вы спросите моих рекомендаций, как лучше всего это делать, то я вам посоветую изучать Avisynth (или найти статью по практическому использованию этой утилиты).
"Capture AVI" - Эта функция производит захват видео с карт захвата и TV-тюнеров. Работу VirtualDub в этом режиме описано в статье про захват.
"Run script" - Происходит запуск скриптов. Что же такое скрипт? Это файл, содержащий команды, которые понятны VirtualDub-у. В результате исполнения скрипта, VirtualDub произведёт какие-либо действия с видео (загрузка видео, включение фильтров, настройка кодеков…). Из самого VirtualDub скрипты пишутся двумя способами. Первый - записать при помощи команды "Save processing settings". При загрузке такого скрипта, его действие будет равноценно загрузке через "Save processing settings". Второй способ на много более интересен. Я уже долго говорю про отложенную запись, настало время рассказать про неё поподробнее. Если при сохранении видео или картинок воспользоваться функцией "Don`t run this job now; add it to job control so I can run it in batch mode", то создастся скрипт, в который будет внесёно задание (файл VirtualDub.jobs в каталоге VirtualDub). В этом скрипте будет указанно всё, что нужно знать VirtualDub-у для сжатия видео (видео источник, все настройки фильтров, настройки кодека сжатия и файл, в который будет производиться запись сжатого видео). Если теперь открыть этот скрипт из VirtualDub, то запустятся на исполнение все задания, ранее внесённые в него (в соответствии с очерёдностью внесения в скрипт - первое внесённое задание будет исполнено первым). Это очень удобно. Например, при работе кодеков в двух проходном режиме, для того, что бы не подходить к компьютеру после первого прохода. Я всегда пользуюсь этим способом.
"Job control" - А этой функцией можно просмотреть список отложенных заданий и запустить их на выполнение.



Если удалить файл VirtualDub.jobs, то все задания из этого списка удалятся. Теперь посмотрим, как мы можем воспользоваться этой функцией. Здесь есть кнопки, которыми можно управлять работой скрипта.
"Move up" - эта кнопка передвигает выделенное задание выше по списку отложенных записей.
"Move down" - эта кнопка передвигает выделенное задание ниже по списку отложенных записей.
"Postpone" - эта кнопка приостанавливает выполнение задания. То есть, если запустить скрипт, то приостановленное задание не будет выполнена.
"Delete" - удаляет задание из списка отложенных записей.
"Start" - запускает на выполнение выделенную отложенную запись. Если после этого не остановить выполнение задания, то будут выполняться все задания по очереди.
"Abort" - останавливает выполнение задания.
Линейка "Current job" показывает процент выполнения задания.
Я люблю пользоваться запуском заданий из этого списка. Причин тому несколько.
Во-первых, не нужно сидеть и ждать прохождение каждого прохода, чтобы начать следующий.
Во-вторых, я набираю несколько файлов для обработки и, запустив процесс клавишей “Start”, иду спать или на работу, а программа работает сама по тем настройкам на КАЖДЫЙ видеофайл, что я настроил заранее.
В-третьих, Вы можете заниматься другими делами, а программа будет делать, часто долгую работу. Тут нужно обратить внимание на то, что при запуске заданий в качестве скрипта (функция "Run script") в окошке "VirtualDub Status" мы видим результаты выполнения задания, а при запуске задания из "Job control" видно только процент выполнения очередного задания. Так же, при запуске скрипта, из окошка "VirtualDub Status" можем управлять приоритетом выполняемого задания, что иногда очень пригодится. Например, вы заняты какой-то работой в Word или Excel и параллельно у вас идёт сжатие видео в программе VirtualDub. Если VirtualDub будет иметь нормальный приоритет, то все действия будут выполняться медленно. Но если присвоить в окошке "VirtualDub Status" приоритет "Idle", то Word весело забегает. Кодирование в VirtualDub будет происходить в то время, когда вы не производите никаких действий в других программах.

Ну и в конце выпадающего списка мы увидим список из последних 4-х открываемых файлов (для обеспечения возможности их быстрого открытия) и опцию "Quit" - выход их VirtualDub.

Далее, идут функции навигации по видео.

Меню Edit

Второй раздел в панели меню - "Edit". В этой панели находятся инструменты для навигации и редактирования.



Сверху идёт раздел редактирования видео. Здесь всё абсолютно стандартно. Пожалуй, я бы скорее использовал этот раздел для ознакомления с горячими клавишами. Горячие клавиши лучше запомнить и использовать их в процессе редактирования видео. Это здорово сэкономит время.
Ну, команды “Undo” и “Redo”, надеюсь, всем понятны.
"Cut" - вырезает (c копированием в буфер) помеченную область видео. Разметка видео производится клавишами "Home" и "End" или из этой же панели функциями "Set selection start" и "Set selection end". При этом, помеченная область будет выделена синим цветом на панели навигации.



Для того, что бы передвигаться по видео, можно передвигать слайдер или пользоваться клавишами навигации по видео. Одновременно выделить можно только один кусок, так что не старайтесь выделить несколько.
"Copy" - копирует помеченную область видео в буфер. После этого, при команде "Paste", эта область будет вставлена туда, где находится слайдер.
"Paste" - вставляет видео из буфера.
"Delete" - удаляет помеченную область видео.
"Clear selection" - удаляет метки выделения.
"Select all" - эта функция производит выделение всего видео, которое загружено в VirtualDub.



"Set selection start" - устанавливает метку начала выделенной области. При расстановке меток учтите, что можно поставить только одну метку начала и одну метку конца фрагмента. И как следствие этого, если вы повторно нажмёте установку метки начала, то она будет поставлена вновь, а область будет начинаться уже с этого момента.
"Set selection end" - устанавливает метку окончания выделенной области.
"Mask selected frames" - превращает выделенную область во фрагмент. То есть, метки выделения исчезнут, но на них можно будет попасть переходом по фрагментам.
"Unmask selected frames" - снимает все выделения фрагментов.
"Revert all edits" - удаляет редактирование, которое было произведено с видео. Попросту, загружает видео вновь.

Меню Go



"Beginning" - возвращает слайдер движения по видео на начало видео, загруженного в VirtualDub.
"End" - переводит слайдер движения по видео на конец видео, загруженного в VirtualDub.
"Previous frame" - переводит слайдер движения по видео на предыдущий кадр. Какого-то передвижения слайдера вы не увидите потому, что сдвиг на 1 кадр очень мал по отношению к количеству кадров во всём видео. Но проконтролировать этот сдвиг можно.



На панели навигации показывается, на каком кадре вы сейчас находитесь, какое время прошло от начала видео, и на каком типе кадра вы сейчас находитесь (ключевой, дельта или dropped (пропущенный)).
"Next frame" - переводит слайдер движения по видео на следующий кадр.
"Previous keyframe" - переводит положение слайдера на предыдущий ключевой кадр. Этой функцией удобно пользоваться для быстрого передвижения по видео. Если вы открыли видео сжатое кодеком, в котором есть ключевые и дельта кадры, при поиске кодек будет привязываться к ключевым кадрам.
Теперь, если начать произвольно передвигать слайдер по видео, то картинка будет отображаться не сразу, а с определённой задержкой, которая бывает весьма большой. Если же передвигаться только по ключевым кадрам, то картинка отображается моментально и VirtualDub очень быстро передвигается по открытому видео.
Есть ещё один резон, зачем нужна эта функция. Допустим, у вас есть видео сжатое кодеком с ключевыми и дельта кадрами. Вам нужно без пережатия (чтобы не попортить картинку), удалить определённые куски. Для этого вы включите "Direct stream copy" (подробнее об этом позже) и вырежете не нужные вам куски. Но после сохранения может оказаться, что сохранилось то, что вы вырезали или не сохранилось то, что вы оставляли.
Это не полтергейст, это работа по ключевым кадрам. Кодеки с ключевыми кадрами не могут начать показывать изображение с дельта кадров, они отталкиваются от ключевых кадров и если перед дельта кадром не будет ключевого, то картинка развалится.
Теперь, что происходит, когда вы пытаетесь что-то вырезать в VirtualDub не по ключевым кадрам. Вы указываете на дельта кадр, до которого (или от которого) нужно вырезать, VirtualDub послушно его вырезает. Но когда вы сохраняете видео, программа видит, что обрезка была сделана не по ключевому кадру и компенсирует этот недостаток - обрезка происходит до ближайшего ключевого кадра (ну не может он начать работу без ключевого кадра).
Таким образом, происходит перескок с того кадра, который вам нужно вырезать, на ближайший ключевой кадр. Так вот, что бы знать заранее, на какой кадр произойдёт перескок при сохранении, можно пользоваться переходом по ключевым кадрам. А ещё лучше сразу вырезать по ключевым кадрам (пользуясь переходами по ключевым кадрам). В этом случае вы будете видеть результат ещё до сохранения.
"Next keyframe" - переход на следующий ключевой кадр. Если вы находитесь между двумя ключевыми кадрами, то переход будет осуществлён на правый (по линейке VirtualDub).
"Back 50 frames" - возвращает слайдер на 50 кадров назад по видео.
"Forward 50 frames" - переводит слайдер на 50 кадров вперёд по видео.
"Previous drop frame" - переводит слайдер на предыдущий пропущенный кадр (drop). Пропущенные кадры появляются при захвате видео. Можно посмотреть, как много их на вашем материале, для этого применяется эта функция.
Её можно так же использовать для удаления пропущенных кадров из видео, но при этом может возникнуть проблема рассинхронизации видео со звуком (допустим при раздельной обработке звука и видео).
"Next drop frame" - переводит слайдер на следующий пропущенный кадр (drop).
"Previous range" - эта функция производит перевод слайдера на предыдущий фрагмент. Фрагментами считаются те места, где производилась вырезка, вставка или специальная пометка фрагментов. При этом, если производилась вырезка, слайдер становится на месте вырезки и снизу, в информационной строке, указывается, какой диапазон кадров будет входить в следующий фрагмент и какие кадры источника будут в него входить.



Если же производилась вставка, то при переходе по фрагментам, слайдер будет останавливаться дважды - в начале и в конце вставленного фрагмента, при этом в информационной строке будет указываться диапазон кадров следующего диапазона и какие кадры источника в него вошли.
"Next range" - переход на начало следующего фрагмента.
"Selection start" - ставит слайдер в начало выделенной области.
"Selection end" - ставит слайдер в конец выделенной области.
"Go to Frame…" - а по этой функции происходит перемещение слайдера на заданный кадр.



Кадр можно задать, как его номером ("Jump to frame number"), так и нахождением его во времени ("Jump to frame at time"). Ну и в конце списка меню, находятся функции расставления меток.

Меню Video

Вот мы и добрались до главного раздела в панели меню - "Video".



Первая опция, пожалуй, одна из самых нужных в VirtualDub - "Filters".

При помощи фильтров в VirtualDub можно производить очистку видео от шумов и искажений, накладывать (убирать) Лого, изменять яркость-контрастность-насыщенность, производить операции с полями, изменять размеры изображения, вставлять\убирать субтитры и много всего другого. Короче говоря, здесь находятся инструменты для обработки видео. Теперь о том, как работать с фильтрами. В окошке выбора фильтров "Filters" показываются фильтры, которые вы выбрали для работы. Кнопка "Add" выводит нас на окно выбора фильтров:



Здесь вы можете выбрать фильтр, который будете применять для обработки видео. В этой статье я не буду перечислять, какие фильтры что делают, это займёт много места и уведёт в сторону от работы в VirtualDub. Но следом обещаю написать статью по использованию фильтров VirtualDub.
Допустим, вы выбрали какой-нибудь фильтр и нажали "Ok". Сперва нас выкинет в окошко настройки фильтра (если он нуждается в настройке), а потом мы вновь окажемся в окошке "Filters" и выбранный нами фильтр будет в конце списка.
Кнопка "Delete" удаляет фильтр, на котором остановлен выбор.
Кнопки "Move Up" и "Move Down" передвигают фильтры по списку вверх и вниз. Зачем это надо, как-нибудь потом.
Кнопка "Cropping" производит обрезку картинки со всех сторон. Это нужно для того, что бы убрать не нужные чёрные полосы и загибы изображения по краям (они обычно бывают после захвата) или просто вырезать нужную нам часть изображения. Обрезку можно производить перед любым фильтром. Для этого, нужно навести на фильтр, перед которым вы собираетесь произвести обрезку, нажать на кнопку "Cropping" и произвести обрезку.



На картинке видно, что в фильтре brightness была произведена обрезка. При обрезке, нужно учитывать, что есть фильтры, которые работают только с чётным разрешением, а есть те, которые работают с разрешениями, делящимися на 4, а есть и особо привередливые - требуют, что бы видео на их входе было кратно 16.
На выходе с последнего фильтра нужно стараться, что бы разрешение было кратно 4 (для данного случая на выходе разрешение 320*240). Это связанно с тем, что, большинство кодеков используют YUY2 формат цветности. Если же исходить из общих рекомендаций разрешения видео, лучше делать, что бы ширина была кратна 32, а высота 16. Эти рекомендации не связаны с работой кодеков, а предназначены для облегчения работы плееров, показывающих видео.



В полях, помеченных красным выставляются значения на сколько производить обрезку с каждой из сторон. Делать можно это 3 способами.
1. Поставить цифровое значение вручную.
2. Нажимать на кнопочки верх-низ (рядом с цифровым значением) и подгонять обрезку до нужного значения.
3. Взять мышью за линию обрезки и потянуть в нужную сторону. Это наиболее удобный способ, но тонкую подгонку удобнее делать 2 способом.
НЕ ЗАБЫВАЙТЕ О КРАТНОСТИ 4-м В КАЖДОМ ПОЛЕ!!!
И последняя кнопка "Configure". Она производит включение настройки фильтра, на котором остановлен фокус.
Что ж, о работе с некоторыми фильтрами, конкретнее, можно посмотреть в “Уроках по VirtualDub”.

На этом завершается ПЕРВАЯ ЧАСТЬ знакомства с программой VitualDub.

© Счастье - это положительное отношение к происходящему. AlexStorm. 2006

Последний раз редактировалось AlexStorm; 25.11.2008 в 20:09..
AlexStorm вне форума  
Старый 23.06.2007, 21:25 Вверх     #2
AlexStorm
Свой Человек
 
Аватар для AlexStorm
 
   Возраст: 66
Регистрация: 11.06.2006
Был(а) у нас: 24.11.2020 09:23
Сообщений: 16,544

Пол: Мужской
По умолчанию

Знакомьтесь, VirtualDud (часть вторая)

Сейчас пойдём ниже по списку функций в меню "Video".



"Source rate adjustment" - поле настройки заголовка частоты кадров. Это первый способ изменения частоты кадров (с соответствующими последствиями).
No change - оставляет частоту кадров без изменений
Change to … frames per second - изменяет индекс частоты кадров до выставленной вами частоты
Change so video and audio durations match - производит подгонку частоты кадров до выравнивания продолжительности звука и видео. задать такую скорость, чтобы продолжительность видеопотока соответствовала продолжительности аудиопотока. Иными словами, если вы «прилепили» к своему произведению какую-то музыку, но она оказалась секунд на 10 длиннее видеоряда, то скорость кадров можно подобрать таким образом, чтобы продолжительность видео соответствовала продолжительности саундтрека.
"Frame rate conversion" - Это производится вторым способом.
Process all frames - обрабатывает из исходного видео все кадры
Process every other frame (decimate by 2) - из исходного видео берётся только каждый второй кадр (деление частоты кадров на 2)
Process every other frame (decimate by 3) - из исходного видео берётся только каждый третий кадр (деление частоты кадров на 3)
Decimate by … - деление частоты кадров на произвольный множитель. Самостоятельно определить, какой кадр обрабатывать и сколько пропускать. Чем больше кадров пропускается, тем больше ваше произведение напоминает слайд-шоу.
Convert to fps … - преобразует частоту кадров к заданному значению. Но, в продолжение темы скажу, что практическую пользу может принести только уменьшение частоты кадров (поводы перечислены выше)
"Inverse telecine (3:2 pulldown removal)" - функция, выкидывающая 12 полей из 30 кадров. Это нужно для возвращения нормального 24 кадрового фильма из 30 кадрового формата NTSC. Этот процесс принесёт пользу, только если изначально фильм был снят на киноплёнку (24 кадра), а потом переведён в формат NTSC (30 кадров).
None (progressive) - не производит никаких действий с полями
Reconstruct from fields - adaptive - автоматическое выкидывание одинаковых полей в соседних кадрах. Качество работы этой функции я не проверял, поэтому эффективность её работы мне не известна. Для работы с полями я предпочитаю Avisynth.
Reconstruct from fields - manual - ручное выставление порядка полей для работы функции InverseTelecine. На самом деле, выставляется не порядок полей, а первый кадр, с которого начинала работу функция "3:2 pulldown" (или "Telecine"). Выставив первый кадр, остальное высчитывается автоматически. Для задачи первого кадра используется опция "Offset …". Ручной метод - весьма не удачная мысль работы с функцией InverseTelecine. Дело в том, если выпадет хоть один кадр из видеоряда, то произойдёт ошибка высчета (смещение) выкидываемых полей и видео будет только испорчено.
Reconstruct from blurred fields - manual - если исходить из названия функции, то производится удаление полей из материала с размытыми полями. То есть, на вход подаётся достаточно поношенное видео (где кадры подвергались размытию в результате хранения на магнитных лентах или после каких-либо обработок) при удалении дублированной пары полей, кадр может получиться с подобием интерлейсной расчёски. Для удаления этого эффекта можно будет воспользоваться деинтерлейсом (что повлечёт за собой ещё большее размытие картинки) или включить этот метод обработки полей. Так же, как и предыдущий метод, его работа определяется параметрами, выставляемыми вручную ("Offset …" и "Invert polarity").
Offset … - выставление первого кадра для ручного режима работы функции InverseTelecine.
Invert polarity - инвертирует работу функции InverseTelecine. Это не приводит к преобразованию полей и относится только к математическому аппарату функции InverseTelecine. Всё дело в том, что задавая смещение функцией "Offset …", мы не знаем, в какую сторону потом пойдёт работа функции InverseTelecine (с верхнего поля или нижнего). Для того, что бы была возможность выставить все варианты работы и предназначена эта опция.

Немного ниже по списку функций находится опция "Color Depth":



Здесь можно произвести выбор цветового формата, в котором будет работать VirtualDub. По большому счёту, VirtualDub работает только в форматах RGB, а все входящие форматы преобразует в них. Исключение составляют режимы работы "Direct stream copy" и "Fast recompress", которые не производят преобразования к RGB, но в этих режимах не будут работать фильтры и другие интересности VirtualDub. Но об этом чуть ниже.
"Decompression format" - позволяет выбрать, в каком формате будет происходить получение видео от декодера. Разберем самые ходовые значения.
16-bit (HiColor/32K) - получает от декодера 16 битное видео. Первый кодер из серии Divx (DivX3) работал именно в этом цветовом формате. Если нет какого-то особого резона (например, использование DivX3 для декодирования), не стоит включать этот режим.
24-bit(TrueColor/16M) - большинство современных кодеков работает в этом цветовом формате. Он стоит по умолчанию. Конечно, можно заставить выдавать кодеки и 16-bit режиме, но это вызовет определённые искажения.
"Output format to compressor/display" - цветовой формат, в котором видео выдаётся на кодер и для просмотра. Разберем самые ходовые значения.
16-bit (HiColor/32K) - в этом формате потребуется выдавать разве что для DivX3 но его использование с VirtualDub не оправданно (для него сделан NanDub).
24-bit(TrueColor/16M) - стоит по умолчанию и работает практически со всеми кодеками.
32-bit(TrueColor/16M+alpha) - почему-то автор отнёс к 32 битному изображению и канал альфа (канал прозрачности), но внутри самого VirtualDub используется RGB32 (для фильтров) и я так понимаю выдаваться будет в этом же RGB32. Из кодеков, известных мне, VP6 работает с этим форматом цветности.
Далее, в выпадающем меню "Video" идёт пункт "Compression". Это меню выбора кодека, при помощи которого будет происходить сжатие вашего видео.



Какой кодек выбирать - ваше дело. Есть кодеки, которые широко употребляются и стали практически де-факто (DivX). Есть и другие кодеки, которые дают не худшее качество, но не получившие широкого распространения. Собственно, каждый кодек будет хорош для какой-то своей задачи. На картинке подчеркнуты цифры, показывающие, с какой глубиной цветности может работать кодек (для данного случая это RGB24 и RGB32). При нажатии на кнопку "Configure" появляется окошко настройки кодека. У каждого кодека оно сугубо индивидуально, поэтому дальше рассматривать я не буду. Для некоторых кодеков требуется внешнее управление битрейтом и расстановка ключевых кадров. При выборе такого кодека становятся доступны два поля:
"Use target data rate of … kilobytes/second" - Для того, что бы задействовать эту функцию нужно поставить галочку в заголовке и выставить битрейт, с которым вы собираетесь сжимать.
"Force keyframes every … frames" - здесь выставляется количество кадров, после которого будет поставлен ключевой. Функция включается в работу так же, выставлением галочки в заголовке.
Больше ничего интересного на вкладке выбора кодека нет.

Перейдём на следующую функцию меню "Video".

Допустим, посмотрев фильм, вы точно определили, какой его кусок нужно обработать. Например, с 54 минуты по 59. Понятно, что фильмы вы смотрите не VirtualDub’e, и найти опять этот фрагмент уже в VirtualDub’e несколько неудобно. Специально для этого предусмотрена функция Video > Select Range
"Select range"
- позволяет выделить то видео, которые будут обрабатываться в VirtualDub. Для каждой опции есть два поля, в первом выставляется время в миллисекундах (1 секунда = 1000 миллисекунд), во втором выставляется номер кадра, а который приходится это время. Выставлять можно или время, или номер кадра, значения не имеет.



"Start offset" - начальный отступ видео. То есть, если выставить сюда какое-то значение, то обработка начнётся с этого кадра (или с этого времени).
"Length" - здесь выставляется продолжительность обрабатываемого видео.
"End offset" - отступ видео от конца. То есть, на выставленное здесь значение, видео будет укорочено с конца.
"Offset audio to maintain a/v sync" - делает отступы звука для поддержания синхронизации с видео. Действует только в том случае, если вы воспользовались каким-нибудь пунктом выделения видео.
"Cut off audio when video stream ends" - если продолжительность звука больше продолжительности видео, то оно будет обрезано с конца.
Вот мы и дошли до основных режимов работы с видео.



В меню "Video" можно сделать выбор между 4 режимами работы, которые определяют, в каком режиме VirtualDub будет производить обработку видео.
"Direct stream copy" - при включении этого режима, VirtualDub не будет производить никаких действий с видео. То есть, мы не можем произвести никаких действий с картинкой (подрезка, наложение фильтров). Более того, даже нельзя изменить кодек, при помощи которого было сжато видео. Сразу оговорюсь, что в VirtualDub можно открыть Mpeg1 формат видео, но сохранить в этом режиме будет невозможно, это связано с тем, что VirtualDub не работает с Mpeg форматами сохранения файлов. Скажем так, VirtualDub сможет сохранить видео в этом режиме, если был открыт AVI файл. Теперь о пользе этой функции. Её смысл в том, что видео из оригинального файла переносится без каких бы то ни было изменений, но его можно переносить не полностью, а кусками. То есть, открываем видео в VirtualDub, производим все вырезки, вставки (в смысле перенос кусков видео из одного места в другое, взять из другого файла не получится), включаем режим "Direct stream copy" и сохраняем.
При вырезках и вставках видео не забываем про работу с ключевыми кадрами, по которым производится вся работа (подробнее описано выше). Сохранение видео произойдёт очень быстро. При этом в видео не вносится никаких искажений (не производится повторного сжатия). Естественно, для просмотра видео, сохранённого таким образом, будет применяться тот же самый кодек, что и в исходном видео. Для чего же мы ещё можем применить этот режим. Например, нам нужно соединить видео со звуком (или заменить одну звуковую дорожку на другую). Для этого, в меню "Audio" открываем нужный файл со звуком, а в меню видео включаем режим "Direct stream copy". После сохранения у нас будет новый файл, в котором видео уже будет с новым звуком. Так же, в этом режиме мы можем изменить частоту кадров для видео. В работе этого режима есть одна главная особенность: при включённом режиме "Direct stream copy" в меню "Video", видео сохраняется без изменений.

"Fast recompress" - при включении этого режима, видео передаётся на кодер в том же цветовом формате, что и выдал декодер видео. Я уже говорил, что VirtualDub работает в цветовом формате RGB, но это не является панацеей. Такой формат цветности нужен только если производится обработка видеоматериала фильтрами. Если же производится только приём видео и сжатие кодеками, то нет никакого смысла переводить видео в RGB формат (так например происходит обработка материала после Avisynth). Если же переводить в RGB (а кодек потом переведёт видео ещё в какой-то свой формат), то происходит хоть и минимальная, но потеря времени, а в некоторых случаях ещё и искажения картинки. Про искажения - это частные случаи, но они иногда происходят. Рассказывать о них довольно долго, смысл их сводится к тому, что видео несколько тускнеет, если его выдавать в RGB форматах (так, например, работают DV декодеры). Итак, какие можно сделать выводы по этому режиму работы? Его нужно использовать, если вы не производите никакой обработки видео в VirtualDub, но собираетесь сжать видео каким-либо кодеком. Противопоказание этому режиму только одно - кодек, который вы применяете для сжатия видео, должен понимать тот формат цветности, в котором выдаёт декодер видео.

"Normal recompress" - в этом режиме VirtualDub будет принимать от декодера видео в RGB формате. От предыдущего режима работы его будет отличать большая всеядность кодеров. То есть, если вам попался какой-то кодек, который отказывается принимать тот входной формат видео, который выдаёт декодер, то можно переключится в этот режим работы и произвести сжатие (форматы RGB понимают практически все кодеки). От предыдущёго режима его буде отличать более медленная работа (пренебрежимо мало), и возможное наличие той проблемы с картинкой, про которую я писал.
Так же, этот режим работы можно использовать для конвертации RGB16 (если декодер выдаёт в этом формате) в RGB24 или RGB32 для последующего сжатия в кодеках не понимающих RGB16. Это будет происходить быстрее, чем использовать режим "Full processing mode". Делается это при помощи функции "Color Depth".

"Full processing mode" - этот режим работы стоит по умолчанию и позволяет включать любые настройки VirtualDub. Как уже было сказано, для работы фильтров VirtualDub нужен формат RGB32. VirtualDub производит конвертирование входного формата в RGB32 и после этого выдаёт на фильтры. Включение этого режима необходимо, когда вы собираетесь производить полную обработку видео в VirtualDub.

Перейдём теперь к последнему набору функций меню "Video".



"Copy source frame to clipboard" - производит копирование текущего кадра в буфер. Копируется оригинальный кадр из открытого видео. После этой операции, можно вставить куда-либо этот кадр (например, в программе Photoshop вставить в изображение).
"Copy output frame to clipboard" - производит копирование текущего кадра в буфер. Но в отличии от предыдущей функции, копироваться будет не кадр источника, а кадр после обработки в VirtualDub. То есть то, что будет выдаваться кодеку на сжатие, учитывая все фильтры обработки видео, которые были вами настроены.
"Scan video stream for errors" - производит проверку источника видео на ошибки. Ошибки могут возникать при передаче AVI файла по каким-либо сетям, копировании AVI файла с плохо читаемого диска при помощи программ, предназначенных для копирования сбойных участков и других вариантов, когда возможна неверная передача информации. После выполнения проверки видео в информационной строке будет выдано количество испорченных кадров, а сами испорченные кадры будут выделены, как фрагмент.



В этой информационной строке говорится о том, что испорчен 1 кадр, в результате этого, 48 последующих кадров (до ключевого) не могут быть декодированы. Сразу скажу, что в самом VirtualDub эта функция реализована не очень удачно. После того, как найдены "битые" кадры их нужно удалять (другого метода восстановить читаемость всего видео я не знаю). При попытке перейти на начало "битых" кадров, как на начало фрагмента (к сожалению, в информационной строке не выдаются номера битых кадров и перейти на них можно только, как на начало фрагмента) зачастую, VirtualDub просто вылетает с ошибкой. Намного более удачно эта функция реализована в VirtualDubMod. В ней, после поиска "битых" кадров, есть возможность удалять все найденные испорченные кадры. Если вам нужно будет воспользоваться этой функцией, то я рекомендую это делать при помощи VirtualDubMod.
"Error mode" - производит переключение режимов сканирования на ошибки.



"Report all errors" - производит отслеживание всех ошибок, возможных при декодировании видео.
"Conceal errors and resume decoding at next keyframe" - при поиске ошибок в этом режиме, после нахождения ошибки, VirtualDub не будет сканировать поток дальше, а перейдёт на следующий ключевой кадр и продолжает сканирование. Смысл этой функции в том, что при нахождении ошибки в дельта кадре, следующий кадр будет выстроен из него, то есть, ошибка будет кочевать из кадра в кадр, до тех пор, пока не придёт ключевой кадр. В ключевом кадре есть вся информация для построения полного кадра. В связи с этим, кадры, попавшие между ключевым и испорченным, будут также испорчены и нет смысла их сканировать.
"Decode even if the result may be garbled" - отслеживает ошибки даже в том случае, когда результат может быть искажён. То есть, когда результат обнаружения ошибки не может быть 100%, VirtualDub будет продолжать поиск ошибок.

Меню Audio

Рассмотрим меню "Audio".



Поле №1

"Interleaving" - эта функция отвечает за то, каким образом звук будет внедрён в AVI файл. При выборе этой функции появится следующее окно:



"Enable audio/video interleaving" - включает режим переплетения видео и звука. Этот режим используют практически всегда, и является де-факто при сохранении видео. Смысл его в том, что в AVI файл звуковой и видео потоки записываются не параллельно (идущими не зависимо друг от друга), а чередующимися. То есть, к определённому кадру привязывается определённый кусок звука. При этом, значительно понижается возможность рассинхронизации звука и видео (но не исключает её).
"Preload … ms of audio before video stats" - здесь выставляется значение продолжительности звука, который будет загружаться до начала показа кадра. Теоретически, увеличение этого значения повысит стабильность воспроизведения звука, но на практике может получиться наоборот. По умолчанию стоит 500 ms, как правило, это значение не изменяют. Но может получиться, что у вас видео или звук пойдут рывками или начнут отставать друг от друга. В этом случае можно поэкспериментировать с этим значением до получения стабильных результатов.
"Interleave audio every … frames (ms)" - здесь выставляется значение в кадрах (миллисекундах), через которое нужно вставлять следующий кусок звука. Естественно, чем больше это значение, тем большая продолжительность звука будет вставлена в эти промежутки. При этом надо учесть, что время презагрузки звука ("Preload … ms of audio before video stats") то же должно быть увеличено.
"Delay audio track by … ms" - устанавливает задержку начала воспроизведения звука от начала воспроизведения видео. Это нужно будет в том случае, когда первый кадр видео не совпадает с началом звуковой дорожки (губы отстают или опережают звук). Выставляя положительное значение в миллисекундах (1000 миллисекунд = 1 секунде), мы производим задержку начала воспроизведения звука при начале воспроизведения видео. Это всё относится только к видео (+звук) сохранённому в AVI файл.
Именно внутри сохранённого AVI файла и будет происходить задержка. Если же выставить отрицательное значение задержки, то воспроизведение звука начнётся раньше, чем начнётся видео на это значение. Реально, звук не начнётся раньше, а просто обрежется с начала на ту величину, которую вы выставите в отрицательном значении. Изменение значения сдвигает ВСЮ звуковую дорожку относительно видеоряда, не затрагивая времени звучания, т.е. не сжимает саму звуковую дорожку. Изменять значения нужно на 200 как минимум, меньше – нет смысла. (На снимке указано значение -700 т.е. звук начнется на 0.7 сек. раньше)

Посмотрим, какая функция находится ниже в меню "Audio".

"Compression" - позволяет выбрать звуковой кодек, при помощи которого будет производиться сжатие звука. Окошко выбора звукового кодека выглядит так:



В левом окошке находится список кодеков, при помощи которых вы можете сжать звук. Сразу предупрежу, 100% результат, что у вас что-то получится, дадут только Lame MP3, MPEG Layer-3 и "No compression (PCM)". Дело в том, что, не смотря на присутствие других кодеков, многими из них нет возможности воспользоваться. После того, как вы выбрали кодек, в правом окошке появится список параметров, с которыми можно использовать этот кодек. Если поставить галочку "Show all formats", то список режимов станет ещё больше. Не советую пользоваться этой функцией.
Единственное, что я могу порекомендовать в этом месте - выбирать режим в соответствии с той частотой дискретизации и уровнями квантования, на которых сделан оригинал звука.
В следующем разделе панели "Audio" находятся инструменты, применяемые для фильтрации и преобразования звука.

(Поле №2).

"Use advanced filtering" - при выборе этой опции включается режим работы с "продвинутыми" фильтрами. Продвинутость их состоит в том, что можно будет присоединить внешние фильтры обработки звука, а можно воспользоваться внутренними, более функциональными фильтрами VirtualDub. При выборе этой опции становится доступна функция "Filters".
"Filters" - эта опция отвечает за построение фильтров обработки звука. При выборе этой опцию, появляется окно настройки графа аудио фильтров.



На этой картинке построен граф обработки звука, при определённой настройке которого (настраиваются высокочастотный и низкочастотный фильтры), можно создать режекторный фильтр (не пропускает определённые частоты). На самом деле, построение графа, несколько отличается от работы в стандартных звуковых редакторах. При определённом навыке, можно научится делать простые преобразования звука, но если это делать в программах, специально предназначенных для обработки звука, то это будет и проще и качественнее. Я не хотел бы подробно останавливаться на данном пункте (в связи с тем, что сам не работаю с ним). Быстро пробегу, только в ознакомительном порядке.
"Clear" - очищает поле графа. То есть, удаляет все фильтры, которые вы выставили.
"Add" - добавляет фильтр на поле графов. Когда появится окно добавления фильтров, отведите его в сторону от окна графов. Так будет на много удобнее работать, можно и фильтры добавлять и смотреть, что получилось. С полным списком, фильтров, тут я знакомить не буду, внизу окна выбора фильтров, выводится маленькая подсказка, что этот фильтр делает, а настроек эти фильтры не требуют (за редким исключением). Единственное, что подскажу, все графы должны начинаться с фильтра "Input" и заканчиваться "Output". Это говорит о том, что нужно взять звуковую дорожку из VirtualDub и отдать её обратно после обработки.
"Delete" - удаляет фильтр, на котором находится фокус.
"Test" - начинает воспроизведение звуковой дорожки, взятой из VirtualDub, с применением фильтров (построенного графа). При этом, можно прослушать, какой стал звук после обработки и продолжить настройку графа или нажать "Ok" и звук на сохранение пойдёт уже в этом виде.
"Arrange" - при нажатии на эту кнопку, произойдёт автоматическая расстановка фильтров для более наглядного просмотра.
"Configure" - нажатие на этой кнопке равноценно двойному щелчку мыши на каком-либо фильтре. Это нужно для тех фильтров, которые требуют настройки (например, фильтры), при этом появится окно настройки фильтра.
"Auto-connect" - если поставить эту галочку, то при добавлении нового фильтра, он автоматически подключается к графу. Это довольно удобно и редко приходится в ручную расставлять соединения фильтров. Если же вам нужно выставить в ручную соединение одного выхода фильтра с входом другого, просто потяните левой клавишей мыши от выхода ко входу и отпустите.
"Auto- arrange" - при выставлении этой галочки, добавление нового фильтра происходит упорядочено, а не в произвольном месте.
Будем считать, что ликбез по аудио фильтрам VirtualDub-а закончен.

Пойдём дальше, по более простым, но чаще употребляемым функциям.
В списке меню "Audio", после фильтров идёт пункт "Conversion". Он отвечает за перевод звука из одного формата в другой. Формат звука - это частота дискретизации, число уровней квантования и количество каналов (моно, стерео). Первые два относятся к цифровому звуку. Как я уже упоминал при разговоре о звуковых кодеках, при сжатии звука, нужно будет обратить на формат входного звука. Если у вас не совпадёт частота дискретизации входного звука и частота дискретизации кодека, то просто выпадет ошибка. Но если вы для 16-bit звука примените 8-bit кодек, то получите катастрофическое падение качества звука. Обратите на это внимание. Так вот, вкладка "Conversion" предназначена для перевода звука из одного формата в другой.



Для того, чтобы изменить частоту дискретизации звука, нужно просто поставить выбор на той частоте дискретизации, которую вы хотите сделать. Для этого предназначена функция "Sampling rate". Только учтите, что понижение частоты дискретизации понижает качество звука, а повышение частоты дискретизации не улучшит ни каких характеристик (лучше оригинала всё равно не сделаешь). Стоит использовать эту функцию только для определённых, известных вам целей. Например, для звукового кодека необходима частота дискретизации 44100 герц, а при видео захвате у вас получилось 44056 герц (такое бывает, когда видео идёт мастер потоком). Для подготовки звука к сжатию, делаем конвертацию звука в нужный нам формат и никаких проблем. Понижение частоты дискретизации так же иногда может пригодиться. Например, вы собираетесь применить кодек с сильным сжатием. При этом, чем выше частота дискретизации, тем тяжелее кодеку справится со звуковым потоком. Мы можем понизить частоту дискретизации (относительно оригинала) и кодек выдаст более качественный звук, чем это было бы без неё.
Далее, функция "Precision" позволяет выбрать, какое квантование использовать для звука. Сразу скажу, что повышение числа уровней квантований (из 8-bit в 16-bit) не даст никакого результата. Снижение уровней квантования ухудшит качество звука, вместе с этим упростив работу кодека. Поток звука на него пойдёт значительно меньше.
Функция "Cannels" в особых комментариях не нуждается. При включении "Mono" происходит смешивание каналов. При включении "Left" или "Right" происходит запись моно сигнала, который будет взять из левого или правого канала соответственно.

Пойдём дальше по меню "Audio". Ниже находится функция "Volume".



C ней всё предельно просто. При установке галочки "Adjust volume of audio channels" можно будет отрегулировать уровень громкости выходного сигнала. Проследить значение на которое мы увеличили громкость, можно нажав кнопку №2. Кстати, все изменения произведенные Вами в фильтрах или кодеках можно, еще ДО конвертирования, посмотреть при помощи этой кнопки.




(Поле №3).

Ниже, в списке функций меню "Audio", находятся опции, отвечающие за источник звукового сигнала.
Здесь можно сделать выбор, что будет обрабатываться в VirtualDub.
"No audio" - на вход VirtualDub не подаётся никакой сигнал. Естественно, в выходном AVI файле так же не будет никакого звука.
"Source audio" - при выборе этой опции, на вход VirtualDub подаётся сигнал из открытого видео. Это опция стоит по умолчанию.
"WAV audio" - позволяет выбрать внешний источник сигнала. На вход VirtualDub можно подавать только WAV сигнал. Это большой недостаток. Тем самым, нас заставляют пользоваться системными кодеками для сжатия сигнала (исходный WAV сигнал имеет очень большой объём и использовать его для сохранения в конечном AVI файле не разумно). Я обманываю VirtualDub, переименовав расширение мр3 – в WAV. Для работы со звуком других форматов написано множество программ. Например, VirtualDubMod может работать с множеством звуковых форматов, поэтому, для работы со звуком можно использовать именно его.
Вот мы и дошли до последних опций списка меню "Audio". (см. поле №4\5).
"Direct stream copy" - включает режим прямого копирования звука из источника в итоговый AVI файл. Так, если вы выбрали источник через "WAV audio" и выбрали эту опцию, то в итоговом AVI файле будет выбранный WAV звук именно в том формате, в котором был он в файле. То есть, не будет происходить ни сжатия, ни каких других изменений. Если же поставить источником "Source audio", то звук из исходного AVI перекочует в получаемый AVI, не зависимо от того, был он сжат или нет.
"Full processing mode" - при выборе этой опции будет возможна обработка звука в VirtualDub. При этом, можно будет использовать фильтры, изменять уровень громкости и необходимо будет выбрать кодек, при помощи которого будет производиться сжатие звукового потока.
"Error mode" - реально, выбрать внутри этой функции ничего не получится. Смысловая нагрузка же этой функции в том, что производится анализ звукового потока на ошибки. Анализ запускается из меню "Video" совместно со сканированием видео.

Меню Options

Итак, с работой программы VirtualDub практически разобрались. Теперь осталось разобраться с настройками программы, которые помогут нам сделать работу немного комфортнее.



Поле №1
"Show log" - показывает в отдельном окошке список работ производимых в VirtualDub. Кому-то может быть и пригодится, но только не мне.
"Show real-time profiler" - показывает по времени, к каким подсистемам производится обращение, и с какой активностью.
Поле №2
"Performance" - здесь находятся настройки буферов VirtualDub.



"AVI Output buffering" - производится настройка размера буфера при чтении AVI файла с винчестера. Его стоит увеличивать только в том случае, когда идут простои процессора по вине источника AVI файла. Ведь источником может быть не только винчестер, но и сеть, внешний винчестер, CD-ROM… Проследить, из-за чего происходят задержки обработки видео модно посредством функции "Show real-time profiler". Если мы видим, что процессор загружен не полностью, а в основном идёт работа с устройством чтения-записи, то можно попробовать увеличить размер буфера "AVI Output buffering". При этом надо учесть, что VirtualDub будет занимать больше места в памяти.
"Wave input buffering" - позволяет изменять размер буфера для WAV источника. Так как WAV источник у нас задаётся отдельным файлом, для него так же работает отдельная буферизация. Если мы работаем без звука или берём звук из источника видео, то этот буфер использоваться не будет. Резон изменения размера этого буфера точно такой же, как и изменение размера буфера входного видео.
"Stream data pipelining" - эта функция ограничивает количество потоков, которые будут использоваться при передаче данных. Для выбора этого режима подходит чисто экспериментальный метод. Мы не можем заранее знать, с каким количеством потоков лучшим образом справится ваша система, поэтому только экспериментально. Это зависит от многих факторов: используемого железа, драйверов и конкретных операций, которые производятся в данный момент. При изменении количества потоков, может изменяться полное быстродействие системы.
В целом, что касается изменения размера буферов, то при какой-то конкретной операции будет оптимален свой размер буфера. Изначально они стоят в каком-то среднем значении, оптимальном для всего сразу. Если же у вас стоит какая-то специфическая задача, то можно подогнать их под свои цели.
Посмотрим, какие функции есть после выбора размера буферов.
Что касается опции "Dynamic Compilation" у меня нет никакой информации.
А вот на "Preferences" остановимся и рассмотрим все пункты.



Первая вкладка - "Main".
"Quick preview defaults" - это поле отвечает за установки, относящиеся к просмотру видео. В него входят 2 опции:
"Output color depth" - устанавливает, в каком формате цветности будет производиться вывод на экран. 16-bit более быстрый и нет смысла включать 24-bit, на качество видео, выдаваемого кодеку, это никак не влияет. Так же, можно выбрать:
Fasted (16-bit) - быстрый режим обсчёта картинки, использует 16 битный режим передачи сигнала.
Use output settings - выставляет такой же формат цветности, как у выходящего материала.
Match display depth - выставляет такой же формат цветности, как у вашего монитора.
16-bit (HiColor) - выставляет выходным форматом RGB16
24-bit (TrueColor) - выставляет выходным форматом RGB24
"Process priority" - устанавливает приоритет просчёта картинки выводимой на монитор. Здесь можно оставить значение "Default", что будет соответствовать "Normal".
"Dub defaults":
"Process priority" - отвечает за приоритет VirtualDub во время его работы. В целом, во время работы, в окошке "VirtualDub Status" можно выбрать статус работы VirtualDub. Если же поставить приоритет здесь, то он будет постоянен, и не нужно выставлять его каждый раз. Здесь можно выбрать среди 9 значений приоритетов:
Default = Normal
Idle - самый низкий приоритет VirtualDub. Я предпочитаю именно это значение и вот почему. Кодирование иногда длится сутки и более (в зависимости от кодека, количества и вида фильтров). В это время компьютер может понадобиться для любой другой цели. Если обе задачи будут идти с одинаковыми приоритетами, то работа обеих очень замедлится. Если же, у одной из них будет высокий приоритет, а у второй низкий, то программа с высоким приоритетом отработает и даст спокойно работать программе с низким приоритетом. Так что, пусть VirtualDub спокойно просчитывает видео, а я могу компьютер использовать для своих целей.
• Далее, по росту приоритетов: Lowest-> Even lower-> Lower-> Normal-> Higher-> Even higher-> Highest при выставлении высоких приоритетов, VirtualDub должен вытеснять другие задачи. По этой причине не рекомендовано применять эти режимы, ведь будет замедленны все реакции, даже при работе с мышью.
"Automatically add extension to filenames when saving" - при установке этой галочки, во время сохранения файла будет автоматически добавлено расширение. Расширение будет поставлено в соответствии с типом файла, который предполагается для работы.

Вторая вкладка - "Display". Здесь находятся опции, отвечающие за вывод рабочих окон VirtualDub. "Enable dithering for 16-bit desktops" - производит сглаживание рабочих элементов при работе с 16 битным рабочим столом. Это на любителя.
"Use DirectX for display panes" - использовать функции DirectX для прорисовки окон VirtualDub. Эту функцию можно держать постоянно включённой. Если у вас видеокарта не полнейший раритет, то всё будет работать нормально.
"Use DirectX even when Terminal Services is active (may cause display corruption)" - использование ускорения DirectX при выводе выпадающих меню. Эта опция может работать не правильно (выпадающие окна будут пропадать), поэтому сперва убедитесь, что у вас работает всё правильно, а потом оставляйте эту опцию включённой.
Третья вкладка - "Scene". Это весьма полезная функция. При помощи неё можно находить начала новых сцен или действий (так же, при помощи неё можно отлавливать кадры с сильными помехами). В принципе, она была бы полезна в монтажных программах, для выставления эффектов или подгонки кадров в стык.
Здесь она так же может пригодиться. На этой вкладке находятся две опции:
"Interframe (cut)" - уровень разницы между кадрами, при котором считается, что сцена или действие поменялись. Двигая слайдер в сторону "More sensitive" можно добавить чувствительности (в крайнем положении, даже самое небольшое движение в кадре, будет воспринято как смена действия). Движение слайдера в сторону "Less sensitive" уменьшает чувствительность детектора движения, вплоть до его полного отключения.
"Intraframe (fade)" - эта опция так же относится к детектору смены сцен. Но сцены не всегда сменяются моментально. Иногда, в месте смены сцен делают снижение, а потом нарастание яркости изображения. Эти эффект довольно сложно отследить обычным, пороговым детектором сцен. Для этого был введён этот детектор (Intraframe (fade)). Его чувствительность регулируется так же, как и у предыдущего.
Конец второй части.

© Счастье - это положительное отношение к происходящему. AlexStorm. 2006

Последний раз редактировалось AlexStorm; 25.11.2008 в 20:28.. Причина: обновлены картинки
AlexStorm вне форума  
Старый 23.06.2007, 21:33 Вверх     #3
AlexStorm
Свой Человек
 
Аватар для AlexStorm
 
   Возраст: 66
Регистрация: 11.06.2006
Был(а) у нас: 24.11.2020 09:23
Сообщений: 16,544

Пол: Мужской
По умолчанию

Знакомьтесь, VirtualDud (Часть третья. Заключительная.)

И так...
Четвёртая вкладка - "CPU". Здесь можно выставить оптимизацию кода под конкретный процессор.

"Use default optimization for current CPU…" - при выборе этой опции включается стандартная оптимизация кода. Она подходит под все виды процессоров, начиная с 486. При выборе этой опции не производится подгонка кода под конкретную модель процессора.
"Force optimizations" - при выборе этой опции, становится возможно выбрать оптимизацию, в соответствии с вашим процессором.
•--> FPU - можно выбирать для любого процессора
•--> MMX - его нет только на первых процессорах Pentium и процессорах AMD до эры Athlon.
•--> Integer SSE - такого набора команд для процессоров нет, Поэтому остаётся загадкой, для каких именно процессоров предназначена эта опция.
•--> SSE - этот набор команд появился в процессорах PentiumIII и Celeron с ядром, сделанным на основе процессора PentiumIII
•--> SSE2 - этот набор команд появился в PentiumIV и, соответственно Celeron на ядре PentiumIV
•--> 3DNow! - этот набор команд появился в процессорах Athlon и Duron.
•--> 3DNow!2 - этот набор команд появился в последних моделях процессоров

Последняя вкладка - "AVI". Здесь находятся опции, отвечающие за работу с AVI файлами.
"Restrict legacy AVI support to 1 gigabyte (instead of 2GB)" - при включении этой опции в AVI файл будут прописываться заголовки формата AVI 1.0. При этом, на размер AVI файла будет наложено ограничение в 1 гигабайт. Смысл включения этой опции в том, что некоторые программы не могут работать с AVI формата 2.0. "Do not correct MPEG Layer III audio streams" - Эта опция отключает корректировку MP3 звука в AVI файле. Лично меня очень раздражает, когда при открытии AVI файла с MP3 звуком в VBR формате, VirtualDub навязчиво начинает пытаться его исправить. Естественно, он не умеет правильно работать с VBR и получается сущее безобразие.

Что ж, продолжим дальше путешествие по меню "Options".

Поле № 3 во вкладке меню Options
"Display input video" - при установке этой галочки будет производиться показ входящего видео в окне VirtualDub.
"Display output video" - при установке этой галочки будет производиться показ видео, уходящего на кодек.
"Display decompressed output" - это весьма полезная функция, но она очень замедляет работу системы. Смысл её таков, что во время сжатия мы сразу можем просмотреть качество сохранённого видео. То есть, во время сжатия, следом производится разжатие материала и вывод его на экран (в область вывода обработанного материала). Мы можем сразу визуально убедиться, на сколько качественная картинка сохраняется.
"Show status window" - включение этой опции позволяет появляться окну "VirtualDub Status" во время сжатия материала.



Это окно очень информативно. В нём выводится практически вся информация о ходе кодирования в VirtualDub.
"Swap input/output panes" - эта опция меняет между собой окна просмотра входящего и выходящего видео. Иногда, эта опция оказывается весьма полезна. Например, у вас на входе видео весьма большого формата, а вы хотите увидеть, что у вас получится на выходе в результате работы фильтров. Для этого меняем местами окна просмотра и видим всё, что хотели.
Ну и закончим с панелью "Options".

Поле №4 во вкладке меню Options
"Vertical display" - выставляет окна просмотра входящего и выходящего видео не горизонтально, а вертикально (друг под другом).
"Sync to audio" - производит синхронизацию видео и звука. Эту функцию не стоит выключать.
Дело в том, что при вырезках и вставках, если не будет синхронизации со звуком, то он не будет смещаться и, как результат, полный бардак со звуком. Я бы назвал эту функцию - привязка звука к видео.
"Drop frames when behind" - включает режим пропуска кадров, если система не успевает показывать просчитываемый кадр. Это распространяется только на вывод изображения на экран и никак не затрагивает обработку изображения.
"Allow video overlays" - при включении этой опции видео будет выдаваться в оверлей. Оверлей - это область памяти на видеокарте. Все плеера выводят видео именно этим методом. Единственный его недостаток в том, что если при включённом оверлее сделать скриншот экрана или активного окна, то на месте видео будет пустое окно. Но оверлей позволяет быстрее обрабатывать вывод на монитор.
"Preview field mode" - позволяет определить, с каким видео мы будем работать. Для интерлейсного материала можно задать порядок полей, с которым нужно выводить на экран. Здесь я предпочитаю оставлять "Progressive". (см.поле № 5 во вкладке меню Options)

Панель навигации

Для передвижения по видеоряду внизу программного окна VirtualDub есть кнопки, помогающие передвигаться по видеоряду.



При наведении на любую из них появляется подсказка, которая говорит, что делает эта кнопка. Я пронумеровал их для наглядности.
№ 0 - "Stop" - производит остановку режима воспроизведения.
№ 1 - "Input playback" - производит показ видео, которое открыто в VirtualDub.
№ 2 - "Output playback" - производит показ видео после обработки в VirtualDub. Под обработкой в VirtualDub подразумевается прохождение видео через фильтры. Когда будете прокручивать видео, обратите внимание, что в VirtualDub есть 2 окна просмотра.



Если у вас не стоит галочка "Swap input/output panes" в меню "Options", то слева будет показываться оригинальное изображение (Input), а справа изображение после обработки (Output). Для удобства работы, вы можете отмасштабировать окна просмотра под ваше изображение. Для этого, на любом из окон просмотра сделайте щелчок правой кнопкой мыши. У вас появится меню, как показано на левой панели просмотра. Здесь вы можете выбрать масштаб окна из списка предложенных значений (слева) и соотношение сторон выводимого изображения (справа). Мне нравится, что бы во время просмотра было и входное и выходное изображение. Я это подгоняю масштабами. Можно так же и в ручную растянуть окно просмотра. Для этого нужно потянуть его за какой-нибудь край. Но при этом изображение будет деформироваться. Что бы этого не происходило, нужно выставить в выпадающем меню "1:1 pixel ratio (PC)".
№ 3 - "Start" - переводит слайдер на начало видео.
№ 4 - "Backward" - переводит слайдер (естественно и видео) на один кадр назад. По моему, пользоваться этой кнопкой довольно не удобно. Гораздо удобнее пользоваться клавиатурой. Клавиша лево выполняет эти же функции.
№ 5 - "Forward" - передвигает видео на один кадр вперёд. Здесь у меня такие же замечания, что и по предыдущей функции. Клавиша право выполнит ту же самую функцию.
№ 6 - "End" - передвигает слайдер в конец видео.
№ 7 - "Key previous" - передвигает слайдер на предыдущий ключевой кадр. Опять же, проще воспользоваться сочетанием клавиш Shift+лево, что будет на много быстрее, чем целится в эту кнопку.
№ 8 - "Key next" - переводит на следующий ключевой кадр. Особо не останавливаемся и пользуемся клавишами Shift+право.
№ 9 - "Scene reverse" - по нажатию на эту кнопку производится поиск предыдущей смены сцен.

Ранее, я рассказывал о том, как настроить пороги поиска смены сцен.
Кнопки активизации этой функции находятся только в панели навигации.
№ 10 - "Scene forward" - производит поиск следующей смены сцен.
№ 11 - "Mark in" - ставит метку начала выделенной области. Гораздо удобнее использовать клавишу "Home" на клавиатуре.
№ 12 - "Mark out" - - устанавливает метку окончания выделенной области. Будем пользоваться клавишей "End" на клавиатуре.
По панели навигации особых замечаний больше нет.

Ну, вот вроде и всё, что я знаю и нашёл о программе.
Информацию "черпал" из разных источников в сети и личных знаний, за что всем благодарен.
Теперь мы знаем назначение кнопок и ссылок в программе.
Как работать с ней – разберём в уроках по VirtualDud’у.

© Счастье - это положительное отношение к происходящему. AlexStorm. 2006

Последний раз редактировалось AlexStorm; 25.11.2008 в 19:16..
AlexStorm вне форума  
Закрытая тема


Метки
времени, время, видео, видеокарта, анализ, большой, выбор, avi, avisynth, знакомства, разговор, режима, картинки, конфигурации, информация, excel, навигация, обзор, найти, память, настройка, проблема, проблемы, процесс, новый, последние, открытие, открытия, путешествие, метки, manual, mpeg, скрипты, символ, следствие, фильмы, хуже, open, photoshop, progressive, server, video, если, дело, шоу


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT, время: 09:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Follow FriendsForumCom on Twitter liveinternet.ru Рейтинг@Mail.ru