There are 2 ways to redistribute our DLLs with your application: with and without the registration of DLLs.
The recommended starting point is the Redistribution Maker installed with the SDK. For MPlatform, it is located at %ProgramFiles(x86)%\Medialooks\MPlatform SDK\Utilities\Redistribution Maker MPlatform SDK.exe. Select the application architecture and only the SDK objects, codecs, plugins, and devices used by your application.
Without DLLs registration
In this case, you just copy your application to the deployment machine and that's it. Easier to redistribute, but requires some special preparations for your project before redistribution.
When to use:
- If you are not sure what applications will be installed on a target machine except your own.
- If you want to make a portable application (for example stored on USB flash drive).
Please follow the instructions from this article to prepare your application for redistribution without registering the DLLs.
With DLLs registration
In this case, you copy your application to the deployment machine and register the DLLs. A bit harder to redistribute (as you have to perform the registration actions during deployment, application install), but no need to make special preparations for redistribution.
When to use:
- If you are sure that no third party Medialooks SDK based applications will be installed on a deployment machine.
- If you plan to debug your application on a deployment machine.
Here are the instructions for redistribution with DLLs registration:
- Copy your application and our .dll files that are used in your project (see below) to the target folder. Please note that it must be both original .dll files (for example MMixerPXT.dll) and interop assembly files.
- Register original .dll files (including MLProxy.dll) with one of the following methods:
- Call "regsvr32.exe YourDll.dll".
- SelfRegModules MSI Action.
- WiX tag .../>.
- Via the installer. The registration data can be retrieved from the .dll if you open it in, for example, Visual Studio and read the "REGISTRY" section.
Attention
- Do not rename the DLLs.
- Do not mix x86 and x64 files.
- Copy all SDK and FFmpeg files from the same SDK build. Do not combine files from different SDK versions, even when their filenames are identical.
- Test the completed installer on a clean machine with every codec, source, destination, plugin, and device used by the application.
- Make sure that you include Microsoft Visual C++ 2017 Redistributable Package to your installer. You can download it here.
Choose files by product and feature
Files that should be registered (in case of redistribution with DLLs registration) are marked with "need to register".
You do not need every optional module listed below. Include the base runtime and the modules required by the MPlatform or MFormats objects and features used by your application.
MPlatform SDK modules
- Medialooks.Runtime.[x86 or x64].dll - need to register
- glew32.dll
- ipp90legacy.dll
- D3DCompiler_43.dll
- d3dcompiler_47.dll
- libmfxsw[32 or 64].dll
- Medialooks.Codecs.Core.[x86 or x64].dll - need to register
- Medialooks.Codecs.GPU.[x86 or x64].dll (required for supported hardware codec workflows) - need to register
- Medialooks.Codecs.SRT.[x86 or x64].dll (required for SRT input or output) - need to register
- Medialooks.Plugin.Colors.[x86 or x64].dll (required for MColors plugin) - need to register
- Medialooks.Plugin.DTMF.[x86 or x64].dll (required for MFSignalingDTMF plugin) - need to register
- Medialooks.Plugin.Delay.[x86 or x64].dll (required for MDelay feature) - need to register
- Medialooks.Device.SCR.[x86 or x64].dll (required for Screen Capture engine) - need to register
- Medialooks.Device.Windows.[x86 or x64].dll (required for Windows Graphics Capture engine) - need to register
- Medialooks.File.[x86 or x64].dll - need to register
- Medialooks.Live.[x86 or x64].dll - need to register
- Medialooks.Mixer.[x86 or x64].dll - need to register
- Medialooks.Platform.[x86 or x64].dll - need to register
- Medialooks.Playlist.[x86 or x64].dll - need to register
- Medialooks.Preview.[x86 or x64].dll - need to register
- Medialooks.Renderer.[x86 or x64].dll - need to register
- Medialooks.Device.DS.[x86 or x64].dll - need to register
- Medialooks.Writer.[x86 or x64].dll - need to register
- MLProxy.dll - need to register
- MServer.exe
MPlatform FFmpeg playback and encoding files
The SDK installation stores these files in separate DecoderLib and EncoderLib folders to make feature selection easier. They use the same FFmpeg runtime. In a client installer, the contents can be combined into one application DLL folder.
If the application supports both playback and encoding, deploy one copy of each shared file plus the decoding-specific and encoding-specific files. The same-named files supplied in the two folders must come from the same SDK build. If an installer detects different versions or hashes for a duplicate filename, it should stop instead of overwriting one file with an arbitrary copy.
Shared FFmpeg files (playback and encoding)
- avcodec-62.dll
- avfilter-11.dll
- avformat-62.dll
- avutil-60.dll
- FFMPEG_lgpl.txt
- swresample-6.dll
- swscale-9.dll
The MPlatform module list above already includes D3DCompiler_43.dll, d3dcompiler_47.dll, ipp90legacy.dll, and MServer.exe. The FFmpeg modules use those files as well; deploy only one same-version copy of each.
Playback and decoding-specific files
- avdevice-62.dll
- libwinpthread-1.dll
- Medialooks.FileFFM.[x86 or x64].dll - need to register
- Medialooks.Codecs.FFM.[x86 or x64].dll - need to register
- Medialooks.FilterFFM.[x86 or x64].dll (required for video filters) - need to register
- Medialooks.MFXMediaConverter.x64.dll (required for x64 video-filter workflows) - need to register
- yt-dlp.exe - required for YouTube stream playback
- qjs.exe - required for YouTube Shorts playback
Writing and encoding-specific files
- Medialooks.WriterFFM.[x86 or x64].dll - need to register
- formats_n_codecs.xml
MFormats SDK
- Medialooks.Runtime.[x86 or x64].dll - need to register
- D3DCompiler_43.dll
- d3dcompiler_47.dll
- avcodec-62.dll
- avdevice-62.dll
- avfilter-11.dll
- avformat-62.dll
- avutil-60.dll
- glew32.dll
- ipp90legacy.dll
- libmfxsw[32 or 64].dll
- libwinpthread-1.dll
- Medialooks.Plugin.Colors.[x86 or x64].dll (required for MColors plugin) - need to register
- Medialooks.Plugin.DTMF.[x86 or x64].dll (required for MFSignalingDTMF plugin) - need to register
- Medialooks.Plugin.Delay.[x86 or x64].dll (required for MDelay feature) - need to register
- Medialooks.Device.DS.[x86 or x64].dll - need to register
- Medialooks.Device.SCR.[x86 or x64].dll (required for Screen Capture engine) - need to register
- Medialooks.Device.Windows.[x86 or x64].dll (required for Windows Graphics Capture engine) - need to register
- Medialooks.MFormats.[x86 or x64].dll - need to register
- Medialooks.MFReader.[x86 or x64].dll - need to register
- Medialooks.MFWriter.[x86 or x64].dll - need to register
- Medialooks.Codecs.Core.[x86 or x64].dll - need to register
- Medialooks.Codecs.FFM.[x86 or x64].dll - need to register
- Medialooks.Codecs.GPU.[x86 or x64].dll - need to register
- Medialooks.Codecs.SRT.[x86 or x64].dll - need to register
- Medialooks.Plugin.Shader.[x86 or x64].dll (required for MFShader Plugin) - need to register
- Medialooks.MFXMediaConverter.x64.dll (required for video filters) - need to register
- MLProxy.dll - need to register
- MServer.exe
- swresample-6.dll
- swscale-9.dll
- yt-dlp.exe - for YouTube streams playback
- qjs.exe - for proper YouTube Shorts playback
Character Generator Plugin
- Medialooks.Plugin.CG.[x86 or x64].dll - need to register
Chroma Key plugin
- Medialooks.Plugin.CK.[x86 or x64].dll - need to register
HTML 5 plugin and WebCapture
- Medialooks.Plugin.HTML.[x86 or x64]..dll - need to register
- Medialooks.Device.HTML.[x86 or x64].dll (required for using WebCapture device) - need to register
- The content of the "MFOverlayHTML" folder in MPlatform SDK or MFormats SDK binary directory.
MComposer
- Medialooks.Composer.[x86 or x64].dll - need to register
Unreal Engine Plugin
- Medialooks.MFSinkReader.[x86 or x64].dll - need to register
Closed Captions lib
- Medialooks.Plugin.CC.[x86 or x64].dll (required for MCCDisplay plugin) - need to register
WebRTC support
In addition to the SDK files required by your MPlatform or MFormats workflow, include the modules for the WebRTC API generation used by your application.
WebRTC 2.0 (MConnect)
- Medialooks.Connect.[x86 or x64].dll (provides the MConnect API) - need to register
- Medialooks.WebRTC_Core20.[x86 or x64].dll (provides the WebRTC 2.0 media engine) - need to register
See the WebRTC 2.0 Overview for MConnect configuration and migration information.
Classic WebRTC (MWebRTC)
- Medialooks.WebRTC.[x86 or x64].dll (provides the classic MWebRTC API) - need to register
ASIO support
- Medialooks.Device.ASIO.[x86 or x64].dll - need to register
AJA support
- Medialooks.Device.AJA.[x86 or x64].dll - need to register
- AJA drivers
Blackmagic support
- Medialooks.Device.BMD.[x86 or x64].dll - need to register
- Blackmagic drivers.
BlueFish444 support
- Medialooks.Device.BF.[x86 or x64].dll - need to register
- BlueFish444 drivers.
DekTec support
- Medialooks.Device.DT.[x86 or x64].dll - need to register
- DekTec drivers.
DELTACAST support
- Medialooks.Device.DC.[x86 or x64].dll - need to register
- The content of the "DELTACAST" folder in MPlatform SDK or MFormats SDK binary directory.
- DELTACAST drivers.
Magewell support
- Medialooks.Device.MW.[x86 or x64].dll - need to register
- The content of the "Magewell" folder in MPlatform SDK or MFormats SDK binary directory.
- Magewell drivers.
Newtek NDI support
- Medialooks.Device.NDI.[x86 or x64].dll - need to register
- The content of the "NDI" folder in the MPlatform SDK or MFormats SDK binary directory.
StreamLabs support
- Medialooks.Device.SL.[x86 or x64].dll - need to register
- The content of the "StreamLabs" folder in MPlatform SDK or MFormats SDK binary directory.
- StreamLabs drivers.
Yuan support
- Medialooks.Device.Yuan.[x86 or x64].dll - need to register
- The content of the "Yuan" folder in the MPlatform SDK or MFormats SDK binary directory.
- Yuan drivers and codecs.