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 installed with the filter. It can encode in H264/AAC. It includes OpenH264 software encoding, and hardware encoding through Intel QuickSync or NVidia CUVID.

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 show the FFMPEG console for debugging or control purpose.

System requirements

Windows 7, Windows 8, Windows 8.1, Windows 10




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