2012-08-07 20:24:29 +00:00
|
|
|
.. _changes:
|
|
|
|
|
|
|
|
CHANGES FROM OTHER VERSIONS OF MPLAYER
|
|
|
|
======================================
|
|
|
|
|
2012-10-11 00:04:08 +00:00
|
|
|
**mpv** is based on mplayer2, which in turn is based on the original
|
2012-08-07 20:24:29 +00:00
|
|
|
MPlayer (also called mplayer, mplayer-svn, mplayer1). Many changes
|
|
|
|
have been made. Some changes are incompatible, or completely change how the
|
|
|
|
player behaves.
|
|
|
|
|
|
|
|
General changes for mplayer-svn to mplayer2
|
|
|
|
-------------------------------------------
|
|
|
|
|
|
|
|
* Removal of the internal GUI, MEncoder, OSD menu
|
|
|
|
* Better pause handling (don't unpause on a command)
|
|
|
|
* Better MKV support (such as ordered chapters)
|
|
|
|
* vo_vdpau improvements
|
|
|
|
* Precise seeking support
|
|
|
|
* No embedded copy of ffmpeg and other libraries
|
|
|
|
* Native OpenGL backend for OSX
|
|
|
|
* General OSX improvements
|
|
|
|
* Improvements in audio/video sync handling
|
|
|
|
* Cleaned up terminal output
|
|
|
|
* Gapless audio support (``--gapless-audio``)
|
|
|
|
* Improved responsiveness on user input
|
|
|
|
* Support for modifier keys (alt, shift, ctrl) in input.conf
|
|
|
|
* OSS4 volume control
|
|
|
|
* More correct color reproduction (color matrix generation)
|
|
|
|
* Use libass for subtitle rendering by default (better quality)
|
|
|
|
* Generally preferring ffmpeg/libav over internal demuxers and decoders
|
|
|
|
* Improvements when playing multiple files (``--fixed-vo``)
|
|
|
|
* Screenshot improvements (instant screenshots without 1-frame delay)
|
|
|
|
* Improved support for PulseAudio
|
|
|
|
* General code cleanups
|
|
|
|
* Many more changes
|
|
|
|
|
2012-10-11 00:04:08 +00:00
|
|
|
General changes for mplayer2 to mpv
|
2012-08-07 20:24:29 +00:00
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
* Removal of lots of unneeded code to encourage developer activity (less
|
|
|
|
obscure scary zombie code that kills any desire for hacking the codebase)
|
|
|
|
* Removal of dust and dead bodies (code-wise), such as kernel drivers for
|
|
|
|
decades old hardware
|
|
|
|
* Removal of support for dead platforms
|
|
|
|
* Generally improved MS Windows support (dealing with unicode filenames,
|
2012-10-23 23:06:00 +00:00
|
|
|
improved ``--vo=direct3d``, improved window handling)
|
2012-08-07 20:24:29 +00:00
|
|
|
* Better OSD rendering (using libass). This has full unicode support, and
|
|
|
|
languages like Arabic should be better supported.
|
|
|
|
* Cleaned up terminal output (nicer status line, less useless noise)
|
|
|
|
* Support for playing URLs of popular streaming sites directly
|
2012-10-11 00:04:08 +00:00
|
|
|
(e.g. ``mpv https://www.youtube.com/watch?v=...``)
|
2012-10-23 23:06:00 +00:00
|
|
|
* Improved OpenGL output (``--vo=opengl-hq``)
|
2012-10-11 00:04:08 +00:00
|
|
|
* Make ``--softvol`` default (**mpv** is not a mixer control panel)
|
2012-08-07 20:24:29 +00:00
|
|
|
* Improved support for .cue files
|
2012-10-23 23:06:00 +00:00
|
|
|
* Screenshot improvements (can save screenshots as JPG or PNG, configurable
|
2013-01-30 00:17:33 +00:00
|
|
|
filenames, support for taking screenshots with or without subtitles - the
|
|
|
|
``screenshot`` video filter is not needed anymore, and should not be put
|
|
|
|
into the mpv config file)
|
2012-08-07 20:24:29 +00:00
|
|
|
* Removal of teletext support
|
2012-10-23 23:06:00 +00:00
|
|
|
* Replace image VOs (``--vo=jpeg`` etc.) with ``--vo=image``
|
2012-08-07 20:24:29 +00:00
|
|
|
* Do not lose settings when playing a new file in the same player instance
|
2012-11-15 13:25:20 +00:00
|
|
|
* New location for config files, new name for the binary.
|
2012-08-07 20:24:29 +00:00
|
|
|
* Slave mode compatibility broken (see below)
|
2012-11-15 13:25:20 +00:00
|
|
|
* Encoding functionality (replacement for mencoder, see ``DOCS/encoding.rst``)
|
|
|
|
* Remove ``--vo=gif89a``, ``--vo=md5sum``, ``--vo=yuv4mpeg``, as encoding can
|
|
|
|
handle these use cases. For yuv4mpeg, for example, use:
|
|
|
|
``mpv input.mkv -o output.y4m --no-audio``.
|
2012-10-23 23:06:00 +00:00
|
|
|
* Image subtitles (DVDs etc.) are rendered in color and use more correct
|
2012-11-25 22:32:35 +00:00
|
|
|
positioning (color can be disabled with ``--sub-gray``)
|
2012-08-07 20:24:29 +00:00
|
|
|
* General code cleanups
|
|
|
|
* Many more changes
|
|
|
|
|
|
|
|
Detailed listing of user-visible changes
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
This listing is about changed command line switches, slave commands, and similar
|
|
|
|
things. Completely removed features are not listed.
|
|
|
|
|
|
|
|
Command line switches
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* There is a new command line syntax, which is generally preferred over the old
|
|
|
|
syntax. ``-optname optvalue`` becomes ``--optname=optvalue``.
|
|
|
|
|
|
|
|
The old syntax will not be removed in the near future. However, the new
|
|
|
|
syntax is mentioned in all documentation and so on, so it's a good thing to
|
|
|
|
know about this change.
|
|
|
|
|
|
|
|
(The new syntax was introduced in mplayer2.)
|
2012-10-23 23:06:00 +00:00
|
|
|
* In general, negating switches like ``-noopt`` now have to be written as
|
2012-08-07 20:24:29 +00:00
|
|
|
``-no-opt``, or better ``--no-opt``.
|
|
|
|
* Per-file options are not the default anymore. You can explicitly specify
|
|
|
|
file local options. See ``Usage`` section.
|
2012-09-17 06:38:19 +00:00
|
|
|
* Table of renamed/replaced switches:
|
2012-08-07 20:24:29 +00:00
|
|
|
|
|
|
|
=================================== ===================================
|
|
|
|
Old New
|
|
|
|
=================================== ===================================
|
2012-11-30 16:32:46 +00:00
|
|
|
-no<opt> --no-<opt> (add a dash)
|
2012-08-07 20:24:29 +00:00
|
|
|
-nosound --no-audio
|
2012-08-20 13:32:13 +00:00
|
|
|
-use-filename-title --title="${filename}"
|
2012-09-05 00:17:13 +00:00
|
|
|
-loop 0 --loop=inf
|
2012-09-17 06:38:19 +00:00
|
|
|
-hardframedrop --framedrop=hard
|
2012-09-17 06:45:35 +00:00
|
|
|
-osdlevel --osd-level
|
2012-09-18 18:07:24 +00:00
|
|
|
-delay --audio-delay
|
|
|
|
-subdelay --sub-delay
|
|
|
|
-subpos --sub-pos
|
|
|
|
-forcedsubsonly --sub-forced-only
|
2012-10-28 19:23:15 +00:00
|
|
|
-ni --avi-ni
|
2012-10-28 19:24:52 +00:00
|
|
|
-benchmark --untimed (no stats)
|
2012-11-15 14:32:55 +00:00
|
|
|
-xineramascreen --screen (different values)
|
2012-11-15 17:49:17 +00:00
|
|
|
-ss --start
|
|
|
|
-endpos --length
|
2012-11-15 17:59:41 +00:00
|
|
|
--cursor-autohide-delay --cursor-autohide
|
2012-11-15 18:08:21 +00:00
|
|
|
-sub-fuzziness --autosub-match
|
2013-01-04 15:10:17 +00:00
|
|
|
-subfont --sub-text-font
|
|
|
|
-font --osd-font
|
|
|
|
-subfont-* --sub-text-*, --osd-*
|
2012-11-17 19:56:45 +00:00
|
|
|
-subfont-text-scale --sub-scale
|
2012-11-24 23:06:16 +00:00
|
|
|
-spugauss --sub-gauss
|
2012-12-08 12:59:49 +00:00
|
|
|
-vobsub --sub (pass the .idx file)
|
2012-12-12 22:35:01 +00:00
|
|
|
-ass-bottom-margin --vf=sub=bottom:top
|
2012-12-11 17:16:42 +00:00
|
|
|
-vc ffh264vdpau (etc.) --hwdec=vdpau
|
core: redo how codecs are mapped, remove codecs.conf
Use codec names instead of FourCCs to identify codecs. Rewrite how
codecs are selected and initialized. Now each decoder exports a list
of decoders (and the codec it supports) via add_decoders(). The order
matters, and the first decoder for a given decoder is preferred over
the other decoders. E.g. all ad_mpg123 decoders are preferred over
ad_lavc, because it comes first in the mpcodecs_ad_drivers array.
Likewise, decoders within ad_lavc that are enumerated first by
libavcodec (using av_codec_next()) are preferred. (This is actually
critical to select h264 software decoding by default instead of vdpau.
libavcodec and ffmpeg/avconv use the same method to select decoders by
default, so we hope this is sane.)
The codec names follow libavcodec's codec names as defined by
AVCodecDescriptor.name (see libavcodec/codec_desc.c). Some decoders
have names different from the canonical codec name. The AVCodecDescriptor
API is relatively new, so we need a compatibility layer for older
libavcodec versions for codec names that are referenced internally,
and which are different from the decoder name. (Add a configure check
for that, because checking versions is getting way too messy.)
demux/codec_tags.c is generated from the former codecs.conf (minus
"special" decoders like vdpau, and excluding the mappings that are the
same as the mappings libavformat's exported RIFF tables). It contains
all the mappings from FourCCs to codec name. This is needed for
demux_mkv, demux_mpg, demux_avi and demux_asf. demux_lavf will set the
codec as determined by libavformat, while the other demuxers have to do
this on their own, using the mp_set_audio/video_codec_from_tag()
functions. Note that the sh_audio/video->format members don't uniquely
identify the codec anymore, and sh->codec takes over this role.
Replace the --ac/--vc/--afm/--vfm with new --vd/--ad options, which
provide cover the functionality of the removed switched.
Note: there's no CODECS_FLAG_FLIP flag anymore. This means some obscure
container/video combinations (e.g. the sample Film_200_zygo_pro.mov)
are played flipped. ffplay/avplay doesn't handle this properly either,
so we don't care and blame ffmeg/libav instead.
2013-02-09 14:15:19 +00:00
|
|
|
-ac spdifac3 --ad=spdif:ac3 (see --ad=help)
|
2013-03-30 19:19:38 +00:00
|
|
|
-afm hwac3 --ad=spdif:ac3,spdif:dts
|
2013-02-03 15:40:02 +00:00
|
|
|
-x W, -y H --geometry=WxH + --no-keepaspect
|
|
|
|
-xy W --autofit=W
|
2012-08-07 20:24:29 +00:00
|
|
|
=================================== ===================================
|
|
|
|
|
2013-02-03 15:40:02 +00:00
|
|
|
*NOTE*: ``-opt val`` becomes ``--opt=val``.
|
|
|
|
|
2012-08-07 20:24:29 +00:00
|
|
|
input.conf and slave commands
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2012-09-27 01:20:12 +00:00
|
|
|
* Table of renamed input commands:
|
|
|
|
|
|
|
|
This lists only commands that are not always gracefully handled by the
|
|
|
|
internal legacy translation layer. If an input.conf contains any legacy
|
|
|
|
commands, they will be displayed with ``-v`` when it is loaded, and show
|
|
|
|
and the replacement commands.
|
|
|
|
|
|
|
|
Properties containing ``_`` to separate words use ``-`` instead.
|
|
|
|
|
|
|
|
+--------------------------------+----------------------------------------+
|
|
|
|
| Old | New |
|
|
|
|
+================================+========================================+
|
|
|
|
| pt_step 1 [0|1] | playlist_next [weak|force] |
|
|
|
|
| | (translation layer can't deal with |
|
|
|
|
| | whitespace) |
|
|
|
|
+--------------------------------+----------------------------------------+
|
|
|
|
| pt_step -1 [0|1] | playlist_prev [weak|force] (same) |
|
|
|
|
+--------------------------------+----------------------------------------+
|
|
|
|
| switch_ratio [<ratio>] | set aspect <ratio> |
|
|
|
|
| | set aspect 0 (to reset aspect) |
|
|
|
|
+--------------------------------+----------------------------------------+
|
|
|
|
| step_property_osd <prop> <step>| cycle <prop> <step> (wraps), |
|
|
|
|
| <dir> | add <prop> <step> (clamps). |
|
|
|
|
| | <dir> parameter unsupported. Use |
|
|
|
|
| | a negative step instead. |
|
|
|
|
+--------------------------------+----------------------------------------+
|
|
|
|
| step_property <prop> <step> | Prefix cycle or add with no-osd: |
|
options: drop --opt:subopt option names
For all suboptions, "flat" options were available by separating the
parent option and the sub option with ":", e.g. "--rawvideo:w=123". Drop
this syntax and use "-" as separator. This means even suboptions are
available as normal options now, e.g. "--rawvideo-w=123". The old syntax
doesn't work anymore.
Note that this is completely separate from actual suboptions. For
example, "-rawvideo w=123:h=123" still works. (Not that this syntax is
worth supporting, but it's needed anyway, for for other things like vf
and vo suboptions.)
As a consequence of this change, we also have to add new "no-" prefixed
options for flag suboptions, so that "--no-input-default-bindings"
works. ("--input-no-default-bindings" also works as a consequence of
allowing "-input no-default-bindings" - they are handled by the same
underlying option.)
For --input, always use the full syntax in the manpage. There exist
suboptions other than --input (like --tv, --rawvideo, etc.), but since
they might be handled differently in the future, don't touch these yet.
M_OPT_PREFIXED becomes the default, so remove it. As a minor unrelated
cleanup, get rid of M_OPT_MERGE too and use the OPT_SUBSTRUCT() macro in
some places.
Unrelated: remove the duplicated --tv:buffersize option, fix a typo in
changes.rst.
2013-02-21 21:10:21 +00:00
|
|
|
| <dir> | no-osd cycle <prop> <step> |
|
2012-09-27 01:20:12 +00:00
|
|
|
+--------------------------------+----------------------------------------+
|
|
|
|
| osd_show_property_text <text> | show_text <text> |
|
|
|
|
| | The property expansion format string |
|
|
|
|
| | syntax slightly changed. |
|
|
|
|
+--------------------------------+----------------------------------------+
|
|
|
|
| osd_show_text | Now does the same as |
|
|
|
|
| | osd_show_property_text. |
|
|
|
|
+--------------------------------+----------------------------------------+
|
2012-08-07 20:24:29 +00:00
|
|
|
|
|
|
|
Other
|
|
|
|
~~~~~
|
|
|
|
|
2012-10-11 00:04:08 +00:00
|
|
|
* The playtree has been removed. **mpv**'s internal playlist is a simple and
|
2012-11-15 13:25:20 +00:00
|
|
|
flat list now. This makes the code easier, and makes **mpv** usage less
|
|
|
|
confusing.
|
2012-08-07 20:24:29 +00:00
|
|
|
* Slave mode is broken. This mode is entirely insane in the ``old`` versions of
|
|
|
|
mplayer. A proper slave mode application needed tons of code and hacks to get
|
|
|
|
it right. The main problem is that slave mode is a bad and incomplete
|
|
|
|
interface, and to get around that, applications parsed output messages
|
2012-10-23 23:06:00 +00:00
|
|
|
intended for users. It's hard to know which messages exactly are parsed by
|
|
|
|
slave mode applications. This makes it virtually impossible to improve
|
2012-08-07 20:24:29 +00:00
|
|
|
terminal output intended for users without possibly breaking something.
|
|
|
|
|
2012-10-11 00:04:08 +00:00
|
|
|
This is absolutely insane, and **mpv** will not try to keep slave mode
|
2012-08-07 20:24:29 +00:00
|
|
|
compatible. If you're a developer of a slave mode application, contact us,
|
|
|
|
and a new and better protocol can be developed.
|
|
|
|
|
|
|
|
Policy for removed features
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
Features are a good thing, because they make users happy. As such, it is
|
|
|
|
attempted to preserve useful features as far as possible. But if a feature is
|
2012-10-23 23:06:00 +00:00
|
|
|
likely to be not used by many, and causes problems otherwise, it will be
|
2012-08-07 20:24:29 +00:00
|
|
|
removed. Developers should not be burdened with fixing or cleaning up code that
|
|
|
|
has no actual use.
|
|
|
|
|
|
|
|
It's always possible to add back removed features. File a feature request if a
|
|
|
|
feature you relied on was removed, and you want it back. Though it might be
|
|
|
|
rejected in the worst case, it's much more likely that it will be either added
|
|
|
|
back, or that a better solution will be implemented.
|
|
|
|
|
|
|
|
Why this fork?
|
|
|
|
--------------
|
|
|
|
|
|
|
|
* mplayer-svn wants to maintain old code, even if it's very bad code. It seems
|
|
|
|
mplayer2 was forked, because mplayer-svn developers refused to get rid of
|
|
|
|
all the cruft. The mplayer2 and mplayer-svn codebases also deviated enough to
|
|
|
|
make a reunification unlikely.
|
|
|
|
* mplayer2 development is slow, and it's hard to get in changes. Details
|
|
|
|
withheld as to not turn this into a rant.
|
|
|
|
* mplayer-svn rarely merged from mplayer2, and mplayer2 practically stopped
|
|
|
|
merging from mplayer-svn (not even code cleanups or new features are merged)
|
2012-10-11 00:04:08 +00:00
|
|
|
* **mpv** intents to continuously merge from mplayer-svn and mplayer2, while
|
2012-08-07 20:24:29 +00:00
|
|
|
speeding up development. There is willingness for significant changes, even
|
|
|
|
if this means breaking compatibility.
|