MPlayer Slave Mode Protocol

From MediaCoderWiki

Jump to: navigation, search

SLAVE MODE PROTOCOL


The -slave option switches on slave mode, in which MPlayer works as a backend for other programs. Instead of intercepting keyboard events, MPlayer will read commands separated by a newline (\n) from stdin.

To try slave mode out by hand, run

 mplayer -slave -quiet <movie>

and type slave commands into the console window.

Most slave mode commands are equivalent to command line options, though not necessarily under the same name. Detailed descriptions can be found in the man page.

All commands can be prefixed with one of "pausing ", "pausing_keep ", or "pausing_toggle ". "pausing " tells MPlayer to pause as soon as possible after processing the command. "pausing_keep " tells MPlayer to do so only if it was already in paused mode. "pausing_toggle " tells MPlayer to do so only if it was not already in paused mode. Please note that "as soon as possible" can be before the command is fully executed.


Available commands ('mplayer -input cmdlist' will print a list):


alt_src_step <value> (ASX playlist only)

   When more than one source is available it selects the next/previous one.

audio_delay <value> [abs]

   Set/adjust the audio delay.
   If [abs] is not given or is zero, adjust the delay by <value> seconds.
   If [abs] is nonzero, set the delay to <value> seconds.

[brightness|contrast|gamma|hue|saturation] <value> [abs]

   Set/adjust video parameters.
   If [abs] is not given or is zero, modifies parameter by <value>.
   If [abs] is non-zero, parameter is set to <value>.
   <value> is in the range [-100, 100].

change_rectangle <val1> <val2>

   Change the position of the rectangle filter rectangle.
       <val1>
           Must be one of the following:
               0 = width
               1 = height
               2 = x position
               3 = y position
       <val2>
           If <val1> is 0 or 1:
               Integer amount to add/subtract from the width/height.
               Positive values add to width/height and negative values
               subtract from it.
           If <val1> is 2 or 3:
               Relative integer amount by which to move the upper left
               rectangle corner. Positive values move the rectangle
               right/down and negative values move the rectangle left/up.

dvb_set_channel <channel_number> <card_number>

   Set DVB channel.

dvdnav <button>

   Press the given dvdnav button.
       1 up
       2 down
       3 left
       4 right
       5 menu
       6 select

edl_mark

   Write the current position into the EDL file.

frame_drop [value]

   Toggle/set frame dropping mode.

get_audio_bitrate

   Print out the audio bitrate of the current file.

get_audio_codec

   Print out the audio codec name of the current file.

get_audio_samples

   Print out the audio frequency and number of channels of the current file.

get_file_name

   Print out the name of the current file.

get_meta_album

   Print out the 'Album' metadata of the current file.

get_meta_artist

   Print out the 'Artist' metadata of the current file.

get_meta_comment

   Print out the 'Comment' metadata of the current file.

get_meta_genre

   Print out the 'Genre' metadata of the current file.

get_meta_title

   Print out the 'Title' metadata of the current file.

get_meta_track

   Print out the 'Track Number' metadata of the current file.

get_meta_year

   Print out the 'Year' metadata of the current file.

get_percent_pos

   Print out the current position in the file, as integer percentage [0-100).

get_property <property>

   Print out the current value of a property.

get_sub_visibility

   Print out subtitle visibility (1 == on, 0 == off).

get_time_length

   Print out the length of the current file in seconds.

get_time_pos

   Print out the current position in the file in seconds, as float.

get_vo_fullscreen

   Print out fullscreen status (1 == fullscreened, 0 == windowed).

get_video_bitrate

   Print out the video bitrate of the current file.

get_video_codec

   Print out the video codec name of the current file.

get_video_resolution

   Print out the video resolution of the current file.

grab_frames

   Currently unimplemented.

screenshot <value>

   Take a screenshot. Requires the screenshot filter to be loaded.
       0 Take a single screenshot.
       1 Start/stop taking screenshot of each frame.

gui_[about|loadfile|loadsubtitle|play|playlist|preferences|skinbrowser|stop]

   GUI actions

key_down_event <value>

   Inject <value> key code event into MPlayer.

loadfile <file|url> <append>

   Load the given file/URL, stopping playback of the current file/URL.
   If <append> is nonzero playback continues and the file/URL is
   appended to the current playlist instead.

loadlist <file> <append>

   Load the given playlist file, stopping playback of the current file.
   If <append> is nonzero playback continues and the playlist file is
   appended to the current playlist instead.

menu <command>

   Execute an OSD menu command.
       up     Move cursor up.
       down   Move cursor down.
       ok     Accept selection.
       cancel Cancel selection.
       hide   Hide the OSD menu.

set_menu <menu_name>

   Display the menu named <menu_name>.

mute [value]

   Toggle sound output muting or set it to [value] when [value] >= 0
   (1 == on, 0 == off).

osd [level]

   Toggle OSD mode or set it to [level] when [level] >= 0.

osd_show_property_text <string> [duration] [level]

   Show an expanded property string on the OSD, see -playing-msg for a
   description of the available expansions. If [duration] is >= 0 the text
   is shown for [duration] ms. [level] sets the minimum OSD level needed
   for the message to be visible (default: 0 - always show).

osd_show_text <string> [duration] [level]

   Show <string> on the OSD.

panscan <-1.0 - 1.0> | <0.0 - 1.0> <abs>

   Increase or decrease the pan-and-scan range by <value>, 1.0 is the maximum.
   Negative values decrease the pan-and-scan range.
   If <abs> is != 0, then the pan-and scan range is interpreted as an
   absolute range.

pause

   Pause/unpause the playback.

frame_step

   Play one frame, then pause again.

pt_step <value> [force]

   Go to the next/previous entry in the playtree. The sign of <value> tells
   the direction.  If no entry is available in the given direction it will do
   nothing unless [force] is non-zero.

pt_up_step <value> [force]

   Similar to pt_step but jumps to the next/previous entry in the parent list.
   Useful to break out of the inner loop in the playtree.

quit [value]

   Quit MPlayer. The optional integer [value] is used as the return code
   for the mplayer process (default: 0).

radio_set_channel <channel>

   Switch to <channel>. The 'channels' radio parameter needs to be set.

radio_set_freq <frequency in MHz>

   Set the radio tuner frequency.

radio_step_channel <-1|1>

   Step forwards (1) or backwards (-1) in channel list. Works only when the
   'channels' radio parameter was set.

radio_step_freq <value>

   Tune frequency by the <value> (positive - up, negative - down). 

seek <value> [type]

   Seek to some place in the movie.
       0 is a relative seek of +/- <value> seconds (default).
       1 is a seek to <value> % in the movie.
       2 is a seek to an absolute position of <value> seconds.

seek_chapter <value> [type]

   Seek to the start of a chapter.
       0 is a relative seek of +/- <value> chapters (default).
       1 is a seek to chapter <value>.

set_mouse_pos <x> <y>

   Tells MPlayer the coordinates of the mouse in the window.
   This command doesn't move the mouse!

set_property <property> <value>

   Set a property.

speed_incr <value>

   Add <value> to the current playback speed.

speed_mult <value>

   Multiply the current speed by <value>.

speed_set <value>

   Set the speed to <value>.

step_property <property> [<value>]

   Change property by value, or increase by a default if value is not given.

sub_alignment [value]

   Toggle/set subtitle alignment.
       0 top alignment
       1 center alignment
       2 bottom alignment

sub_delay <value> [abs]

   Adjust the subtitle delay by +/- <value> seconds or set it to <value>
   seconds when [abs] is nonzero.

sub_load <subtitle_file>

   Loads subtitles from <subtitle_file>.

sub_log

   Logs the current or last displayed subtitle together with filename
   and time information to ~/.mplayer/subtitle_log. Intended purpose
   is to allow convenient marking of bogus subtitles which need to be
   fixed while watching the movie.

sub_pos <value> [abs]

   Adjust/set subtitle position.

sub_remove [value]

   If the [value] argument is present and non-negative, removes the subtitle
   file with index [value]. If the argument is omitted or negative, removes
   all subtitle files.

sub_select [value]

   Display subtitle with index [value]. Turn subtitle display off if
   [value] is -1 or greater than the highest available subtitle index.
   Cycle through the available subtitles if [value] is omitted or less
   than -1. Supported subtitle sources are -sub options on the command
   line, VOBsubs, DVD subtitles, and Ogg and Matroska text streams.

vobsub_lang

   This is a stub linked to sub_select for backwards compatibility.

sub_step <value>

   Step forward in the subtitle list by <value> steps or backwards if <value>
   is negative.

sub_visibility [value]

   Toggle/set subtitle visibility.

forced_subs_only [value]

   Toggle/set forced subtitles only.

switch_audio [value] (MPEG and Matroska only)

   Switch to the audio track with the id [value]. Cycle through the
   available tracks if [value] is omitted or negative.

switch_ratio [value]

   Change aspect ratio at runtime. [value] is the new aspect ratio expressed
   as a float (e.g. 1.77778 for 16/9).
   There might be problems with some video filters.

switch_vsync [value]

   Toggle vsync (1 == on, 0 == off). If [value] is not provided,
   vsync status is inverted.

tv_step_channel <channel>

   Select next/previous TV channel.

tv_step_norm

   Change TV norm.

tv_step_chanlist

   Change channel list.

tv_set_channel <channel>

   Set the current TV channel.

tv_last_channel

   Set the current TV channel to the last one.

tv_set_freq <frequency in MHz>

   Set the TV tuner frequency.

tv_set_norm <norm>

   Set the TV tuner norm (PAL, SECAM, NTSC, ...).

tv_set_brightness <-100 - 100> [abs]

   Set TV tuner brightness or adjust it if [abs] is set to 0.

tv_set_contrast <-100 -100> [abs]

   Set TV tuner contrast or adjust it if [abs] is set to 0.

tv_set_hue <-100 - 100> [abs]

   Set TV tuner hue or adjust it if [abs] is set to 0.

tv_set_saturation <-100 - 100> [abs]

   Set TV tuner saturation or adjust it if [abs] is set to 0.

use_master

   Switch volume control between master and PCM.

vo_border [value]

   Toggle/set borderless display.

vo_fullscreen [value]

   Toggle/set fullscreen mode.

vo_ontop [value]

   Toggle/set stay-on-top.

vo_rootwin [value]

   Toggle/set playback on the root window.

volume <value> [abs]

   Increase/decrease volume or set it to <value> if [abs] is nonzero.


The following commands are really only useful for OSD menu console mode:

help

   Displays help text, currently empty.

exit

   Exits from OSD menu console. Unlike 'quit', does not quit MPlayer.

hide

   Hides the OSD menu console. Clicking a menu command unhides it. Other
   keybindings act as usual.

run <value>

   Run <value> as shell command. In OSD menu console mode stdout and stdin
   are through the video output driver.

Personal tools