- Simple and powerful API set
- Cross platform: Windows(x86, arm), UWP, Linux, macOS, Android, iOS, tvOS, visionOS, Raspberry Pi
- Hardware accelerated decoders
- 0-copy GPU rendering for all platforms and all renderers(Vulkan is WIP.)
- Dynamic OpenGL
- OpenGL, D3D11, D3D12, Vulkan and Metal rendering w/ or w/o user provided context
- Integrated with any platform native ui apps, gui toolkits or other apps via OpenGL, D3D11/12, Vulkan and Metal (WinUI3, OBS, Flutter, Qt, SDL, GLFW, SFML, .NET Avalonia etc.) easily
- HDR display, HDR to SDR and SDR to HDR tone mapping. You can use HDR display in Qt6(6.6+ for macOS, 6.x for windows), OBS Studio and more.
- Dolby Vision rendering, including Profile 5. Support HEVC and AV1.
- Seamless/Gapless media and bitrate switch for any media
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for timeline preview
- Subtitle rendering, including ass, plain text, bitmap, closed caption
- Smart FFmpeg runtime, dynamic load, compatible with 4.0~7.x abi
- Professional codecs: GPU accelerated HAP codec rendering, Blackmagic RAW, R3D
SDK is built by
- latest VS2022 with FFmpeg win32 and FFmpeg UWP
SDK can be used by any C or C++11 compiler, e.g. vs2015, vs2022, mingw g++, clang
mdk is published on https://www.nuget.org/packages/mdk/. Now you can install it in visual studio.
mdk sdk can be imported by vs projects. Insert the following line in your vcxproj as the last element of Project
(assume mdk-sdk is in the same dir as vcxproj)
<Import Project="mdk-sdk\build\native\MDK.targets" Condition="Exists('mdk-sdk\build\native\MDK.targets')" />
Once installed or imported, necessary compile flags and link flags will be added, runtime dlls will be copied to output dir.
include(mdk-sdk-dir/lib/cmake/FindMDK.cmake)
target_link_libraries(your_target PRIVATE mdk)
include($$MDK_SDK_DIR/mdk.pri)
player.setDecoders(MediaType::Video, {"MFT:d3d=11", "D3D11", "hap", "FFmpeg", "dav1d"});
Optional:
- libEGL.dll, libGLESv2.dll, D3DCompiler_47/43.dll. Qt apps can use qt's dlls
- D3D11: recommended
- D3D12
- OpenGL ES2/3: via ANGLE or others. The default if EGL runtime is found.
- Vulkan(No UWP)
- FFmpeg. options: threads=N. e.g. -c:v FFmpeg. -c:v FFmpeg:threads=4
- MFT. options: d3d=0/9/11/12, pool=0/1. e.g. -c:v MFT(software), -c:v MFT:d3d=11(hardware) or MFT:d3d=12.
- D3D11: via FFmpeg
- hap
- some examples using mdk sdk
- OBS Studio plugin
- QtMultimedia plugin
- MFT decoder module
- dav1d decoder module
- Blackmagic RAW
- R3D RAW
Copyright (c) 2016-2024 WangBin(the author of QtAV) Free for opensource softwares, non-commercial softwares, flutter, QtAV donors and contributors.