Hi everyone,
MPDN is a modern extensible media player written in .NET (with performance critical parts in ASM/SSE2) featuring a fully integrated high quality Direct3D 9, 10, 11 video renderer that is equally extensible. In fact, its most powerful features come from its open source community contributed extensions called
MPDN Extensions hosted on
GitHub. Both madVR and libretro use portions of code from MPDN Extensions.
MPDN Extensions
MPDN Extensions consist of
Custom Linear Scalers,
Render Scripts,
Audio Scripts and
Player Extensions.
For more information, see
MPDN Extensions wiki page.
Custom Linear Scalers
These custom linear scalers extend MPDN by adding Sinc-Blackman, Gaussian etc. scaling options. If there's a new scaler you want to add, give it a kernel function and MPDN will do the rest. The same custom scalers can also be used in the EWA scaler (via Render Script).
Render Scripts
Render Scripts are quite similar to AviSynth scripts and plugins except they run fully on the GPU. You can script Render Scripts in a similar fashion to AviSynth with a C# syntax, or an
AviSynth-like syntax with the full power of JavaScript behind it. As opposed to madVR's mostly closed source nature,
MPDN's Render Scripts are fully open source and are hosted on GitHub.
- Can be used to add post processing pixel shader files;
- or write your own custom multi-staged scaler
- or anything in between
- Supports compiled assemblies (.dll) or plain C# text file (.cs)
- Easily configured to behave like legacy pre-/post-processing filters (chain of legacy pixel shaders)
- Or write your own chain script - if Downscaling, use X scaler, if Upscaling, use Y scaler, with or without linear light etc.
- Or stack image doublers based on your own set of criteria
- Choose from a combination of Shader Model 3.0 (Direct3D 9), Shader Model 4.x/5.0, DirectCompute (Direct3D 11) and OpenCL!
Audio Scripts
Audio Scripts are similar in concept to Render Scripts except they operate on audio samples. Audio Scripts can run purely on the CPU, interface with third party audio libraries or with OpenCL via Cudafy. See
this 2x Audio Gain example.
- Reclock
- Dynamic Range Compressor (Night Mode)
Player Extensions
Player Extensions allows the player to be extended via C# script. In fact MPDN's playlist is fully implemented via this extension.
See
this post for a getting started example.
- Modify or extend MPDN
- Supports compiled assemblies (.dll) or plain C# text file (.cs)
- A huge collection of extensions on GitHub
- e.g.
- Online streaming, pipe input, RAR archives, DVD playback
- OpenSubtitles
- Audio / subtitle offset
- Full screen display selector
- Refresh rate changer
- Playlist
- Remote control
- and many more
Full UI Mode
Minimal UI Mode
Minimal UI Mode with Playlist
Features:- Direct3D Custom Renderer via Pixel Shader
- Option of Direct3D 9Ex / Direct3D 10 / Direct3D 11 renderer (some graphics card drivers work better with one or the other)
- Fluid Motion
- Supports 8- or 10- or 16-bit input and 8- or 10- or 16- bit output for maximum image quality
- Various Pixel Shader scaling algorithms:
- Nearest Neighbour / Box
- Bilinear / Triangle
- Softcubic (w/ softness setting)
- Bicubic (w/ sharpness setting, anti-ringing option)
- Lanczos (4, 6, 8, 12 or 16 taps, anti-ringing option)
- Spline (4, 6 or 8 taps, anti-ringing option)
- Jinc (4, 6, 8, 12 or 16 taps, anti-ringing option)
- Custom scalers (from GitHub - e.g. Gaussian, Sinc-Blackman)
- Linear light scaling via render script
- Output dithering (None, ordered, random with noise strength adjustments)
- Deep color (10-bit and 16-bit) output support (read this first)
- Improved chroma reconstruction [1] [2]
- 3DLUT via render script
- Fully integrated renderer (no .ax file to install)
- Customizable by adding postprocessing filters (e.g. AC3Filter, ffdshow, SVP)
- MadVR style CTRL+J renderer stats
- Volume control
- Playback rate control
- Audio track selection
- Video track selection
- 2 methods of Reclock:
- OSD
- Subtitle support
- Subtitle track selection
- Chapter selection
- Full / Minimalist UI mode (or anything in between)
- Close-source freeware with open source extensions
Pre-requisites:- Windows 7, Windows 8.1, Windows 10
- .NET Framework 4.0
- CPU with SSE2 instruction set
- OpenCL CPU runtimes - read this
- If you're not using the installer,
- LAV Filters must be installed (Media Player .NET is hardcoded to use these filters)
- DirectVobSub (auto loading version) and/or XySubFilter must be installed for MPDN to load subtitles
- If you are going to play interlaced materials, make sure you enable deinterlacing via LAV Video Decoder
Troubleshooting:- Failed to render 'filename' error for every file you try to open - read this
- MPDN won't start on my Optimus laptop (or any issues with your Optimus system) - read this
- Stuttering playback on GPU with 512MB RAM - reduce render queue to 4
- Unable to play youtube / vimeo / dailymotion etc. links - make sure you have MPDN Extensions installed and read this
User contributed articles:
Special thanks:- Shiandow
- Co-designing MPDN's render script system
- Main contributor of MPDN's render scripts and framework
- Belphemur for hosting MPDN
- All of MPDN's player extension devs (Gartael, DeadlyEmbrace, Belphemur, Mercy07 etc.)
- madshi (madVR author) for providing a couple of pointers in the early stages
- Everyone else who've reported bugs and written articles / guides / posts to help other users
Downloads (Latest version MPDN v2.49.0 / Extensions v1.31.0):
Changelogs
Code:
Extensions
----------
v1.31.0 Changelog:
Render Scripts
Revised tag system again
Deband experimental: Handle Luma and Chroma separately to improve quality
SSIMDownscaling: Improvements
Audio Scripts
[NEW] Crossfeed: Helps reduce listening fatigue caused by the unnatural stereo image provided by headphones
Player Extensions
[NEW] OnScreenDisplay
Framework
Speedup disposing tremendously (noticeable when changing scripts)
v1.30.0 Changelog:
Render Scripts
Revised tag system
ImageProcessor: Add option to do all processing in YUV
SSSR improvements
Fix Conditionals causing scripts to fail to load on some systems
Bilateral: Krig more fine tuning
Deband improvements
Player Scripts
TextPainter: Allow it to work in windowed mode
Code:
MPDN
----
v2.49.0 Changelog:
Show more informative error messages
Fix: Some usage paths may lead to old ditherers being used instead of the new ones
v2.48.0 Changelog:
Improved fluid motion by timing frames more accurately
Improved dithering methods (especially ordered dithering)
Fixed: Pixels were misaligned when there was an unequal number of blank lines on either side of the image.
v2.47.0 Changelog:
MPDN is now signed with a commercial code-signing certificate
MPDN Full Revision History (changelogs)
Cheers.