Multipurpose DirectShow Encoder


The Datastead Multipurpose Encoder is a DirectShow Multiplexer/Sink filter able to compress or encode audio/video streams by invoking in the background a command-line transcoder executable, if this executable supports a named pipe as input.
A LGPL build of FFmpeg named ffmpegLGPL.exe is included in the filter.

This filter is natively supported by our TVideoGrabber SDK.

The filter multiplexes the uncompressed DirectShow video and audio streams into an ASF transport stream and writes this transport stream to a named pipe. This named pipe is taken as input by the transcoder, that is invoked as a child process in a non-visible background process from the command line.

There is no binding or C++ linking between the filter and the transcoder, all the settings are passed by the command-line, and the audio/video stream is passed through the named pipe.

To configure the filter, just invoke SetCommandLine and specify the desired command line, along with some reserved keywords for the filter control.

When the graph runs, the transcoder process starts in the background, and stops when the graph is stopped.

Additionally to this default DirectShow behavior, the "PAUSEWHENSTOP" feature allows to pause the process while the graph is stopped, and to resume it when the graph is ran again, allowing to build in real time a single audio/video clip from start/stop sequences separated in time.

It is possible to make the transcoder console visible for debugging or control purpose.

System requirements

Windows 7, Windows 8, Windows 8.1, Windows 10 (tested with Windows 10 preview)

32bit or 64bit operating system supported.




These limitations are removed in the licensed version.

Screenshot of the filter settings in GraphEdit

click to enlarge:

Datastead Multiplexer to FFmpeg command-line GraphEdit demo