mirror of https://github.com/mpv-player/mpv
1619 lines
57 KiB
XML
1619 lines
57 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="dvd">
|
|
<title>DVD playback</title>
|
|
|
|
<para>
|
|
For the complete list of available options, please read the man page.
|
|
The syntax to play a standard DVD is as follows:
|
|
<screen>
|
|
mplayer dvd://<replaceable><track></replaceable> [-dvd-device <replaceable><device></replaceable>]
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Example:
|
|
<screen>mplayer dvd://1 -dvd-device /dev/hdc</screen>
|
|
</para>
|
|
|
|
<para>
|
|
If you have compiled <application>MPlayer</application> with dvdnav support, the
|
|
syntax is the same, except that you need to use dvdnav:// instead of dvd://.
|
|
</para>
|
|
|
|
<para>
|
|
The default DVD device is <filename>/dev/dvd</filename>. If your setup
|
|
differs, make a symlink or specify the correct device on the command
|
|
line with the <option>-dvd-device</option> option.
|
|
</para>
|
|
|
|
<para>
|
|
<application>MPlayer</application> uses <systemitem>libdvdread</systemitem> and
|
|
<systemitem>libdvdcss</systemitem> for DVD playback and decryption. These two
|
|
libraries are contained in the
|
|
<application>MPlayer</application> source tree, you do not have
|
|
to install them separately. You can also use system-wide versions of the two
|
|
libraries, but this solution is not recommended, as it can result in bugs,
|
|
library incompatibilities and slower speed.
|
|
</para>
|
|
|
|
<note><para>
|
|
In case of DVD decoding problems, try disabling supermount, or any other such
|
|
facilities. Some RPC-2 drives may also require setting the region code.
|
|
</para></note>
|
|
|
|
<formalpara>
|
|
<title>DVD decryption</title>
|
|
<para>
|
|
DVD decryption is done by <systemitem>libdvdcss</systemitem>. The method
|
|
can be specified through the <envar>DVDCSS_METHOD</envar> environment
|
|
variable, see the manual page for details.
|
|
</para>
|
|
</formalpara>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect2 id="region_code">
|
|
<title>region code</title>
|
|
<para>
|
|
DVD drives nowadays come with a nonsensical restriction labeled
|
|
<ulink url="http://en.wikipedia.org/wiki/DVD_region_code">region code</ulink>.
|
|
This is a scheme to force DVD drives to only accept DVDs produced for one of
|
|
the six different regions into which the world was partitioned. How a group
|
|
of people can sit around a table, come up with such an idea and expect the
|
|
world of the 21st century to bow to their will is beyond anyone's guess.
|
|
</para>
|
|
|
|
<para>
|
|
Drives that enforce region settings through software only are also known as
|
|
RPC-1 drives, those that do it in hardware as RPC-2. RPC-2 drives allow
|
|
changing the region code five times before it remains fixed.
|
|
Under Linux you can use the
|
|
<ulink url="http://linvdr.org/projects/regionset/">regionset</ulink> tool
|
|
to set the region code of your DVD drive.
|
|
</para>
|
|
|
|
<para>
|
|
Thankfully, it is possible to convert RPC-2 drives into RPC-1 drives through
|
|
a firmware upgrade. Feed the model number of your DVD drive into your favorite
|
|
search engine or have a look at the forum and download sections of
|
|
<ulink url="http://www.rpc1.org/">"The firmware page"</ulink>.
|
|
While the usual caveats for firmware upgrades apply, experience with
|
|
getting rid of region code enforcement is generally positive.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
|
|
|
|
<sect1 id="vcd">
|
|
<title>VCD playback</title>
|
|
|
|
<para>
|
|
For the complete list of available options, please read the man page. The
|
|
Syntax for a standard Video CD (VCD) is as follows:
|
|
<screen>mplayer vcd://<replaceable><track></replaceable> [-cdrom-device <replaceable><device></replaceable>]</screen>
|
|
Example:
|
|
<screen>mplayer vcd://2 -cdrom-device /dev/hdc</screen>
|
|
The default VCD device is <filename>/dev/cdrom</filename>. If your setup
|
|
differs, make a symlink or specify the correct device on the command line
|
|
with the <option>-cdrom-device</option> option.
|
|
</para>
|
|
|
|
<note><para>
|
|
At least Plextor and some Toshiba SCSI CD-ROM drives have horrible performance
|
|
reading VCDs. This is because the CDROMREADRAW <systemitem>ioctl</systemitem>
|
|
is not fully implemented for these drives. If you have some knowledge of SCSI
|
|
programming, please <ulink url="../../tech/patches.txt">help us</ulink>
|
|
implement generic SCSI support for VCDs.
|
|
</para></note>
|
|
|
|
<para>
|
|
In the meantime you can extract data from VCDs with
|
|
<ulink url="http://ftp.ntut.edu.tw/ftp/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink>
|
|
and play the resulting file with <application>MPlayer</application>.
|
|
</para>
|
|
|
|
<formalpara>
|
|
<title>VCD structure</title>
|
|
<para>
|
|
A Video CD (VCD) is made up of CD-ROM XA sectors, i.e. CD-ROM mode 2
|
|
form 1 and 2 tracks:
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
The first track is in mode 2 form 2 format which means it uses L2
|
|
error correction. The track contains an ISO-9660 file system with 2048
|
|
bytes/sector. This file system contains VCD metadata information, as
|
|
well as still frames often used in menus. MPEG segments for menus can
|
|
also be stored in this first track, but the MPEGs have to be broken up
|
|
into a series of 150-sector chunks. The ISO-9660 file system may
|
|
contain other files or programs that are not essential for VCD
|
|
operation.
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
The second and remaining tracks are generally raw 2324 bytes/sector
|
|
MPEG (movie) tracks, containing one MPEG PS data packet per
|
|
sector. These are in mode 2 form 1 format, so they store more data per
|
|
sector at the loss of some error correction. It is also legal to have
|
|
CD-DA tracks in a VCD after the first track as well.
|
|
On some operating systems there is some trickery that goes on to make
|
|
these non-ISO-9660 tracks appear in a file system. On other operating
|
|
systems like GNU/Linux this is not the case (yet). Here the MPEG data
|
|
<emphasis role="bold">cannot be mounted</emphasis>. As most movies are
|
|
inside this kind of track, you should try <option>vcd://2</option>
|
|
first.
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
There exist VCD disks without the first track (single track and no file system
|
|
at all). They are still playable, but cannot be mounted.
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
The definition of the Video CD standard is called the
|
|
Philips "White Book" and it is not generally available online as it
|
|
must be purchased from Philips. More detailed information about Video
|
|
CDs can be found in the
|
|
<ulink url="http://www.vcdimager.org/pub/vcdimager/manuals/0.7/vcdimager.html#SEC4">vcdimager documentation</ulink>.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</formalpara>
|
|
|
|
<formalpara>
|
|
<title>About .DAT files</title>
|
|
<para>
|
|
The ~600 MB file visible on the first track of the mounted VCD is not a real
|
|
file! It is a so called ISO gateway, created to allow Windows to handle such
|
|
tracks (Windows does not allow raw device access to applications at all).
|
|
Under Linux you cannot copy or play such files (they contain garbage). Under
|
|
Windows it is possible as its iso9660 driver emulates the raw reading of
|
|
tracks in this file. To play a .DAT file you need the kernel driver which can
|
|
be found in the Linux version of PowerDVD. It has a modified iso9660 file system
|
|
(<filename>vcdfs/isofs-2.4.X.o</filename>) driver, which is able to emulate the
|
|
raw tracks through this shadow .DAT file. If you mount the disc using their
|
|
driver, you can copy and even play .DAT files with
|
|
<application>MPlayer</application>. But it will not
|
|
work with the standard iso9660 driver of the Linux kernel! Use
|
|
<option>vcd://</option> instead. Alternatives for VCD copying are the
|
|
new <ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> kernel
|
|
driver (not part of the official kernel) that shows CD sessions as image files
|
|
and <ulink url="http://cdrdao.sf.net/">cdrdao</ulink>, a bit-by-bit
|
|
CD grabbing/copying application.
|
|
</para>
|
|
</formalpara>
|
|
</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>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect1 id="tv-input" xreflabel="TV input">
|
|
<title>TV input</title>
|
|
|
|
<para>
|
|
This section is about how to enable <emphasis role="bold">watching/grabbing
|
|
from V4L compatible TV tuner</emphasis>. See the man page for a description
|
|
of TV options and keyboard controls.
|
|
</para>
|
|
|
|
<sect2 id="tv-tips">
|
|
<title>Usage tips</title>
|
|
|
|
<para>
|
|
The full listing of the options is available on the manual page.
|
|
Here are just a few tips:
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
Make sure your tuner works with another TV software in Linux, for
|
|
example <application>XawTV</application>.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Use the <option>channels</option> option. An example:
|
|
<screen>-tv channels=26-MTV1,23-TV2</screen>
|
|
Explanation: Using this option, only the 26 and 23 channels will be usable,
|
|
and there will be a nice OSD text upon channel switching, displaying the
|
|
channel's name. Spaces in the channel name must be replaced by the
|
|
"_" character.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Choose some sane image dimensions. The dimensions of the resulting image
|
|
should be divisible by 16.
|
|
</para></listitem>
|
|
<listitem>
|
|
<para>
|
|
If you capture the video with the vertical resolution higher than half
|
|
of the full resolution (i.e. 288 for PAL or 240 for NTSC), then the
|
|
'frames' you get will really be interleaved pairs of fields.
|
|
Depending on what you want to do with the video you may leave it in
|
|
this form, destructively deinterlace, or break the pairs apart into
|
|
individual fields.
|
|
</para>
|
|
<para>
|
|
Otherwise you'll get a movie which is distorted during
|
|
fast-motion scenes and the bitrate controller will be probably even unable
|
|
to retain the specified bitrate as the interlacing artifacts produce high
|
|
amount of detail and thus consume lot of bandwidth. You can enable
|
|
deinterlacing with <option>-vf pp=DEINT_TYPE</option>.
|
|
Usually <option>pp=lb</option> does a good job, but it can be matter of
|
|
personal preference.
|
|
See other deinterlacing algorithms in the manual and give it a try.
|
|
</para>
|
|
</listitem>
|
|
<listitem><para>
|
|
Crop out the dead space. When you capture the video, the areas at the edges
|
|
are usually black or contain some noise. These again consume lots of
|
|
unnecessary bandwidth. More precisely it's not the black areas themselves
|
|
but the sharp transitions between the black and the brighter video image
|
|
which do but that's not important for now. Before you start capturing,
|
|
adjust the arguments of the <option>crop</option> option so that all the
|
|
crap at the margins is cropped out. Again, don't forget to keep the resulting
|
|
dimensions sane.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Watch out for CPU load. It shouldn't cross the 90% boundary for most of the
|
|
time. If you have a large capture buffer, <application>MEncoder</application>
|
|
can survive an overload for few seconds but nothing more. It's better to
|
|
turn off the 3D OpenGL screensavers and similar stuff.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Don't mess with the system clock. <application>MEncoder</application> uses the
|
|
system clock for doing A/V sync. If you adjust the system clock (especially
|
|
backwards in time), <application>MEncoder</application> gets confused and you
|
|
will lose frames. This is an important issue if you are hooked to a network
|
|
and run some time synchronization software like NTP. You have to turn NTP
|
|
off during the capture process if you want to capture reliably.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Don't change the <option>outfmt</option> unless you know what you are doing
|
|
or your card/driver really doesn't support the default (YV12 colorspace).
|
|
In the older versions of <application>MPlayer</application>/
|
|
<application>MEncoder</application> it was necessary to specify the output
|
|
format. This issue should be fixed in the current releases and
|
|
<option>outfmt</option> isn't required anymore, and the default suits the
|
|
most purposes. For example, if you are capturing into DivX using
|
|
<systemitem class="library">libavcodec</systemitem> and specify
|
|
<option>outfmt=RGB24</option> in order to increase the quality of the captured
|
|
images, the captured image will be actually later converted back into YV12 so
|
|
the only thing you achieve is a massive waste of CPU power.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
There are several ways of capturing audio. You can grab the sound either using
|
|
your sound card via an external cable connection between video card and
|
|
line-in, or using the built-in ADC in the bt878 chip. In the latter case, you
|
|
have to load the <emphasis role="bold">btaudio</emphasis> driver. Read the
|
|
<filename>linux/Documentation/sound/btaudio</filename> file (in the kernel
|
|
tree, not <application>MPlayer</application>'s) for some instructions on using
|
|
this driver.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
If <application>MEncoder</application> cannot open the audio device, make
|
|
sure that it is really available. There can be some trouble with the sound
|
|
servers like aRts (KDE) or ESD (GNOME). If you have a full duplex sound card
|
|
(almost any decent card supports it today), and you are using KDE, try to
|
|
check the "full duplex" option in the sound server preference menu.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="tv-examples">
|
|
<title>Examples</title>
|
|
|
|
<informalexample><para>
|
|
Dummy output, to AAlib :)
|
|
<screen>mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://</screen>
|
|
</para></informalexample>
|
|
|
|
<informalexample><para>
|
|
Input from standard V4L:
|
|
<screen>
|
|
mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://
|
|
</screen>
|
|
</para></informalexample>
|
|
|
|
<informalexample><para>
|
|
A more sophisticated example. This makes <application>MEncoder</application>
|
|
capture the full PAL image, crop the margins, and deinterlace the picture
|
|
using a linear blend algorithm. Audio is compressed with a constant bitrate
|
|
of 64kbps, using LAME codec. This setup is suitable for capturing movies.
|
|
<screen>
|
|
mencoder -tv driver=v4l:width=768:height=576 -oac mp3lame -lameopts cbr:br=64\
|
|
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
|
|
-vf crop=720:544:24:16,pp=lb -o <replaceable>output.avi</replaceable> tv://
|
|
</screen>
|
|
</para></informalexample>
|
|
|
|
<informalexample><para>
|
|
This will additionally rescale the image to 384x288 and compresses the
|
|
video with the bitrate of 350kbps in high quality mode. The vqmax option
|
|
looses the quantizer and allows the video compressor to actually reach so
|
|
low bitrate even at the expense of the quality. This can be used for
|
|
capturing long TV series, where the video quality isn't so important.
|
|
<screen>
|
|
mencoder -tv driver=v4l:width=768:height=576 \
|
|
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
|
|
-oac mp3lame -lameopts cbr:br=48 -sws 1 -o <replaceable>output.avi</replaceable>\
|
|
-vf crop=720:540:24:18,pp=lb,scale=384:288 tv://
|
|
</screen>
|
|
It's also possible to specify smaller image dimensions in the
|
|
<option>-tv</option> option and omit the software scaling but this approach
|
|
uses the maximum available information and is a little more resistant to noise.
|
|
The bt8x8 chips can do the pixel averaging only in the horizontal direction due
|
|
to a hardware limitation.
|
|
</para></informalexample>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect1 id="tv-teletext">
|
|
<title>Teletext</title>
|
|
|
|
<para>
|
|
Teletext is currently available only in <application>MPlayer</application>
|
|
for v4l and v4l2 drivers.
|
|
</para>
|
|
|
|
<sect2 id="tv-teletext-implementation-notes">
|
|
<title>Implementation notes</title>
|
|
|
|
<para>
|
|
<application>MPlayer</application> supports regular text, graphics and navigation links.
|
|
Unfortunately, colored pages are not fully supported yet - all pages are shown as grayscaled.
|
|
Subtitle pages (also known as Closed Captions) are supported, too.
|
|
</para>
|
|
|
|
<para>
|
|
<application>MPlayer</application> starts caching all teletext pages upon
|
|
starting to receive TV input, so you do not need to wait until the requested page is loaded.
|
|
</para>
|
|
|
|
<para>
|
|
Note: Using teletext with <option>-vo xv</option> causes strange colors.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="tv-teletext-usage">
|
|
<title>Using teletext</title>
|
|
|
|
<para>
|
|
To enable teletext decoding you must specify the VBI device to get teletext data
|
|
from (usually <filename>/dev/vbi0</filename> for Linux). This can be done by specifying
|
|
<option>tdevice</option> in your configuration file, like shown below:
|
|
<screen>tv=tdevice=/dev/vbi0</screen>
|
|
</para>
|
|
|
|
<para>
|
|
You might need to specify the teletext language code for your country.
|
|
To list all available country codes use
|
|
<screen>tv=tdevice=/dev/vbi0:tlang=<replaceable>-1</replaceable></screen>
|
|
Here is an example for Russian:
|
|
<screen>tv=tdevice=/dev/vbi0:tlang=<replaceable>33</replaceable></screen>
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect1 id="radio">
|
|
<title>Radio</title>
|
|
|
|
<para>
|
|
This section is about how to enable listening to radio from
|
|
a V4L-compatible radio tuner. See the man page for a
|
|
description of radio options and keyboard controls.
|
|
</para>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect2 id="radio-tips">
|
|
<title>Usage tips</title>
|
|
|
|
<para>
|
|
The full listing of the options is available in the manual page.
|
|
Here are just a few tips:
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
Make sure your tuner works with another radio software in Linux, for
|
|
example <application>XawTV</application>.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
Use the <option>channels</option> option. An example:
|
|
<screen>-radio channels=104.4-Sibir,103.9-Maximum</screen>
|
|
Explanation: With this option, only the 104.4 and 103.9 radio stations
|
|
will be usable. There will be a nice OSD text upon channel switching,
|
|
displaying the channel's name. Spaces in the channel name must be
|
|
replaced by the "_" character.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
There are several ways of capturing audio. You can grab the sound either using
|
|
your sound card via an external cable connection between video card and
|
|
line-in, or using the built-in ADC in the saa7134 chip. In the latter case,
|
|
you have to load the <systemitem>saa7134-alsa</systemitem> or
|
|
<systemitem>saa7134-oss</systemitem> driver.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<application>MEncoder</application> cannot be used for audio capture,
|
|
because it requires a video stream to work. So your can either use
|
|
<application>arecord</application> from ALSA project or
|
|
use <option>-ao pcm:file=file.wav</option>. In the latter case you
|
|
will not hear any sound (unless you are using a line-in cable and
|
|
have switched line-in mute off).
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect2 id="radio-examples">
|
|
<title>Examples</title>
|
|
|
|
<informalexample><para>
|
|
Input from standard V4L (using line-in cable, capture switched off):
|
|
<screen>mplayer radio://104.4</screen>
|
|
</para></informalexample>
|
|
|
|
<informalexample><para>
|
|
Input from standard V4L (using line-in cable, capture switched off,
|
|
V4Lv1 interface):
|
|
<screen>mplayer -radio driver=v4l radio://104.4</screen>
|
|
</para></informalexample>
|
|
|
|
<informalexample><para>
|
|
Playing second channel from channel list:
|
|
<screen>mplayer -radio channels=104.4=Sibir,103.9=Maximm radio://2</screen>
|
|
</para></informalexample>
|
|
|
|
<informalexample>
|
|
<para>
|
|
Passing sound over the PCI bus from the radio card's internal ADC.
|
|
In this example the tuner is used as a second sound card
|
|
(ALSA device hw:1,0). For saa7134-based cards either the
|
|
<systemitem>saa7134-alsa</systemitem> or <systemitem>saa7134-oss</systemitem>
|
|
module must be loaded.
|
|
<screen>
|
|
mplayer -rawaudio rate=32000 radio://2/capture \
|
|
-radio adevice=hw=1.0:arate=32000:channels=104.4=Sibir,103.9=Maximm
|
|
</screen>
|
|
<note><para>
|
|
When using ALSA device names colons must be replaced
|
|
by equal signs, commas by periods.
|
|
</para></note>
|
|
</para>
|
|
</informalexample>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
</chapter>
|