View Single Post
Old 1st September 2014, 08:05   #1  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Media Player .NET (MPDN) - D3D HQ GPU Video Renderer [v2.49.0/v1.31.0 27 Dec 2018]

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.

Last edited by Zachs; 15th February 2019 at 13:07.
Zachs is offline   Reply With Quote