mirror of https://github.com/mpv-player/mpv
1127 lines
38 KiB
XML
1127 lines
38 KiB
XML
<?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>
|
|
<application>MPlayer</application> can display subtitles along with movie files.
|
|
Currently the following formats are supported:
|
|
<itemizedlist>
|
|
<listitem><para>VOBsub</para></listitem>
|
|
<listitem><para>OGM</para></listitem>
|
|
<listitem><para>CC (closed caption)</para></listitem>
|
|
<listitem><para>MicroDVD</para></listitem>
|
|
<listitem><para>SubRip</para></listitem>
|
|
<listitem><para>SubViewer</para></listitem>
|
|
<listitem><para>Sami</para></listitem>
|
|
<listitem><para>VPlayer</para></listitem>
|
|
<listitem><para>RT</para></listitem>
|
|
<listitem><para>SSA</para></listitem>
|
|
<listitem><para>PJS (Phoenix Japanimation Society)</para></listitem>
|
|
<listitem><para>MPsub</para></listitem>
|
|
<listitem><para>AQTitle</para></listitem>
|
|
<listitem><para>
|
|
<ulink url="http://unicorn.us.com/jacosub/">JACOsub</ulink>
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
<application>MPlayer</application> can dump the previously listed subtitle
|
|
formats (<emphasis role="bold">except the three first</emphasis>) into the
|
|
following destination formats, with the given options:
|
|
<itemizedlist>
|
|
<listitem><para>MPsub: <option>-dumpmpsub</option></para></listitem>
|
|
<listitem><para>SubRip: <option>-dumpsrtsub</option></para></listitem>
|
|
<listitem><para>MicroDVD: <option>-dumpmicrodvdsub</option></para></listitem>
|
|
<listitem><para>JACOsub: <option>-dumpjacosub</option></para></listitem>
|
|
<listitem><para>Sami: <option>-dumpsami</option></para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
<application>MEncoder</application> can dump DVD subtitles into
|
|
<link linkend="menc-feat-extractsub">VOBsub</link> format.
|
|
</para>
|
|
|
|
<para>
|
|
The command line options differ slightly for the different formats:
|
|
</para>
|
|
|
|
<formalpara>
|
|
<title>VOBsub subtitles</title>
|
|
<para>
|
|
VOBsub subtitles consist of a big (some megabytes) <filename>.SUB</filename>
|
|
file, and optional <filename>.IDX</filename> and/or <filename>.IFO</filename>
|
|
files. If you have files like
|
|
<filename><replaceable>sample.sub</replaceable></filename>,
|
|
<filename><replaceable>sample.ifo</replaceable></filename> (optional),
|
|
<filename><replaceable>sample.idx</replaceable></filename> - you have to pass
|
|
<application>MPlayer</application> the <option>-vobsub sample
|
|
[-vobsubid <replaceable>id</replaceable>]</option> options
|
|
(full path optional). The <option>-vobsubid</option> option is like
|
|
<option>-sid</option> for DVDs, you can choose between subtitle tracks
|
|
(languages) with it. In case that <option>-vobsubid</option> is omitted,
|
|
<application>MPlayer</application> will try to use the languages given by the
|
|
<option>-slang</option> option and fall back to the
|
|
<systemitem>langidx</systemitem> in the <filename>.IDX</filename> file to set
|
|
the subtitle language. If it fails, there will be no subtitles.
|
|
</para>
|
|
</formalpara>
|
|
|
|
<formalpara>
|
|
<title>Other subtitles</title>
|
|
<para>
|
|
The other formats consist of a single text file containing timing,
|
|
placement and text information. Usage: If you have a file like
|
|
<filename><replaceable>sample.txt</replaceable></filename>,
|
|
you have to pass the option <option>-sub
|
|
<replaceable>sample.txt</replaceable></option> (full path optional).
|
|
</para>
|
|
</formalpara>
|
|
|
|
<variablelist>
|
|
<title>Adjusting subtitle timing and placement:</title>
|
|
<varlistentry>
|
|
<term><option>-subdelay <replaceable>sec</replaceable></option></term>
|
|
<listitem><para>
|
|
Delays subtitles by <option><replaceable>sec</replaceable></option> seconds.
|
|
Can be negative. The value is added to movie's time position counter.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-subfps <replaceable>RATE</replaceable></option></term>
|
|
<listitem><para>
|
|
Specify frame/sec rate of subtitle file (float number).
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>-subpos <replaceable>0-100</replaceable></option></term>
|
|
<listitem><para>
|
|
Specify the position of subtitles.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>
|
|
If you experience a growing delay between the movie and the subtitles when
|
|
using a MicroDVD subtitle file, most likely the framerate of the movie and
|
|
the subtitle file are different. Please note that the MicroDVD subtitle
|
|
format uses absolute frame numbers for its timing, but there is no fps
|
|
information in it, and therefore the <option>-subfps</option> option should
|
|
be used with this format. If you like to solve this problem permanently,
|
|
you have to manually convert the subtitle file framerate.
|
|
<application>MPlayer</application> can do this
|
|
conversion for you:
|
|
|
|
<screen>
|
|
mplayer -dumpmicrodvdsub -fps <replaceable>subtitles_fps</replaceable> -subfps <replaceable>avi_fps</replaceable> \
|
|
-sub <replaceable>subtitle_filename</replaceable> <replaceable>dummy.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
About DVD subtitles, read the <link linkend="dvd">DVD</link> section.
|
|
</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 run with the
|
|
<option>-slave</option> option <application>MPlayer</application> will
|
|
read commands separated by a newline (\n) from stdin.
|
|
The commands are documented in the
|
|
<ulink url="../../tech/slave.txt">slave.txt</ulink> file.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
|
|
|
|
<sect1 id="streaming">
|
|
<title>Streaming from network or pipes</title>
|
|
|
|
<para>
|
|
<application>MPlayer</application> can play files from the network, using the
|
|
HTTP, FTP, MMS or RTSP/RTP protocol.
|
|
</para>
|
|
|
|
<para>
|
|
Playing works simply by passing the URL on the command line.
|
|
<application>MPlayer</application> honors the <envar>http_proxy</envar>
|
|
environment variable, using a proxy if available. Proxies 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 for example be used to
|
|
play from FTP:
|
|
<screen>
|
|
wget <replaceable>ftp://micorsops.com/something.avi</replaceable> -O - | mplayer -
|
|
</screen>
|
|
</para>
|
|
|
|
<note><para>
|
|
It is also recommended to enable <option>-cache</option> when playing
|
|
from the network:
|
|
<screen>
|
|
wget <replaceable>ftp://micorsops.com/something.avi</replaceable> -O - | mplayer -cache 8192 -
|
|
</screen>
|
|
</para></note>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect2 id="streaming-save">
|
|
<title>Saving streamed content</title>
|
|
|
|
<para>
|
|
Once you succeed in making <application>MPlayer</application> play
|
|
your favorite internet stream, you can use the option
|
|
<option>-dumpstream</option> to save the stream into a file.
|
|
For example:
|
|
<screen>
|
|
mplayer <replaceable>http://217.71.208.37:8006</replaceable> -dumpstream -dumpfile <replaceable>stream.asf</replaceable>
|
|
</screen>
|
|
will save the content streamed from
|
|
<replaceable>http://217.71.208.37:8006</replaceable> into
|
|
<replaceable>stream.asf</replaceable>.
|
|
This works with all protocols supported by
|
|
<application>MPlayer</application>, like MMS, RTSP, and so forth.
|
|
</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. There is one command per line that
|
|
indicates what to do (skip/mute) and when to do it (using pts in seconds).
|
|
</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, just hit <keycap>i</keycap> to
|
|
mark the beginning and end of a skip block.
|
|
A corresponding entry will be written to the file for that time.
|
|
You can then go back and fine-tune the generated EDL file as well as
|
|
change the default operation which is to skip the block described by each line.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
|
|
|
|
<sect1 id="advaudio" xreflabel="Advanced Audio">
|
|
<title>Advanced audio</title>
|
|
|
|
<sect2 id="advaudio-surround">
|
|
<title>Surround/Multichannel playback</title>
|
|
|
|
<sect3 id="advaudio-surround-DVD">
|
|
<title>DVDs</title>
|
|
|
|
<para>
|
|
Most DVDs and many other files include surround sound.
|
|
<application>MPlayer</application> supports surround playback but does not
|
|
enable it by default because stereo equipment is by far more common. To play a
|
|
file that has more than two channels of audio use <option>-channels</option>.
|
|
For example, to play a DVD with 5.1 audio:
|
|
<screen>mplayer dvd://1 -channels 6</screen>
|
|
Note that despite the name "5.1" there are actually six discrete channels.
|
|
If you have surround sound equipment it is safe to put the
|
|
<option>channels</option> option in your <application>MPlayer</application>
|
|
configuration file <filename>~/.mplayer/config</filename>. For example, to make
|
|
quadraphonic playback the default, add this line:
|
|
<programlisting>channels=4</programlisting>
|
|
<application>MPlayer</application> will then output audio in four channels when
|
|
all four channels are available.
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="advaudio-surround-stereoinfour">
|
|
<title>Playing stereo files to four speakers</title>
|
|
|
|
<para>
|
|
<application>MPlayer</application> does not duplicate any channels by default,
|
|
and neither do most audio drivers. If you want to do that manually:
|
|
<screen>mplayer <replaceable>filename</replaceable> -af channels=2:2:0:1:0:0</screen>
|
|
See the section on
|
|
<link linkend="advaudio-channels-copying">channel copying</link> for an
|
|
explanation.
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="advaudio-surround-passthrough">
|
|
<title>AC-3/DTS Passthrough</title>
|
|
|
|
<para>
|
|
DVDs usually have surround audio encoded in AC-3 (Dolby Digital) or DTS
|
|
(Digital Theater System) format. Some modern audio equipment is capable of
|
|
decoding these formats internally. <application>MPlayer</application> can be
|
|
configured to relay the audio data without decoding it. This will only work if
|
|
you have a S/PDIF (Sony/Philips Digital Interface) jack in your sound card.
|
|
</para>
|
|
|
|
<para>
|
|
If your audio equipment can decode both AC-3 and DTS, you can safely enable
|
|
passthrough for both formats. Otherwise, enable passthrough for only the format
|
|
your equipment supports.
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<title>To enable passthrough on the command line:</title>
|
|
<listitem><para>
|
|
For AC-3 only, use <option>-ac hwac3</option>
|
|
</para></listitem>
|
|
<listitem><para>
|
|
For DTS only, use <option>-ac hwdts</option>
|
|
</para></listitem>
|
|
<listitem><para>
|
|
For both AC-3 and DTS, use <option>-afm hwac3</option>
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<itemizedlist>
|
|
<title>To enable passthrough in the <application>MPlayer</application>
|
|
configuration file: </title>
|
|
<listitem><para>
|
|
For AC-3 only, use <option>ac=hwac3,</option>
|
|
</para></listitem>
|
|
<listitem><para>
|
|
For DTS only, use <option>ac=hwdts,</option>
|
|
</para></listitem>
|
|
<listitem><para>
|
|
For both AC-3 and DTS, use <option>afm=hwac3</option>
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Note that there is a comma (",") at the end of
|
|
<option>ac=hwac3,</option> and <option>ac=hwdts,</option>. This will make
|
|
<application>MPlayer</application> fall back on the codecs it normally uses when
|
|
playing a file that does not have AC-3 or DTS audio.
|
|
<option>afm=hwac3</option> does not need a comma;
|
|
<application>MPlayer</application> will fall back anyway when an audio family
|
|
is specified.
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="hwmpa-surround-passthrough">
|
|
<title>MPEG audio Passthrough</title>
|
|
|
|
<para>
|
|
Digital TV transmissions (such as DVB and ATSC) and some DVDs usually have
|
|
MPEG audio streams (in particular MP2).
|
|
Some MPEG hardware decoders such as full-featured DVB cards and DXR2
|
|
adapters can natively decode this format.
|
|
<application>MPlayer</application> can be configured to relay the audio data
|
|
without decoding it.
|
|
</para>
|
|
|
|
<para>
|
|
To use this codec:
|
|
<screen> mplayer -ac hwmpa </screen>
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="advaudio-surround-matrix">
|
|
<title>Matrix-encoded audio</title>
|
|
|
|
<para>
|
|
<emphasis>***TODO***</emphasis>
|
|
</para>
|
|
|
|
<para>
|
|
This section has yet to be written and cannot be completed until somebody
|
|
provides sample files for us to test. If you have any matrix-encoded audio
|
|
files, know where to find some, or have any information that could be helpful,
|
|
please send a message to the
|
|
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-docs">MPlayer-DOCS</ulink>
|
|
mailing list. Put "[matrix-encoded audio]" in the subject line.
|
|
</para>
|
|
|
|
<para>
|
|
If no files or further information are forthcoming this section will be dropped.
|
|
</para>
|
|
|
|
<para>
|
|
Good links:
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
<ulink url="http://electronics.howstuffworks.com/surround-sound5.htm">http://electronics.howstuffworks.com/surround-sound5.htm</ulink>
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<ulink url="http://www.extremetech.com/article2/0,1697,1016875,00.asp">http://www.extremetech.com/article2/0,1697,1016875,00.asp</ulink>
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="advaudio-surround-hrtf">
|
|
<title>Surround emulation in headphones</title>
|
|
|
|
<para>
|
|
<application>MPlayer</application> includes an HRTF (Head Related Transfer
|
|
Function) filter based on an
|
|
<ulink url="http://sound.media.mit.edu/KEMAR.html">MIT project</ulink>
|
|
wherein measurements were taken from microphones mounted on a dummy human head.
|
|
</para>
|
|
|
|
<para>
|
|
Although it is not possible to exactly imitate a surround system,
|
|
<application>MPlayer</application>'s HRTF filter does provide more spatially
|
|
immersive audio in 2-channel headphones. Regular downmixing simply combines all
|
|
the channels into two; besides combining the channels, <option>hrtf</option>
|
|
generates subtle echoes, increases the stereo separation slightly, and alters
|
|
the volume of some frequencies. Whether HRTF sounds better may be dependent on
|
|
the source audio and a matter of personal taste, but it is definitely worth
|
|
trying out.
|
|
</para>
|
|
|
|
<para>
|
|
To play a DVD with HRTF:
|
|
<screen>mplayer dvd://1 -channels 6 -af hrtf</screen>
|
|
</para>
|
|
|
|
<para>
|
|
<option>hrtf</option> only works well with 5 or 6 channels. Also,
|
|
<option>hrtf</option> requires 48 kHz audio. DVD audio is already 48 kHz, but if
|
|
you have a file with a different sampling rate that you want to play using
|
|
<option>hrtf</option> you must resample it:
|
|
<screen>
|
|
mplayer <replaceable>filename</replaceable> -channels 6 -af resample=48000,hrtf
|
|
</screen>
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="advaudio-surround-troubleshooting">
|
|
<title>Troubleshooting</title>
|
|
|
|
<para>
|
|
If you do not hear any sound out of your surround channels, check your mixer
|
|
settings with a mixer program such as <application>alsamixer</application>;
|
|
audio outputs are often muted and set to zero volume by default.
|
|
</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect2 id="advaudio-channels">
|
|
<title>Channel manipulation</title>
|
|
|
|
<sect3 id="advaudio-channels-general">
|
|
<title>General information</title>
|
|
|
|
<para>
|
|
Unfortunately, there is no standard for how channels are ordered. The orders
|
|
listed below are those of AC-3 and are fairly typical; try them and see if your
|
|
source matches. Channels are numbered starting with 0.
|
|
|
|
<orderedlist spacing="compact">
|
|
<title>mono</title>
|
|
<listitem override="0"><para>center</para></listitem>
|
|
</orderedlist>
|
|
|
|
<orderedlist spacing="compact">
|
|
<title>stereo</title>
|
|
<listitem override="0"><para>left</para></listitem>
|
|
<listitem><para>right</para></listitem>
|
|
</orderedlist>
|
|
|
|
<orderedlist spacing="compact">
|
|
<title>quadraphonic</title>
|
|
<listitem override="0"><para>left front</para></listitem>
|
|
<listitem><para>right front</para></listitem>
|
|
<listitem><para>left rear</para></listitem>
|
|
<listitem><para>right rear</para></listitem>
|
|
</orderedlist>
|
|
|
|
<orderedlist spacing="compact">
|
|
<title>surround 4.0</title>
|
|
<listitem override="0"><para>left front</para></listitem>
|
|
<listitem><para>right front</para></listitem>
|
|
<listitem><para>center rear</para></listitem>
|
|
<listitem><para>center front</para></listitem>
|
|
</orderedlist>
|
|
|
|
<orderedlist spacing="compact">
|
|
<title>surround 5.0</title>
|
|
<listitem override="0"><para>left front</para></listitem>
|
|
<listitem><para>right front</para></listitem>
|
|
<listitem><para>left rear</para></listitem>
|
|
<listitem><para>right rear</para></listitem>
|
|
<listitem><para>center front</para></listitem>
|
|
</orderedlist>
|
|
|
|
<orderedlist spacing="compact">
|
|
<title>surround 5.1</title>
|
|
<listitem override="0"><para>left front</para></listitem>
|
|
<listitem><para>right front</para></listitem>
|
|
<listitem><para>left rear</para></listitem>
|
|
<listitem><para>right rear</para></listitem>
|
|
<listitem><para>center front</para></listitem>
|
|
<listitem><para>subwoofer</para></listitem>
|
|
</orderedlist>
|
|
</para>
|
|
|
|
<para>
|
|
The <option>-channels</option> option is used to request the number of
|
|
channels from the audio decoder. Some audio codecs use the number of specified
|
|
channels to decide if downmixing the source is necessary. Note that this does
|
|
not always affect the number of output channels. For example, using
|
|
<option>-channels 4</option> to play a stereo MP3 file will still result in
|
|
2-channel output since the MP3 codec will not produce the extra channels.
|
|
</para>
|
|
|
|
<para>
|
|
The <option>channels</option> audio filter can be used to create or remove
|
|
channels and is useful for controlling the number of channels sent to the sound
|
|
card. See the following sections for more information on channel manipulation.
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="advaudio-channels-mono">
|
|
<title>Playing mono with two speakers</title>
|
|
|
|
<para>
|
|
Mono sounds a lot better when played through two speakers - especially when
|
|
using headphones. Audio files that truly have one channel are automatically
|
|
played through two speakers; unfortunately, most files with mono sound are
|
|
actually encoded as stereo with one channel silent. The easiest and most
|
|
foolproof way to make both speakers output the same audio is the
|
|
<option>extrastereo</option> filter:
|
|
<screen>mplayer <replaceable>filename</replaceable> -af extrastereo=0</screen>
|
|
</para>
|
|
|
|
<para>
|
|
This averages both channels, resulting in both channels being half as loud as
|
|
the original. The next sections have examples of other ways to do this without a
|
|
volume decrease, but they are more complex and require different options
|
|
depending on which channel to keep. If you really need to maintain the volume,
|
|
it may be easier to experiment with the <option>volume</option> filter and find
|
|
the right value. For example:
|
|
<screen>
|
|
mplayer <replaceable>filename</replaceable> -af extrastereo=0,volume=5
|
|
</screen>
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="advaudio-channels-copying">
|
|
<title>Channel copying/moving</title>
|
|
|
|
<para>
|
|
The <option>channels</option> filter can move any or all channels.
|
|
Setting up all the suboptions for the <option>channels</option>
|
|
filter can be complicated and takes a little care.
|
|
|
|
<orderedlist spacing="compact">
|
|
<listitem><para>
|
|
Decide how many output channels you need. This is the first suboption.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Count how many channel moves you will do. This is the second suboption. Each
|
|
channel can be moved to several different channels at the same time, but keep
|
|
in mind that when a channel is moved (even if to only one destination) the
|
|
source channel will be empty unless another channel is moved into it. To copy
|
|
a channel, keeping the source the same, simply move the channel into both the
|
|
destination and the source. For example:
|
|
<programlisting>
|
|
channel 2 --> channel 3
|
|
channel 2 --> channel 2<!--
|
|
--></programlisting>
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Write out the channel copies as pairs of suboptions. Note that the first
|
|
channel is 0, the second is 1, etc. The order of these suboptions does not
|
|
matter as long as they are properly grouped into
|
|
<replaceable>source:destination</replaceable> pairs.
|
|
</para></listitem>
|
|
</orderedlist>
|
|
</para>
|
|
|
|
<bridgehead>Example: one channel in two speakers</bridgehead>
|
|
<para>
|
|
Here is an example of another way to play one channel in both speakers. Suppose
|
|
for this example that the left channel should be played and the right channel
|
|
discarded. Following the steps above:
|
|
<orderedlist>
|
|
<listitem><para>
|
|
In order to provide an output channel for each of the two speakers, the first
|
|
suboption must be "2".
|
|
</para></listitem>
|
|
<listitem><para>
|
|
The left channel needs to be moved to the right channel, and also must be
|
|
moved to itself so it won't be empty. This is a total of two moves, making
|
|
the second suboption "2" as well.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
To move the left channel (channel 0) into the right channel (channel 1), the
|
|
suboption pair is "0:1", "0:0" moves the left channel onto itself.
|
|
</para></listitem>
|
|
</orderedlist>
|
|
Putting that all together gives:
|
|
<screen>
|
|
mplayer <replaceable>filename</replaceable> -af channels=2:2:0:1:0:0
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
The advantage this example has over <option>extrastereo</option> is that the
|
|
volume of each output channel is the same as the input channel. The disadvantage
|
|
is that the suboptions must be changed to "2:2:1:0:1:1" when the desired audio
|
|
is in the right channel. Also, it is more difficult to remember and type.
|
|
</para>
|
|
|
|
<bridgehead>Example: left channel in two speakers shortcut</bridgehead>
|
|
<para>
|
|
There is actually a much easier way to use the <option>channels</option> filter
|
|
for playing the left channel in both speakers:
|
|
<screen>mplayer <replaceable>filename</replaceable> -af channels=1</screen>
|
|
The second channel is discarded and, with no further suboptions, the single
|
|
remaining channel is left alone. Sound card drivers automatically play
|
|
single-channel audio in both speakers. This only works when the desired channel
|
|
is on the left.
|
|
</para>
|
|
|
|
<bridgehead>Example: duplicate front channels to the rear</bridgehead>
|
|
<para>
|
|
Another common operation is to duplicate the front channels and play them back
|
|
on the rear speakers of a quadraphonic setup.
|
|
<orderedlist>
|
|
<listitem><para>
|
|
There should be four output channels. The first suboption is "4".
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Each of the two front channels needs to be moved to the corresponding rear
|
|
channel and also to itself. This is four moves, so the second suboption is "4".
|
|
</para></listitem>
|
|
<listitem><para>
|
|
The left front (channel 0) needs to moved to the left rear (channel 2):
|
|
"0:2". The left front also needs to be moved to itself: "0:0". The right
|
|
front (channel 1) is moved to the right rear (channel 3): "1:3", and also to
|
|
itself: "1:1".
|
|
</para></listitem>
|
|
</orderedlist>
|
|
Combine all the suboptions to get:
|
|
<screen>
|
|
mplayer <replaceable>filename</replaceable> -af channels=4:4:0:2:0:0:1:3:1:1
|
|
</screen>
|
|
</para>
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="advaudio-channels-mixing">
|
|
<title>Channel mixing</title>
|
|
|
|
<para>
|
|
The <option>pan</option> filter can mix channels in user-specified proportions.
|
|
This allows for everything the <option>channels</option> filter can do and
|
|
more. Unfortunately, the suboptions are much more complicated.
|
|
<orderedlist>
|
|
<listitem><para>
|
|
Decide how many channels to work with. You may need to specify this with
|
|
<option>-channels</option> and/or <option>-af channels</option>.
|
|
Later examples will show when to use which.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Decide how many channels to feed into <option>pan</option> (further decoded
|
|
channels are discarded). This is the first suboption, and it also controls how
|
|
many channels to employ for output.
|
|
</para></listitem>
|
|
<listitem>
|
|
<para>
|
|
The remaining suboptions specify how much of each channel gets mixed into each
|
|
other channel. This is the complicated part. To break the task down, split the
|
|
suboptions into several sets, one set for each output channel. Each suboption
|
|
within a set corresponds to an input channel. The number you specify will be
|
|
the percentage of the input channel that gets mixed into the output channel.
|
|
</para>
|
|
<para>
|
|
<option>pan</option> accepts values from 0 to 512, yielding 0% to 51200% of
|
|
the original volume. Be careful when using values greater than 1. Not only
|
|
can this give you very high volume, but if you exceed the sample range of
|
|
your sound card you may hear painful pops and clicks. If you want you can
|
|
follow <option>pan</option> with <option>,volume</option> to enable clipping,
|
|
but it is best to keep the values of <option>pan</option> low enough that
|
|
clipping is not necessary.
|
|
</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</para>
|
|
|
|
<bridgehead>Example: one channel in two speakers</bridgehead>
|
|
<para>
|
|
Here is yet another example for playing the left channel in two speakers. Follow
|
|
the steps above:
|
|
<orderedlist>
|
|
<listitem><para>
|
|
<option>pan</option> should output two channels, so the first
|
|
suboption is "2".
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Since we have two input channels, there will be two sets of suboptions.
|
|
Since there are also two output channels,
|
|
there will be two suboptions per set.
|
|
The left channel from the file should go with full volume to
|
|
the new left and the right channels.
|
|
Thus the first set of suboptions is "1:1".
|
|
The right channel should be discarded, so the second would be "0:0".
|
|
Any 0 values at the end can be left out, but for ease of
|
|
understanding we will keep them.
|
|
</para></listitem>
|
|
</orderedlist>
|
|
Putting those options together gives:
|
|
<screen>mplayer <replaceable>filename</replaceable> -af pan=2:1:1:0:0</screen>
|
|
If the right channel is desired instead of the left, the suboptions to
|
|
<option>pan</option> will be "2:0:0:1:1".
|
|
</para>
|
|
|
|
|
|
<bridgehead>Example: left channel in two speakers shortcut</bridgehead>
|
|
<para>
|
|
As with <option>channels</option>, there is a shortcut that only works with the
|
|
left channel:
|
|
<screen>mplayer <replaceable>filename</replaceable> -af pan=1:1</screen>
|
|
Since <option>pan</option> has only one channel of input (the other channel is
|
|
discarded), there is only one set with one suboption, which specifies that the
|
|
only channel gets 100% of itself.
|
|
</para>
|
|
|
|
<bridgehead>Example: downmixing 6-channel PCM</bridgehead>
|
|
<para>
|
|
<application>MPlayer</application>'s decoder for 6-channel PCM is not capable of
|
|
downmixing. Here is a way to downmix PCM using <option>pan</option>:
|
|
<orderedlist>
|
|
<listitem><para>
|
|
The number of output channels is 2, so the first suboption is "2".
|
|
</para></listitem>
|
|
<listitem><para>
|
|
With six input channels there will be six sets of options. Fortunately,
|
|
since we only care about the output of the first two channels, we only need to
|
|
make two sets; the remaining four sets can be omitted. Beware that not all
|
|
multichannel audio files have the same channel order! This example
|
|
demonstrates downmixing a file with the same channels as AC-3 5.1:
|
|
<programlisting>
|
|
0 - front left
|
|
1 - front right
|
|
2 - rear left
|
|
3 - rear right
|
|
4 - center front
|
|
5 - subwoofer<!--
|
|
--></programlisting>
|
|
The first set of suboptions lists the percentages of the original volume, in
|
|
order, which each output channel should receive from the
|
|
front left channel: "1:0".
|
|
The front right channel should go into the right output: "0:1".
|
|
The same for the rear channels: "1:0" and "0:1".
|
|
The center channel goes into both output channels with half volume:
|
|
"0.5:0.5", and the subwoofer goes into both with full volume: "1:1".
|
|
</para></listitem>
|
|
</orderedlist>
|
|
Put all that together, for:
|
|
<screen>
|
|
mplayer <replaceable>6-channel.wav</replaceable> -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1
|
|
</screen>
|
|
The percentages listed above are only a rough example. Feel free to tweak them.
|
|
</para>
|
|
|
|
<bridgehead>Example: Playing 5.1 audio on big speakers without a subwoofer</bridgehead>
|
|
<para>
|
|
If you have a huge pair of front speakers you may not want to waste any money on
|
|
buying a subwoofer for a complete 5.1 sound system. If you use
|
|
<option>-channels 5</option> to request that liba52 decode 5.1 audio in 5.0,
|
|
the subwoofer channel is simply discarded. If you want to distribute the
|
|
subwoofer channel yourself you need to downmix manually with
|
|
<option>pan</option>:
|
|
<orderedlist>
|
|
<listitem><para>
|
|
Since <option>pan</option> needs to examine all six channels, specify
|
|
<option>-channels 6</option> so liba52 decodes them all.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<option>pan</option> outputs to only five channels, the first suboption is 5.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Six input channels and five output channels means six sets of five suboptions.
|
|
<itemizedlist spacing="compact">
|
|
<listitem><para>
|
|
The left front channel only replicates onto itself:
|
|
"1:0:0:0:0"
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Same for the right front channel:
|
|
"0:1:0:0:0"
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Same for the left rear channel:
|
|
"0:0:1:0:0"
|
|
</para></listitem>
|
|
<listitem><para>
|
|
And also the same for the right rear channel:
|
|
"0:0:0:1:0"
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Center front, too:
|
|
"0:0:0:0:1"
|
|
</para></listitem>
|
|
<listitem><para>
|
|
And now we have to decide what to do with the subwoofer,
|
|
e.g. half into front right and front left:
|
|
"0.5:0.5:0:0:0"
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para></listitem>
|
|
</orderedlist>
|
|
Combine all those options to get:
|
|
<screen>
|
|
mplayer <replaceable>dvd://1</replaceable> -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0
|
|
</screen>
|
|
</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect2 id="advaudio-volume">
|
|
<title>Software Volume adjustment</title>
|
|
|
|
<para>
|
|
Some audio tracks are too quiet to be heard comfortably without amplification.
|
|
This becomes a problem when your audio equipment cannot amplify the signal for
|
|
you. The <option>-softvol</option> option directs
|
|
<application>MPlayer</application> to use an internal mixer. You can then use
|
|
the volume adjustment keys (by default <keycap>9</keycap> and
|
|
<keycap>0</keycap>) to reach much higher volume levels. Note that this does not
|
|
bypass your sound card's mixer; <application>MPlayer</application> only
|
|
amplifies the signal before sending it to your sound card.
|
|
The following example is a good start:
|
|
<screen>
|
|
mplayer <replaceable>quiet-file</replaceable> -softvol -softvol-max 300
|
|
</screen>
|
|
The <option>-softvol-max</option> option specifies the maximum allowable output
|
|
volume as a percentage of the
|
|
original volume. For example, <option>-softvol-max 200</option> would allow the
|
|
volume to be adjusted up to twice its original level.
|
|
It is safe to specify a large value with
|
|
<option>-softvol-max</option>; the higher volume will not be used until you
|
|
use the volume adjustment keys. The only disadvantage of a large value is that,
|
|
since <application>MPlayer</application> adjusts volume by a percentage of the
|
|
maximum, you will not have as precise control when using the volume adjustment
|
|
keys. Use a lower value with <option>-softvol-max</option> and/or specify
|
|
<option>-volstep 1</option> if you need higher precision.
|
|
</para>
|
|
|
|
<para>
|
|
The <option>-softvol</option> option works by controlling the
|
|
<option>volume</option> audio filter. If you want to play a file at a certain
|
|
volume from the beginning you can specify <option>volume</option> manually:
|
|
<screen>mplayer <replaceable>quiet-file</replaceable> -af volume=10</screen>
|
|
This will play the file with a ten decibel gain. Be careful when using the
|
|
<option>volume</option> filter - you could easily hurt your ears if you use
|
|
too high a value. Start low and work your way up gradually until you get a feel
|
|
for how much adjustment is required. Also, if you specify excessively high
|
|
values, <option>volume</option> may need to clip the signal to avoid sending
|
|
your sound card data that is outside the allowable range; this will result in
|
|
distorted audio.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|