![>](style_images/2/nav_m.gif)
![]() |
NetLab · Rules · Torrent Tracker · Have a problem? · Eng/Rus |
![]() ![]() ![]() ![]() ![]() |
Welcome Guest ( Log In | Register | Validation ) | Resend Validation Email |
![]() |
|
Posted: 07-05-2006, 20:10
(post 1, #597600)
|
||
Daysleeper ![]() Group: Privileged Posts: 21927 Warn:0% ![]() |
Как работать с Virtual Dub Frameserver VxWorks О чем эта статья? Иногда требуется использовать какие-то фильтры (коих для Virtual Dub великое множество) в кодерах MPEG (таких, как Mainconcept или TMPGEnc). В этом случае можно либо перекодировать исходный файл в Virtual Dub, а затем, перекодированный файл использовать в MPEG кодерах. Такой подход занимает много времени и может привести в привнесению дополнительных искажений видеоматериала. Чтобы этого не произошло, надо использовать фреймсервер. Мне известны два типа фреймсервера - Virtual Dub Frameserver и AviSynth. Второй намного мощнее, в то время, как первый легче в использовании. О том, как работать с фреймсервером Virtual Dub и расказывается в этой статье Софт Нам понадобится Virtual Dub. Начнем, пожалуй! Прежде всего, надо установить Frameserver, если это еще не сделано (эту операцию необходимо проделать только один раз). В директории, где находится Virtual Dub присутствует программка AuxSetup.exe. Запускаем ее и получаем вот такое окно: ![]() В открывшемся окне, нажимаем на кнопку Install Handler, после чего начнется установка необходимых библиотек в систему: ![]() После установки библиотек, AuxSetup выдаст радостное сообщение о том, что установка фреймсервера успешно завершена: ![]() Все, что теперь остается сделать в AuxSetup - это пару раз кликнуть на OK, а затем выйти из программы, нажав Exit. После установки фреймсервера, запускаем Virtual Dub и, как обычно, выбираем нужный видеофайл, для чего идем в меню File->Open video file: ![]() Выбираем файл и к нашим услугам кнопка Open: ![]() Теперь - самое время задасться вопросом - "а зачем, собственно, нам этот самый фреймсерв, нужен?". Допустим, нам надо закодировать видео в VCD с помощью Mainconсept MPEG1 Encoder'a. Обычно, при захвате видеосигнала с кассеты, по краям кадра остаются всякого рода неровные края и линии, несущие служебную информацию, но которые, тем не менее, были записаны вместе c видео. Для того, чтобы убрать эти линии и неровности, применяется очень простой способ, который называется Cropping. Однако, при всей своей скорости, качестве и т.п., Mainconcept MPEG Encoder не умеет обрезать кадры по краям (в отличие от того же TMPGEnc). Чтобы решить "эту маленькую частную проблему" © Стругацкие, используем фильтр Cropping из Virtual Dub, после чего видео будет фреймсервиться (ну как это по-русски то сказать?!!) в Mainconcept. Итак, идем в меню Video->Filters: ![]() Список фильтров, естественно, пуст. Чтобы добавить фильтры, нажимаем на кнопку Add: ![]() В списке фильтров выбираем Null Transform. Сам по себе,этот фильтр ничего не делает, но, поскольку в Virtual Dub нет отдельного фильтра Cropping, а только возможность использования этой функции с другими фильтрами, то выбираем этот "ничего не делающий фильтр", (указываем на него мышкой и нажимаем на ОК): ![]() И "навешиваем" на него функцию Cropping ![]() Нажатие кнопки Cropping приводит к тому, что открывается окно, где можно задать количество обрезаемых строк и столбцов. В опциях "X1 offset", "X2 offset", задаем количество обрезаемых вертикальных строк (столбцов) для обрезки слева и справа, соответственно. |
||
|
Posted: 07-05-2006, 20:11
(post 2, #597601)
|
||
Daysleeper ![]() Group: Privileged Posts: 21927 Warn:0% ![]() |
Для обрезки верхних строк, выбираем опцию "Y1 offset" (обратите внимание на перевернутые по значению кнопки увеличения\уменьшения значений в окошке опции), а для обрезки нижних - "Y2 offset". Ползунок внизу окна поможет выбрать позицию в файле, где края будут видны наиболее четко, что позволит более точно выставить значения для "обрезки": ![]() После того, как значения опций выставлены, нажимаем пару раз на ОК и, вернувшись в главное окно Virtual Dub, выбираем Video->Full Processing Mode (иначе, видео просто будет копироваться, как есть, без обработки фильтрами): ![]() Поскольку для фреймсерва не нужна компрессия (уж как-нибудь, передачу нескольких несжатых фреймов между программами компьютер должен выдержать), идем в меню Video->Compression: ![]() И выбираем тип сжатия "видео без компрессии" -Uncompressed RGB, после чего, кликаем на обязательный ОК. ![]() После того, как все настройки закончены (можно добавить фильтры по вкусу - например, grayscale для черно-белого видео или temporal smoother для уменьшения количества артефактов кодирования в VCD - надо пробовать ![]() ![]() Virtual Dub попросит имя для фреймсервера, которое, в принципе, не имеет никакого значения, за исключением случая, когда одновременно работают несколько фреймсерверов (что, впрочем, довольно редкое явление). Так что, просто жмем на ОК: ![]() После этого, откроется окно выбора имени для специального файла (по умоланию с расширением VDR, которое, впрочем, можно менять). Этот файл имеет очень маленький размер (десятки байт), и, представляет собой "указатель" на фреймсервер. Чтобы активировать фреймсервер, надо в том же Mainconcept Encoder'e открыть этот файл, как обычный AVI. ![]() После выбора имени файла (и нажатии на Save), появится окно фреймсервера (окно Virtual Dub'a показываться не будет - оно вернется на экран только тогда, когда режим фреймсервера будет выключен кнопкой Stop Serving. Также, очень важно, чтобы в графе Frameclients installed была запись AVIFile only. Если там будет None - это значит, что фреймсервер не установлен. ![]() Все, что теперь осталось - это воспользоваться фреймсервером, то есть, открыть его файл в MPEG кодере (например, Mainconcept или TMPGEnc). Кстати, если по каким-либо причинам кодирование было прекращено, то необходимо перезапустить фреймсервер. Удачного кодирования! |
||
![]() |