ffdshow is an open-source (GPLv2) video and audio decoder and encoder for Microsoft Windows, implemented as a DirectShow filter and a Video for Windows (VFW) codec. It is based largely on the FFmpeg project's libavcodec and related libraries, and is best known as a software codec package that allowed Windows media players to decode a wide range of video and audio formats without installing separate proprietary codecs for each one.
Overview
ffdshow is not a media player and does not include container parsers. After installation, DirectShow- or VFW-based applications — such as Media Player Classic, Windows Media Player, Winamp, VirtualDub, and AviSynth — load the ffdshow decoder automatically when a supported format is encountered. Configuration is performed through separate stand-alone dialogs for the video decoder, the audio decoder, and the VFW codec. For transport-stream content (for example H.264/AVC), an additional media splitter such as LAV Filters is generally required.
The project consists of three principal components:
- A DirectShow video decoder, which decodes many formats to raw video and can apply optional post-processing transformations such as resizing, sharpening, deinterlacing, cropping, and perspective correction.
- A DirectShow audio decoder, which handles common audio formats and includes audio filters such as a mixer (upmixing/downmixing), equalizer, volume normalization, resampling, and Dolby/AC-3 processing.
- A VFW codec, which duplicates the decoder functionality through the older Video for Windows interface and additionally functions as an encoder for a number of formats, making it usable in editors such as VirtualDub.
Format support
Because it relies on libavcodec, ffdshow supports a broad and expanding set of formats. Commonly cited video formats include MPEG-4 Part 2 (DivX, Xvid, 3ivx), H.264/MPEG-4 AVC, Flash Video, H.263, VP3, VP6, Theora, WMV/VC-1, and MJPEG, among others. Audio support includes MP3, AAC, Dolby AC-3, E-AC3, DTS, WMA, FLAC, and Vorbis. Subtitle rendering, screenshot capture, and keyboard control are also provided. Some post-processing filters were adapted from the MPlayer project and from AviSynth.
History
The first versions of ffdshow were released in May 2002, positioned as an alternative to the DivX 3.11 and DivX 5.02 decoders of the period — the latter having been distributed with bundled adware — and as a way to bring MPlayer's decoding speed and quality into popular Windows players. The principal original developer was Milan Cutka, with Peter Ross also credited among the original authors.
When Cutka ceased updating the project in 2006, maintainers at the Doom9.org community created a fork called ffdshow tryouts, which continued bug fixes, stability work, codec updates, and new features. Documentation and the project's reference material describe the same three-component architecture in both the original and forked lines.
According to Wikipedia, users were subsequently directed toward LAV Filters as a replacement DirectShow codec set based on FFmpeg. The project's last stable release, version 1.3.4531, dates from 28 June 2014, with a preview build 1.3.4533 dated 30 September 2014. SourceForge lists the project as inactive, and the download listings show no releases after 2014. Wikipedia therefore describes ffdshow as unmaintained. (Note: the precise point at which maintenance effectively ended is reported somewhat inconsistently across sources; some describe discontinuation around 2012 while stable builds continued to appear until 2014.)
An experimental multithreaded variant, sometimes referred to as ffdshow-mt, was developed around the ffmpeg-mt branch to improve parallel decoding of formats such as H.264 and VC-1. Multi-threaded decoding was later incorporated into libavcodec and enabled by default in ffdshow for several formats.
Name
The name is generally understood to combine a reference to FFmpeg with DirectShow, reflecting the project's two defining characteristics: it is built on FFmpeg libraries and is implemented as a DirectShow filter. This interpretation is widely repeated in descriptions of the software, though it is a conventional explanation of the name rather than a formally documented etymology.
Significance
ffdshow was widely used during the 2000s and early 2010s as a means of ensuring consistent playback of the proliferating video and audio formats distributed online, and as a post-processing tool for improving the perceived quality of low-bitrate or interlaced content. Its decline is generally attributed to the emergence of newer, more actively maintained DirectShow filter sets (notably LAV Filters) and to improved native codec support in Windows and in modern media players.
References
- "ffdshow," Wikipedia, https://en.wikipedia.org/wiki/Ffdshow
- "ffdshow tryouts | Official Website," https://ffdshow-tryout.sourceforge.net/
- "ffdshow — Download," SourceForge.net, https://sourceforge.net/projects/ffdshow-tryout/
- "Ffdshow/Reference," Wikibooks, https://en.wikibooks.org/wiki/Ffdshow/Reference
- ffdshow changelog, project source repository.