Mercurial > mplayer.hg
changeset 31885:79f6bdd5e1e2
Add copy of English usage.xml file to Chinese translation.
This will be useful to merge other parts of the Chinese translation into it.
author | diego |
---|---|
date | Tue, 17 Aug 2010 11:39:37 +0000 |
parents | 907539edd483 |
children | 1b924c910cfe |
files | DOCS/xml/zh_CN/usage.xml |
diffstat | 1 files changed, 1123 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/zh_CN/usage.xml Tue Aug 17 11:39:37 2010 +0000 @@ -0,0 +1,1123 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- $Revision: 31940 $ --> +<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-surround"> +<title>Surround/Multichannel playback</title> + +<sect2 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> +</sect2> + + +<sect2 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> +</sect2> + + +<sect2 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, or +if you are passing audio over HDMI. +</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> +</sect2> + + +<sect2 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> +</sect2> + + +<sect2 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> +</sect2> + + +<sect2 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> +</sect2> + + +<sect2 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> +</sect2> +</sect1> + +<!-- ********** --> + +<sect1 id="advaudio-channels"> +<title>Channel manipulation</title> + +<sect2 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> +</sect2> + + +<sect2 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> +</sect2> + + +<sect2 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> +</sect2> + + +<sect2 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 input channel. Each suboption + within a set corresponds to an output 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> +</sect2> +</sect1> + +<!-- ********** --> + +<sect1 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> +</sect1> +</chapter>