Frank Skare 7eb60f3e4c -
2019-05-25 04:41:16 +02:00
-
2019-05-25 03:09:15 +02:00
-
2019-05-25 03:20:35 +02:00
-
2019-05-25 03:09:15 +02:00
2017-08-27 09:36:10 +02:00
-
2019-04-24 19:41:55 +02:00
-
2019-05-25 03:09:15 +02:00
-
2019-05-25 04:41:16 +02:00
-
2019-05-04 14:03:59 +02:00
-
2019-05-25 03:09:15 +02:00

🎞 mpv.net

mpv.net is a modern media player for Windows that looks and works just like mpv.

Based on libmpv

mpv.net is based on libmpv which offers a straightforward C API that was designed from the ground up to make mpv usable as a library and facilitate easy integration into other applications.

CLI options

mpv.net has the same CLI options as mpv.

High quality video output

mpv/libmpv has an OpenGL based video output that is capable of many features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more.

On Screen Controller

mpv.net uses the OSC of mpv/libmpv offering play controls with a modern flat design.

GPU video decoding

mpv/libmpv leverages the FFmpeg hwaccel APIs to support DXVA2 video decoding acceleration.

Active development

mpv.net is under active development. Want a feature? Post a patch or request it!

Table of contents

Features

  • Customizable context menu defined in the same file as the key bindings (Screenshot)
  • Searchable config dialog (Screenshot)
  • Searchable input (key/mouse) binding editor (Screenshot)
  • Searchable command palette to quickly launch commands and look for keys (Screenshot)
  • Modern UI with dark mode (Screenshot)
  • Addon/extension API for .NET languages
  • Scripting API for Python, C#, Lua, JavaScript and PowerShell (wiki)
  • mpv's OSC, IPC and conf files
  • Support of the same CLI options as mpv
  • DXVA2 video decoding acceleration
  • OpenGL based video output capable of features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more
  • Search feature powered by Everything to find and play media (Screenshot)

Screenshots

Main Window Screenshot

Main Window

Context Menu Screenshot

Context menu defined in the input.conf file with dark mode support.

Context Menu

Config Editor Screenshot

A searchable config editor as alternative to edit the mpv.conf file manually.

Input Editor Screenshot

A searchable key and mouse binding editor.

Input Editor

Command Palette Screenshot

Forgot where a command in the menu is located or what shortcut key it has? Just press Ctrl+Shift+P and find it easily in the searchable command palette.

Command Palette

Media Search Screenshot

Media search feature powered by Everything to find and play media.

Media Search

Context Menu

The context menu can be customized via input.conf file located in the config directory:

C:\Users\%username%\AppData\Roaming\mpv\input.conf

if it's missing mpv.net generates it with the following defaults:

https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt

input.conf defines mpv's key and mouse bindings and mpv.net uses comments to define the context menu.

Settings

mpv.net is able to share the settings with mpv and mpv.net uses the same logic to decide from where the settings are loaded. The default location is:

C:\Users\%username%\AppData\Roaming\mpv\mpv.conf

If a directory named portable_config next to the mpvnet.exe exists, all config will be loaded from this directory only.

<startup>\portable_config\mpv.conf

In case there isn't any config folder mpv.net asks where to create it. If no mpv.conf file exists mpv.net generates it with the following defaults:

https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpvConf.txt

Config files located in the same directory as mpvnet.exe are loaded with lower priority. Some config files are loaded only once, which means that e.g. of 2 input.conf files located in two config directories, only the one from the directory with higher priority will be loaded.

Scripting

Scripting wiki page

Add-ons

Add-on wiki page

Architecture

mpv.net is written in C# 7.0 and runs on the .NET framework 4.7 or higher.

The Add-on implementation is based on the Managed Extensibility Framework.

There are no specific extension or scripting interfaces but instead everyting is accessible for .NET compatible languages (C#, VB.NET, F#, Python and PowerShell), this decision was made to keep the code extremely simple and lightweight.

Python scripting is implemented with IronPython which uses Python 2.7.

The main/video window is WinForms based, all other windows are WPF based.

The config editor adds it's controls dynamically and uses TOML to define it's content, there are only two simple types, StringSetting and OptionSetting.

mpv.net was started 2017 and consists of about 9000 lines of code.

Third party components are:

Support

Support thread in Doom9 forum

Support thread in VideoHelp forum

Issue tracker to report bugs and request features

mpv manual: https://mpv.io/manual/master/

mpv wiki: https://github.com/mpv-player/mpv/wiki

mpv.net wiki: https://github.com/stax76/mpv.net/wiki

mpv apps: https://github.com/mpv-player/mpv/wiki/Applications-using-mpv

mpv user scripts: https://github.com/mpv-player/mpv/wiki/User-Scripts

mpv default key bindings: https://github.com/mpv-player/mpv/blob/master/etc/input.conf

mpv.net default key bindings: https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/inputConf.txt

mpv download: https://mpv.io/installation/

mpv.net download: https://github.com/stax76/mpv.net/releases

mpv bugs and requests: https://mpv.io/bug-reports/

mpv.net bugs and requests: https://github.com/stax76/mpv.net/issues

Download

https://github.com/stax76/mpv.net/releases

Changelog

3.7

  • new icon design
  • the radio buttons in the config editor have now a Windows 10 like design, they are larger and use the Windows theme color

3.6.1

  • there was a bug causing an exception if both the input editor and config editor is opened, as soon as one is opened, the other can't be opened

3.6

  • playing files from rar archives caused an exception
  • there was a bug that caused underscores beeing removed from input like MBTN_LEFT_DBL
  • the search clear button in the input editor had a render issue in dark mode
  • new search feature added to search and play media files, requires Everything to be installed. Default Binding

3.5

  • when the main windows gets activated and the clipboard content starts with http mpv.net will ask to play the URL, previously this was restricted to YouTube URLs
  • Python script errors show line and column whenever it is supported by IronPython
  • if conf files exist in the startup directory mpv.net will use the startup directory as config directory instead of creating default conf files in appdata
  • renamed commands are handled now by migration code instead of being broken

3.4

  • new feature added to manage file associations from within the app. It can be found in the menu at: Tools > Manage... Default Binding
  • new zip download option added
  • new x86 download option added
Languages
C# 97.8%
PowerShell 2%
Inno Setup 0.2%