readme and manual

This commit is contained in:
Frank Skare
2020-04-23 11:35:44 +02:00
parent ebcd20ceb5
commit a394536a8c
3 changed files with 147 additions and 237 deletions

View File

@@ -2,7 +2,8 @@
5.4.4.5 Beta (not yet released)
============
- all content of the wiki was moved to the [Manual](Manual.md)
- all content of the wiki was moved to the [manual](Manual.md)
- the [manual](Manual.md) was improved
5.4.4.4 Beta

125
Manual.md
View File

@@ -5,23 +5,20 @@ mpv.net manual
Table of contents
-----------------
* [Description](#description)
* [Requirements](#requirements)
* [About](#about)
* [Download](#download)
* [Installation](#installation)
+ [File Associations](#file-associations)
* [Support](#support)
* [Settings](#settings)
* [Command Line Interface](#command-line-interface)
* [Terminal](#terminal)
* [External Tools](#external-tools)
+ [Play with mpv](#play-with-mpv)
+ [Open with](#open-with)
+ [Open with++](#open-with-1)
+ [MediaInfo.NET](#mediainfonet)
* [Scripting](#scripting)
* [Extensions](#extensions)
* [Color Theme](#color-theme)
* [Advanced Features](#advanced-features)
* [Differences](#differences)
* [Technical Overview](#technical-overview)
* [Context Menu](#context-menu)
+ [Open > Open Files](#open--open-files)
+ [Open > Open URL](#open--open-url)
@@ -103,60 +100,87 @@ Table of contents
+ [Exit Watch Later](#exit-watch-later)
Description
-----------
About
-----
mpv.net is a modern desktop media player for Windows. mpv is similar to VLC not based on DirectShow like MPC, mpv.net is based on libmpv which in return is based on ffmpeg.
mpv.net is a modern desktop media player for Windows based on mpv. mpv is a media player based on MPlayer and mplayer2.
libmpv provides the majority of the features of the mpv media player, a fork of mplayer. mpv focuses on the usage of the command line interface, mpv.net retains the ability to be used from the command line and adds a modern GUI on top of it.
libmpv provides the majority of the features of the mpv player. mpv focuses on the usage of the command line interface, mpv.net retains the ability to be used from the command line and adds a modern Windows GUI on top of it.
mpv.net is designed to be mpv compatible, almost all mpv features are available because they are all contained in libmpv, this means the official [mpv manual](https://mpv.io/manual/master/) applies to mpv.net.
Requirements
------------
Download
--------
mpv.net requires minimum .NET Framework 4.8 and Windows 7. For optimal results a modern graphics card is recommended.
[Changelog](Changelog.md)
### Stable
[Release page](releases)
### Beta
[OneDrive](https://1drv.ms/u/s!ArwKS_ZUR01g1ldoLA90tX9DzKTj?e=xITXbC)
[DropBox](https://www.dropbox.com/sh/t54p9igdwvllbpl/AADKyWpaFnIhdyosxyP5d3_xa?dl=0)
Installation
------------
mpv.net is available as setup and as portable download in the 7zip and Zip archive format, to unpack the portable download 7zip can be used, it is available at www.7-zip.org.
mpv.net requires the .NET Framework 4.8 and Windows 7 or 10 and a modern graphics card.
If you are new to mpv.net the portable download is recommended, for regular mpv.net users the setup is typically more easy to use.
There is a setup and a portable download in the 7zip and Zip archive format.
The x64 editions require more memory and have the advantage of being typically first and better optimized for x64.
x64 editions have the advantage of being typically better optimized and tested.
x86 (32-bit) is not recommended but should still be well supported and work but it's not as well tested as x64.
Stable releases are compiled from the source and can be downloaded from the releases tab:
<https://github.com/stax76/mpv.net/releases>
Scoop can be used to install and update it:
### Scoop
```
scoop bucket add extras
scoop install mpv.net
```
Alternatively, Chocolatey can also be used:
### AppGet
`appget install mpv-net`
### Chocolatey
`choco install mpvnet.install`
### File Associations
#### File Associations
File Associations can be created using the setup or with the context menu under 'Tools > Setup'.
After the file associations were registered go to the Windows settings under 'Settings > Apps > Default apps' or shell execute `ms-settings:defaultapps` and choose mpv.net as default app for Video and optionally for Audio and Images.
After the file associations were registered, go to the Windows settings under 'Settings > Apps > Default apps' or shell execute `ms-settings:defaultapps` and choose mpv.net as default app for Video and optionally for Audio and Images.
It's also possible to change the default application using the 'Open with' feature of the context menu in File Explorer.
It's possible to change the default application using the 'Open with' feature of the context menu in File Explorer.
[Open with++](#open-with) can be used to extend the File Explorer context menu to get menu items for 'Play with mpv.net' and 'Add to mpv.net playlist'.
Support
-------
Before making a support request, please try a newer [beta version](#beta) first.
[Support thread in VideoHelp forum](https://forum.videohelp.com/threads/392514-mpv-net-a-extendable-media-player-for-windows)
[Issue tracker](https://github.com/stax76/mpv.net/issues), feel free to use for anything mpv.net related.
You can support my work with a PayPal donation. The input hardware support in mpv.net is not 100% mpv compatible, people use all kind of weird input hardware and sometimes I have to buy those to support them.
<https://www.paypal.me/stax76>
Settings
--------
@@ -174,17 +198,16 @@ mpv.net generates it with the following defaults:
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpv.conf.txt>
mpv.net specific settings are stored in the file mpvnet.conf
mpv.net specific settings are stored in the file mpvnet.conf.
The input (key/mouse) bindings and the context menu definitions are stored in the
input.conf file, if it's missing mpv.net generates it with the following defaults:
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/input.conf.txt>
mpv.net supports almost all mpv settings and features,
[limitations are described in the manual](manual.md#differences).
mpv.net supports almost all mpv settings and features.
The config folder can be opened from the context menu.
The config folder can be opened from the context menu (`Settings > Open Config Folder`).
Command Line Interface
@@ -214,7 +237,7 @@ Supported are all mpv properties, they are documented here:
mpv.net has a feature to list all properties:
Context Menu > View > Show Properties
_Context Menu > View > Show Properties_
Non property switches are generally not supported in mpv.net!
@@ -246,7 +269,7 @@ This will start the app on system start and have it running in the background. W
### Open With
Alternatively Chrome/Firefox extension [Open With](https://github.com/stax76/mpv.net/issues/119) can be used.
Alternatively he Chrome/Firefox extension [Open With](https://github.com/stax76/mpv.net/issues/119) can be used.
### Open with++
@@ -266,7 +289,7 @@ MediaInfo.NET is a media info GUI.
https://github.com/stax76/MediaInfo.NET
To start a external application mpv has the run input command (it does not use the shell).
To start a external application mpv has the run input command (it does not use shell execute).
If the path has spaces then it must be enclosed in quotes and then double backslashes must be used for escaping or alternatively forward slashes.
@@ -361,7 +384,7 @@ mpv.net does not define extension interfaces but instead exposed its complete in
The ScriptingExtension implements the C# scripting host using [CS-Script](https://www.cs-script.net/).
I use this extension as well to develop and debug all my C# scripts. Once the code was developed and debugged, I move the code from the extension to a standalone script.
I use this extension as well to develop and debug C# scripts. Once the code was developed and debugged, I move the code from the extension to a standalone script.
[Source Code](extensions)
@@ -382,6 +405,7 @@ mpv.net supports custom color themes, the definition of the built-in themes can
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/theme.txt>
Custom themes can be saved at:
`<conf folder>\theme.conf`
@@ -462,10 +486,39 @@ mpv.net has currently implemented the following window features:
mpv.net supports only property switches, it does not support non property switches.
Technical Overview
------------------
mpv.net is written in C# 7 and runs on the .NET Framework 4.8.
The Extension implementation is based on the [Managed Extensibility Framework](https://docs.microsoft.com/en-us/dotnet/framework/mef/).
The main window is WinForms based because WinForms allows better libmpv integration compared to WPF, all other windows are WPF based.
The config editor adds it's controls dynamically and uses [TOML](https://en.wikipedia.org/wiki/TOML) to define it's
content.
Third party components:
- [libmpv provides the core functionality](https://mpv.io/)
- [MediaInfo](https://mediaarea.net/en/MediaInfo)
- [Tommy, a single file TOML parser](https://github.com/dezhidki/Tommy)
- [CS-Script, scripting with C#](http://www.csscript.net/)
- [Everything, a fast file search service](https://www.voidtools.com)
Context Menu
------------
The most important part of the user interface in mpv.net is the context menu, the menu can be customized as it's defined in the same file where the key and mouse bindings are defined (input.conf).
The context menu of mpv.net is defined in the file input.conf which is located in the config directory.
If the input.conf file does not exists mpv.net generates it with the following defaults:
<https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/input.conf.txt>
input.conf defines mpvs key and mouse bindings and mpv.net uses comments to define the context menu.
### Open > Open Files

256
README.md
View File

@@ -6,279 +6,135 @@
🎞 mpv.net
==========
mpv.net is a modern media player for Windows that works just like [mpv](https://mpv.io).
mpv.net is a modern media player for Windows based on the popular [mpv](https://mpv.io) player.
#### Graphical User Interface
Modern GUI that supports customizable color themes.
Modern GUI with customizable color themes.
#### Command Line Interface
mpv.net supports mpvs property based [command line switches](Manual.md#command-line-interface).
mpv.net supports mpvs property based command line switches.
#### High quality video output
libmpv has an 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.
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
The OSC of libmpv offers play controls with a modern flat design. ([Screenshot](#main-window-screenshot))
Play controls with a modern flat design.
#### GPU video decoding
libmpv leverages the FFmpeg hwaccel APIs to support DXVA2 video decoding acceleration.
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](https://github.com/stax76/mpv.net/pulls) or [request it](https://github.com/stax76/mpv.net/issues)!
mpv.net is under active development.
#### 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. mpv is like vlc not based on DirectShow or Media Foundation.
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. mpv is like VLC not based on DirectShow or Media Foundation.
Table of contents
-----------------
- [Features](#features)
- [Screenshots](#screenshots)
- [Download](#download)
- [Installation](#installation)
- [Manual](#manual)
- [Context Menu](#context-menu)
- [Scripting](#scripting)
- [Extensions](#extensions)
- [Architecture](#architecture)
- [Support](#support)
- [Links](#links)
- [Changelog](#changelog)
- [Download](#download)
- [Manual](#manual)
- [Screenshots](#screenshots)
Features
--------
- Open source
- High degree of mpv compatibility, almost all mpv features are available
- Customizable context menu defined in the same file as the key bindings ([Screenshot](#context-menu-screenshot), [Defaults](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/input.conf.txt))
- Config (settings) dialog ([Screenshot](#config-editor-screenshot), [Defaults](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/mpv.conf.txt))
- Input (key/mouse) binding editor ([Screenshot](#input-editor-screenshot), [Defaults](https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/input.conf.txt))
- Customizable context menu defined in the same file as the key bindings
- Config dialog
- Shorcut key editor
- Many features like the config editor and shortcut key editor are fully searchable
- Configuration files that are easy to read and edit ([Manual](https://mpv.io/manual/master/#configuration-files))
- Searchable command palette to quickly find commands and keys ([Screenshot](#command-palette-screenshot))
- Modern graphical user interface with customizable color themes ([Screenshot](#config-editor-screenshot))
- Configuration files that are easy to read and edit
- Command palette to quickly find commands and keys
- Modern graphical user interface with customizable color themes
- Extension API for .NET languages (C#, VB.NET and F#)
- Scripting API for C#, Lua, JavaScript and PowerShell ([Wiki](https://github.com/stax76/mpv.net/wiki/Scripting))
- Language agnostic JSON IPC to control the player with a external programs
- On Screen Controler (OSC, play control buttons) ([Screenshot](#main-window-screenshot))
- [Command Line Interface](https://mpv.io/manual/master/#options)
- If started from a PowerShell terminal mpv.net will attach to the terminal and print status and debug output ([Screenshot](#terminal-screenshot))
- Scripting API for C#, Lua, JavaScript and PowerShell
- JSON IPC to control the player with a external programs
- On Screen Controler (OSC, play control buttons) with modern flat design
- Command Line Interface
- Started from a terminal status and debug output is printed on the terminal
- 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](https://www.voidtools.com) to find and play media ([Screenshot](#media-search-screenshot))
- Extension to start mpv.net from Google Chrome ([Manual](Manual.md#chrome-extension))
- Extremely fast seek performance
- Very fast startup performance, video is usally ready to play in less then a second
- 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
- File search feature powered by the popular search and index tool Everything
- Browser extensions to start mpv.net from the browser
- Fast seek performance
- Fast startup performance
- Usable as video player, audio player and image viewer with a wide range of supported formats
- All decoders are built-in, no external codecs have to be installed
- Setup as x64, x86, installer, portable, Chocolatey and Scoop ([Manual](Manual.md#installation))
- Built-in decoders, no external codecs have to be installed
- Setup as x64, x86, installer, portable, Chocolatey and Scoop
- Build-in media streaming via youtube-dl
- File associations can be created by the setup and from the player
- External audio and subtitle files can either be loaded manually or automatically
- Screenshot feature with many options
- External audio and subtitle files can be loaded manually or automatically
- Screenshot feature
- File history feature to log time and filename
- A-B loop feature
- Watch later feature to save the position
- Files can be enqueued from File Explorer ([Manual](Manual.md#open-with))
- Update check and update routine ([Manual](Manual.md#help--check-for-updates))
- [Manual](#manual)
- Files can be enqueued from File Explorer
- Update check and update routine
## [Support](Manual.md#support)
## [Download](Manual.md#download)
## [Manual](Manual.md)
Screenshots
-----------
#### Main Window Screenshot
#### Main Window
![Main Window](https://raw.githubusercontent.com/stax76/mpv.net/master/img/Main.png)
#### Context Menu Screenshot
Context menu defined in the input.conf file with dark mode support.
#### Context Menu
Context menu using dark mode.
![Context Menu](https://raw.githubusercontent.com/stax76/mpv.net/master/img/Menu.png)
#### Config Editor Screenshot
A searchable config editor as alternative to edit the mpv.conf file manually.
#### Config Editor
Searchable config editor as alternative to edit the conf file manually.
![](https://raw.githubusercontent.com/stax76/mpv.net/master/img/ConfEditor.png)
#### Terminal Screenshot
mpv.net attached to a PowerShell terminal showing the OSD console.
#### Terminal
OSD console and status printed on the terminal.
![](https://raw.githubusercontent.com/stax76/mpv.net/master/img/Terminal.png)
#### Input Editor Screenshot
A searchable key and mouse binding editor.
#### Input Editor
Searchable key and mouse binding editor.
![Input Editor](https://raw.githubusercontent.com/stax76/mpv.net/master/img/InputEditor.png)
#### Command Palette Screenshot
Forgot where a command in the menu is located or what shortcut key it has?
Just press F1 and find it easily in the searchable command palette.
#### Command Palette
Command Palette to find commands and shortcut keys easily.
![Command Palette](https://raw.githubusercontent.com/stax76/mpv.net/master/img/CommandPalette.png)
#### Media Search Screenshot
Media search feature powered by [Everything](https://www.voidtools.com) to find and play media.
![Media Search](https://raw.githubusercontent.com/stax76/mpv.net/master/img/MediaSearch.png)
Download
--------
### Stable
Stable releases can be downloaded from the [Release page](releases).
### Beta
Beta versions can be downloaded from [OneDrive](https://1drv.ms/u/s!ArwKS_ZUR01g1ldoLA90tX9DzKTj?e=xITXbC) and [DropBox](https://www.dropbox.com/sh/t54p9igdwvllbpl/AADKyWpaFnIhdyosxyP5d3_xa?dl=0).
Installation
------------
mpv.net requires minimum .NET Framework 4.8 and Windows 7. For optimal results a modern graphics card is recommended.
Stable releases are compiled from the source and can be downloaded from the releases tab:
<https://github.com/stax76/mpv.net/releases>
Scoop can be used to install and update it:
```
scoop bucket add extras
scoop install mpv.net
```
If you instead use AppGet:
`appget install mpv-net`
Alternatively, Chocolatey can also be used:
`choco install mpvnet.install`
Manual
------
[Manual](Manual.md)
Context Menu
------------
The context menu can be customized via input.conf file located in the config directory:
```Text
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/input.conf.txt>
input.conf defines mpv's key and mouse bindings and mpv.net uses comments to define the context menu.
Scripting
---------
[Scripting wiki page](https://github.com/stax76/mpv.net/wiki/Scripting)
Extensions
----------
[Extensions](Manual.md#extensions)
Architecture
------------
mpv.net is written in C# and runs on the .NET Framework 4.8.
The Extension implementation is based on the [Managed Extensibility Framework](https://docs.microsoft.com/en-us/dotnet/framework/mef/).
Python scripting is implemented with IronPython which uses Python 2.7.
The main window is WinForms based, WinForms allows better libmpv integration compared to WPF, all other windows are WPF based.
The config editor adds it's controls dynamically and uses [TOML](https://en.wikipedia.org/wiki/TOML) to define it's
content, there are only two simple types, StringSetting and OptionSetting.
Third party components:
- [libmpv, the heard and soul of mpv.net](https://mpv.io/)
- [MediaInfo, no media related project could do without](https://mediaarea.net/en/MediaInfo)
- [Tommy, a single file TOML parser](https://github.com/dezhidki/Tommy)
- [IronPython, bringing Python to dotnet](https://ironpython.net/)
- [CS-Script, scripting with C#](http://www.csscript.net/)
- [Everything, a blazing fast file search service](https://www.voidtools.com)
Support
-------
Before making a support request for a particular issue, please try if it was already addressed in a newer [beta version](#download).
[Support thread in Doom9 forum](https://forum.doom9.org/showthread.php?t=174841)
[Support thread in VideoHelp forum](https://forum.videohelp.com/threads/392514-mpv-net-a-extendable-media-player-for-windows)
[Issue tracker](https://github.com/stax76/mpv.net/issues), feel free to use for anything mpv(.net) related.
You can support my work with a PayPal donation. The input hardware support in mpv.net is not 100% mpv compatible, people use all kind of weird input hardware and sometimes I have to buy those to support them.
<https://www.paypal.me/stax76>
Links
-----
#### mpv.net
- wiki: <https://github.com/stax76/mpv.net/wiki>
- default key bindings: <https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/input.conf.txt>
- download: <https://github.com/stax76/mpv.net/releases>
- bugs and requests: <https://github.com/stax76/mpv.net/issues>
#### mpv
- website: <https://mpv.io/>
- manual: <https://mpv.io/manual/master/>
- wiki: <https://github.com/mpv-player/mpv/wiki>
- apps: <https://github.com/mpv-player/mpv/wiki/Applications-using-mpv>
- user scripts: <https://github.com/mpv-player/mpv/wiki/User-Scripts>
- default key bindings: <https://github.com/mpv-player/mpv/blob/master/etc/input.conf>
- download: <https://mpv.io/installation/>
- bugs and requests: <https://mpv.io/bug-reports/>
Changelog
---------
[Changelog](Changelog.md)