INPUT.CONF ========== The input.conf file consists of a list of key bindings, for example:: s screenshot # take a screenshot with the s key Each line maps a key to an input command. Keys are specified with their literal value (upper case if combined with ``Shift``), or a name for special keys. For example, ``a`` maps to the ``a`` key without shift, and ``A`` maps to ``a`` with shift. A list of special keys can be obtained with ``mpv --input-keylist`` In general, keys can be combined with ``Shift``, ``Ctrl`` and ``Alt``:: ctrl+q quit **mpv** can be started in input test mode, which displays key bindings and the commands they're bound to on the OSD, instead of executing the commands:: mpv --input-test --demuxer=rawvideo --demuxer-rawvideo=w=1280:h=720 /dev/zero (Commands which normally close the player will not work in this mode, and you must kill **mpv** externally to make it exit.) General Input Command Syntax ---------------------------- ``[Shift+][Ctrl+][Alt+][Meta+] [{
}] [] ()* [; ]`` Note that by default, the right Alt key can be used to create special characters, and thus does not register as a modifier. The option ``--no-right-alt-gr`` changes this behavior. Newlines always start a new binding. ``#`` starts a comment (outside of quoted string arguments). To bind commands to the ``#`` key, ``SHARP`` can be used. ```` is either the literal character the key produces (ASCII or Unicode character), or a symbolic name (as printed by ``--input-keylist``). ``
`` (braced with ``{`` and ``}``) is the input section for this command. Arguments are separated by whitespace. This applies even to string arguments. For this reason, string arguments should be quoted with ``"``. Inside quotes, C-style escaping can be used. You can bind multiple commands to one key. For example: | a show_text "command 1" ; show_text "command 2" List of Input Commands ---------------------- ``ignore`` Use this to "block" keys that should be unbound, and do nothing. Useful for disabling default bindings, without disabling all bindings with ``--no-input-default-bindings``. ``seek [relative|absolute|absolute-percent|- [default-precise|exact|keyframes]]`` Change the playback position. By default, seeks by a relative amount of seconds. The second argument sets the seek mode: relative (default) Seek relative to current position (a negative value seeks backwards). absolute Seek to a given time. absolute-percent Seek to a given percent position. The third argument defines how exact the seek is: default-precise (default) Follow the default behavior as set by ``--hr-seek``, which by default does imprecise seeks (like ``keyframes``). exact Always do exact/hr/precise seeks (slow). keyframes Always restart playback at keyframe boundaries (fast). ``revert_seek`` Undoes the ``seek`` command, and some other commands that seek (but not necessarily all of them). Calling this command once will jump to the playback position before the seek. Calling it a second time undoes the ``revert_seek`` command itself. ``frame_step`` Play one frame, then pause. ``frame_back_step`` Go back by one frame, then pause. Note that this can be very slow (it tries to be precise, not fast), and sometimes fails to behave as expected. How well this works depends on whether precise seeking works correctly (e.g. see the ``--hr-seek-demuxer-offset`` option). Video filters or other video postprocessing that modifies timing of frames (e.g. deinterlacing) should usually work, but might make backstepping silently behave incorrectly in corner cases. This does not work with audio-only playback. ``set ""`` Set the given property to the given value. ``add []`` Add the given value to the property. On overflow or underflow, clamp the property to the maximum. If ```` is omitted, assume ``1``. ``cycle [up|down]`` Cycle the given property. ``up`` and ``down`` set the cycle direction. On overflow, set the property back to the minimum, on underflow set it to the maximum. If ``up`` or ``down`` is omitted, assume ``up``. ``multiply `` Multiplies the value of a property with the numeric factor. ``screenshot [subtitles|video|window|- [single|each-frame]]`` Take a screenshot. First argument: (default) Save the video image, in its original resolution, and with subtitles. Some video outputs may still include the OSD in the output under certain circumstances.