Zachs
1st September 2014, 08:05
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 (https://github.com/zachsaw/MPDN_Extensions). 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 (https://github.com/zachsaw/MPDN_Extensions/wiki/MPDN-Extensions-Wiki---Home).
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 (http://forum.doom9.org/showpost.php?p=1721790&postcount=2115) 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 (https://github.com/zachsaw/MPDN_Extensions) 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! Super-xBR + SuperRes
NEDI (New Edge-Directed Interpolation) + SuperRes (http://forum.doom9.org/showthread.php?p=1684939)
NNEDI3 (Neural-Network Edge-Directed Interpolation) (http://forum.doom9.org/showthread.php?t=147695&page=21) 16/32/64/128/256 neurons + SuperRes (Requires DX11 or OpenCL hardware)
SuperChromaRes with Bilateral Prescaler
EWA (Elliptical Weighted Average) Scaler with Jinc or any CustomLinearScalers
Debanding
DXVA HD scaler
Any legacy pixel shader pre/post-scale filters such as FineSharp
and more... with presets via hotkeys
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 (https://github.com/zachsaw/MPDN_Extensions/blob/master/Examples/AudioScripts/Gain.cs).
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 (http://forum.doom9.org/showpost.php?p=1703205&postcount=645).
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
http://i.imgur.com/EVm3Vfr.png
Minimal UI Mode
http://i.imgur.com/4oaF7iA.png
Minimal UI Mode with Playlist
http://i.imgur.com/qGPjr0G.png
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 (http://forum.doom9.org/showpost.php?p=1694502&postcount=64) first)
Improved chroma reconstruction [1] (http://screenshotcomparison.com/comparison/132966) [2] (http://screenshotcomparison.com/comparison/132908)
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:
Reclock via Audio Script (https://github.com/zachsaw/MPDN_Extensions/blob/master/Extensions/AudioScripts/Reclock.cs) (similar to how the old SlySoft Reclock works)
Reclock via the RateTuner player extension (https://github.com/zachsaw/MPDN_Extensions/wiki/Rate%20Tuner)
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 (http://forum.doom9.org/showpost.php?p=1736048&postcount=3135)
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 (http://forum.doom9.org/showthread.php?p=1705831#post1705831)
MPDN won't start on my Optimus laptop (or any issues with your Optimus system) - read this (http://forum.doom9.org/showpost.php?p=1729163&postcount=2589)
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 (http://forum.doom9.org/showpost.php?p=1738823&postcount=3382)
User contributed articles:
Articles (http://forum.doom9.org/showpost.php?p=1706648&postcount=1030)
Special thanks:
Shiandow (https://github.com/Shiandow)
Co-designing MPDN's render script system
Main contributor of MPDN's render scripts and framework
Belphemur (https://github.com/Belphemur/) for hosting MPDN
All of MPDN's player extension devs (Gartael (https://github.com/Garteal), DeadlyEmbrace (https://github.com/DeadlyEmbrace), Belphemur (https://github.com/Belphemur/), Mercy07 (https://github.com/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 v2.0.0):
Installer
Media Player .NET (MPDN) Installer - x86 Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/Installers/MediaPlayerDotNet_x86_2_49_0_3606_Installer.exe)
Media Player .NET (MPDN) Installer - x64 Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/Installers/MediaPlayerDotNet_x64_2_49_0_3606_Installer.exe)
Standalone / Portable
Media Player .NET (MPDN) - x86 Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_x86_2_49_0_3606.zip) (MD5 (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_x86_2_49_0_3606.zip.md5))
Media Player .NET (MPDN) - x64 Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_x64_2_49_0_3606.zip) (MD5 (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_x64_2_49_0_3606.zip.md5))
Media Player .NET (MPDN) - AnyCPU Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_AnyCPU_2_49_0_3606.zip) (MD5 (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_AnyCPU_2_49_0_3606.zip.md5))
MPDN Extensions
Open source MPDN Extensions on GitHub (https://github.com/zachsaw/MPDN_Extensions/releases/download/v2.0.0/Mpdn.Extensions.zip)
Miscellaneous
MPDN Remote Control for Android on Google Play (https://play.google.com/store/apps/details?id=com.zachsaw.mpdn_remote&hl=en)
MPDN Remote Control for Windows by DeadlyEmbrace (https://github.com/DeadlyEmbrace/MPDN_RemoteControl/releases/download/v1.4.0.72/MPDNRemoteControl.zip)
3DYD Youtube Source Filter (http://ys.3dyd.com/home/)
Old MPDN Releases (https://s3.amazonaws.com/mediaplayerdotnet-releases/Old%20Releases/)
All MPDN Extensions Releases (https://github.com/zachsaw/MPDN_Extensions/releases/)
RenderScript Presets (http://forum.doom9.org/showpost.php?p=1743874&postcount=3689) - If you are not familiar with RenderScripts these will get you started
Changelogs
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
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) (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/ChangeLog.txt)
Cheers.
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 (https://github.com/zachsaw/MPDN_Extensions). 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 (https://github.com/zachsaw/MPDN_Extensions/wiki/MPDN-Extensions-Wiki---Home).
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 (http://forum.doom9.org/showpost.php?p=1721790&postcount=2115) 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 (https://github.com/zachsaw/MPDN_Extensions) 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! Super-xBR + SuperRes
NEDI (New Edge-Directed Interpolation) + SuperRes (http://forum.doom9.org/showthread.php?p=1684939)
NNEDI3 (Neural-Network Edge-Directed Interpolation) (http://forum.doom9.org/showthread.php?t=147695&page=21) 16/32/64/128/256 neurons + SuperRes (Requires DX11 or OpenCL hardware)
SuperChromaRes with Bilateral Prescaler
EWA (Elliptical Weighted Average) Scaler with Jinc or any CustomLinearScalers
Debanding
DXVA HD scaler
Any legacy pixel shader pre/post-scale filters such as FineSharp
and more... with presets via hotkeys
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 (https://github.com/zachsaw/MPDN_Extensions/blob/master/Examples/AudioScripts/Gain.cs).
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 (http://forum.doom9.org/showpost.php?p=1703205&postcount=645).
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
http://i.imgur.com/EVm3Vfr.png
Minimal UI Mode
http://i.imgur.com/4oaF7iA.png
Minimal UI Mode with Playlist
http://i.imgur.com/qGPjr0G.png
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 (http://forum.doom9.org/showpost.php?p=1694502&postcount=64) first)
Improved chroma reconstruction [1] (http://screenshotcomparison.com/comparison/132966) [2] (http://screenshotcomparison.com/comparison/132908)
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:
Reclock via Audio Script (https://github.com/zachsaw/MPDN_Extensions/blob/master/Extensions/AudioScripts/Reclock.cs) (similar to how the old SlySoft Reclock works)
Reclock via the RateTuner player extension (https://github.com/zachsaw/MPDN_Extensions/wiki/Rate%20Tuner)
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 (http://forum.doom9.org/showpost.php?p=1736048&postcount=3135)
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 (http://forum.doom9.org/showthread.php?p=1705831#post1705831)
MPDN won't start on my Optimus laptop (or any issues with your Optimus system) - read this (http://forum.doom9.org/showpost.php?p=1729163&postcount=2589)
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 (http://forum.doom9.org/showpost.php?p=1738823&postcount=3382)
User contributed articles:
Articles (http://forum.doom9.org/showpost.php?p=1706648&postcount=1030)
Special thanks:
Shiandow (https://github.com/Shiandow)
Co-designing MPDN's render script system
Main contributor of MPDN's render scripts and framework
Belphemur (https://github.com/Belphemur/) for hosting MPDN
All of MPDN's player extension devs (Gartael (https://github.com/Garteal), DeadlyEmbrace (https://github.com/DeadlyEmbrace), Belphemur (https://github.com/Belphemur/), Mercy07 (https://github.com/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 v2.0.0):
Installer
Media Player .NET (MPDN) Installer - x86 Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/Installers/MediaPlayerDotNet_x86_2_49_0_3606_Installer.exe)
Media Player .NET (MPDN) Installer - x64 Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/Installers/MediaPlayerDotNet_x64_2_49_0_3606_Installer.exe)
Standalone / Portable
Media Player .NET (MPDN) - x86 Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_x86_2_49_0_3606.zip) (MD5 (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_x86_2_49_0_3606.zip.md5))
Media Player .NET (MPDN) - x64 Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_x64_2_49_0_3606.zip) (MD5 (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_x64_2_49_0_3606.zip.md5))
Media Player .NET (MPDN) - AnyCPU Edition (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_AnyCPU_2_49_0_3606.zip) (MD5 (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/MediaPlayerDotNet_AnyCPU_2_49_0_3606.zip.md5))
MPDN Extensions
Open source MPDN Extensions on GitHub (https://github.com/zachsaw/MPDN_Extensions/releases/download/v2.0.0/Mpdn.Extensions.zip)
Miscellaneous
MPDN Remote Control for Android on Google Play (https://play.google.com/store/apps/details?id=com.zachsaw.mpdn_remote&hl=en)
MPDN Remote Control for Windows by DeadlyEmbrace (https://github.com/DeadlyEmbrace/MPDN_RemoteControl/releases/download/v1.4.0.72/MPDNRemoteControl.zip)
3DYD Youtube Source Filter (http://ys.3dyd.com/home/)
Old MPDN Releases (https://s3.amazonaws.com/mediaplayerdotnet-releases/Old%20Releases/)
All MPDN Extensions Releases (https://github.com/zachsaw/MPDN_Extensions/releases/)
RenderScript Presets (http://forum.doom9.org/showpost.php?p=1743874&postcount=3689) - If you are not familiar with RenderScripts these will get you started
Changelogs
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
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) (https://s3.amazonaws.com/mediaplayerdotnet-releases/Latest/ChangeLog.txt)
Cheers.