Кот-ученый (livejohan) wrote,
Кот-ученый
livejohan

Categories:

ffdshow: установка, настройка и использование

Image and video hosting by TinyPic
Скачать последнюю версию всегда можно здесь:
http://www.free-codecs.com/download/FFDShow.htm.

ffdshow — это набор видео и аудио кодеков + система постобработки видео и аудио. Организован он в виде DirectShow фильтра, что позволяет ему работать практически с любым видеоплеером.

Если на пальцах — то DirectShow работает примерно следующим образом: у вас в системе установлено много отдельных программ, называемых фильтрами, которые могут передавать мультимедийные данные друг другу. У каждого фильтра есть «вход» и «выход», на входе он получает данные одного формата (например, в случае декодера, это закодированное видео), а на выходе выдает переработанные (раскодированное видео). Кроме декодеров существуют также сплиттеры (читают из одного файла видео- и аудиодорожку, и передают их соответствующим декодерам), процессоры/обработчики видео- и аудиоданных, рендереры (занимаются непосредственно выводом на экран в одном из режимов). Функция плеера заключается в том, что он создает цепочку из таких фильтров, и управляет ими в процессе просмотра.
Итак, ffdshow — это DirectShow фильтр, который состоит из набора кодеков для наиболее распространенных форматов, и фильтров для постобработки картинки. Если для какого-либо формата он используется в качестве кодека — то постобработка гарантированно будет доступна. Если же вы хотите использовать его только как обработчик данных от самостоятельного кодека, есть одно условие: кодек должен поддерживать присоединение фильтров на выходе. Некоторые DVD-декодеры от некоторых плееров (к примеру, Cyberlink PowerDVD, Nvidia чего-то там DVD) этого не допускают :(

Установка проблем вызвать не должна (там все на русском и с подсказками). После установки в меню Пуск->Программы появится новая группа ffdshow. Идем туда, и запускаем Video decoder configuration. Появится окно настройки. Смотрим страницу Codecs. Это список поддерживаемых ffdshow форматов видео. Для каждого из поддерживаемых форматов можно выбрать библиотеку, при помощи которой он будет декодироваться. ИМХО, если есть возможность выбрать XVID, то нужно выбирать его, в остальных случаях — libavcodec (libavcodec — это переписанная под Виндовз библиотека кодеков от линуксоидного плеера mplayer), однако, это сугубо ИМХО. Если выпадающем списке напротив формата выбрано disabled — это означает, что ffdshow не будет самостоятельно декодировать видео в этом формате (т.е. будет использоваться самостоятельный кодек, например, для MPEG4 это Divx или Xvid).
Обратите внимание на последний пункт в списке — Raw video. Этот пункт разрешает ffdshow присоединяться к выходу любого кодека, допускающего такую возможность. Здесь надо выбрать All supported.

Следующая страница — Info & debug.
Во время проигрывания видео в группе Info отображается служебная информация; В группе Debug можно выбрать Merit (то есть, приоритет ffdshow по отношению к другим фильтрам со сходными функциями), разрешить или запретить запуск нескольких экземпляров ffdshow (в цепочке фильтров, проигрывающих один файл), и разрешить/запретить использование специфичных для вашего процессора расширенных инструкций (SSE2, 3DNow!). Обратите внимание на галку Make DirectShow graph available to graphedit — она должна быть снята, иначе ffdshow не будет выгружаться после закрытия плеера, как и предупреждает подсказка.

OSD. Здесь можно выбрать отображаемую фильтром служебную информацию. Для начала стоит поставить там какую-нибудь галочку, вроде System time — это простейший способ определить, что ffdshow действительно загружен, и обрабатывает файл. После того, как вы убедитесь, что ffdshow нормально работает с вашим плеером, снова можно ее отключить.

Tray, dialog & paths:
Show tray icon — показывает иконку в трее при проигрывании фильма. Двойной щелчок на иконке вызывает окно параметров, а щелчок правой кнопкой — менюху, в которой можно включать/выключать отдельные фильтры, выбирать профили настроек, а также вызвать окно конфигурации как для самого ffdshow, так и для всех других используемых в данный момент фильтров.
Кстати, в списке Language можно выбрать русский язык (чего лично я не советую делать, ибо перевод далек от совершенства).

Keys & remote — настройка горячих клавиш (и, видимо, пульта).

Image settings. Здесь хранятся настройки различных сочетаний фильтров. Изначально в этом списке присутствует только default, а о создании, сохранении и автозагрузке настроек я напишу в конце.

Show/hide filters — позволяет спрятать неиспользуемые фильтры.

(ЗДЕСЬ И ДАЛЕЕ: теперь под словом «фильтр» я всегда буду подразумевать не DirectShow фильтр, а фильтр для обработки картинки!)

А вот теперь начинается самое интересное: все последующие пункты — это фильтры для обработки изображения. Галочка возле названия фильтра означает, что он включен и используется.
Следует помнить, что применяются они в порядке следования в списке (их можно перетаскивать вверх или вниз мышкой), и от этого порядка во многом зависит производимый ими эффект.
В общем случае, первыми желательно ставить фильтры, изменяющие качество картинки (Postprocessing, Blur & NR), после этого - регулирующие параметры изображения, повышающие резкость, добавляющие шум и т.д. Если собираетесь использовать Resize (о нем далее), то стоять он должен после Postprocessing-а.

Итак, будем рассматривать их приблизительно в этом порядке.
Для начала об элементах, которые будут общими для всех фильтров:
Выпадающий список (в самом верху любой страницы) используется для быстрого переключения настроек. Для чего используется галка Process whole image, я, если честно, не в курсе или не помню ;), а вот Only right half позволяет применить обработку только к половине картинки, чтобы сравнить с необработанным вариантом.

Crop & zoom.
Этот фильтр используется для обрезки картинки по краям. Количество пикселей округляется в большую сторону до величины, кратной 8. Также может использоваться для увеличения картинки. (При этом, в отличие от фильтра Resize & aspect, не происходит реального увеличения количества пикселей, т.е края картинки уйдут за края окна).

Logoaway можно использовать для удаления логотипов телеканалов, логотипов кодеров и т.п. Задаете координаты прямоугольной области, ее размеры (она не должна выходить за края картинки, иначе обработка вообще не будет происходить), и способ удаления (разобраться не сложно; на мягких однотонных картинках лучше UGLARM с Exponent: 10, на картинках с мелкими деталями, текстурами, и т.п. лучше XY с Blur: 0, X-Y weight по вкусу.
В нижней половине можно настроить параметры удаления, в зависимости от положения логотипа. Over video — для случаев, когда логотип лежит прямо поверх картинки, остальные — для вариантов, когда логотип перекрывает черную рамку кадра.

Postprocessing — это фильтр для сглаживания квадратов и удаления MPEG-артефактов с картинки.
Внимание, если вы пользуетесь для декодирования видео самостоятельным кодеком (Divx, Xvid), то в его настройках постобработку нужно выключить!
Итак, по порядку:
Ползунок Presets по сути дела просто управляет галочками (справа от него), устанавливая их в порядке их влияния на качество картинки. Если вы включите Automatic quality control, то ползунок будет прыгать туда-сюда, в зависимости от загрузки процессора (т.е., при интенсивной загрузке процессора он временно снизит качество обработки).
Если выбрать режим Custom, то станут доступны галочки. Deblock отвечает за смазывание границ квадратов (H — по горизонтали, V, соответственно, по вертикали), Dering — за удаление краевых артефактов. Галочки в столбце Luminance включают обработку яркостного канала (сильно влияет на картинку), Chroma — обработку цветового канала (менее заметно).
Processing strength — непосредственно управляет интенсивностью обработки.
Processing method:
mplayer — судя по названию, метод, который используется в mplayer-е (это плеер под Линукс). Галочка Accurate deblocking должна стоять, т.к. с ней он будет удалять блоки аккуратнее ;) а без нее почему-то будет искажать цвета. Luminance и Full luma range, видимо, корректируют что-то связанное с уровнями белого и черного.
Nic’s — это другой алгоритм удаления квадратов. Может использоваться как совместно с предыдущим (тогда стоящая галка Nic’s first означает, что этот алгоритм будет применен перед mplayer-ом, а не стоящая — после), так и самостоятельно (что рекомендуется). По производимому эффекту они мало чем отличаются, но у этого алгоритма есть параметры X threshold и Y threshold, которые задают степень сглаживания отдельно по вертикали и горизонтали (0 — максимум, 255 — минимум обработки). Если слегка увеличить X threshold, то по вертикали картинка будет сглаживаться сильнее, чем по горизонтали, что позволяет сохранить четкость вертикальных линий, и субъективно улучшить качество картинки (она будет казаться менее смазанной). Собственно, по этой причине я советую пользоваться алгоритмом Nic’s.
SPP deblocking — видимо, хорошая и качественная штука, но процессор грузит на полную :-(

Resize & aspect — позволяет увеличить картинку, используя не функции видеокарты, а непосредственно софтварный алгоритм (один из 14). Все бы хорошо, но загрузка процессора при этом поднимается до неприемлемых величин, а качество (по сравнению с билинейным увеличением средствами видеокарты) практически не отличается. Видел (не помню, где) статью о том, что если у вас есть HDTV-телевизор, и процессор гигагерца эдак на три, то вы можете увеличивать картинку с обычного DVD до разрешения HDTV с помощью этого фильтра, якобы при этом качество будет лучше. Не знаю, не проверял ;)
А вот что реально может пригодиться — это увеличение совсем маленьких файлов хотя бы до размеров 640x480 перед применением остальных фильтров. То есть, идея в том, что вы можете в группе Resize отметить Specify size, вписать туда, например, 640 x 480, в группе Resize if написать x<640 и y<480, в группе Aspect ratio отметить Keep original aspect ratio. Далее, на следующей странице Borders, все сбрасываете на 0, и на странице Settings выбираете один из алгоритмов (Lanscos считается неплохим). Далее, ставите этот фильтр сразу после Postprocessing, в результате получается, что удалялка квадратов работает с оригинальным изображением (что для нее и требуется), а все, что после — с увеличенным до 640x480.
Да, кстати, есть маленький баг/фича: все это будет работать правильно, только в том случае, если параметры ресайза вы указали в том Preset-е, который загружается автоматически (или по дефолту). То есть, изменить настройки «на лету» невозможно (для этого нужно будет переоткрыть файл).

Sharpen используется для повышения четкости. Есть пять алгоритмов:
xsharpen — подойдет, разве что, для мультиков.
unsharp mask — это широко известное "нерезкое маскирование", как в Фотошопе. Идеальный выбор для DVD и двухгиговых MPEG4. Поскольку он шарпит сразу всю картинку, со всеми мелкими деталями, артефактами и квадратами, то для сильно пожатых файлов не годится.
msharpen — находит на картинке контрастные переходы (как find edges в Шопе), и применяет в них, насколько я понял, фильтр, аналогичный xsharpen. Способ использования: ставите галочку only mask, устанавливаете threshold на таком уровне, чтобы не видны были разводы от квадратов, а остались только края объектов, затем снимаете эту галочку, и ползунком Strength устанавливаете нужную резкость.
asharp — опять же, насколько я понял, это снова find edges, но теперь в комбинации с unsharp mask. Unsharp mask threshold используется для задания интенсивности шарпенинга, Adaptive sharpening strength — для детектирования контрастных областей (только в отличие от предыдущего случая, нельзя непосредственно видеть маску), Block adaptive sharpening вроде бы должен предотвращать шарпенинг квадратов, но на практике в нем, ИМХО, нет необходимости, и его можно поставить на 0. На мой взгляд, этот алгоритм — лучший (главное — не задирать слишком высоко Unsharp mask threshold).
swscaler — производит слишком слабый эффект.

Picture properties
Первый ползунок — это контраст, второй — яркость, ничего необычного.
Gamma correction — гамма, весьма полезная штука.
Следующие три ползунка — гамма по каналам.
Далее сдвиг цветовой гаммы, знакомый по Фотошопу и настройкам других кодеков, за ним — насыщенность, последний — это опять-таки аналог Шоповского Colorize.
Luminance level fix, насколько я понял, используется в случаях, когда на DVD фильм закодирован в диапазоне 16-235 (а не 0-255), бывает, для чего-то так делают. Эти галочки исправляют ситуацию.

Noise используется для добавления шума. Штука, на первый взгляд, бесполезная, но при правильном применении позволяет снизить заметность квадратов, и придать картинке больше реалистичности.
Есть на выбор три алгоритма, мне больше нравится mplayer noice. Галочка Uniform noice используется для того, чтобы включать/выключать светлый шум на темном фоне, и работает c New noice и mplayer noice наоборот: для одного включает, для другого выключает. Видимо, баг ;)
Luma noise strength и Chroma noise strength — соответственно, уровни шума в каналах яркости и цветности. Действие галочек Averaged и Pattern проще показать, чем объяснить. ;)
Flickering, shaking, Vertical lines, Dust & scratches — это «киношные» эффекты, прикольно, но бесполезно.

Blur & noise reduction — размытие и подавление шума:
Soften — слегка заблюривает картинку.
Temporal smooth — качественно удаляет шум, не сглаживая детали, но... Из-за эффекта Макс Пэйна ;-) просмотр сколько-нибудь динамичных сцен становится затруднительным.
Luma smoother, Chrominance smoother — заблюривает картинку, оставляя резкие края у контрастных объектов (по каналу яркости и цвета, соответственно).
Gradual denoise — качественно удаляет шум, не портит картинку, но эффективность невысока.
mplayer temporal noise reducer — сильно искажает цвет.
swscaler gaussian blur — размытие. Раздельно по каналу яркости и цвета.
denoise3d — очень мощная шумоудалялка, практически не ухудшающая качество.

Deinterlacing — 12 алгоритмов для сглаживания чресстрочных (с зазубринами по краям движущихся объектов) DVD. Отличаются друг от друга качеством и ресурсоемкостью. Перед включением этой функции в ffdshow, нужно отключить ее в настройках DVD-декодера.

Levels — Уровни. Почти как в Фотошопе. А то, что не как в нем, ИМХО, очевидно из поведения кривой. Что означает список Mode понятия не имею :(

Offset — задает взаимное смещение каналов яркости и цвета.

Warpsharp — Оригинальный, оптимизированный под AMD Athlon, совершенно бесполезный (хотя и забавный) фильтр.

Dscaler filter — насколько я понял, подгружает какие-то плагины от чего-то.

Perspective correction — видимо, предназначен для любителей экранных копий ;) Настройки, ИМХО, вполне понятны.

Subtitles — подгружает субтитры из внешних файлов (чаще всего это .srt или .sub), либо из нутра VOB-файла, если вы отправили его в плеер непосредственно.

Avisynth — подгружает Avisynth-скрипты.

Visualizations — Попробуйте, прикольно.

DCT — убивает плеер ;)

Bitmap overlay — ложит поверх видео указанную картинку, можно задать прозрачность и режим наложения. Картинка, насколько я понял, не должна сильно превышать размер видео.

Grab — выдиралка кадров.

Overlay — управляет настройками оверлея (в том случае, если видео выводится на него).

Miscellaneous и Output — тоже какие-то настройки ;)

А теперь пара слов о сохранении/загрузке настроек. Сразу после установки на странице Image Settings будет всего один дефолтный preset. Думаю, не будет ошибкой, если preset-ы я буду обзывать профилями, ОК? Так вот, вверху имеются кнопочки для создания новых профилей (основываясь на дефолтном, или на выбранном), сохранения/загрузки из файла, переименования и сохранения. Все изменения, сделанные вами на страницах фильтров, будут сохранены в текущем профиле (его название отображается в выпадающем списке вверху каждой страницы).
После создания нового профиля у вас пропадут все фильтры — это такая фича, будем надеяться, в следующих версиях ее исправят. Просто переоткройте окно настроек.
Двойным щелчком на профиле можно сделать его профилем по умолчанию (выделяется полужирным).
Внизу этой страницы есть галочка Automatic preset loading, и кнопка Preset autoload conditions. Если вы поставите галку, то для каждого профиля сможете указать, в каких ситуациях он должен грузиться. Проще всего распределить профили на основе размеров картинки: сделать профиль для DVD (720x480), хороших MPEG4 (>= 640x480) и плохих MPEG4 (<640x480).

Итак, имеет смысл использовать:
Для MPEG4 не очень хорошего качества:
Postprocessing, Resize & aspect, Sharpen, Picture properties, Noise.
Для хороших MPEG4 то же самое, только без ресайза и с более мягкими настройками.
Для DVD — Sharpen (unsharp mask) и Picture properties.
Tags: полезные ссылки, софт
Subscribe

  • Детки :-)

    Гуляем с сыном (3 года) в парке. Набрели на детский уголок. В песочнице стандартная картина : - Сашенька, не ешь песочек.это кака!!!! - Лешенька,не…

  • Веселая правда жизни

    Камрад zuhunter доставляет: «Только подбирая пару носку мужчина постигает сколь разнообразным может быть черный цвет». Остальные хохмы…

  • Мечтать не вредно :-)

    johan:Какое самое лучшее развлечение в инете, для скорости 150 кБит/сек? Smily:Клавагонки!? Sb:Это что? johan:соревнавания на скорость набора,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 37 comments

  • Детки :-)

    Гуляем с сыном (3 года) в парке. Набрели на детский уголок. В песочнице стандартная картина : - Сашенька, не ешь песочек.это кака!!!! - Лешенька,не…

  • Веселая правда жизни

    Камрад zuhunter доставляет: «Только подбирая пару носку мужчина постигает сколь разнообразным может быть черный цвет». Остальные хохмы…

  • Мечтать не вредно :-)

    johan:Какое самое лучшее развлечение в инете, для скорости 150 кБит/сек? Smily:Клавагонки!? Sb:Это что? johan:соревнавания на скорость набора,…