<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<chapter id="usage">
<title>Usage</title>
<sect1 id="commandline">
<title>Command line</title>
<para>
<application>MPlayer</application> utilizes a complex playtree. Options passed
on the command line can apply to all files/URLs or just to specific ones
depending on their position. For example
<screen>mplayer -vfm ffmpeg movie1.avi movie2.avi</screen>
will use FFmpeg decoders for both files, but
<screen>
mplayer -vfm ffmpeg <replaceable>movie1.avi</replaceable> <replaceable>movie2.avi</replaceable> -vfm dmo
</screen>
will play the second file with a DMO decoder.
</para>
<para>
You can group filenames/URLs together using <literal>{</literal> and
<literal>}</literal>. It is useful with option <option>-loop</option>:
<screen>mplayer { 1.avi -loop 2 2.avi } -loop 3</screen>
The above command will play files in this order: 1, 1, 2, 1, 1, 2, 1, 1, 2.
</para>
<para>
Playing a file:
<synopsis>
<command>mplayer</command><!--
--> [<replaceable>options</replaceable>]<!--
--> [<replaceable>path</replaceable>/]<replaceable>filename</replaceable>
</synopsis>
</para>
<para>
Another way to play a file:
<synopsis>
<command>mplayer</command><!--
--> [<replaceable>options</replaceable>]<!--
--> <replaceable>file:///uri-escaped-path</replaceable>
</synopsis>
</para>
<para>
Playing more files:
<synopsis>
<command>mplayer</command><!--
--> [<replaceable>default options</replaceable>]<!--
--> [<replaceable>path</replaceable>/]<replaceable>filename1</replaceable><!--
--> [<replaceable>options for filename1</replaceable>]<!--
--> <replaceable>filename2</replaceable><!--
--> [<replaceable>options for filename2</replaceable>] ...
</synopsis>
</para>
<para>
Playing VCD:
<synopsis>
<command>mplayer</command> [<replaceable>options</replaceable>]<!--
--> vcd://<replaceable>trackno</replaceable><!--
--> [-cdrom-device <replaceable>/dev/cdrom</replaceable>]
</synopsis>
</para>
<para>
Playing DVD:
<synopsis>
<command>mplayer</command> [<replaceable>options</replaceable>]<!--
--> dvd://<replaceable>titleno</replaceable><!--
--> [-dvd-device <replaceable>/dev/dvd</replaceable>]
</synopsis>
</para>
<para>
Playing from the WWW:
<synopsis>
<command>mplayer</command> [<replaceable>options</replaceable>]<!--
--> http://<replaceable>site.com/file.asf</replaceable>
</synopsis>
(playlists can be used, too)
</para>
<para>
Playing from RTSP:
<synopsis>
<command>mplayer</command> [<replaceable>options</replaceable>]<!--
--> rtsp://<replaceable>server.example.com/streamName</replaceable>
</synopsis>
</para>
<para>
Examples:
<screen>
mplayer -vo x11 <replaceable>/mnt/Films/Contact/contact2.mpg</replaceable>
mplayer vcd://<replaceable>2</replaceable> -cdrom-device <replaceable>/dev/hdc</replaceable>
mplayer -afm 3 <replaceable>/mnt/DVDtrailers/alien4.vob</replaceable>
mplayer dvd://<replaceable>1</replaceable> -dvd-device <replaceable>/dev/hdc</replaceable>
mplayer -abs 65536 -delay -0.4 -nobps <replaceable>~/movies/test.avi</replaceable><!--
--></screen>
</para>
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="subosd">
<title>Subtitles and OSD</title>
<para>
OUTDATED CONTENT REMOVED
</para>
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="control">
<title>Control</title>
<para>
<application>MPlayer</application> has a fully configurable, command
driven, control layer which lets you control
<application>MPlayer</application> with keyboard, mouse, joystick or remote
control (using LIRC). See the man page for the complete list of keyboard controls.
</para>
<!-- ********** -->
<sect2 id="ctrl-cfg">
<title>Controls configuration</title>
<para>
<application>MPlayer</application> allows you bind any key/button to any
<application>MPlayer</application> command using a simple config file.
The syntax consist of a key name followed by a command. The default config file location is
<filename>$HOME/.mplayer/input.conf</filename> but it can be overridden
using the <option>-input <replaceable>conf</replaceable></option> option
(relative path are relative to <filename>$HOME/.mplayer</filename>).
</para>
<para>
You can get a full list of supported key names by running
<command>mplayer -input keylist</command>
and a full list of available commands by running
<command>mplayer -input cmdlist</command>.
</para>
<example id="input_control_file">
<title>A simple input control file</title>
<programlisting>
##
## MPlayer input control file
##
RIGHT seek +10
LEFT seek -10
- audio_delay 0.100
+ audio_delay -0.100
q quit
> pt_step 1
< pt_step -1
ENTER pt_step 1 1<!--
--></programlisting>
</example>
</sect2>
<!-- ********** -->
<sect2 id="lirc">
<title>Control from LIRC</title>
<para>
Linux Infrared Remote Control - use an easy to build home-brewed IR-receiver,
an (almost) arbitrary remote control and control your Linux box with it!
More about it on the <ulink url="http://www.lirc.org">LIRC homepage</ulink>.
</para>
<para>
If you have the LIRC package installed, <filename>configure</filename> will
autodetect it. If everything went fine, <application>MPlayer</application>
will print "<systemitem>Setting up LIRC support...</systemitem>"
on startup. If an error occurs it will tell you. If there is no message about
LIRC there is no support compiled in. That's it :-)
</para>
<para>
The application name for <application>MPlayer</application> is - surprise -
<filename>mplayer</filename>. You can use any <application>MPlayer</application>
commands and even pass more than one command by separating them with
<literal>\n</literal>.
Do not forget to enable the repeat flag in <filename>.lircrc</filename> when
it makes sense (seek, volume, etc). Here is an excerpt from a sample
<filename>.lircrc</filename>:
</para>
<programlisting>
begin
button = VOLUME_PLUS
prog = mplayer
config = volume 1
repeat = 1
end
begin
button = VOLUME_MINUS
prog = mplayer
config = volume -1
repeat = 1
end
begin
button = CD_PLAY
prog = mplayer
config = pause
end
begin
button = CD_STOP
prog = mplayer
config = seek 0 1\npause
end<!--
--></programlisting>
<para>
If you do not like the standard location for the lirc-config file
(<filename>~/.lircrc</filename>) use the <option>-lircconf
<replaceable>filename</replaceable></option> switch to specify another
file.
</para>
</sect2>
<!-- ********** -->
<sect2 id="slave-mode">
<title>Slave mode</title>
<para>
The slave mode allows you to build simple frontends to
<application>MPlayer</application>. When
|