ffdshow

06.09.2022

ffdshow — медиадекодер, обычно используемый для быстрого и высокоточного декодирования видеопотока в MPEG-4 ASP (то есть кодированного с помощью DivX, Xvid или FFmpeg MPEG-4) и AVC (H.264) форматов, также поддерживает множество иных видео- и аудиоформатов. Является свободным программным обеспечением, выпускаемым под лицензией GPL, работает под Windows в качестве фильтра DirectShow и Video for Windows. Также содержит набор фильтров для коррекции изображения, которые могут быть наложены в заданной последовательности.

История

Первая версия ffdshow была опубликована в апреле 2002, как альтернатива DivX 3.11 и Gator DivX 5.02 декодеров, дабы объединить скорость и качество MPlayer с рядом плееров для Windows. Ряд декодеров и фильтров DirectShow могут сравниться в скорости с ffdshow, но аналогов в функциональности и широте поддержки не существует. Декодер продолжает поддерживать множество форматов, активно развивается и усовершенствуется новыми и некоторыми первоначальными разработчиками, в частности, разработчиками FFmpeg.

Главным разработчиком и автором был Milan Cutka. Когда автор оставил разработку проекта в 2006 году, инициативная группа создала проект ffdshow-tryouts, продолжая исправлять ошибки, обновлять и совершенствовать декодер.

ffdshow-mt

ffdshow-mt (от англ. multithread) — экспериментальный вариант декодера ffdshow, базирующийся на ffmpeg-mt, созданный с целью обеспечения многопоточности при декодировании ряда форматов, включая H.264 и VC-1. Многопоточность обеспечивает заметный рост производительности на многоядерных системах по сравнению с основным проектом ffdshow, однако аппаратные и, в ряде случаев, некоторые проприетарные декодеры показывают лучшие результаты.

Инсталляция и конфигурация

ffdshow не включает интегрированного медиа плеера и парсеров медиа контейнера. Однако любой DirectShow-совместимый медиа плеер, такой как Проигрыватель Windows Media, Media Player Classic, The KMPlayer, GOM Player, Winamp или Zoom Player, может использовать декодер ffdshow автоматически, что исключает необходимость установки отдельного кодека для каждого из множества видео- и аудиоформатов, поддерживаемых ffdshow. Пользователь конфигурирует видео и аудио настройки ffdshow с помощью соответствующих диалогов декодера, при этом данная конфигурация будет являться независимой от используемого плеера.

Поддержка форматов

ffdshow имеет поддержку субтитров, возможность выбрать набор используемых кодеков, снятие снимков экрана, контроль с помощью клавиатуры, контроль разрешения изображений, яркости, набор фильтров постобработки картинки, включая возможность подключения плагинов видеообработки, фильтров DScaler. Имеет возможность использования интегрированных аудио фильтров, эквалайзера, микшера, декодер Dolby, DSP плагины Winamp и др. Ряд элементов постобработки перенесён из плеера MPlayer и фильтров AviSynth.

ffdshow использует библиотеку libavcodec и ряд других свободных и открытых (open source) пакетов декодирования видео распространённых форматов, таких как MPEG-4 (включая кодированные с помощью Xvid, 3ivx, всех версий DivX), H.263 и VP6 (используемого, в частности, сайтом YouTube), H.264/AVC, WMV, также, как и множество других. ffdshow также декодирует аудио поток в форматах MP3, AAC, Dolby AC3, WMA, Vorbis и многих других.

Фильтры постобработки ffdshow используются в видео редакторах VirtualDub и AviSynth, путём настройки VfW. В данных редакторах, ffdshow может быть использован также для кодирования MPEG-4-совместимого видеопотока (совместимого с кодеками Xvid, DivX и x264), также, как и видео без потери качества и ряд других форматов, поддерживаемых базовой библиотекой libavcodec.

На данный момент (апрель 2013 года) реализована поддержка видеоформатов: H.264/AVC, XVid, DivX 4/5/6, MPEG 4, DivX3, MP41, MP42, MP43, H.263, FLV1, Theora, VP3, VP5, VP6, VP6F, MPEG1, MPEG2, WMV1, WMV2, WMV3, VC-1, WMVP, MSS1/2, H.261, Hiffyuv, MJPEG, SVQ1, SVQ3, QTRLE, 8BPS, QRPZA, FFV1, DV, CamStudio, CorePNG, LOCO, MSZH, Techsmith, ZLib, ZMBV, AutoDesk RLE, Cinepack, Indeo, MS Video 1, MS Video RLE, QPEG, Real Video и ряд других.

Комментарии

Существует заблуждение, что сборка, компилированная с использованием компилятора ICL с поддержкой SSE/SSE2, будет декодировать быстрее и функциональнее, чем обычная (generic build). На самом деле, большинство декодеров содержатся в библиотеке libavcodec, которая во всех сборках компилируется с помощью gcc, а её исходный код содержит много оптимизированного вручную ассемблерного кода. Таким образом, независимо от компилятора, декодер имеет полноценную поддержку инструкций современных процессоров, включая SSE/SSE2/SSE3, MMX/MMXEXT, 3DNow!/3DNow! Ext. Однако разница в производительности (в зависимости от использованного компилятора и оптимизаций) существует для фильтров постобработки.

Пакеты кодеков могут снижать производительность ffdshow. Некоторые из них подменяют ffdshow, что сказывается на видеоизображении, или включают устаревшие версии ffdshow.


Имя:*
E-Mail:
Комментарий: