Media Player .NET (MPDN) - D3D HQ GPU Video Renderer [v2.48.0/v1.29.0 6 Nov 2016]

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 MPV 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

Feature/Bug Tracker:
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.48.0 / Extensions v1.29.0):
Changelogs

Code:
Extensions
----------

v1.29.0 Changelog:
    Render Scripts
        SSSR: Improved quality, New 'hyrbid' mode. Add linear light option.
        Bilateral: Add new "Krig" mode.
        Various bug fixes

v1.28.2 Changelog:
    Render Scripts
        Framework Bug Fix: Some scalers can cause player to hang

v1.28.1 Changelog:
    Render Scripts
        SSSR: Added options - Oversharpen, Locality and Mode
        Framework Bug Fix: Some scalers can cause player to hang

v1.28.0 Changelog:
    Render Scripts
        [NEW] SSSR (Structural Similarity SSIM SuperRes): A new SuperRes based algorithm
        SuperRes: Use SincJinc as default instead of Jinc
        Bilateral: Soften image slightly to avoid some erratic behaviour
Code:
MPDN
----

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

v2.46.0-1 Changelog:
    Fixed: Bad encodes with repeating timestamps play at reduced framerates
    MPDN Extensions API Level 9
    Improved fluid motion quality by reducing flickering
    Audio Script changes now take effect without the need to reopen media
MPDN Full Revision History (changelogs)

MPDN Support Forum on Doom9.org

< Back to zachsaw.com

Copyright © 2014-2016 Zach Saw. All rights reserved.