mirror of
https://github.com/mpv-player/mpv
synced 2024-12-23 07:12:39 +00:00
3c9c977663
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11787 b3059339-0415-0410-9bf9-f77b7e298cf2
557 lines
18 KiB
XML
557 lines
18 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision$ -->
|
|
<chapter id="usage">
|
|
<title>Usage</title>
|
|
|
|
<sect1 id="commandline">
|
|
<title>Command line</title>
|
|
|
|
<para>
|
|
<application>MPlayer</application> utilizes a complex playtree. It consists
|
|
of global options written as first, for example
|
|
|
|
<screen>mplayer -vfm 5</screen>
|
|
|
|
and options written after filenames, that apply only to the given
|
|
filename/URL/whatever, for example:
|
|
|
|
<screen>mplayer -vfm 5 <replaceable>movie1.avi</replaceable> <replaceable>movie2.avi</replaceable> -vfm 4</screen>
|
|
</para>
|
|
|
|
<para>
|
|
You can group filenames/URLs together using <literal>{</literal> and
|
|
<literal>}</literal>. It's 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>
|
|
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> -cd-rom-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="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>
|
|
|
|
<example>
|
|
<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>
|
|
|
|
|
|
<sect3 id="ctrl-cfg-keys">
|
|
<title>Key names</title>
|
|
|
|
<para>
|
|
You can have a full list by running
|
|
<command>mplayer -input keylist</command>.
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<title>Keyboard</title>
|
|
<listitem><simpara>Any printable character</simpara></listitem>
|
|
<listitem><simpara><literal>SPACE</literal></simpara></listitem>
|
|
<listitem><simpara><literal>ENTER</literal></simpara></listitem>
|
|
<listitem><simpara><literal>TAB</literal></simpara></listitem>
|
|
<listitem><simpara><literal>CTRL</literal></simpara></listitem>
|
|
<listitem><simpara><literal>BS</literal></simpara></listitem>
|
|
<listitem><simpara><literal>DEL</literal></simpara></listitem>
|
|
<listitem><simpara><literal>INS</literal></simpara></listitem>
|
|
<listitem><simpara><literal>HOME</literal></simpara></listitem>
|
|
<listitem><simpara><literal>END</literal></simpara></listitem>
|
|
<listitem><simpara><literal>PGUP</literal></simpara></listitem>
|
|
<listitem><simpara><literal>PGDWN</literal></simpara></listitem>
|
|
<listitem><simpara><literal>ESC</literal></simpara></listitem>
|
|
<listitem><simpara><literal>RIGHT</literal></simpara></listitem>
|
|
<listitem><simpara><literal>LEFT</literal></simpara></listitem>
|
|
<listitem><simpara><literal>UP</literal></simpara></listitem>
|
|
<listitem><simpara><literal>DOWN</literal></simpara></listitem>
|
|
</itemizedlist>
|
|
|
|
<itemizedlist>
|
|
<title>Mouse (only supported under X)</title>
|
|
<listitem><simpara>
|
|
<literal>MOUSE_BTN0</literal> (Left button)</simpara></listitem>
|
|
<listitem><simpara>
|
|
<literal>MOUSE_BTN1</literal> (Right button)</simpara></listitem>
|
|
<listitem><simpara>
|
|
<literal>MOUSE_BTN2</literal> (Middle button)</simpara></listitem>
|
|
<listitem><simpara>
|
|
<literal>MOUSE_BTN3</literal> (Wheel)</simpara></listitem>
|
|
<listitem><simpara>
|
|
<literal>MOUSE_BTN4</literal> (Wheel)</simpara></listitem>
|
|
<listitem><simpara>...</simpara></listitem>
|
|
<listitem><simpara><literal>MOUSE_BTN9</literal></simpara></listitem>
|
|
</itemizedlist>
|
|
|
|
<itemizedlist>
|
|
<title>Joystick (support must be enabled at compile time)</title>
|
|
<listitem><simpara>
|
|
<literal>JOY_RIGHT</literal> or
|
|
<literal>JOY_AXIS0_PLUS</literal></simpara></listitem>
|
|
<listitem><simpara>
|
|
<literal>JOY_LEFT</literal> or
|
|
<literal>JOY_AXIS0_MINUS</literal></simpara></listitem>
|
|
<listitem><simpara>
|
|
<literal>JOY_UP</literal> or
|
|
<literal>JOY_AXIS1_MINUS</literal></simpara></listitem>
|
|
<listitem><simpara>
|
|
<literal>JOY_DOWN</literal> or
|
|
<literal>JOY_AXIS1_PLUS</literal></simpara></listitem>
|
|
<listitem><simpara><literal>JOY_AXIS2_PLUS</literal></simpara></listitem>
|
|
<listitem><simpara><literal>JOY_AXIS2_MINUS</literal></simpara></listitem>
|
|
<listitem><simpara>...</simpara></listitem>
|
|
<listitem><simpara><literal>JOY_AXIS9_PLUS</literal></simpara></listitem>
|
|
<listitem><simpara><literal>JOY_AXIS9_MINUS</literal></simpara></listitem>
|
|
</itemizedlist>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="ctrl-cfg-commands">
|
|
<title>Commands</title>
|
|
|
|
<para>
|
|
You can have a full list of known commands by running
|
|
<command>mplayer -input cmdlist</command>.
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para><literal>seek</literal> (int) val [(int) type=0]</para>
|
|
<para>
|
|
Seek to some place in the movie.
|
|
Type <literal>0</literal> is a relative seek of +/- val seconds.
|
|
Type <literal>1</literal> seek to val % in the movie.
|
|
</para></listitem>
|
|
<listitem><para><literal>audio_delay</literal> (float) val</para>
|
|
<para>
|
|
Adjust the audio delay of val seconds
|
|
</para></listitem>
|
|
<listitem><para><literal>quit</literal></para>
|
|
<para>
|
|
Quit <application>MPlayer</application>
|
|
</para></listitem>
|
|
<listitem><para><literal>pause</literal></para>
|
|
<para>
|
|
Pause/unpause the playback
|
|
</para></listitem>
|
|
<listitem><para><literal>grap_frames</literal></para>
|
|
<para>
|
|
Somebody know ?
|
|
</para></listitem>
|
|
<listitem><para><literal>pt_step</literal> (int) val [(int) force=0]</para>
|
|
<para>
|
|
Go to next/previous entry in playtree. Val sign tell the direction. If
|
|
no other entry is available in the given direction it won't do anything
|
|
unless force is non 0.
|
|
</para></listitem>
|
|
<listitem><para><literal>pt_up_step</literal> (int) val [(int) force=0]</para>
|
|
<para>
|
|
Like pt_step but it jump to next/previous in the parent list. It's useful
|
|
to break inner loop in the playtree.
|
|
</para></listitem>
|
|
<listitem><para><literal>alt_src_step</literal> (int) val</para>
|
|
<para>
|
|
When more than one source is available it select the next/previous one
|
|
(only supported by asx playlist).
|
|
</para></listitem>
|
|
<listitem><para><literal>sub_delay</literal> (float) val [(int) abs=0]</para>
|
|
<para>
|
|
Adjust the subtitles delay of +/- val seconds or set it to val seconds
|
|
when abs is non zero.
|
|
</para></listitem>
|
|
<listitem><para><literal>osd</literal> [(int) level=-1]</para>
|
|
<para>
|
|
Toggle osd mode or set it to level when level > 0.
|
|
</para></listitem>
|
|
<listitem><para><literal>volume</literal> (int) dir</para>
|
|
<para>Increase/decrease volume
|
|
</para></listitem>
|
|
<listitem><simpara><literal>contrast</literal> (int) val [(int) abs=0]
|
|
</simpara></listitem>
|
|
<listitem><simpara><literal>brightness</literal> (int) val [(int) abs=0]
|
|
</simpara></listitem>
|
|
<listitem><simpara><literal>hue</literal> (int) val [(int) abs=0]
|
|
</simpara></listitem>
|
|
<listitem><para><literal>saturation</literal> (int) val [(int) abs=0]</para>
|
|
<para>
|
|
Set/Adjust video parameters. Val range from -100 to 100.
|
|
</para></listitem>
|
|
<listitem><para><literal>frame_drop</literal> [(int) type=-1]</para>
|
|
<para>
|
|
Toggle/Set frame dropping mode.
|
|
</para></listitem>
|
|
<listitem><para><literal>sub_visibility</literal></para>
|
|
<para>
|
|
Adjust subtitles visibility.
|
|
</para></listitem>
|
|
<listitem><para><literal>sub_pos</literal> (int) val</para>
|
|
<para>
|
|
Adjust subtitles position.
|
|
</para></listitem>
|
|
<listitem><para><literal>vobsub_lang</literal></para>
|
|
<para>
|
|
Change the language of VobSub subtitles.
|
|
</para></listitem>
|
|
<listitem><para><literal>vo_fullscreen</literal></para>
|
|
<para>
|
|
Switch fullscreen mode.
|
|
</para></listitem>
|
|
<listitem><para><literal>vo_ontop</literal></para>
|
|
<para>
|
|
Toggle stay-on-top. Supported by drivers which use X11, except SDL,
|
|
as well as directx and gl2 under Windows.
|
|
</para></listitem>
|
|
<listitem><para><literal>tv_step_channel</literal> (int) dir</para>
|
|
<para>
|
|
Select next/previous tv channel.
|
|
</para></listitem>
|
|
<listitem><para><literal>tv_step_norm</literal></para>
|
|
<para>
|
|
Change TV norm.
|
|
</para></listitem>
|
|
<listitem><para><literal>tv_step_chanlist</literal></para>
|
|
<para>
|
|
Change channel list.
|
|
</para></listitem>
|
|
<listitem><simpara><literal>gui_loadfile</literal></simpara></listitem>
|
|
<listitem><simpara><literal>gui_loadsubtitle</literal></simpara></listitem>
|
|
<listitem><simpara><literal>gui_about</literal></simpara></listitem>
|
|
<listitem><simpara><literal>gui_play</literal></simpara></listitem>
|
|
<listitem><simpara><literal>gui_stop</literal></simpara></listitem>
|
|
<listitem><simpara><literal>gui_playlist</literal></simpara></listitem>
|
|
<listitem><simpara><literal>gui_preferences</literal></simpara></listitem>
|
|
<listitem><para><literal>gui_skinbrowser</literal></para>
|
|
<para>
|
|
GUI actions
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="lirc">
|
|
<title>Control from LIRC</title>
|
|
|
|
<para>
|
|
Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver,
|
|
an (almost) arbitrary remote control and control your linux box with it!
|
|
More about it at <ulink url="http://www.lirc.org">www.lirc.org</ulink>.
|
|
</para>
|
|
|
|
<para>
|
|
If you have installed the lirc-package, configure will autodetect it. If
|
|
everything went fine, <application>MPlayer</application> will print a
|
|
message like "<computeroutput>Setting up lirc support...</computeroutput>"
|
|
on startup. If an error occurs it will tell you. If it doesn't tell you
|
|
anything about LIRC there's no support compiled in. That's it :-)
|
|
</para>
|
|
|
|
<para>
|
|
The application name for <application>MPlayer</application> is - oh wonder
|
|
- <filename>mplayer</filename>. You can use any mplayer commands and even
|
|
pass more than one command by separating them with <literal>\n</literal>.
|
|
Don't forget to enable the repeat flag in <filename>.lircrc</filename> when
|
|
it make sense (seek, volume, etc). Here's an excerpt from my
|
|
<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 don't 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 allow you to build simple frontend to
|
|
<application>MPlayer</application>. When enabled (with the
|
|
<option>-slave</option> option) <application>MPlayer</application> will
|
|
read commands separated by new line (\n) from stdin.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="streaming">
|
|
<title>Streaming from network or pipes</title>
|
|
|
|
<para>
|
|
<application>MPlayer</application> can play files from network, using the
|
|
HTTP, FTP, MMS or RTSP/RTP protocol.
|
|
</para>
|
|
|
|
<para>
|
|
Playing goes by simply using adding the URL to the command line.
|
|
<application>MPlayer</application> also honors the
|
|
<envar>http_proxy</envar> environment variable, and uses proxy if
|
|
available. Proxy usage can also be forced:
|
|
<screen>mplayer <replaceable>http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf</replaceable></screen>
|
|
</para>
|
|
|
|
<para>
|
|
<application>MPlayer</application> can read from stdin
|
|
(<emphasis>not</emphasis> named pipes). This can be for example used to
|
|
play from FTP:
|
|
<screen>wget <replaceable>ftp://micorsops.com/something.avi</replaceable> -O - | mplayer -</screen>
|
|
</para>
|
|
|
|
<note><para>
|
|
Note: it's also recommended to enable <option>-cache</option> when playback from network:
|
|
<screen>wget <replaceable>ftp://micorsops.com/something.avi</replaceable> -O - | mplayer -cache 8192 -</screen>
|
|
</para></note>
|
|
</sect1>
|
|
|
|
<sect1 id="mpst" xreflabel="Remote streams">
|
|
<title>Remote streams</title>
|
|
|
|
<para>
|
|
Remote streams allow you to access most <application>MPlayer</application>
|
|
stream type from a remote host. The main purpose of this feature is to make
|
|
it possible to directly use the CD or DVD drive of another computer on the
|
|
network (provided you have the required bandwidth). On the downside some
|
|
stream type (currently TV and MF) are not usable remotely because they are
|
|
implemented at the demuxer level. It's sad for MF but TV stream would anyway
|
|
require an insane amount of bandwidth.
|
|
</para>
|
|
|
|
<sect2 id="compile_mpst_server">
|
|
<title>Compiling the server</title>
|
|
<para>
|
|
After having compiled <application>MPlayer</application> go to the
|
|
<filename>TOOLS/netstream</filename> directory and enter
|
|
<application>make</application> to build the server binary.
|
|
You can then copy the <application>netstream</application> binary
|
|
to the right place on your system (usually
|
|
<filename class="directory">/usr/local/bin</filename> on Linux).
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="use_mpst">
|
|
<title>Using remote streams</title>
|
|
<para>
|
|
First you have to start the server on the computer you intend to remotely
|
|
access. Currently the server is very basic and doesn't have any commands
|
|
line arguments so just enter <filename>netstream</filename>. Now you can
|
|
for example play the second track of a VCD on the server with :
|
|
<screen>
|
|
mplayer -cache 5000 <replaceable>mpst://servername/vcd://2</replaceable>
|
|
</screen>
|
|
You can also access files on this server :
|
|
<screen>
|
|
mplayer -cache 5000 <replaceable>mpst://servername//usr/local/movies/lol.avi</replaceable>
|
|
</screen>
|
|
Note that paths which aren't starting with a / will be relative to
|
|
the directory where the server is running. The <option>-cache</option> option is not
|
|
needed but highly recommended.
|
|
</para>
|
|
|
|
<para>
|
|
Be aware that currently the server is not secure at all. So don't complain
|
|
about the numerous exploits which are possible through this. Instead send
|
|
some (good) patch to make it better or start writing your own server.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="edl" xreflabel="Edit Decision Lists (EDL)">
|
|
<title>Edit Decision Lists (EDL)</title>
|
|
|
|
<para>
|
|
The edit decision list (EDL) system allows you to automatically skip
|
|
or mute sections of videos during playback, based on a movie specific
|
|
EDL configuration file.
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for those who may want to watch a film in "family-friendly"
|
|
mode. You can cut out any violence, profanity, Jar-Jar Binks .. from a movie
|
|
according to your own personal preferences. Aside from this, there are other
|
|
uses, like automatically skipping over commercials in video files you watch.
|
|
</para>
|
|
|
|
<para>
|
|
The EDL file format is pretty bare-bones. Once the EDL system has reached a
|
|
certain level of maturity, an XML-based file format will probably be implemented
|
|
(keeping backwards compatibility with previous EDL formats).
|
|
</para>
|
|
|
|
<para>
|
|
The maximum number of EDL entries for the current incarnation of EDL is 1000.
|
|
If you happen to need more, change the <systemitem>#define MAX_EDL_ENTRIES</systemitem>
|
|
in the <filename>edl.h</filename> file.
|
|
</para>
|
|
|
|
<sect2 id="edl_using">
|
|
<title>Using an EDL file</title>
|
|
<para>
|
|
Include the <option>-edl <filename></option> flag when you run
|
|
<application>MPlayer</application>, with the name of the EDL file you
|
|
want applied to the video.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="edl_making">
|
|
<title>Making an EDL file</title>
|
|
<para>
|
|
The current EDL file format is:
|
|
<programlisting>
|
|
[begin second] [end second] [action]
|
|
</programlisting>
|
|
Where the seconds are floating-point numbers and the action is either
|
|
<literal>0</literal> for skip or <literal>1</literal> for mute. Example:
|
|
<programlisting>
|
|
5.3 7.1 0
|
|
15 16.7 1
|
|
420 422 0
|
|
</programlisting>
|
|
This will skip from second 5.3 to second 7.1 of the video, then mute at
|
|
15 seconds, unmute at 16.7 seconds and skip from second 420 to second 422
|
|
of the video. These actions will be performed when the playback timer
|
|
reaches the times given in the file.
|
|
</para>
|
|
|
|
<para>
|
|
To create an EDL file to work from, use the <option>-edlout <filename></option>
|
|
flag. During playback, when you want to mark the previous two seconds to skip over,
|
|
hit <keycap>i</keycap>. A corresponding entry will be written to the file for
|
|
that time. You can then go back and fine-tune the generated EDL file.
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
</chapter>
|