Datastead Multipurpose DirectShow Encoder
The Datastead Multipurpose Encoder compresses, records and streams audio/video in most of the common encoding formats, either as a plugin of the TVideoGrabber SDK or as a standard DirectShow sink filter.
The two encoding modes
The package offers two ways to configure an encoding. Both use the same encoding engine; only the way the settings are given differs.
1. Encoder mode: no FFmpeg command line (recommended)
The video codec, the resolution, the bit rate, the GPU encoder and the audio settings are chosen as plain settings, and the FFmpeg command line is built internally. This is the mode used from the TVideoGrabber SDK, where the settings are ordinary API properties, and from DirectShow through the "Datastead Encoder" filter and its encoder settings page. See Encoder mode and Using from TVideoGrabber.
2. FFmpeg command-line mode (advanced)
A complete FFmpeg command line is passed to the filter with a single call to SetCommandLine. Everything FFmpeg can do is available, at the price of writing and maintaining the command line. Useful for an FFmpeg feature that the encoder settings do not expose: video filters, several outputs at once, unusual muxers, and so on. See Filter configuration and Command-line syntax.
How the FFmpeg command-line mode works
A LGPL build of FFmpeg named ffmpegLGPL.exe is included in the package, allowing to record in most of the encoding formats, as well as:
- H264 software encoding (through the OpenH264 codec)
- H264/HEVC GPU encoding through Intel QuickSync, NVidia NVENC or AMD AMF
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, invoke SetCommandLine with the command line to run, optionally preceded by the reserved keywords that control the filter itself.
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 run again, which builds a single audio/video clip in real time from start/stop sequences separated in time.
It is possible to make the transcoder console visible for debugging or control purpose.
System requirements
Windows 11, Windows 10, Windows 8.1, Windows 8 and Windows 7, in their 32-bit and 64-bit versions.
Download
The evaluation package can be downloaded here:
https://www.datastead.com/downloads/
License
Royalty-free developer license:
https://www.datastead.com/purchase/
Limitations of the evaluation version
- each encoding session stops after 1 minute: the filter appends a duration limit to the command line, so the recorded file or the output stream ends after 1 minute,
- if the video pin is connected in RGB24 or RGB32: the filter overlays a "Datastead" logo over the video frames,
- if the video pin is connected in another pixel format (YUY2, UYVY, RGB555, etc.): the video frames flash periodically, one time then 2 times, alternately.
These limitations are removed in the licensed version, which is activated at run time with a license key.
Contact
Email: contact@datastead.com for sales and general enquiries, support@datastead.com for the technical support.