mirror of
https://github.com/mpv-player/mpv
synced 2024-11-11 00:15:33 +01:00
English HTML documentation retired (moved to Attic/)
Published in 2001 October 8 (MPlayer 0.50), it has spent 2 years in this form, and has served its purpose very well. - Thanks to LGB for starting the conversion from text - Thanks to me for finishing it and doing further maintaining - Thanks to Diego Biurrun for stepping in and giving great help in enhancing and maintaining the documentation - Thanks to the countless other people for sending patches and suggestions Please drink 1 litre of cola in remembrance of the english HTML documentation. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11076 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
9dd5ee3afd
commit
8e0b9bf818
@ -1,291 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>Bug reporting - MPlayer - The Movie Player for Linux</TITLE>
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
|
||||
<H1><A NAME="appendix_b">Appendix B - How to report bugs</A></H1>
|
||||
|
||||
<P>Good bug reports are a very valuable contribution to the development of any
|
||||
software project. But just like writing good software, good problem reports
|
||||
involve some work. Please realize that most developers are extremely busy and
|
||||
receive obscene amounts of email. So while your feedback is crucial in
|
||||
improving MPlayer and very much appreciated, please understand that you
|
||||
have to provide <B>all</B> of the information we request and follow the
|
||||
instructions in this document closely.</P>
|
||||
|
||||
|
||||
<H2><A NAME="fix">B.1 How to fix bugs</A></H2>
|
||||
|
||||
<P>If you feel have the necessary skills you are invited to have a go at fixing
|
||||
the bug yourself. Or maybe you already did that? Please read
|
||||
<A HREF="../tech/patches.txt">this short document</A> to find out how to get
|
||||
your code included in MPlayer. The people on the
|
||||
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">mplayer-dev-eng</A>
|
||||
mailing list will assist you if you have questions.</P>
|
||||
|
||||
|
||||
<H2><A NAME="report">B.2 How to report bugs</A></H2>
|
||||
|
||||
<P>First of all please try the latest CVS version of MPlayer as your bug
|
||||
might already be fixed there. Development moves extremely fast, most problems
|
||||
in official releases are reported within days or even hours, so please use
|
||||
<B>only CVS</B> to report bugs. This includes binary packages of MPlayer.
|
||||
Please do not report bugs in one of the various RPM or Debian packages of
|
||||
MPlayer. CVS instructions can be found at the bottom of
|
||||
<A HREF="http://www.mplayerhq.hu/homepage/dload.html">this page</A> or in the
|
||||
README. If this did not help please refer to the
|
||||
<A HREF="documentation.html#known_bugs">list of known bugs</A> and the
|
||||
rest of the documentation. If your problem is not known or not solvable by our
|
||||
instructions, then please report the bug.</P>
|
||||
|
||||
<P>Please do not send bug reports privately to individual developers. This is
|
||||
community work and thus there might be several people interested in it.
|
||||
Sometimes other users already experienced your troubles and know how to
|
||||
circumvent a problem even if it is a bug in MPlayer code.</P>
|
||||
|
||||
<P>Please describe your problem in as much detail as possible. Do a little
|
||||
detective work to narrow down the circumstances under which the problem
|
||||
occurs. Does the bug only show up in certain situations? Is it specific to
|
||||
certain files or file types? Does it occur with only one codec or is it codec
|
||||
independent? Can you reproduce it with all output drivers? The more
|
||||
information you provide the better are our chances at fixing your problem.
|
||||
Please do not forget to also include the valuable information requested below,
|
||||
we will be unable to properly diagnose your problem otherwise.</P>
|
||||
|
||||
<P>An excellent and well written guide to asking questions in public forums is
|
||||
<A HREF="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</A>
|
||||
by <A HREF="http://www.catb.org/~esr/">Eric S. Raymond</A>. There is another
|
||||
called
|
||||
<A HREF="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report Bugs Effectively</A>
|
||||
by <A HREF="http://www.chiark.greenend.org.uk/~sgtatham/">Simon Tatham</A>. If
|
||||
you follow these guidelines you should be able to get help. But please
|
||||
understand that we all follow the mailing lists voluntarily in our free time.
|
||||
We are very busy and cannot guarantee that you will get a solution for your
|
||||
problem or even an answer.</P>
|
||||
|
||||
|
||||
<H2><A NAME="where">B.3 Where to report bugs</A></H2>
|
||||
|
||||
<P>Subscribe to the mplayer-users mailing list:<BR>
|
||||
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">http://mplayerhq.hu/mailman/listinfo/mplayer-users</A><BR>
|
||||
and send your bug report to:<BR>
|
||||
<A HREF="mailto:mplayer-users@mplayerhq.hu">mplayer-users@mplayerhq.hu</A></P>
|
||||
|
||||
<P>The language of this list is <B>English</B>. Please follow the standard
|
||||
<A HREF="http://www.ietf.org/rfc/rfc1855.txt">Netiquette Guidelines</A> and
|
||||
<B>do not send HTML mail</B> to any of our mailing lists. You will only get
|
||||
ignored or banned. If you do not know what HTML mail is or why it is evil,
|
||||
read this <A HREF="http://expita.com/nomime.html">fine document</A>. It
|
||||
explains all the details and has instructions for turning HTML off. Also note
|
||||
that we will not individually CC (carbon-copy) people so it is a good idea to
|
||||
subscribe to actually receive your answer.</P>
|
||||
|
||||
|
||||
<H2><A NAME="what">B.4 What to report</A></H2>
|
||||
|
||||
<P>You may need to include log, configuration or sample files in your bug
|
||||
report. If some of them are quite big then it is better to upload them to our
|
||||
<A HREF="ftp://mplayerhq.hu/MPlayer/incoming/">FTP server</A> in a compressed
|
||||
format (gzip and bzip2 preferred) and include only the path and file name in
|
||||
your bug report. Our mailing lists have a message size limit of 80k, if you
|
||||
have something bigger you have to compress or upload it.</P>
|
||||
|
||||
|
||||
<H3><A NAME="system">B.4.1 System Information</A></H3>
|
||||
|
||||
<UL>
|
||||
<LI>Your Linux distribution or operating system and version e.g.:
|
||||
<UL>
|
||||
<LI>Red Hat 7.1</LI>
|
||||
<LI>Slackware 7.0 + devel packs from 7.1 ...</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>kernel version:<BR>
|
||||
<CODE>uname -a</CODE></LI>
|
||||
<LI>libc version:<BR>
|
||||
<CODE>ls -l /lib/libc[.-]*</CODE></LI>
|
||||
<LI>X version:<BR>
|
||||
<CODE>X -version</CODE></LI>
|
||||
<LI>gcc and ld versions:<BR>
|
||||
<CODE>gcc -v<BR>
|
||||
ld -v</CODE></LI>
|
||||
<LI>binutils version:<BR>
|
||||
<CODE>as --version</CODE></LI>
|
||||
<LI>If you have problems with fullscreen mode:
|
||||
<UL>
|
||||
<LI>Window manager type and version</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>If you have problems with XVIDIX:
|
||||
<UL>
|
||||
<LI>X colour depth:<BR>
|
||||
<CODE>xdpyinfo | grep "depth of root"</CODE></LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>If only the GUI is buggy:
|
||||
<UL>
|
||||
<LI>GTK version</LI>
|
||||
<LI>GLIB version</LI>
|
||||
<LI>libpng version</LI>
|
||||
<LI>GUI situation in which the bug occurs</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<H3><A NAME="hardware">B.4.2 Hardware and drivers</A></H3>
|
||||
|
||||
<UL>
|
||||
<LI>CPU info (this works on Linux only):<BR>
|
||||
<CODE>cat /proc/cpuinfo</CODE></LI>
|
||||
<LI>Video card manufacturer and model, e.g.:
|
||||
<UL>
|
||||
<LI>ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM</LI>
|
||||
<LI>Matrox G400 DH 32MB SGRAM</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>Video driver type & version, e.g.:
|
||||
<UL>
|
||||
<LI>X built-in driver</LI>
|
||||
<LI>nVidia 0.9.623</LI>
|
||||
<LI>Utah-GLX CVS 2001-02-17</LI>
|
||||
<LI>DRI from X 4.0.3</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>Sound card type & driver, e.g.:
|
||||
<UL>
|
||||
<LI>Creative SBLive! Gold with OSS driver from oss.creative.com</LI>
|
||||
<LI>Creative SB16 with kernel OSS drivers</LI>
|
||||
<LI>GUS PnP with ALSA OSS emulation</LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI>If in doubt include <CODE>lspci -vv</CODE> output on Linux systems.</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<H3><A NAME="configure">B.4.3 Configure problems</A></H3>
|
||||
|
||||
<P>If you get errors while running <CODE>./configure</CODE>, or autodetection
|
||||
of something fails, read <CODE>configure.log</CODE>. You may find the answer
|
||||
there, for example multiple versions of the same library mixed on your system,
|
||||
or you forgot to install the development package (those with the -dev suffix). If you think there is a bug, include <CODE>configure.log</CODE> in your bug
|
||||
report.</P>
|
||||
|
||||
|
||||
<H3><A NAME="compilation">B.4.4 Compilation problems</A></H3>
|
||||
|
||||
Please include these files:
|
||||
|
||||
<UL>
|
||||
<LI><CODE>config.h</CODE></LI>
|
||||
<LI><CODE>config.mak</CODE></LI>
|
||||
</UL>
|
||||
|
||||
Only if compilation fails below one of these directories, include these files:
|
||||
|
||||
<UL>
|
||||
<LI><CODE>Gui/config.mak</CODE></LI>
|
||||
<LI><CODE>libvo/config.mak</CODE></LI>
|
||||
<LI><CODE>libao2/config.mak</CODE></LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<H3><A NAME="playback">B.4.5 Playback problems</A></H3>
|
||||
|
||||
<P>Please include the output of MPlayer at verbosity level 1, but
|
||||
remember to <B>not truncate the output</B> when you paste it into your mail.
|
||||
The developers need all of the messages to properly diagnose a problem. You
|
||||
can direct the output into a file like this:</P>
|
||||
|
||||
<P><CODE> mplayer -v [options] [filename] > mplayer.log 2>&1</CODE></P>
|
||||
|
||||
<P>If your problem is specific to one or more files, then please upload the
|
||||
offender(s) to:</P>
|
||||
|
||||
<P> <A HREF="ftp://mplayerhq.hu/MPlayer/incoming/">ftp://mplayerhq.hu/MPlayer/incoming/</A></P>
|
||||
|
||||
<P>Also upload a small text file having the same base name as your file
|
||||
with a .txt extension. Describe the problem you are having with the
|
||||
particular file there and include your email address as well as the output
|
||||
of MPlayer at verbosity level 1. Usually the first 1-5 MB of a file are
|
||||
enough to reproduce the problem, but to be sure we ask you to:</P>
|
||||
|
||||
<P><CODE> dd if=yourfile of=smallfile bs=1024k count=5</CODE></P>
|
||||
|
||||
<P>It will take the first five megabytes of <STRONG>'your-file'</STRONG> and
|
||||
write it to <STRONG>'small-file'</STRONG>. Then try again on this small file
|
||||
and if the bug still shows up your sample is sufficient for us. Please
|
||||
<STRONG>do not ever</STRONG> send such files via mail! Upload it, and send
|
||||
only the path/filename of the file on the FTP-server. If the file is
|
||||
accessible on the net, then sending the <STRONG>exact</STRONG> URL is
|
||||
sufficient.</P>
|
||||
|
||||
|
||||
<H3><A NAME="crash">B.4.6 Crashes</A></H3>
|
||||
|
||||
<P>You have to run MPlayer inside <CODE>gdb</CODE> and send us the complete
|
||||
output or if you have a core dump of the crash you can extract useful
|
||||
information from the <CODE>Core</CODE> file. Here's how:</P>
|
||||
|
||||
|
||||
<H4><A NAME="debug">B.4.6.1 How to conserve information about a reproducible crash</A></H4>
|
||||
|
||||
Recompile MPlayer with debugging code enabled:
|
||||
|
||||
<P><CODE> ./configure --enable-debug=3<BR>
|
||||
make</CODE></P>
|
||||
|
||||
and then run MPlayer within gdb using:
|
||||
|
||||
<P><CODE> gdb ./mplayer</CODE></P>
|
||||
|
||||
You are now within gdb. Type:
|
||||
|
||||
<P><CODE> run -v [options-to-mplayer] filename</code></P>
|
||||
|
||||
and reproduce your crash. As soon as you did it, gdb will
|
||||
return you to the command line prompt where you have to enter
|
||||
|
||||
<P><CODE> bt<BR>
|
||||
disass $pc-32 $pc+32<BR>
|
||||
info all-registers</CODE></P>
|
||||
|
||||
|
||||
<H4><A NAME="core">B.4.6.2 How to extract meaningful information from a core dump</A></H4>
|
||||
|
||||
<P>Create the following command file:</P>
|
||||
|
||||
<P><CODE>bt<BR>
|
||||
disass $pc-32 $pc+32<BR>
|
||||
info all-registers</CODE></P>
|
||||
|
||||
<P>Then simply execute this command:</P>
|
||||
|
||||
<P> <CODE>gdb mplayer --core=core -batch --command=command_file > mplayer.bug</CODE></P>
|
||||
|
||||
|
||||
<H2><A NAME="advusers">B.5 I know what I am doing...</A></H2>
|
||||
|
||||
<P>If you created a proper bug report following the steps above and you are
|
||||
confident it is a bug in MPlayer, not a compiler problem or broken
|
||||
file, you have already read the documentation and you could not find a
|
||||
solution, your sound drivers are OK, then you might want to subscribe to the
|
||||
mplayer-advusers list and send your bug report there to get a better and
|
||||
faster answer.<BR><BR>
|
||||
Please be advised that if you post newbie questions or questions answered
|
||||
in the manual there, you will be ignored or flamed instead of getting an
|
||||
appropriate answer.<BR>
|
||||
So do not flame us and subscribe to -advusers only if you really know
|
||||
what you are doing and feel like being an advanced MPlayer user or
|
||||
developer. If you meet these criteria it should not be difficult to find
|
||||
out how to subscribe...</P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,256 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>CD, DVD, VCD - MPlayer - The Movie Player for Linux</TITLE>
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
|
||||
<H2><A NAME="drives">4.1 CD/DVD drives</A></H2>
|
||||
|
||||
<P>Linux documentation excerpt:</P>
|
||||
|
||||
<P>Modern CD-ROM drives can attain very high head speeds, yet some CD-ROM drives
|
||||
are capable of running at reduced speeds. There are several reasons that might
|
||||
make you consider changing the speed of a CD-ROM drive:</P>
|
||||
|
||||
<UL>
|
||||
<LI>There have been reports of read errors at high speeds, especially
|
||||
with badly pressed CD-ROMs. Reducing the speed can prevent data loss under
|
||||
these circumstances.</LI>
|
||||
<LI>Many CD-ROM drives are annoyingly loud, a lower speed may reduce the
|
||||
noise.</LI>
|
||||
</UL>
|
||||
|
||||
<P>You can reduce the speed of IDE CD-ROM drives with <CODE>hdparm</CODE> or a
|
||||
program called <CODE>setcd</CODE>. It works like this:</P>
|
||||
|
||||
<P> <CODE>hdparm -E [speed] [cdrom device]</CODE></P>
|
||||
|
||||
<P> <CODE>setcd -x [speed] [cdrom device]</CODE></P>
|
||||
|
||||
<P>If you have root privileges the following command may also help:</P>
|
||||
|
||||
<P> <CODE>echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings</CODE></P>
|
||||
|
||||
<P>This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs.
|
||||
If you set it to too high, the drive will continuously spin up and down, and
|
||||
will dramatically decrease the performance.
|
||||
It is recommended that you also tune your CD-ROM drive with
|
||||
<CODE>hdparm</CODE>:</P>
|
||||
|
||||
<P> <CODE>hdparm -d1 -a8 -u1 (cdrom device)</CODE></P>
|
||||
|
||||
<P>This enables DMA access, read-ahead, and IRQ unmasking (read the
|
||||
<CODE>hdparm</CODE> man page for a detailed explanation).</P>
|
||||
|
||||
<P>Please refer to "<CODE>/proc/ide/[cdrom device]/settings</CODE>" for
|
||||
fine-tuning your CD-ROM.</P>
|
||||
|
||||
<P>SCSI drives do not have a uniform way of setting these parameters (Do you
|
||||
know one? Tell us!) There is a tool that works for
|
||||
<A HREF="http://das.ist.org/~georg/">Plextor SCSI drives</A>.</P>
|
||||
|
||||
<P>FreeBSD:</P>
|
||||
|
||||
<P> Speed: <CODE>cdcontrol [-f device] speed [speed]</CODE></P>
|
||||
<P> DMA: <CODE>sysctl hw.ata.atapi_dma=1</CODE></P>
|
||||
|
||||
|
||||
<H2><A NAME="dvd">4.2 DVD playback</A></H2>
|
||||
|
||||
<P>For the complete list of available options, please read the man page.
|
||||
The Syntax for a standard Digital Versatile Disc (DVD) is as follows:</P>
|
||||
|
||||
<P><CODE>mplayer dvd://<track> [-dvd-device <device>]</CODE></P>
|
||||
|
||||
<P>Example: <CODE>mplayer dvd://1 -dvd-device /dev/hdc</CODE></P>
|
||||
|
||||
<P>The default DVD device is <CODE>/dev/dvd</CODE>. If your setup differs,
|
||||
make a symlink or specify the correct device on the command line with the
|
||||
<CODE>-dvd-device</CODE> option.</P>
|
||||
|
||||
<H4>New-style DVD support (mpdvdkit2)</H4>
|
||||
|
||||
<P>MPlayer uses <CODE>libdvdread</CODE> and <CODE>libdvdcss</CODE> for
|
||||
DVD decryption and playback. These two libraries are contained in the
|
||||
<CODE>libmpdvdkit2/</CODE> subdirectory of the MPlayer source tree, you
|
||||
do not have to install them separately. We opted for this solution because
|
||||
we had to fix a <CODE>libdvdread</CODE> bug and apply a patch which adds
|
||||
<B>cracked CSS keys caching support</B> to <CODE>libdvdcss</CODE>. This results
|
||||
in a large speed increase because the keys do not have to be cracked every time
|
||||
before playing.</P>
|
||||
|
||||
<P>MPlayer can also use system-wide <CODE>libdvdread</CODE> and
|
||||
<CODE>libdvdcss</CODE> libraries, but this solution is <B>not</B> recommended,
|
||||
as it can result in bugs, library incompatibilities and slower speed.</P>
|
||||
|
||||
<H4>Old-style DVD support - OPTIONAL</H4>
|
||||
|
||||
<P>Useful if you want to play encoded VOBs from <B>hard disk</B>. Compile and
|
||||
install <B>libcss</B> 0.0.1 (not newer) for this (If MPlayer fails to
|
||||
detect it, use the <CODE>-csslib /path/to/libcss.so</CODE> option). To use it,
|
||||
you need to be root, use a suid root MPlayer binary or let MPlayer call the
|
||||
suid-root fibmap_mplayer wrapper program.</P>
|
||||
|
||||
<H4>DVD structure</H4>
|
||||
|
||||
<P>DVD disks have 2048 bytes per sector with ECC/CRC. They usually have an UDF
|
||||
filesystem on a single track, containing various files (small .IFO and .BUK
|
||||
files and big (1GB) .VOB files). They are real files and can be copied/played
|
||||
from the mounted filesystem of an unencrypted DVD.</P>
|
||||
|
||||
<P>The .IFO files contain the movie navigation information (chapter/title/angle
|
||||
map, language table, etc) and are needed to read and interpret the .VOB
|
||||
content (movie). The .BUK files are backups of them. They use <B>sectors</B>
|
||||
everywhere, so you need to use raw addressing of sectors of the disc to
|
||||
implement DVD navigation or decrypt the content.</P>
|
||||
|
||||
<P>The whole old-style DVD support with <CODE>libcss</CODE> therefore needs a mounted DVD
|
||||
filesystem and raw sector-based access to the device. Unfortunately you must
|
||||
(under Linux) be root to get the sector address of a file. You have the
|
||||
following choices:</P>
|
||||
|
||||
<UL>
|
||||
<LI>Be root or use a suid-root mplayer binary.</LI>
|
||||
<LI>Let MPlayer call the suid-root fibmap_mplayer wrapper program to access
|
||||
the DVD (used in the old-style DVD playback over <CODE>libcss</CODE>).</LI>
|
||||
<LI>Don't use the kernel's filesystem driver at all and reimplement it in
|
||||
userspace. <CODE>libdvdread</CODE> 0.9.x and <CODE>libmpdvdkit</CODE> do this (new-style DVD
|
||||
support). The kernel UDF filesystem driver is not needed as they already
|
||||
have their own builtin UDF filesystem driver. Also the DVD does not have to
|
||||
be mounted as only the raw sector-based access is used.</LI>
|
||||
</UL>
|
||||
|
||||
<P>Sometimes <CODE>/dev/dvd</CODE> cannot be read by users, so the <CODE>libdvdread</CODE>
|
||||
authors implemented an emulation layer which transfers sector addresses to
|
||||
filenames+offsets, to emulate raw access on top of a mounted filesystem
|
||||
or even on a hard disk.</P>
|
||||
|
||||
<P><CODE>libdvdread</CODE> even accepts the mountpoint instead of the device name for raw
|
||||
access and checks <CODE>/proc/mounts</CODE> to get the device name. It was
|
||||
developed for Solaris, where device names are dynamically allocated.</P>
|
||||
|
||||
<P>The default DVD device is <CODE>/dev/dvd</CODE>. If your setup differs,
|
||||
make a symlink, or specify the correct device on the command line with the
|
||||
<CODE>-dvd-device</CODE> option.</P>
|
||||
|
||||
<H4>DVD authentication</H4>
|
||||
|
||||
<P>The authentication and decryption method of the new-style DVD support is done
|
||||
using a patched <CODE>libdvdcss</CODE> (see above). The method can be specified through the
|
||||
environment variable <CODE>DVDCSS_METHOD</CODE>, which can be set to
|
||||
<CODE>key</CODE>, <CODE>disk</CODE> or <CODE>title</CODE>.</P>
|
||||
|
||||
<P>If nothing is specified it tries the following methods
|
||||
(default: key, title request):</P>
|
||||
|
||||
<OL>
|
||||
<LI><B>bus key:</B> This key is negotiated during authentication (a long mix
|
||||
of ioctls and various key exchanges, crypto stuff) and is used to encrypt
|
||||
the title and disk keys before sending them over the unprotected bus
|
||||
(to prevent eavesdropping). The bus key is needed to get and predecrypt the
|
||||
crypted disk key.</LI>
|
||||
<LI><B>cached key:</B> MPlayer looks for already cracked
|
||||
title keys which are stored in the <CODE>~/.mplayer/DVDKeys</CODE> directory
|
||||
(fast ;).</LI>
|
||||
<LI><B>key:</B> If no cached key is available, MPlayer tries to
|
||||
decrypt the disk key with a set of included player keys.</LI>
|
||||
<LI><B>disk:</B> If the key method fails (e.g. no included player keys),
|
||||
MPlayer will crack the disk key using a brute force algorithm.
|
||||
This process is CPU intensive and requires 64 MB of memory (16M 32Bit
|
||||
entries hash table) to store temporary data. This method should always
|
||||
work (slow).</LI>
|
||||
<LI><B>title request:</B> With the disk key MPlayer requests the crypted title
|
||||
keys, which are inside <I>hidden sectors</I> using <CODE>ioctl()</CODE>.
|
||||
The region protection of RPC-2 drives is performed in this step and may
|
||||
fail on such drives. If it succeeds, the title keys will be decrypted with
|
||||
the bus and disk key.</LI>
|
||||
<LI><B>title:</B> This method is used if the title request failed and does
|
||||
not rely on any key exchange with the DVD drive. It uses a crypto attack to
|
||||
guess the title key directly (by finding a repeating pattern in the
|
||||
decrypted VOB content and guessing that the plain text corresponding to the
|
||||
first encrypted bytes is a continuation of that pattern).
|
||||
The method is also known as "known plaintext attack" or "DeCSSPlus".
|
||||
In rare cases this may fail because there is not enough encrypted data on
|
||||
the disk to perform a statistical attack or because the key changes in the
|
||||
middle of a title. This method is the only way to decrypt a DVD stored on a
|
||||
hard disk or a DVD with the wrong region on an RPC2 drive (slow).</LI>
|
||||
</OL>
|
||||
|
||||
<P>RPC-1 DVD drives only protect region settings through software.
|
||||
RPC-2 drives have a hardware protection that allows 5 changes only. It might
|
||||
be needed/recommended to upgrade the firmware to RPC-1 if you have a RPC-2 DVD
|
||||
drive. Firmware upgrades can be found on this
|
||||
<A HREF="http://www.firmware-flash.com">firmware page</A>. If there is
|
||||
no firmware upgrade available for your device, use the
|
||||
<A HREF="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">regionset
|
||||
tool</A> to set the region code of your DVD drive (under Linux).
|
||||
<B>Warning:</B> You can only set the region 5 times.</P>
|
||||
|
||||
|
||||
<H2><A NAME="vcd">4.3 VCD playback</A></H2>
|
||||
|
||||
<P>For the complete list of available options, please read the man page.
|
||||
The Syntax for a standard Video CD (VCD) is as follows:</P>
|
||||
|
||||
<P><CODE>mplayer vcd://<track> [-cdrom-device <device>]</CODE></P>
|
||||
|
||||
<P>Example: <CODE>mplayer vcd://2 -cdrom-device /dev/hdc</CODE></P>
|
||||
|
||||
<P>The default VCD device is <CODE>/dev/cdrom</CODE>. If your setup differs,
|
||||
make a symlink or specify the correct device on the command line with the
|
||||
<CODE>-cdrom-device</CODE> option.</P>
|
||||
|
||||
<P><B>Note:</B> At least Plextor and some Toshiba SCSI CD-ROM drives have
|
||||
horrible performance reading VCDs. This is because the the CDROMREADRAW ioctl
|
||||
is not fully implemented for these drives. If you have some knowledge of SCSI
|
||||
programming, please <A HREF="../tech/patches.txt">help us</A> implement generic
|
||||
SCSI support for VCDs.</P>
|
||||
|
||||
<P>In the meantime you can extract data from VCDs with
|
||||
<A HREF="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/">readvcd</A>
|
||||
and play the resulting file with MPlayer.</P>
|
||||
|
||||
<H4>VCD structure</H4>
|
||||
|
||||
<P>VCD disks consist of one or more tracks:</P>
|
||||
|
||||
<UL>
|
||||
<LI>The first track is a small 2048 bytes/sector data track with an iso9660
|
||||
filesystem, usually containing Windows VCD player programs and maybe other
|
||||
information (images, text, etc).</LI>
|
||||
<LI>The second and other tracks are raw 2324 bytes/sector MPEG (movie) tracks,
|
||||
containing one MPEG PS data packet per sector instead of a filesystem.
|
||||
Similar to audio CD tracks, these tracks <B>cannot be mounted</B> (Did you
|
||||
ever mount an audio CD to play it?). As most movies are inside this track,
|
||||
you should try <CODE>vcd://2</CODE> first.</LI>
|
||||
<LI>There exist VCD disks without the first track (single track and no
|
||||
filesystem at all). They are still playable, but cannot be mounted.</LI>
|
||||
</UL>
|
||||
|
||||
<H4>About .DAT files:</H4>
|
||||
|
||||
<P>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
|
||||
filesystem (<CODE>vcdfs/isofs-2.4.X.o</CODE>) 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 mplayer. But it
|
||||
<B>will not work</B> with the standard iso9660 driver of the Linux kernel!
|
||||
Use <CODE>vcd://</CODE> instead. Alternatives for VCD copying are
|
||||
the new <A HREF="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</A> kernel
|
||||
driver (not part of the official kernel) that shows CD <I>sessions</I>
|
||||
as image files and <A HREF="http://cdrdao.sourceforge.net/">cdrdao</A>, a
|
||||
bit-by-bit CD grabbing/copying application.</P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,555 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>Codecs - MPlayer - The Movie Player for Linux</TITLE>
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
|
||||
<H2><A NAME="codecs">2.2 Supported codecs</A></H2>
|
||||
|
||||
|
||||
<H3><A NAME="video_codecs">2.2.1 Video codecs</A></H3>
|
||||
|
||||
<P>See the
|
||||
<A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">codec status table</A>
|
||||
for the complete, daily generated list. Quite a few codecs are available for
|
||||
download from our homepage. Grab them from our
|
||||
<A HREF="http://www.mplayerhq.hu/MPlayer/releases/codecs/">codecs page</A>.</P>
|
||||
|
||||
<P>The most important ones above all:</P>
|
||||
<UL>
|
||||
<LI><B>MPEG1</B> (<B>VCD</B>) and <B>MPEG2</B> (<B>DVD</B>) video</LI>
|
||||
<LI>native decoders for <B>DivX ;-)</B>, <B>OpenDivX</B>, <B>DivX4</B>, <B>
|
||||
DivX5</B>, <B>M$ MPEG4</B> v1, v2 and other MPEG4 variants</LI>
|
||||
<LI>native decoder for <B>Windows Media Video 7/8</B> (<B>WMV1/WMV2</B>), and
|
||||
Win32 DLL decoder for <B>Windows Media Video 9</B> (<B>WMV3</B>), both
|
||||
used in .wmv files</LI>
|
||||
<LI>native <B>Sorenson 1 (SVQ1)</B> decoder</LI>
|
||||
<LI>native <B>Sorenson 3 (SVQ3)</B> decoder</LI>
|
||||
<LI><B>3ivx</B> v1, v2 decoder</LI>
|
||||
<LI>Cinepak and <B>Intel Indeo</B> codecs (3.1, 3.2, 4.1, 5.0)</LI>
|
||||
<LI><B>MJPEG</B>, AVID, VCR2, ASV2 and other hardware formats</LI>
|
||||
<LI>VIVO 1.0, 2.0, I263 and other <B>h263</B>(+) variants</LI>
|
||||
<LI>FLI/FLC</LI>
|
||||
<LI><B>RealVideo 1.0</B> codec from libavcodec, and <B>RealVideo 2.0</B>,
|
||||
<B>3.0</B> and <B>4.0</B> codecs using RealPlayer libraries</LI>
|
||||
<LI>native decoder for HuffYUV</LI>
|
||||
<LI>various old simple RLE-like formats</LI>
|
||||
</UL>
|
||||
|
||||
<P>If you have a Win32 codec not listed here which is not supported yet, please
|
||||
read the <A HREF="#importing">codec importing HOWTO</A> and help us add support
|
||||
for it.</P>
|
||||
|
||||
|
||||
<H4><A NAME="divx">2.2.1.1 DivX4/DivX5</A></H4>
|
||||
|
||||
<P>This section contains information about the DivX4 and DivX5 codecs of
|
||||
<A HREF="http://www.projectmayo.com">Project Mayo</A>. Their first available
|
||||
alpha version was OpenDivX 4.0 alpha 47 and 48. Support for this was included
|
||||
in MPlayer in the past, and built by default. We also used its
|
||||
postprocessing code to optionally enhance visual quality of MPEG1/2 movies.
|
||||
Now we use our own, for all file types.</P>
|
||||
|
||||
<P>The new generation of this codec is called DivX4 and can even decode
|
||||
movies made with the infamous DivX codec! In addition it is much faster than
|
||||
the native Win32 DivX DLLs but slower than <B>libavcodec</B>. Hence its usage
|
||||
as a decoder is <B>DISCOURAGED</B>. However, it is useful for encoding. One
|
||||
disadvantage of this codec is that it is not available under an Open Source
|
||||
license.</P>
|
||||
|
||||
<P>DivX4Linux works in two modes:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>-vc odivx</CODE></DT>
|
||||
<DD>Uses the codec in OpenDivX fashion. In this case it
|
||||
produces YV12 images in its own buffer, and MPlayer does colorspace
|
||||
conversion via libvo. (<B>Fast, recommended!</B>)</DD>
|
||||
|
||||
<DT><CODE>-vc divx4</CODE></DT>
|
||||
<DD>Uses the colorspace conversion of the codec.
|
||||
In this mode you can use YUY2/UYVY, too. (<B>SLOW</B>)</DD>
|
||||
</DL>
|
||||
|
||||
<P>The <CODE>-vc odivx</CODE> method is usually faster, due to the fact that it
|
||||
transfers image data in YV12 (planar YUV 4:2:0) format, thus requiring much
|
||||
less bandwidth on the bus. For packed YUV modes (YUY2, UYVY) use the
|
||||
<CODE>-vc divx4</CODE> method. For RGB modes the speed is the same, differing
|
||||
at best according to your current color depth.</P>
|
||||
|
||||
<P><B>Note:</B> If your <CODE>-vo</CODE> driver supports direct rendering, then
|
||||
<CODE>-vc divx4</CODE> may be faster or even the fastest solution.</P>
|
||||
|
||||
<P>The Divx4/5 binary codec library can be downloaded from
|
||||
<A HREF="http://avifile.sourceforge.net">avifile</A> or
|
||||
<A HREF="http://www.divx.com">divx.com</A>.
|
||||
Unpack it, run <CODE>./install.sh</CODE> as root and do not forget adding
|
||||
<CODE>/usr/local/lib</CODE> to your <CODE>/etc/ld.so.conf</CODE> and running
|
||||
<CODE>ldconfig</CODE>.</P>
|
||||
|
||||
<P>Get the CVS version of the OLD OpenDivx core library like this:</P>
|
||||
|
||||
<OL>
|
||||
<LI><CODE>cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login</CODE></LI>
|
||||
<LI><CODE>cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore</CODE></LI>
|
||||
<LI>This core library is split into a decore and encore library that have to
|
||||
be compiled separately. For the decore Library, simply type
|
||||
<PRE>
|
||||
cd divxcore/decore/build/linux
|
||||
make
|
||||
cp libdivxdecore.so /usr/local/lib
|
||||
ln -s libdivxdecore.so /usr/local/lib/libdivxdecore.so.0
|
||||
cp ../../src/decore.h /usr/local/include
|
||||
</PRE>
|
||||
</LI>
|
||||
<LI>Alas, for the encore library there is no Linux Makefile available, and the
|
||||
MMX optimized code only works on Windows. You can still compile it, though,
|
||||
by using this
|
||||
<A HREF="ftp://ftp.mplayerhq.hu/MPlayer/contrib/divx-mf/Makefile">Makefile</A>.
|
||||
<PRE>
|
||||
cd ../../../encore/build
|
||||
mkdir linux
|
||||
cd linux
|
||||
cp path/Makefile .
|
||||
make
|
||||
cp libdivxencore.so /usr/local/lib
|
||||
ln -s libdivxencore.so /usr/local/lib/libdivxencore.so.0
|
||||
cp ../../src/encore.h /usr/local/include
|
||||
</PRE>
|
||||
</LI>
|
||||
</OL>
|
||||
|
||||
<P>MPlayer autodetects DivX4/DivX5 if it is properly installed, just
|
||||
compile as usual. If it does not detect it, you did not install or configure
|
||||
it correctly.</P>
|
||||
|
||||
|
||||
<H4><A NAME="libavcodec">2.2.1.2 FFmpeg/libavcodec</A></H4>
|
||||
|
||||
<P><A HREF="http://ffmpeg.sourceforge.net">FFmpeg</A> contains an
|
||||
<B>open source</B> codec package, which is capable of decoding streams
|
||||
encoded with
|
||||
H263/MJPEG/LJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/HuffYUV/SVQ1/SVQ3/
|
||||
MPEG1/MPEG2/VCR1/VCR2/ASV1/ASV2/CLJR
|
||||
video, or WMA (Windows Media Audio) audio codecs. Not only some of
|
||||
them can be encoded with, but it also offers higher speed than the Win32
|
||||
codecs or the DivX.com DivX4/5 library!</P>
|
||||
|
||||
<P>It contains a lot of nice codecs, especially important are the MPEG4
|
||||
variants:
|
||||
DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Also a very
|
||||
interesting one is the WMA decoder.</P>
|
||||
|
||||
<P>The most recent codec deserving credit is the <B>Sorenson 3</B> (SVQ3)
|
||||
codec. This is the first, completely opensource implementation of this
|
||||
codec. It's even faster than the original. Be sure to prefer this instead
|
||||
of the binary codec!</P>
|
||||
|
||||
<P>If you use an MPlayer release you have libavcodec right in the
|
||||
package, just build as usual. If you use MPlayer from CVS you have to
|
||||
extract libavcodec from the FFmpeg CVS tree as FFmpeg releases <B>don't</B>
|
||||
work with MPlayer. In order to achieve this do:</P>
|
||||
|
||||
<OL>
|
||||
<LI><CODE>cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login</CODE></LI>
|
||||
<LI><CODE>cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg</CODE></LI>
|
||||
<LI>Move the <CODE>libavcodec</CODE> directory from the FFmpeg sources to the
|
||||
root of the MPlayer CVS tree. It should look like this:
|
||||
<P> <CODE>main/libavcodec</CODE></P>
|
||||
Symlinking is <B>not</B> enough, you have to copy or move it!</LI>
|
||||
<LI>Compile. Configure should detect problems before compilation.</LI>
|
||||
</OL>
|
||||
|
||||
<P><B>Note:</B> MPlayer from CVS does contain a libavcodec
|
||||
subdirectory, but it does <B>not</B> contain the source for libavcodec!
|
||||
You must follow the steps above to obtain the source for this library.</P>
|
||||
|
||||
<P>With FFmpeg and my Matrox G400, I can view even the highest resolution DivX
|
||||
movies without dropped frames on my K6/2 500.</P>
|
||||
|
||||
|
||||
<H4><A NAME="xanim">2.2.1.3 XAnim codecs</A></H4>
|
||||
|
||||
<H4>FOREWORD</H4>
|
||||
<P>
|
||||
Be advised that the XAnim binary codecs are packaged with a piece of text
|
||||
claiming to be a legally binding software license which, besides other
|
||||
restrictions, forbids the user to use the codecs in conjunction with any
|
||||
program other than XAnim. However, the XAnim author has yet to bring legal
|
||||
action against anyone for codec-related issues.
|
||||
</P>
|
||||
|
||||
<H4>INSTALLATION AND USAGE</H4>
|
||||
<P>MPlayer is capable of employing the XAnim codecs for decoding. Follow
|
||||
the instructions to enable them:</P>
|
||||
|
||||
<OL>
|
||||
<LI>Download the codecs you wish to use from the
|
||||
<A HREF="http://xanim.va.pubnix.com">XAnim site</A>. The <B>3ivx</B> codec
|
||||
is not there, but at the <A HREF="http://www.3ivx.com">3ivx site</A>.</LI>
|
||||
<LI><B>OR</B> download the codecs pack from our
|
||||
<A HREF="http://www.mplayerhq.hu/MPlayer/releases/codecs/">codecs page</A>.
|
||||
</LI>
|
||||
<LI>Use the <CODE>--with-xanimlibdir</CODE> option to tell configure where
|
||||
to find the XAnim codecs. By default, it looks for them at
|
||||
<CODE>/usr/local/lib/codecs, /usr/local/lib/xanim/mods, /usr/lib/xanim/mods and /usr/lib/xanim</CODE>.
|
||||
Alternatively you can set the environment variable <I>XANIM_MOD_DIR</I> to
|
||||
the directory of the XAnim codecs.</LI>
|
||||
<LI>Rename/symlink the files, cutting out the architecture stuff, so they will
|
||||
have filenames like these: <CODE>vid_cvid.xa, vid_h263.xa, vid_iv50.xa</CODE>.</LI>
|
||||
</OL>
|
||||
|
||||
<P>XAnim is video codec family <CODE>xanim</CODE>, so you may want to use the <CODE>-vfm xanim</CODE>
|
||||
option to tell MPlayer to use them if possible.</P>
|
||||
|
||||
<P>Tested codecs include: <B>Indeo 3.2</B>, <B>4.1</B>, <B>5.0</B>, <B>CVID</B>,
|
||||
<B>3ivX</B>, <B>h263</B>.</P>
|
||||
|
||||
|
||||
<H4><A NAME="vivo_video">2.2.1.4 VIVO video</A></H4>
|
||||
|
||||
<P>MPlayer can play Vivo (1.0 and 2.0) videos. The most suitable codec
|
||||
for 1.0 files is FFmpeg's H263 decoder, you can use it with the <CODE>-vc
|
||||
ffh263</CODE> option. For 2.0 files, use the Win32 DLL through the
|
||||
<CODE>-vc vivo</CODE> option. If you do not supply command line options
|
||||
MPlayer selects the best codec automatically.</P>
|
||||
|
||||
|
||||
<H4><A NAME="mpeg">2.2.1.5 MPEG 1/2 video</A></H4>
|
||||
|
||||
<P>MPEG1 and MPEG2 are decoded by the multiplatform native <B>libmpeg2</B>
|
||||
library, whose source code is included in MPlayer. We handle buggy
|
||||
MPEG 1/2 video files by catching <CODE>Signal 11 (Segmentation fault)</CODE>,
|
||||
and quickly reinitializing the codec, continuing exactly from where the
|
||||
failure occurred. This recovery technique has no measurable speed penalty.</P>
|
||||
|
||||
|
||||
<H4><A NAME="ms_video1">2.2.1.6 MS Video1</A></H4>
|
||||
|
||||
<P>This is a very old and very bad codec from Microsoft. In the past it was
|
||||
decoded with the <CODE>msvidc32.dll</CODE> Win32 codec, now we have our own
|
||||
open source implementation (by <A HREF="mailto:melanson@pcisys.net">Mike
|
||||
Melanson</A>).</P>
|
||||
|
||||
|
||||
<H4><A NAME="cinepak">2.2.1.7 Cinepak CVID</A></H4>
|
||||
|
||||
<P>MPlayer uses its own open source, multiplatform Cinepak decoder (by
|
||||
<A HREF="mailto:timf@csse.monash.edu.au">Dr. Tim Ferguson</A>), by default.
|
||||
It supports YUV outputs, so that hardware scaling is possible if the video
|
||||
output driver permits it.</P>
|
||||
|
||||
|
||||
<H4><A NAME="realvideo">2.2.1.8 RealVideo</A></H4>
|
||||
|
||||
MPlayer supports decoding all versions of RealVideo:
|
||||
|
||||
<UL>
|
||||
<LI>RealVideo 1.0 (fourcc RV10) - en/decoding supported by <B>libavcodec</B></LI>
|
||||
<LI>RealVideo 2.0, 3.0, 4.0 (fourcc RV20, RV30, RV40) - decoding supported by <B>RealPlayer libraries</B></LI>
|
||||
</UL>
|
||||
|
||||
<P>It is recommended to download and install RealPlayer8 or RealONE, because
|
||||
MPlayer can use their libraries to decode files with RealVideo 2.0 -
|
||||
4.0 video. The MPlayer configure script should detect the
|
||||
RealPlayer libraries in the standard locations of a full installation. If it
|
||||
does not, tell configure where to look with the
|
||||
<CODE>--with-reallibdir</CODE> option.</P>
|
||||
|
||||
<P>As a second chance you can download the codecs from
|
||||
<a href="http://www.mplayerhq.hu/MPlayer/releases/codecs/">http://www.mplayerhq.hu/MPlayer/releases/codecs/</a>.
|
||||
After downloading the Real codecs package, extract it to the /usr/local/lib/codecs
|
||||
directory, or you can specify a unique path with the <CODE>--with-reallibdir</CODE> option.</P>
|
||||
|
||||
<P><B>Note:</B> RealPlayer libraries currently <B>only work with Linux, FreeBSD,
|
||||
NetBSD and Cygwin on the x86, Alpha and PowerPC (Linux/Alpha and Linux/PowerPC
|
||||
have been tested) platforms.</B></P>
|
||||
|
||||
|
||||
<H4><A NAME="xvid">2.2.1.9 XviD</A></H4>
|
||||
|
||||
<P><A HREF="http://www.xvid.org/"><B>XviD</B></A> is a forked development of
|
||||
the OpenDivX codec. It happened when ProjectMayo changed OpenDivX to closed
|
||||
source DivX4 (now DivX5), and the non-ProjectMayo people working on OpenDivX
|
||||
got angry, then started XviD. So both projects have the same origin.</P>
|
||||
|
||||
<H4>ADVANTAGES</H4>
|
||||
|
||||
<UL>
|
||||
<LI>open source</LI>
|
||||
<LI>its API is compatible with DivX4 so adding support for it is easy</LI>
|
||||
<LI>2-pass encoding support</LI>
|
||||
<LI>nice encoding quality, higher speed than DivX4 (you can optimize it for
|
||||
your box while compiling)</LI>
|
||||
</UL>
|
||||
|
||||
<H4>DISADVANTAGES</H4>
|
||||
|
||||
<UL>
|
||||
<LI>currently it does not properly <B>decode</B> all DivX/DivX4 files (no
|
||||
problem as <A HREF="#libavcodec">libavcodec</A> can play them)</LI>
|
||||
<LI>under development</LI>
|
||||
</UL>
|
||||
|
||||
<H4>INSTALLING XVID CVS</H4>
|
||||
|
||||
<P>XviD is currently available only from CVS. Here are download and installation
|
||||
instructions (you need at least autoconf 2.50, automake and libtool):</P>
|
||||
|
||||
<OL>
|
||||
<LI><CODE>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login</CODE></LI>
|
||||
<LI><CODE>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore</CODE></LI>
|
||||
<LI><CODE>cd xvidcore/build/generic</CODE></LI>
|
||||
<LI><CODE>./bootstrap.sh</CODE></LI>
|
||||
<LI><CODE>./configure</CODE><BR>
|
||||
You may have to add some options (examine the output of
|
||||
<CODE>./configure --help</CODE>).</LI>
|
||||
<LI><CODE>make && make install</CODE></LI>
|
||||
<LI>If you specified <CODE>--enable-divxcompat</CODE>,
|
||||
copy the <CODE>divx4.h</CODE> header file from
|
||||
<CODE>xvidcore/src/</CODE> to <CODE>/usr/local/include/</CODE>.</LI>
|
||||
<LI>Recompile MPlayer with
|
||||
<CODE>--with-xvidcore=/path/to/libxvidcore.a</CODE>.</LI>
|
||||
</OL>
|
||||
|
||||
|
||||
<H4><A NAME="sorenson">2.2.1.10 Sorenson</A></H4>
|
||||
|
||||
<P><B>Sorenson</B> is a video codec family developed by Sorenson Media and
|
||||
licensed to Apple who distribute it with their QuickTime Player. We are
|
||||
currently able to decode all versions of Sorenson video files with the
|
||||
following decoders:</P>
|
||||
|
||||
<UL>
|
||||
<LI>Sorenson Video v1 (fourcc <I>SVQ1</I>) - decoding supported by <B>native
|
||||
codec</B> (<A HREF="#libavcodec">libavcodec</A>)</LI>
|
||||
<LI>Sorenson Video v3 (fourcc <I>SVQ3</I>) - decoding supported by <B>native
|
||||
codec</B> (<A HREF="#libavcodec">libavcodec</A>)</LI>
|
||||
</UL>
|
||||
|
||||
<H4>COMPILING MPLAYER WITH QUICKTIME LIBRARIES SUPPORT</H4>
|
||||
|
||||
<P><B>NOTE:</B> currently only 32bit Intel platforms are supported.</P>
|
||||
|
||||
<OL>
|
||||
<LI>download MPlayer CVS</LI>
|
||||
<LI>download QuickTime DLL pack from
|
||||
<A HREF="http://www.mplayerhq.hu/MPlayer/releases/codecs/">http://www.mplayerhq.hu/MPlayer/releases/codecs/</A></LI>
|
||||
<LI>extract QuickTime DLL pack to your Win32 codecs directory (default:
|
||||
<CODE>/usr/local/lib/codecs/</CODE>)</LI>
|
||||
<LI>compile MPlayer</LI>
|
||||
</OL>
|
||||
|
||||
|
||||
<H3><A NAME="audio_codecs">2.2.2 Audio codecs</A></H3>
|
||||
|
||||
<P>The most important audio codecs above all:<BR></P>
|
||||
|
||||
<UL>
|
||||
<LI>MPEG layer 2 (MP2), and layer 3 (MP3) audio (<B>native</B> code, with
|
||||
MMX/SSE/3DNow! optimization)</LI>
|
||||
<LI>MPEG layer 1 audio (<B>native</B> code, with libavcodec)</LI>
|
||||
<LI>Windows Media Audio v1, v2 (<B>native</B> code, with libavcodec)</LI>
|
||||
<LI>Windows Media Audio 9 (WMAv3) (using DMO DLL)</LI>
|
||||
<LI>AC3 Dolby audio (<B>native</B> code, with MMX/SSE/3DNow!
|
||||
optimization)</LI>
|
||||
<LI>AC3 passing through soundcard hardware</LI>
|
||||
<LI>Ogg Vorbis audio codec (<B>native</B> library)</LI>
|
||||
<LI>RealAudio: DNET (low bitrate AC3), Cook, Sipro and ATRAC3</LI>
|
||||
<LI>QuickTime: Qualcomm and QDesign audio codecs</LI>
|
||||
<LI>VIVO audio (g723, Vivo Siren)</LI>
|
||||
<LI>Voxware audio (using DirectShow DLL)</LI>
|
||||
<LI>alaw and ulaw, various gsm, adpcm and pcm formats and other simple old
|
||||
audio codecs</LI>
|
||||
<LI>AAC</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<H4><A NAME="software_ac3">2.2.2.1 Software AC3 decoding</A></H4>
|
||||
|
||||
<P>This is the default decoder used for files with AC3 audio.</P>
|
||||
|
||||
<P>The AC3 decoder can create audio output mixes for 2, 4, or 6 speakers. When
|
||||
configured for 6 speakers, this decoder provides separate output of all the
|
||||
AC3 channels to the sound driver, allowing for full "surround sound"
|
||||
experience without the external AC3 decoder required to use the hwac3
|
||||
codec.</P>
|
||||
|
||||
<P>Use the <CODE>-channels</CODE> option to select the number of output
|
||||
channels. Use <CODE>-channels 2</CODE> for a stereo downmix. For a 4
|
||||
channel downmix (Left Front, Right Front, Left Surround and Right Surround
|
||||
outputs), use <CODE>-channels 4</CODE>. In this case, any center channel will
|
||||
be mixed equally to the front channels. <CODE>-channels 6</CODE> will output
|
||||
all the AC3 channels as they are encoded - in the order Left, Right, Left
|
||||
Surround, Right Surround, Center and LFE.</P>
|
||||
|
||||
<P>The default number of output channels is 2.</P>
|
||||
|
||||
<P>To use more than 2 output channels, you will need to use OSS, and have a
|
||||
sound card that supports the appropriate number of output channels via the
|
||||
SNDCTL_DSP_CHANNELS ioctl. An example of a suitable driver is emu10k1 (used
|
||||
by Soundblaster Live! cards) from August 2001 or newer (ALSA CVS is also
|
||||
supposed to work).</P>
|
||||
|
||||
|
||||
<H4><A NAME="hardware_ac3">2.2.2.2 Hardware AC3 decoding</A></H4>
|
||||
|
||||
<P>You need an AC3 capable sound card, with digital out (SP/DIF). The card's
|
||||
driver must properly support the AFMT_AC3 format (C-Media does). Connect
|
||||
your AC3 decoder to the SP/DIF output, and use the <CODE>-ac hwac3</CODE>
|
||||
option. It is experimental but known to work with C-Media cards,
|
||||
Soundblaster Live! using ALSA (but not OSS) drivers and DXR3/Hollywood+ MPEG
|
||||
decoder cards.</P>
|
||||
|
||||
|
||||
<H4><A NAME="libmad">2.2.2.3 libmad support</A></H4>
|
||||
|
||||
<P><A HREF="http://mad.sourceforge.net">libmad</A> is a multiplatform MPEG
|
||||
audio decoding library. It does not handle broken files well, and it
|
||||
sometimes has problems with seeking.</P>
|
||||
|
||||
<P>To enable support, compile with the <CODE>--enable-mad</CODE> configure
|
||||
option.</P>
|
||||
|
||||
|
||||
<H4><A NAME="vivo_audio">2.2.2.4 VIVO audio</A></H4>
|
||||
|
||||
<P>The audio codec used in VIVO files depends on whether it is a VIVO/1.0 or
|
||||
VIVO/2.0 file. VIVO/1.0 files have <B>g.723</B> audio, and VIVO/2.0 files
|
||||
have <B>Vivo Siren</B> audio. Both are supported.</P>
|
||||
|
||||
<H4><A NAME="realaudio">2.2.2.5 RealAudio</A></H4>
|
||||
|
||||
MPlayer supports decoding nearly all versions of RealAudio:
|
||||
|
||||
<UL>
|
||||
<LI>RealAudio DNET - decoding supported by <B>liba52</B></LI>
|
||||
<LI>RealAudio Cook/Sipro/ATRAC3 - decoding supported by <B>RealPlayer
|
||||
libraries</B></LI>
|
||||
</UL>
|
||||
|
||||
<P>On how to install RealPlayer libraries, see the
|
||||
<A HREF="#realvideo">RealVideo</A> section.</P>
|
||||
|
||||
|
||||
<H4><A NAME="qdesign">2.2.2.6 QDesign codecs</A></H4>
|
||||
|
||||
<P>QDesign audio streams (fourcc: <I>QDMC</I>, <I>QDM2</I>) are found in MOV/QT
|
||||
files. Both versions of this codec can be decoded with QuickTime libraries.
|
||||
For installation instructions please see the <A HREF="#sorenson">Sorenson
|
||||
video codec</A> section.</P>
|
||||
|
||||
|
||||
<H4><A NAME="qclp">2.2.2.7 Qualcomm codec</A></H4>
|
||||
|
||||
<P>Qualcomm audio stream (fourcc: <I>Qclp</I>) is found in MOV/QT files.
|
||||
It can be decoded with QuickTime libraries. For installation instructions
|
||||
please see the <A HREF="#sorenson">Sorenson video codec</A> section.</P>
|
||||
|
||||
|
||||
<H4><A NAME="aac">2.2.2.8 AAC codec</A></H4>
|
||||
|
||||
<P>AAC (Advanced Audio Coding) is an audio codec sometimes found in MOV and MP4
|
||||
files. An open source decoder called FAAD is available from
|
||||
<A HREF="http://www.audiocoding.com/">AudioCoding.com</A>.
|
||||
MPlayer includes libfaad 2.0RC1, so you do not need to get it separately.</P>
|
||||
|
||||
|
||||
|
||||
<H3><A NAME="importing">2.2.3 Win32 codec importing HOWTO</A></H3>
|
||||
|
||||
|
||||
<H4><A NAME="importing_vfw">2.2.3.1 VFW codecs</A></H4>
|
||||
|
||||
<P>VFW (Video for Windows) is the old Video API for Windows. Its codecs have
|
||||
the .DLL or (rarely) .DRV extension.
|
||||
If MPlayer fails at playing your AVI with this kind of message:</P>
|
||||
|
||||
<P> <CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P>
|
||||
|
||||
<P>It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU =
|
||||
HuffYUV codec, DIV3 = DivX Low Motion, etc...). Now that you know this, you
|
||||
have to find out which DLL Windows loads in order to play this file. In our
|
||||
case, the <CODE>system.ini</CODE> contains this information in a line that
|
||||
reads:</P>
|
||||
|
||||
<P> <CODE>VIDC.HFYU=huffyuv.dll</CODE></P>
|
||||
|
||||
<P>So you need the <CODE>huffyuv.dll</CODE> file. Note that the audio codecs are
|
||||
specified by the MSACM prefix:</P>
|
||||
|
||||
<P> <CODE>msacm.l3acm=L3codeca.acm</CODE></P>
|
||||
|
||||
|
||||
<P>This is the MP3 codec. Now that you have all the necessary information
|
||||
(fourcc, codec file, sample AVI), submit your codec support request by mail,
|
||||
and upload these files to the FTP site:</P>
|
||||
|
||||
<P> <CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P>
|
||||
|
||||
<P><B>Note:</B> On Windows NT/2000/XP search for this info in the registry, e.g. search for
|
||||
"VIDC.HFYU". To find out how to do this, look at the old DirectShow method below.</P>
|
||||
|
||||
<H4><A NAME="importing_directshow">2.2.3.2 DirectShow codecs</A></H4>
|
||||
|
||||
<P>DirectShow is the newer Video API, which is even worse than its predecessor.
|
||||
Things are harder with DirectShow, since</P>
|
||||
|
||||
<UL>
|
||||
<LI><CODE>system.ini</CODE> does not contain the needed information, instead it
|
||||
is stored in the registry and</LI>
|
||||
<LI>we need the GUID of the codec.</LI>
|
||||
</UL>
|
||||
|
||||
<P><B>New Method:</B> Using Microsoft GraphEdit (fast)</P>
|
||||
|
||||
<OL>
|
||||
<LI>Get GraphEdit from either DirectX SDK or
|
||||
<A HREF="http://doom9.org">Doom9</A>.</LI>
|
||||
<LI>Start <CODE>graphedit.exe</CODE>.</LI>
|
||||
<LI>From the menu select Graph -> Insert Filters.</LI>
|
||||
<LI>Expand item <CODE>DirectShow Filters</CODE>.</LI>
|
||||
<LI>Select the right codec name and expand item.</LI>
|
||||
<LI>In the entry <CODE>DisplayName</CODE> look at the text in winged brackets
|
||||
after the backslash and write it down (five dash-delimited blocks, the
|
||||
GUID).</LI>
|
||||
<LI>The codec binary is the file specified in the <CODE>Filename</CODE>
|
||||
entry.</LI>
|
||||
</OL>
|
||||
|
||||
<P><B>Note:</B> If there is no <CODE>Filename</CODE> entry and <CODE>DisplayName</CODE>
|
||||
contains something like <CODE>device:dmo</CODE>, then it is a DMO-Codec.</P>
|
||||
|
||||
<P><B>Old Method:</B> Take a deep breath and start searching the registry...</P>
|
||||
|
||||
<OL>
|
||||
<LI>Start <CODE>regedit</CODE>.</LI>
|
||||
<LI>Press <CODE>Ctrl-f</CODE>, disable the first two checkboxes, and enable
|
||||
the third. Type in the fourcc of the codec (e.g. TM20).</LI>
|
||||
<LI>You should see a field which contains the path and the filename
|
||||
(e.g. <CODE>C:\WINDOWS\SYSTEM\TM20DEC.AX</CODE>).</LI>
|
||||
<LI>Now that you have the file, we need the GUID. Try searching again, but
|
||||
now search for the codec's name, not the fourcc. Its name can be acquired
|
||||
when Media Player is playing the file, by checking File -> Properties
|
||||
-> Advanced.
|
||||
If not, you are out of luck. Try guessing (e.g. search for TrueMotion).</LI>
|
||||
<LI>If the GUID is found you should see a FriendlyName and a CLSID
|
||||
field. Write down the 16 byte CLSID, this is the GUID we need.</LI>
|
||||
</OL>
|
||||
|
||||
<P><B>Note:</B> If searching fails, try enabling all the checkboxes. You may have
|
||||
false hits, but you may get lucky...</P>
|
||||
|
||||
<P>Now that you have all the necessary information (fourcc, GUID, codec file,
|
||||
sample AVI), submit your codec support request by mail, and upload these files
|
||||
to the FTP site:</P>
|
||||
|
||||
<P> <CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
File diff suppressed because it is too large
Load Diff
@ -1,374 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>Encoding - MEncoder - The Movie Encoder for Linux</TITLE>
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
|
||||
<H1><A NAME="encoding">7. Encoding with MEncoder</A></H1>
|
||||
|
||||
<P>For the complete list of available MEncoder options and examples, please see
|
||||
the man page. For a series of hands-on examples and detailed guides on using
|
||||
several encoding parameters, read the
|
||||
<A HREF="../tech/encoding-tips.txt">encoding-tips</A> that were collected from
|
||||
several mailing list threads on
|
||||
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">mplayer-users</A>.
|
||||
Search the <A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">archives</A>
|
||||
for a wealth of discussions about all aspects of and problems related to
|
||||
encoding with MEncoder.</P>
|
||||
|
||||
|
||||
<H2><A NAME="2pass">7.1 Encoding 2 or 3-pass MPEG-4 ("DivX")</A></H2>
|
||||
|
||||
<P><U><B>2-pass encoding:</B></U> the name comes from the fact that this method
|
||||
encodes the file <I>twice</I>. The first encoding (dubbed <I>pass</I>)
|
||||
creates some temporary files (*.log) with a size of few megabytes, do not
|
||||
delete them yet (you can delete the AVI). In the second pass, the 2-pass
|
||||
output file is created, using the bitrate data from the temporary files. The
|
||||
resulting file will have much better image quality. If this is the first time
|
||||
you heard about this, you should consult some guides available on the
|
||||
Net.</P>
|
||||
|
||||
<P>This example shows how to encode a DVD to a 2-pass MPEG-4 ("DIVX") AVI. Just
|
||||
two commands are needed:<BR>
|
||||
<CODE> rm frameno.avi</CODE> - remove this file, which
|
||||
can come from a previous 3-pass encoding (it interferes with current
|
||||
one)<BR>
|
||||
<CODE> mencoder dvd://2 -ovc lavc -lavcopts
|
||||
vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
|
||||
mencoder dvd://2 -ovc lavc -lavcopts
|
||||
vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P>
|
||||
|
||||
<P><U><B>3-pass encoding:</B></U> this is an extension of 2-pass encoding,
|
||||
where the audio encoding takes place in a separate pass. This method enables
|
||||
estimation of recommended video bitrate in order to fit on a CD. Also, the
|
||||
audio is encoded only once, unlike in 2-pass mode. The schematics:</P>
|
||||
|
||||
<OL>
|
||||
<LI>Remove conflicting temporary file:
|
||||
<P><CODE>rm frameno.avi</CODE></P></LI>
|
||||
<LI>First pass:
|
||||
<P><CODE>mencoder <file/DVD> -ovc frameno -oac mp3lame -lameopts vbr=3 -o frameno.avi</CODE></P>
|
||||
<P>An audio-only avi file will be created, containing
|
||||
<B>only</B> the requested audio stream. Don't forget <CODE>-lameopts</CODE>,
|
||||
if you need to set it. If you were encoding a long movie, MEncoder
|
||||
prints the recommended bitrate values for 650Mb, 700Mb, and 800Mb
|
||||
destination sizes, after this pass finishes.</P></LI>
|
||||
<LI>Second pass:
|
||||
<P><CODE>mencoder <file/DVD> -oac copy
|
||||
-ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=<bitrate></CODE></P>
|
||||
<P>This is the first pass of video encoding.
|
||||
Optionally specify the video bitrate MEncoder printed at the end of
|
||||
the previous pass.</P></LI>
|
||||
<LI>Third pass:
|
||||
<P><CODE>mencoder <file/DVD> -oac copy
|
||||
-ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=<bitrate></CODE></P>
|
||||
<P>This is the second pass of video encoding.
|
||||
Specify the same bitrate as in the previous pass unless you really know
|
||||
what you are doing. In this pass, audio from <CODE>frameno.avi</CODE>
|
||||
will be inserted into the destination file.. and it's all ready!</P></LI>
|
||||
</OL>
|
||||
|
||||
<H4>Example for 3-pass encoding:</H4>
|
||||
|
||||
<P><CODE> rm frameno.avi</CODE> - remove this file,
|
||||
which can come from a previous 3-pass encoding (it interferes with current
|
||||
one)<BR>
|
||||
<CODE> mencoder dvd://2 -ovc frameno
|
||||
-o frameno.avi -oac mp3lame -lameopts vbr=3<BR>
|
||||
mencoder dvd://2 -ovc lavc
|
||||
-lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
|
||||
mencoder dvd://2 -ovc lavc
|
||||
-lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P>
|
||||
|
||||
|
||||
<H2><A NAME="mpeg">7.2 Encoding to MPEG format</A></H2>
|
||||
|
||||
<P>MEncoder can create MPEG (MPEG-PS) format output files. It's probably
|
||||
useful only with <A HREF="codecs.html#libavcodec">libavcodec</A>'s
|
||||
<I>mpeg1video</I> codec, because players - except MPlayer - expect MPEG1
|
||||
video, and MPEG1 layer 2 (MP2) audio streams in MPEG files.</P>
|
||||
|
||||
<P>This feature is not very useful right now, aside that it probably has
|
||||
many bugs, but the more importantly because MEncoder currently cannot encode
|
||||
MPEG1 layer 2 (MP2) audio, which all other players expect in MPEG files.</P>
|
||||
|
||||
<P>To change MEncoder's output file format, use the <CODE>-of mpeg</CODE>
|
||||
option.</P>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video
|
||||
-oac copy <other options> media.avi -o output.mpg</CODE></P>
|
||||
|
||||
|
||||
<H2><A NAME="rescaling">7.3 Rescaling movies</A></H2>
|
||||
|
||||
<P>Often the need to resize movie images' size emerges. Its reasons can be
|
||||
many: decreasing file size, network bandwidth, etc. Most people
|
||||
even do rescaling when converting DVDs or SVCDs to DivX AVI. <B>This is bad.</B>
|
||||
Instead of even you doing so, read the <A HREF="#aspect">Preserving
|
||||
aspect ratio</A> section.</P>
|
||||
|
||||
<P>The scaling process is handled by the <I>'scale'</I> video filter:
|
||||
<CODE>-vf scale=width:height</CODE>. Its quality can be set with the
|
||||
<CODE>-sws</CODE> option. If it's not specified, MEncoder will use 0:
|
||||
fast bilinear.</P>
|
||||
|
||||
<H4>Usage:</H4>
|
||||
|
||||
<P><CODE> mencoder input.mpg -ovc lavc -lavcopts
|
||||
vcodec=mpeg4 -vf scale=640:480 -oac copy -o
|
||||
output.avi</CODE></P>
|
||||
|
||||
|
||||
<H2><A NAME="copying">7.4 Stream copying</A></H2>
|
||||
|
||||
<P>MEncoder can handle input streams in two ways: <B>encode</B> or
|
||||
<B>copy</B> them. This section is about <B>copying</B>.</P>
|
||||
|
||||
<UL>
|
||||
<LI><B>Video stream</B> (option <CODE>-ovc copy</CODE>): nice stuff can be
|
||||
done :)<BR>
|
||||
Like, putting (not converting) FLI or VIVO or MPEG1 video into
|
||||
an AVI file. Of course only MPlayer can play such files :) And it
|
||||
probably has no real life value at all. Rationally: video stream copying
|
||||
can be useful for example when only the audio stream has to be encoded
|
||||
(like, uncompressed PCM to MP3).</LI>
|
||||
|
||||
<LI><B>Audio stream</B> (option <CODE>-oac copy</CODE>): straightforward.
|
||||
It is possible to take an external audio file (MP3, WAV) and mux it
|
||||
into the output stream. Use the <CODE>-audiofile <filename></CODE>
|
||||
option for this.</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<H2><A NAME="fixing">7.5 Fixing AVIs with broken index or interleaving</A></H2>
|
||||
|
||||
<P>Easiest thing. We simply copy the video and audio streams, and
|
||||
MEncoder generates the index. Of course this cannot fix possible bugs
|
||||
in the video and/or audio streams. It also fixes files with broken
|
||||
interleaving, thus the <CODE>-ni</CODE> option won't be needed for them
|
||||
anymore.</P>
|
||||
|
||||
<P>Command: <CODE>mencoder -idx input.avi -ovc copy -oac copy -o output.avi</CODE></P>
|
||||
|
||||
|
||||
<H3><A NAME="appending">7.5.1 Appending multiple AVI files</A></H3>
|
||||
|
||||
<P>As a side-effect, the broken AVI fixer function enables MEncoder to append
|
||||
2 (or more) AVI files:</P>
|
||||
|
||||
<P>Command: <CODE>cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi -</CODE></P>
|
||||
|
||||
<P><B>Note:</B> This expects <CODE>1.avi</CODE> and <CODE>2.avi</CODE> to use the same codecs, resolution,
|
||||
stream rate etc, and at least 1.avi must not be broken. You may need to fix
|
||||
your input AVI files first, as described <A HREF="#fixing">above</A>.</P>
|
||||
|
||||
|
||||
<H2><A NAME="libavcodec">7.6 Encoding with the libavcodec codec family</A></H2>
|
||||
|
||||
<P><A HREF="codecs.html#libavcodec">libavcodec</A> provides simple encoding to a
|
||||
lot of interesting video and audio formats (currently its audio codecs are
|
||||
unsupported). You can encode to the following codecs (more or less up to date):</P>
|
||||
|
||||
<UL>
|
||||
<LI>mjpeg - Motion JPEG</LI>
|
||||
<LI>ljpeg - Lossless JPEG</LI>
|
||||
<LI>h263 - H263</LI>
|
||||
<LI>h263p - H263 Plus</LI>
|
||||
<LI>mpeg4 - ISO standard MPEG-4 (DivX 5, XVID compatible)</LI>
|
||||
<LI>msmpeg4 - pre-standard MPEG-4 variant by MS, v3 (aka DivX3)</LI>
|
||||
<LI>msmpeg4v2 - pre-standard MPEG-4 by MS, v2 (used in old asf files)</LI>
|
||||
<LI>wmv1 - Windows Media Video, version 1 (aka WMV7)</LI>
|
||||
<LI>wmv2 - Windows Media Video, version 2 (aka WMV8)</LI>
|
||||
<LI>rv10 - an old RealVideo codec</LI>
|
||||
<LI>mpeg1video - MPEG1 video</LI>
|
||||
<LI>mpeg2video - MPEG2 video</LI>
|
||||
<LI>huffyuv - lossless compression</LI>
|
||||
<LI>asv1 - ASUS Video v1</LI>
|
||||
<LI>asv2 - ASUS Video v2</LI>
|
||||
<LI>ffv1 - FFmpeg's lossless video codec</LI>
|
||||
</UL>
|
||||
|
||||
<P>The first column contains the codec names that should be passed after the
|
||||
<CODE>vcodec</CODE> config, like: <CODE>-lavcopts vcodec=msmpeg4</CODE></P>
|
||||
|
||||
<P>An example, with MJPEG compression:<BR>
|
||||
<CODE> mencoder dvd://2 -o title2.avi -ovc lavc
|
||||
-lavcopts vcodec=mjpeg -oac copy</CODE></P>
|
||||
|
||||
|
||||
<H2><A NAME="image_files">7.7 Encoding from multiple input image files (JPEGs, PNGs or TGAs)</A></H2>
|
||||
|
||||
<P>MEncoder is capable of creating movies from one or more JPEG, PNG or TGA
|
||||
files. With simple framecopy it can create MJPEG (Motion JPEG), MPNG
|
||||
(Motion PNG) or MTGA (Motion TGA) files.</P>
|
||||
|
||||
Explanation of the process:
|
||||
|
||||
<OL>
|
||||
<LI>MEncoder <I>decodes</I> the input image(s) with
|
||||
<CODE>libjpeg</CODE> (when decoding PNGs, it will use <B>libpng</B>).</LI>
|
||||
|
||||
<LI>MEncoder then feeds the decoded image to the chosen video compressor
|
||||
(DivX4, XviD, ffmpeg msmpeg4, etc...).</LI>
|
||||
</OL>
|
||||
|
||||
<H4>Examples</H4>
|
||||
|
||||
<P>The explanation of the <CODE>-mf</CODE> option can be found below in the
|
||||
man page.</P>
|
||||
|
||||
<P><I>Creating a DivX4 file from all the JPEG files in the current dir:</I><BR>
|
||||
<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc divx4
|
||||
-o output.avi \*.jpg</CODE></P>
|
||||
|
||||
<P><I>Creating a DivX4 file from some JPEG files in the current dir:</I><BR>
|
||||
<CODE>mencoder -mf on:w=800:h=600:fps=25
|
||||
-ovc divx4 -o output.avi frame001.jpg,frame002.jpg</CODE></P>
|
||||
|
||||
<P><I>Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current dir:</I><BR>
|
||||
<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc copy
|
||||
-o output.avi \*.jpg</CODE></P>
|
||||
|
||||
<P><I>Creating an uncompressed file from all the PNG files in the current dir:</I><BR>
|
||||
<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb
|
||||
-o output.avi \*.png</CODE></P>
|
||||
|
||||
<P><B>Note:</B> Width must be integer multiple of 4, it's a limitation of the
|
||||
RAW RGB AVI format.</P>
|
||||
|
||||
<P><I>Creating a Motion PNG (MPNG) file from all the PNG files in the current dir:</I><BR>
|
||||
<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy
|
||||
-o output.avi \*.png</CODE></P>
|
||||
|
||||
<P><I>Creating a Motion TGA (MTGA) file from all the TGA files in the current dir:</I><BR>
|
||||
<CODE>mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy
|
||||
-o output.avi \*.tga</CODE></P>
|
||||
|
||||
|
||||
<H2><A NAME="vobsub">7.8 Extracting DVD subtitles to a Vobsub file</A></H2>
|
||||
|
||||
<P>MEncoder is capable of extracting subtitles from a DVD into
|
||||
Vobsub fomat files. They consist of a pair of files ending in
|
||||
<CODE>.idx</CODE> and <CODE>.sub</CODE> and are usually packaged in a single
|
||||
<CODE>.rar</CODE> archive. MPlayer can play these with the
|
||||
<CODE>-vobsub</CODE> and <CODE>-vobsubid</CODE> options.</P>
|
||||
|
||||
<P>You specify the basename (i.e without the <CODE>.idx</CODE> or
|
||||
<CODE>.sub</CODE> extension) of the output files with <CODE>-vobsubout</CODE>
|
||||
and the index for this subtitle in the resulting files with
|
||||
<CODE>-vobsuboutindex</CODE>.</P>
|
||||
|
||||
<P>If the input is not from a DVD you should use <CODE>-ifo</CODE> to
|
||||
indicate the <CODE>.ifo</CODE> file needed to construct the resulting
|
||||
<CODE>.idx</CODE> file.</P>
|
||||
|
||||
<P>If the input is not from a DVD and you do not have the <CODE>.ifo</CODE>
|
||||
file you will need to use the <CODE>-vobsubid</CODE> option to let it know
|
||||
what language id to put in the <CODE>.idx</CODE> file.</P>
|
||||
|
||||
<P>Each run will append the running subtitle if the <CODE>.idx</CODE> and
|
||||
<CODE>.sub</CODE> files already exist. So you should remove any before
|
||||
starting.</P>
|
||||
|
||||
<H4>Examples</H4>
|
||||
|
||||
<P><I>Copying two subtitles from a DVD while doing 3-pass encoding</I><BR>
|
||||
<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
|
||||
<CODE>mencoder dvd://1 -vobsubout subtitles -vobsuboutindex 0
|
||||
-sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR>
|
||||
<CODE>mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=1</CODE><BR>
|
||||
<CODE>mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=2 -vobsubout
|
||||
subtitles -vobsuboutindex 1 -sid 5</CODE></P>
|
||||
|
||||
<P><I>Copying a french subtitle from an MPEG file</I><BR>
|
||||
<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
|
||||
<CODE>mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles
|
||||
-vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P>
|
||||
|
||||
|
||||
<H2><A NAME="aspect">7.9 Preserving aspect ratio</A></H2>
|
||||
|
||||
<P>DVDs and SVCDs (i.e. MPEG1/2) files contain an aspect ratio value,
|
||||
which describes how the player should scale the video stream, so humans
|
||||
won't have egg heads (ex.: 480x480 + 4:3 = 640x480). However when encoding
|
||||
to AVI (DivX) files, you have be aware that AVI headers don't store this
|
||||
value. Rescaling the movie is disgusting and time consuming, there
|
||||
has to be a better way!</P>
|
||||
|
||||
<P>There is.</P>
|
||||
|
||||
<P>MPEG4 has an unique feature: the video stream can contain
|
||||
its needed aspect ratio. Yes, just like MPEG1/2 (DVD, SVCD) and H263 files.
|
||||
Regretfully, there are <U>no</U> video players outside which support this
|
||||
attribute of MPEG4. Except MPlayer.</P>
|
||||
|
||||
<P>This feature can be used only with <A HREF="codecs.html#libavcodec">
|
||||
libavcodec</A>'s <CODE>mpeg4</CODE> codec. Keep in mind: although MPlayer
|
||||
will correctly play the created file, other players will use the wrong
|
||||
aspect ratio.</P>
|
||||
|
||||
<P>You seriously should crop the black bands over and below the movie image.
|
||||
See the man page for the usage of the <CODE>cropdetect</CODE> and
|
||||
<CODE>crop</CODE> filters.</P>
|
||||
|
||||
<H4>Usage:</H4>
|
||||
|
||||
<P><CODE>$ mencoder sample-svcd.mpg -ovc lavc -lavcopts
|
||||
vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o output.avi</CODE></P>
|
||||
|
||||
<H2><A NAME="custommatrices">7.10 Custom inter/intra matrices</A></H2>
|
||||
|
||||
<P>With this feature of <A HREF="codecs.html#libavcodec">libavcodec</A> you are
|
||||
able to set custom inter (I-frames/key frames) and intra (P-frames/predicted
|
||||
frames) matrices. It is supported by many of the codecs: <CODE>mpeg1video</CODE>
|
||||
and <CODE>mpeg2video</CODE> are reported as working.</P>
|
||||
|
||||
<P>A typical usage of this feature is to set the matrices preferred by the
|
||||
<A HREF="http://www.kvcd.net/">KVCD</A> specifications.<BR><BR>
|
||||
The <B>KVCD "Notch" Quantization Matrix</B>:<BR>
|
||||
<I>Intra:</I>
|
||||
<PRE>
|
||||
8 9 12 22 26 27 29 34
|
||||
9 10 14 26 27 29 34 37
|
||||
12 14 18 27 29 34 37 38
|
||||
22 26 27 31 36 37 38 40
|
||||
26 27 29 36 39 38 40 48
|
||||
27 29 34 37 38 40 48 58
|
||||
29 34 37 38 40 48 58 69
|
||||
34 37 38 40 48 58 69 79
|
||||
</PRE>
|
||||
<I>Inter:</I>
|
||||
<PRE>
|
||||
16 18 20 22 24 26 28 30
|
||||
18 20 22 24 26 28 30 32
|
||||
20 22 24 26 28 30 32 34
|
||||
22 24 26 30 32 32 34 36
|
||||
24 26 28 32 34 34 36 38
|
||||
26 28 30 32 34 36 38 40
|
||||
28 30 32 34 36 38 42 42
|
||||
30 32 34 36 38 40 42 44
|
||||
</PRE>
|
||||
</P>
|
||||
|
||||
<H4>Usage:</H4>
|
||||
|
||||
<P><CODE>$ mencoder input.avi -o output.avi -oac copy -ovc lavc -lavcopts
|
||||
inter_matrix=...:intra_matrix=...</CODE></P>
|
||||
|
||||
<P><CODE>$ mencoder input.avi -ovc lavc -lavcopts
|
||||
vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,<BR>
|
||||
12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,<BR>
|
||||
29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79<BR>
|
||||
:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,<BR>
|
||||
28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,<BR>
|
||||
36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg</CODE></P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
802
DOCS/en/faq.html
802
DOCS/en/faq.html
@ -1,802 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>FAQ - MPlayer - The Movie Player for Linux</TITLE>
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
<STYLE TYPE="text/css">
|
||||
dt {
|
||||
font-weight : bold;
|
||||
}
|
||||
</STYLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
|
||||
<H1><A NAME="faq">5. FAQ</A></H1>
|
||||
|
||||
<UL>
|
||||
<LI><A HREF="#development">5.1 Development</A></LI>
|
||||
<LI><A HREF="#compilation">5.2 Compilation</A></LI>
|
||||
<LI><A HREF="#general">5.3 General questions</A></LI>
|
||||
<LI><A HREF="#playback">5.4 Playback problems</A></LI>
|
||||
<LI><A HREF="#driver">5.5 Video/audio driver problems (vo/ao)</A></LI>
|
||||
<LI><A HREF="#dvd">5.6 DVD playback</A></LI>
|
||||
<LI><A HREF="#features">5.7 Feature requests</A></LI>
|
||||
<LI><A HREF="#encoding">5.8 Encoding</A></LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<H2><A NAME="development">5.1 Development</A></H2>
|
||||
|
||||
<DL>
|
||||
|
||||
<DT>Q: How do I create a proper patch for MPlayer?</DT>
|
||||
<DD>A: Send a <B>unified</B> diff (<CODE>diff -u</CODE>) of your changes
|
||||
against the CVS version of MPlayer to the
|
||||
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">mplayer-dev-eng</A>
|
||||
mailing list. We wrote a <A HREF="../tech/patches.txt">short document</A>
|
||||
that has more details. Please follow those instructions.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I support MPlayer development?</DT>
|
||||
<DD>A: We are more than happy to accept your hardware and software
|
||||
<A HREF="http://www.mplayerhq.hu/homepage/donations.html">donations</A>.
|
||||
They help us in continuously improving MPlayer.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I become an MPlayer developer?</DT>
|
||||
<DD>A: We always welcome coders and documenters. Read the
|
||||
<A HREF="../tech/">technical documentation</A> to get a first grasp. Then you
|
||||
should subscribe to the
|
||||
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">mplayer-dev-eng</A>
|
||||
mailing list and start coding.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Why don't you use autoconf/automake?</DT>
|
||||
<DD>A: We have a modular, handwritten build system. It does a reasonably good
|
||||
job, so why change? Besides, we dislike the auto* tools, just like
|
||||
<A HREF="http://freshmeat.net/articles/view/889/">other people</A>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
</DL>
|
||||
|
||||
|
||||
<H2><A NAME="compilation">5.2 Compilation</A></H2>
|
||||
|
||||
<DL>
|
||||
|
||||
<DT>Q: Are there binary (RPM/deb) packages of MPlayer?</DT>
|
||||
<DD>A: See the
|
||||
<A HREF="documentation.html#debian">Debian</A> and
|
||||
<A HREF="documentation.html#rpm">RPM</A> section for details.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Compilation stops with an error message similar to this one:
|
||||
<PRE>
|
||||
In file included from mplayer.c:34:
|
||||
mw.h: In function `mplMainDraw':
|
||||
mw.h:209: Internal compiler error in print_rtl_and_abort, at flow.c:6458
|
||||
Please submit a full bug report,
|
||||
with preprocessed source if appropriate.
|
||||
</PRE>
|
||||
</DT>
|
||||
<DD>A: This is a known problem of gcc 3.0.4, upgrade to 3.1 to solve the
|
||||
problem. How to install gcc is described in the
|
||||
<A HREF="users_against_developers.html#gcc">gcc 2.96</A> section.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Configure ends with this text, and MPlayer won't compile!<BR>
|
||||
<CODE>"Your gcc does not support even i386 for '-march' and '-mcpu'."</CODE>
|
||||
</DT>
|
||||
<DD>A: Your gcc isn't installed correctly, check the <CODE>config.log</CODE>
|
||||
file for details.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: What's the problem with gcc 2.96?</DT>
|
||||
<DD>A: <B>We strongly discourage the use of gcc 2.96!</B><BR>
|
||||
Read <A HREF="users_against_developers.html#gcc">this</A> document for
|
||||
details about why Red Hat released gcc 2.96 and what the problems are all
|
||||
about. If you still really really want to use it, be sure to get the latest
|
||||
release and give the <CODE>--disable-gcc-checking</CODE> option to
|
||||
configure. Remember that you are on your own from this point. Do <B>not</B>
|
||||
report bugs, do <B>not</B> ask for help on the mailing lists. We will
|
||||
<B>not</B> provide any support in case you run into problems.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Great, I have gcc 3.0.1 from Red Hat/Mandrake, then I'm fine!</DT>
|
||||
<DD>A: No, since there have been/are issues with these compilers as well.
|
||||
To check the status of current compilers' MPlayer support, see the
|
||||
<A HREF="documentation.html#installation">Installation</A> section.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I tried to compile MPlayer, but I got this output:
|
||||
<PRE>
|
||||
In file included from /usr/include/g++-v3/bits/std_cwchar.h:42,
|
||||
from /usr/include/g++-v3/bits/fpos.h:40,
|
||||
from /usr/include/g++-v3/bits/char_traits.h:40,
|
||||
from /usr/include/g++-v3/bits/std_string.h:41,
|
||||
from /usr/include/g++-v3/string:31,
|
||||
from libwin32.h:36,
|
||||
from DS_AudioDecoder.h:4,
|
||||
from DS_AudioDec.cpp:5:
|
||||
/usr/include/wchar.h: In function Long long int wcstoq(const wchar_t*,
|
||||
wchar_t**, int)':
|
||||
/usr/include/wchar.h:514: cannot convert `const wchar_t* __restrict' to
|
||||
`const
|
||||
</PRE>
|
||||
</DT>
|
||||
<DD>A: Upgrade your glibc to the latest release. On Mandrake, use 2.2.4-8mdk.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: ... gcc 2.96 ... (Yes, some people are STILL flaming about gcc 2.96!)</DT>
|
||||
<DD>A: Quoted from a
|
||||
<A HREF="http://www.mplayerhq.hu/pipermail/mplayer-users/2001-October/005351.html">mail</A>
|
||||
A'rpi sent to the
|
||||
<A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A>
|
||||
list (the word 'ideg' is described below):
|
||||
<BLOCKQUOTE>
|
||||
<P>And we have idegs. And our idegcounter overflowed again and again.</P>
|
||||
|
||||
<P>Unfortunately MPlayer is out of our control. It's used by lamers, Linux
|
||||
users who can't even use Windows, and never tried to compile a kernel. They
|
||||
installed (with default options) Mandrake or Red Hat or SuSE, and without
|
||||
RTFM'ing they send messages saying 'it doesn't work! help me! please! i'm
|
||||
new to Linux! help! oh! help me!'. We can't stop them, but at least we try
|
||||
to force them to RTFM and to read the messages of ./configure and MPlayer.</P>
|
||||
|
||||
<P>And you clever guys come and flame us with gcc 2.96 and binary packages.
|
||||
Instead of helping users or making patches to help solve problems.</P>
|
||||
|
||||
<P>Half of our spare/free time is spent by answering silly mails here and
|
||||
making newer tricks and checks to configure to avoid such mails.</P>
|
||||
|
||||
<P>And there is a balance. On the one side are you, clever guys, saying we
|
||||
are very bad because we don't like buggy gcc 2.96, and on the other side
|
||||
there are the 'new to Linux' guys who are showing us gcc 2.96 is buggy.</P>
|
||||
|
||||
<P>Conclusion: We can't be good. Half the people will always say we are bad.</P>
|
||||
|
||||
<P>Maybe we should close the project, make it closed source, commercial, and
|
||||
provide install support for it. then we could leave current work, so
|
||||
development could go faster, and we could earn lots of money with it and buy
|
||||
a big house, etc etc. Do you really want it? It seems.</P>
|
||||
</BLOCKQUOTE>
|
||||
</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: SDL output doesn't work or compile. The problem is ...</DT>
|
||||
<DD>A: It was tested to work with SDL 1.2.x and may run on SDL 1.1.7+.
|
||||
It does <B>not</B> work with any previous version. So if you choose to use
|
||||
such a version, you are on your own.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I am still having trouble compiling with SDL support. gcc says
|
||||
something about "undefined reference to `SDL_EnableKeyRepeat'". What
|
||||
now?</DT>
|
||||
<DD>A: Where did you install the SDL library? If you installed in /usr/local
|
||||
(the default) then edit the top level config.mak and add
|
||||
"-L/usr/local/lib" after "X_LIBS=". Now type make. You're done!</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: It doesn't compile, and it misses uint64_t inttypes.h and similar
|
||||
things ...</DT>
|
||||
<DD>A: Copy etc/inttypes.h to the MPlayer directory
|
||||
(<CODE>cp etc/inttypes.h .</CODE>) and try again ...</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I have Linux running on a Pentium III but <CODE>./configure</CODE>
|
||||
doesn't detect SSE ...</DT>
|
||||
<DD>A: Only kernel versions 2.4.x support SSE (or try 2.2.19 or newer, but
|
||||
be prepared for problems).</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I have a Matrox G200/G400/G450/G550, how do I compile and use the
|
||||
mga_vid kernel driver?</DT>
|
||||
<DD>A: Read the <A HREF="video.html#mga_vid">mga_vid</A> section.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Hmm, strange. When loading the mga_vid.o kernel module, I found this in
|
||||
the logs:<BR>
|
||||
<CODE>Warning: loading mga_vid.o will taint the kernel: no license</CODE></DT>
|
||||
<DD>A: The latest kernel modutils require a flag indicating the license
|
||||
(mainly to avoid kernel hackers debugging closed source drivers).
|
||||
Upgrade your kernel, modutils and MPlayer.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: During 'make', MPlayer complains about X11 libraries. I don't
|
||||
understand, I DO have X installed!?</DT>
|
||||
<DD>A: ... but you don't have the X development package installed. Or not
|
||||
correctly. It's called XFree86-devel* under Red Hat, and xlibs-dev under
|
||||
Debian. Also check if the <CODE>/usr/X11</CODE> and <CODE>/usr/include/X11</CODE>
|
||||
symlinks exist (this can be a problem on Mandrake systems). They can be
|
||||
created with these commands:<BR>
|
||||
<CODE>$ ln -sf /usr/X11R6 /usr/X11</CODE><BR>
|
||||
<CODE>$ ln -sf /usr/X11R6/include/X11 /usr/include/X11</CODE><BR>
|
||||
Your distribution may differ from the
|
||||
<A HREF="http://www.pathname.com/fhs/">Filesystem Hierarchy Standard</A>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I can't compile SVGAlib. I'm using kernel 2.3/2.4 ...</DT>
|
||||
<DD>A: You have to edit SVGAlib's Makefile.cfg and comment
|
||||
<CODE>BACKGROUND = y</CODE> out.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I compiled MPlayer with libdvdcss/libdivxdecore support, but when
|
||||
I try to start it, it says:<BR>
|
||||
<CODE>> error while loading shared libraries: lib*.so.0: cannot load
|
||||
shared object file: No such file or directory</CODE><BR>
|
||||
I checked up on the file and it IS there in <CODE>/usr/local/lib</CODE> ...</DT>
|
||||
<DD>A: Add <CODE>/usr/local/lib</CODE> to <CODE>/etc/ld.so.conf</CODE> and run
|
||||
<CODE>ldconfig</CODE>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: When compiling MEncoder, it segfaults at linking!</DT>
|
||||
<DD>A: This is a linker problem. Upgrading binutils should help (2.11.92.*
|
||||
or newer should be good). Since it is not our fault, please do <B>not</B>
|
||||
report!</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: MPlayer dies with segmentation fault upon pthread check!</DT>
|
||||
<DD>A: chmod 644 /usr/lib/libc.so</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I'd like to compile MPlayer on Minix!</DT>
|
||||
<DD>A: Me too. :)</DD>
|
||||
<DD> </DD>
|
||||
|
||||
</DL>
|
||||
|
||||
|
||||
<H2><A NAME="general">5.3 General questions</A></H2>
|
||||
|
||||
<DL>
|
||||
|
||||
<DT>Q: Are there any mailing lists on MPlayer?</DT>
|
||||
<DD>A: Yes. See the
|
||||
<A HREF="documentation.html#mailing_lists">mailing lists</A> section.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I've found a nasty bug when I tried to play my favorite video!
|
||||
Who should I inform?</DT>
|
||||
<DD>A: Please read the <A HREF="bugreports.html">bug reporting guidelines</A>
|
||||
and follow the instructions.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I have problems playing files with the ... codec. Can I use them?</DT>
|
||||
<DD>A: Check the
|
||||
<A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">codec status</A>,
|
||||
if it doesn't contain your codec, read the
|
||||
<A HREF="codecs.html">codec documentation</A>, especially the
|
||||
<A HREF="codecs.html#importing">codec importing HOWTO</A> and contact us.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: When I start playing, I get this message but everything seems fine:<BR>
|
||||
<CODE>Linux RTC init: ioctl (rtc_pie_on): Permission denied</CODE></DT>
|
||||
<DD>A: You need root privileges or a
|
||||
specially set up kernel to use the new timing code. For details see the
|
||||
<A HREF="documentation.html#rtc">RTC section</A> of the documentation.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: There is a timer in the upper left corner. How can I get rid of it?</DT>
|
||||
<DD>A: Press <CODE>o</CODE> and try the <CODE>-osdlevel</CODE> option.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: The <CODE>-xy</CODE> or <CODE>-fs</CODE> option doesn't work with the
|
||||
x11 driver (<CODE>-vo x11</CODE>) ...</DT>
|
||||
<DD>A: It does, but you have to explicitly specify software scaling (very
|
||||
slow) with the <CODE>-zoom</CODE> option. You better use XF86VidMode
|
||||
support: You must specify the <CODE>-vm</CODE> and the <CODE>-fs</CODE>
|
||||
option, and you're done. Make sure you have the right modelines in your
|
||||
XF86Config file, and try to make the <A HREF="video.html#dga">DGA driver</A>
|
||||
and <A HREF="video.html#sdl">SDL's DGA driver</A> work for you.
|
||||
It's much faster. If SDL's DGA works, use that, it'll be even faster.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: What is the meaning of the numbers on the status line?</DT>
|
||||
<DD>A: Example:
|
||||
<CODE>A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49%</CODE>
|
||||
<UL>
|
||||
<LI>A: audio position in seconds</LI>
|
||||
<LI>V: video position in seconds</LI>
|
||||
<LI>A-V: audio-video difference in seconds (delay)</LI>
|
||||
<LI>ct: total A-V sync correction done</LI>
|
||||
<LI>frames played (counting from last seek)</LI>
|
||||
<LI>frames decoded (counting from last seek)</LI>
|
||||
<LI>video codec cpu usage in percent (for slices and DR this includes
|
||||
video_out)</LI>
|
||||
<LI>video_out cpu usage</LI>
|
||||
<LI>audio codec cpu usage in percent</LI>
|
||||
<LI>frames needed to drop to maintain A-V sync</LI>
|
||||
<LI>current level of image postprocessing (when using <CODE>-autoq</CODE>)</LI>
|
||||
<LI>current cache size used (around 50% is normal)</LI>
|
||||
</UL>
|
||||
Most of them are for debug purposes and will be removed at some point.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: What if I don't want them to appear?</DT>
|
||||
<DD>A: Use the <CODE>-quiet</CODE> or <CODE>-really-quiet</CODE> option as
|
||||
described in the man page.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Why is video_out cpu usage zero (0%) for some files?</DT>
|
||||
<DD>A1: It's not zero, but it's called from the codec and thus cannot be
|
||||
measured separately. You should try to play the file using
|
||||
<CODE>-vo null</CODE> and then <CODE>-vo ...</CODE> and check the
|
||||
difference to see the video_out speed.</DD>
|
||||
<DD>A2: You are using Direct Rendering,
|
||||
where the codec renders to the video memory itself. In this case, the
|
||||
decoding percentage contains the display percentage, too.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: There are error messages about file not found
|
||||
<CODE>/usr/local/lib/codecs/...</CODE></DT>
|
||||
<DD>A: Download the Win32 codecs from our
|
||||
<A HREF="http://www.mplayerhq.hu/MPlayer/releases/codecs/">codecs page</A>
|
||||
(avifile's codec package has a different DLL set) and install it.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Can I run multiple instances of MPlayer?</DT>
|
||||
<DD>A: Yes. Some video out drivers like xv, dga or (x)mga are exclusive, some
|
||||
are exclusive in combination with certain graphics boards and drivers. You
|
||||
will not be able to run more than one instance of MPlayer with one of those
|
||||
video out drivers. To a lesser degree this also applies to audio drivers.
|
||||
Not all allow playback of multiple streams on the same device.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Umm, what is "IdegCounter"?</DT>
|
||||
<DD>A: A combination of a Hungarian and an English word. "Ideg" in Hungarian
|
||||
means the same as "nerve" in English, and is pronounced as something like
|
||||
"ydaegh". It was first used to measure the nervousness of A'rpi, after some
|
||||
(umm) "mysterious" disappearance of CVS code ;)</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: And what is "Faszom(C)ounter"?</DT>
|
||||
<DD>A: "Fasz" is a Hungarian word you don't want to know, the others are
|
||||
connected to the perverted minds of the MPlayer developers.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: LIRC doesn't work, because ...</DT>
|
||||
<DD>A: Are you sure you are using <CODE>mplayer</CODE> instead of
|
||||
<CODE>mplayer_lirc</CODE>? Note that it was <CODE>mplayer_lirc</CODE> for a
|
||||
long time, including the 0.60 release, but it was recently changed back to
|
||||
<CODE>mplayer</CODE>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Subtitles are very nice, the most beautiful I've ever seen, but they
|
||||
slow down playing! I know it's unlikely ...</DT>
|
||||
<DD>A: After running <CODE>./configure</CODE>, edit <CODE>config.h</CODE> and
|
||||
replace <CODE>#undef FAST_OSD</CODE> with <CODE>#define FAST_OSD</CODE>.
|
||||
Then recompile.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: The onscreen display (OSD) is flickering!</DT>
|
||||
<DD>A: You use a vo driver with single buffering (x11,xv). With xv,
|
||||
use the <CODE>-double</CODE> option. Also try <CODE>-vf expand</CODE>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: What exactly is this libavcodec thing?</DT>
|
||||
<DD>A: See the <A HREF="codecs.html#libavcodec">libavcodec section</A>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: But configure tells me "Checking for libavcodec ... no"!</DT>
|
||||
<DD>A: You need to get libavcodec from FFmpeg's CVS. Read the instructions in
|
||||
the <A HREF="codecs.html#libavcodec">libavcodec section</A>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Icewm's taskbar keeps covering the movie in fullscreen mode!</DT>
|
||||
<DD>A: This shouldn't happen anymore, if it still does use the
|
||||
<CODE>-fstype layer</CODE> option and report it to the
|
||||
<A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A>
|
||||
mailing list.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I can't access the GUI menu. I press right click, but I can't access
|
||||
any menu items!</DT>
|
||||
<DD>A: Are you using FVWM? Try the following:<BR>
|
||||
Start -> Settings -> Configuration -> Base Configuration<BR>
|
||||
Set "Use Applications position hints" to "Yes".</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I run MPlayer in the background?</DT>
|
||||
<DD>A: Use: <CODE>mplayer <options> <filename> < /dev/null &</CODE></DD>
|
||||
<DD> </DD>
|
||||
|
||||
</DL>
|
||||
|
||||
|
||||
<H2><A NAME="playback">5.4 Playback problems</A></H2>
|
||||
|
||||
<DL>
|
||||
|
||||
<DT>Q: I cannot pinpoint the cause of some strange playback problem.</DT>
|
||||
<DD>A: Do you have a stray <CODE>codecs.conf</CODE> file in
|
||||
<CODE>~/.mplayer/</CODE>, <CODE>/etc/</CODE>, <CODE>/usr/local/etc/</CODE>
|
||||
or a similar location? Remove it, outdated <CODE>codecs.conf</CODE> files
|
||||
can cause obscure problems. MPlayer will use its builtin one instead.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: ... works with xine/avifile/... but doesn't with MPlayer.</DT>
|
||||
<DD>A: MPlayer is not xine/avifile/... Although these players have some code
|
||||
in common, the codecs (DLL) set, synchronization, demultiplexing etc is
|
||||
different and should not be compared. If you have a file MPlayer fails to
|
||||
play correctly but works in another player, please read the
|
||||
<A HREF="bugreports.html">bug reporting guidelines</A> and upload the file
|
||||
to our FTP server.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Audio goes out of sync playing an AVI file.</DT>
|
||||
<DD>A: Try the <CODE>-bps</CODE> or <CODE>-nobps</CODE> option. If it does not
|
||||
improve, read the <A HREF="bugreports.html">bug reporting guidelines</A> and
|
||||
upload the file to our FTP server.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: MPlayer exits with some error when using l3codeca.acm.</DT>
|
||||
<DD>A: Check <CODE>ldd /usr/local/bin/mplayer</CODE> output. If it contains<BR>
|
||||
<CODE>libc.so.6 => /lib/libc.so.6 (0x4???????)</CODE><BR>
|
||||
where "?" is any number then it's OK, the error is not here. If it is:<BR>
|
||||
<CODE>libc.so.6 => /lib/libc.so.6 (0x00??????)</CODE><BR>
|
||||
then there is a problem with your kernel/libc. Maybe you are using some
|
||||
security patches (for example Solar Designer's OpenWall patch) which
|
||||
forces loading libraries to very low addresses.
|
||||
Because l3codeca.acm is a non-relocatable DLL, it must be loaded to
|
||||
0x00400000, we can't change this. You should use a non-patched kernel,
|
||||
or use MPlayer's <CODE>-afm 1</CODE> option to disable using
|
||||
l3codeca.acm.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: My computer plays M$ DivX AVIs with resolutions ~ 640x300 and stereo
|
||||
mp3 sound too slow. When I use -nosound option, everything is OK (but
|
||||
quiet).</DT>
|
||||
<DD>A: Your machine is too slow or your soundcard driver is broken. Consult
|
||||
the documentation to see if you can improve performance.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: MPlayer dies with "MPlayer interrupted by signal 4 in module:
|
||||
decode_video".</DT>
|
||||
<DD>A: Try running MPlayer on the machine you compiled on. Or recompile
|
||||
with runtime CPU detection
|
||||
(<CODE>./configure --enable-runtime-cpudetection</CODE>). Don't
|
||||
use MPlayer on a CPU different from the one it was compiled on,
|
||||
without using the feature mentioned just now.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I have problems with [your window manager] and fullscreen
|
||||
xv/xmga/sdl/x11 modes ...</DT>
|
||||
<DD>A: Read the <A HREF="bugreports.html">bug reporting guidelines</A> and
|
||||
send us a proper bug report.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: When starting MPlayer under KDE I just get a black screen and nothing
|
||||
happens. After about one minute the video starts playing.</DT>
|
||||
<DD>A: The KDE arts sound daemon is blocking the sound device. Either wait
|
||||
until the video starts or disable the arts-daemon in kontrol center. If you
|
||||
want to use arts sound, specify audio output via our native arts audio
|
||||
driver (<CODE>-ao arts</CODE>). If it fails or isn't compiled in, try SDL
|
||||
(<CODE>-ao sdl</CODE>) and make sure your SDL can handle arts sound. Yet
|
||||
another option is to start MPlayer with artsdsp.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: When I play this movie I get video-audio desync and/or MPlayer crashes
|
||||
with the following message:<BR>
|
||||
<CODE>DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!</CODE></DT>
|
||||
<DD>A: This can have multiple reasons.
|
||||
<UL>
|
||||
<LI>Your CPU <B>and/or</B> video card <B>and/or</B> bus is too slow.
|
||||
MPlayer displays a message if this is the case (and the dropped
|
||||
frames counter goes up fast).</LI>
|
||||
<LI>If it is an AVI, maybe it has bad interleaving. Try the
|
||||
<CODE>-ni</CODE> option.</LI>
|
||||
<LI>Your sound driver is buggy, or you use ALSA 0.5 with <CODE>-ao oss</CODE>.
|
||||
See the <A HREF="sound.html">sound card section</A>.</LI>
|
||||
<LI>The AVI has a bad header, try the <CODE>-nobps</CODE> option, and/or
|
||||
<CODE>-mc 0</CODE>.</LI>
|
||||
</UL></DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I have an MJPEG file which works with other players but displays only a
|
||||
black image in MPlayer.</DT>
|
||||
<DD>A: Use another codec to play the file, try <CODE>-vc ffmjpeg</CODE>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: When I try to grab from my tuner, it works, but colors are strange.
|
||||
It's OK with other applications.</DT>
|
||||
<DD>A: Your card probably misreports its colorspace capacity. Try with YUY2
|
||||
instead of default YV12 (see the <A HREF="documentation.html#tv">TV</A>
|
||||
section).</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I have A/V sync problems. Some of my AVIs play fine, but some play with
|
||||
double speed!</DT>
|
||||
<DD>A: You have a buggy sound card/driver. Most likely it's fixed at 44100Hz,
|
||||
and you try to play a file which has 22050Hz audio. Try the resample audio
|
||||
plugin.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I get very strange percentage values (way too big) while playing files
|
||||
on my notebook.</DT>
|
||||
<DD>A: It's an effect of the power management / power saving system of your
|
||||
notebook (BIOS, not kernel). Plug the external power connector in
|
||||
<B>before</B> you power on your notebook. You can also try whether
|
||||
<A HREF="http://www.brodo.de/cpufreq/">cpufreq</A> (a SpeedStep interface
|
||||
for Linux) helps you.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: The audio/video gets totally out of sync when I run MPlayer as root on
|
||||
my notebook. It works normal when i run it as a user.</DT>
|
||||
<DD>A: This is again a power management effect (see above). Plug the external
|
||||
power connector in <B>before</B> you power on your notebook or use the
|
||||
<CODE>-nortc</CODE> option.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: While playing a movie it suddenly gets jerky and I get
|
||||
the following message:<BR>
|
||||
<CODE>Badly interleaved AVI file detected - switching to -ni
|
||||
mode...</CODE>
|
||||
<DD>A: Badly interleaved files and <CODE>-cache</CODE> don't work well
|
||||
together. Try <CODE>-nocache</CODE>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
</DL>
|
||||
|
||||
|
||||
<H2><A NAME="driver">5.5 Video/audio driver problems (vo/ao)</A></H2>
|
||||
|
||||
<DL>
|
||||
|
||||
<DT>Q: I have no sound when playing a video and get error messages similar to
|
||||
this one:
|
||||
<PRE>
|
||||
AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian)
|
||||
audio_setup: Can't open audio device /dev/dsp: Device or resource busy
|
||||
couldn't open/init audio device -> NOSOUND
|
||||
Audio: no sound!!!
|
||||
Start playing...
|
||||
</PRE>
|
||||
</DT>
|
||||
<DD>A: Are you running KDE or GNOME with the ARTS or ESD sound daemon? Try
|
||||
disabling the sound daemon or use the <CODE>-ao arts</CODE> or
|
||||
<CODE>-ao esd</CODE> option to make MPlayer use ARTS or ESD.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: What about the DGA driver? I can't find it!</DT>
|
||||
<DD>A: <CODE>./configure</CODE> autodetects your DGA driver. If
|
||||
<CODE>-vo help</CODE> doesn't show DGA, then there's a problem with your X
|
||||
installation. Try <CODE>./configure --enable-dga</CODE> and read the
|
||||
<A HREF="video.html#dga">DGA</A> section. Alternatively, try SDL's DGA
|
||||
driver with the <CODE>-vo sdl:dga</CODE> option.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: OK, <CODE>-vo help</CODE> shows DGA driver, but it complains about
|
||||
permissions. Help me!</DT>
|
||||
<DD>A: It works only if running as root! It's a DGA limitation.
|
||||
You should become root (<CODE>su -</CODE>), and try again.
|
||||
Another solution is making MPlayer SUID root, but it's
|
||||
<B>not recommended!</B><BR>
|
||||
<CODE>chown root /usr/local/bin/mplayer</CODE><BR>
|
||||
<CODE>chmod 755 /usr/local/bin/mplayer</CODE><BR>
|
||||
<CODE>chmod +s /usr/local/bin/mplayer</CODE><BR>
|
||||
<BLOCKQUOTE>
|
||||
<B>Warning: security risk</B><BR>
|
||||
This is a <B>big</B> security risk! <B>Never</B> do this on a server or
|
||||
on a computer that you do not control completely because other users can
|
||||
gain root privileges through SUID root MPlayer. <B>You have been
|
||||
warned.</B>
|
||||
</BLOCKQUOTE>
|
||||
</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: When using Xvideo, my Voodoo 3/Banshee says:<BR>
|
||||
<CODE>X Error of failed request: BadAccess (attempt to access private
|
||||
resource denied)<BR>
|
||||
Major opcode of failed request: 147 (MIT-SHM)<BR>
|
||||
Minor opcode of failed request: 1 (X_ShmAttach)<BR>
|
||||
Serial number of failed request: 26<BR>
|
||||
Current serial number in output stream:27</CODE></DT>
|
||||
<DD>A: The "tdfx" driver in XFree86 4.0.2/4.0.3 had this bug. This was solved
|
||||
by <A HREF="http://www.xfree86.org/cvs/changes_4_1.html">bugfix #621 of the
|
||||
XFree86 4.1.0 CVS log</A>. So upgrade to XFree86 4.1.0 or later.
|
||||
Alternatively, either download (at least) DRI version 0.6 from the
|
||||
<A HREF="http://dri.sourceforge.net">DRI homepage</A>, or use CVS DRI.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: OpenGL (<CODE>-vo gl</CODE>) output doesn't work (hang/black window/X11
|
||||
errors/...).</DT>
|
||||
<DD>A: Your OpenGL driver doesn't support dynamic texture changes
|
||||
(glTexSubImage). It's known not to work with nVidia's binary mess.
|
||||
It's known to work with Utah-GLX/DRI and Matrox G400 cards. Also with
|
||||
DRI and Radeon cards. It won't work with DRI and other cards.
|
||||
it will not work with 3DFX cards because of the 256x256 texture size limit.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I have an nVidia TNT/TNT2 card, and I have a band with strange colors,
|
||||
right under the movie! Whose fault is this?</DT>
|
||||
<DD>A: This is a bug of nVidia's binary X driver. These bugs appear ONLY with
|
||||
the TNT/TNT2 cards, and we can't do anything about it. To fix the problem,
|
||||
upgrade to the latest nVidia binary driver version. If still bad, complain
|
||||
to nVidia!</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I have an nVidia XYZ card, and when I click on the GUI's display window
|
||||
to toggle displaying the GUI panel, a black square appears where I clicked.
|
||||
I have the newest driver.</DT>
|
||||
<DD>A: Yes, nVidia corrected a previous bug (above), and introduced a new one.
|
||||
Let's congratulate them. UPDATE: According to
|
||||
<A HREF="users_against_developers.html#nvidia">nVidia</A>, this has already
|
||||
been fixed.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Oh the world is cruel ...! SDL has only <CODE>x11</CODE> target, but
|
||||
not <CODE>xv</CODE>!</DT>
|
||||
<DD>A: Try that <CODE>x11</CODE> target again. Now try
|
||||
<CODE>-vo x11 -fs -zoom</CODE>. See the difference? No?! OK, here comes the
|
||||
enlightenment: SDL's <CODE>x11</CODE> target uses xv when available, you
|
||||
don't have to worry about it ... Note: you can force/disable Xv via SDL
|
||||
using <CODE>-forcexv</CODE> and <CODE>-noxv</CODE></DD>
|
||||
<DD> </DD>
|
||||
|
||||
</DL>
|
||||
|
||||
|
||||
<H2><A NAME="dvd">5.6 DVD playback</A></H2>
|
||||
|
||||
<DL>
|
||||
|
||||
<DT>Q: What about DVD navigation?</DT>
|
||||
<DD>A: Support for dvdnav in MPlayer is currently broken, normal playback
|
||||
does work, though. If you want to have fancy menus, you will have to use
|
||||
another player like <A HREF="http://xine.sourceforge.net">xine</A> or
|
||||
<A HREF="http://www.dtek.chalmers.se/groups/dvd/">Ogle</A>. If you care
|
||||
about DVD navigation, send a <A HREF="../tech/patches.txt">patch</A>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: While playing a DVD, I encountered this error:<BR>
|
||||
<CODE>mplayer: ifo_read.c:1143: ifoRead_C_ADT_internal: Assertion
|
||||
nfo_length / sizeof(cell_adr_t) >= c_adt->nr_of_vobs' failed.</CODE></DT>
|
||||
<DD>A: This is a known libdvdread 0.9.1/0.9.2 bug. Use <B>libmpdvdkit2</B>,
|
||||
which is present in MPlayer source, and used by default.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Can I compile libdvdread and libdvdcss on my sweet SPARC under
|
||||
Solaris?</DT>
|
||||
<DD>A: Who knows ... It's said to work, so please test it and send feedback.
|
||||
Refer to the documentation of libdvdread and its homepage as well. We're not
|
||||
the authors of libdvdread. Use <B>libmpdvdkit2</B>, which is present in
|
||||
MPlayer source, and used by default.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: What about subtitles? Can MPlayer display them?</DT>
|
||||
<DD>A: Yes. See the <A HREF="cd-dvd.html#dvd">DVD chapter</A>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I set the region code of my DVD-drive? I don't have
|
||||
Windows!</DT>
|
||||
<DD>A: Use the
|
||||
<A HREF="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">regionset tool</A>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Do I need to be (setuid) root/setuid fibmap_mplayer to be able to play
|
||||
a DVD?</DT>
|
||||
<DD>A: No, only for old-style DVD support. However you must have
|
||||
the proper rights on the DVD device entry (in <CODE>/dev/</CODE>).</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Where can I get libdvdread and libdvdcss packages?</DT>
|
||||
<DD>A: You don't need to. Use <B>libmpdvdkit2</B>, which is present in the
|
||||
MPlayer source, and used by default. You can get the mentioned packages
|
||||
from the
|
||||
<A HREF="http://www.dtek.chalmers.se/groups/dvd/">Ogle site</A>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Is it possible to play/encode only selected chapters?</DT>
|
||||
<DD>A: Yes, try the <CODE>-chapter</CODE> option.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: My DVD playback is sluggish!</DT>
|
||||
<DD>A: Use the <CODE>-cache</CODE> option (described in the man page)
|
||||
and try enabling DMA for the DVD drive with the hdparm tool (described in
|
||||
the <A HREF="cd-dvd.html#cd">CD chapter</A>).</DD>
|
||||
<DD> </DD>
|
||||
|
||||
</DL>
|
||||
|
||||
|
||||
<H2><A NAME="features">5.7 Feature requests</A></H2>
|
||||
|
||||
<DL>
|
||||
|
||||
<DT>Q: If MPlayer is paused and I try to seek or press any key at all,
|
||||
MPlayer ceases to be paused. I would like to be able to seek in the
|
||||
paused movie.</DT>
|
||||
<DD>A: This is very tricky to implement without losing A/V synchronization.
|
||||
All attempts have failed so far, but patches are welcome.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I'd like to seek +/- 1 frames instead of 10 seconds.</DT>
|
||||
<DD>A: This won't be done. It was, but then it messed up A/V sync. Feel free
|
||||
to implement it, and send a patch. Don't ask for it.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I make MPlayer remember the options I use for this
|
||||
particular file?</DT>
|
||||
<DD>A: Create a file named <CODE>movie.avi.conf</CODE> with the
|
||||
file-specific options in it and put it in <CODE>~/.mplayer</CODE> or in
|
||||
the same directory as the file.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
</DL>
|
||||
|
||||
|
||||
<H2><A NAME="encoding">5.8 Encoding</A></H2>
|
||||
|
||||
<DL>
|
||||
|
||||
<DT>Q: How can I encode?</DT>
|
||||
<DD>A: Read the <A HREF="encoding.html">MEncoder</A> section.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I create VCDs?</DT>
|
||||
<DD>A: Try the <CODE>mencvcd</CODE> script from the <CODE>TOOLS</CODE>
|
||||
subdirectory. With it you can encode DVDs or other movies to VCD or SVCD
|
||||
format and even burn them directly to CD.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I join two video files?</DT>
|
||||
<DD>A: This has been discussed to no end on mplayer-users. Go search the
|
||||
<A HREF="http://mplayerhq.hu/cgi-bin/htsearch?restrict=/mplayer-users/">archives</A>
|
||||
for a complete answer. This is a complicated topic and your mileage may
|
||||
vary a lot depending on the kind of files you want to merge. MPEGs can be
|
||||
concatenated into a single file with luck. For AVIs there are two tools,
|
||||
<A HREF="http://fixounet.free.fr/avidemux/">avidemux</A>
|
||||
and avimerge (part of the
|
||||
<A HREF="http://www.theorie.physik.uni-goettingen.de/~ostreich/transcode/">transcode</A>
|
||||
tool set), available that might do the job. You can also try MEncoder if
|
||||
you have two files sharing the same dimensions and codec. Try<BR>
|
||||
<CODE>cat file1 file2 > file3</CODE><BR>
|
||||
<CODE>mencoder -ovc copy -oac copy -o out.avi -forceidx file3.avi</CODE></DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: My tuner works, I can hear the sound and watch the video with MPlayer,
|
||||
but MEncoder doesn't encode audio!</DT>
|
||||
<DD>A: TV audio encoding for Linux is currently unimplemented, we're working
|
||||
on it. At the moment it works only on BSD.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I can't encode DVD subtitles into the AVI!</DT>
|
||||
<DD>A: You have to specify the <CODE>-sid</CODE> option correctly!</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: MEncoder segfaults on startup!</DT>
|
||||
<DD>A: Upgrade DivX4Linux.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I encode only selected chapters from a DVD?</DT>
|
||||
<DD>A: Use the <CODE>-chapter</CODE> option correctly, like:
|
||||
<CODE>-chapter 5-7</CODE></DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I'm trying to work with 2GB+ files on a VFAT file system. Does it work?</DT>
|
||||
<DD>A: No, VFAT doesn't support 2GB+ files.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: Why is the recommended bitrate printed by MEncoder negative?</DT>
|
||||
<DD>A: Because the bitrate you encoded the audio with is too large to fit the
|
||||
movie on any CD. Check if you have libmp3lame installed properly.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: I can't encode ASF files to AVI/DivX because it uses 1000 fps?</DT>
|
||||
<DD>A: Because ASF uses variable frame rate but AVI uses a fixed one, you
|
||||
have to set it by hand using <CODE>-ofps</CODE>.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
<DT>Q: How can I put subtitles in the output file?</DT>
|
||||
<DD>A: Just pass the <CODE>-sub <filename> option</CODE> (or
|
||||
<CODE>-sid</CODE>, <CODE>-vobsub</CODE>, respectively) to MEncoder.</DD>
|
||||
<DD> </DD>
|
||||
|
||||
</DL>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,320 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>Formats - MPlayer - The Movie Player for Linux</TITLE>
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
|
||||
<H2><A NAME="formats">2.1 Supported formats</A></H2>
|
||||
|
||||
<P>It is important to clarify a common mistake. When people see a file with a
|
||||
<B>.AVI</B> extension, they immediately conclude that it is not an MPEG file.
|
||||
That is not true. At least not entirely. Contrary to popular belief such a
|
||||
file <B>can</B> contain MPEG1 video.</P>
|
||||
|
||||
<P>You see, a <B>codec</B> is not the same as a <B>file format</B>.<BR>
|
||||
Examples of video <B>codecs</B> are: MPEG1, MPEG2, DivX, Indeo5, 3ivx.<BR>
|
||||
Examples of file <B>formats</B> are: MPG, AVI, ASF.</P>
|
||||
|
||||
<P>In theory, you can put an OpenDivX video and MP3 audio into an <B>MPG</B>
|
||||
format file. However, most players will not play it, since they expect MPEG1
|
||||
video and MP2 audio (unlike <B>AVI</B>, <B>MPG</B> does not have the
|
||||
necessary fields to describe its video and audio streams). Or you might put
|
||||
MPEG1 video into an AVI file.
|
||||
<A HREF="http://ffmpeg.sourceforge.net">FFmpeg</A> and
|
||||
<A HREF="encoding.html">MEncoder</A> can create these files.</P>
|
||||
|
||||
|
||||
|
||||
<H3><A NAME="video_formats">2.1.1 Video formats</A></H3>
|
||||
|
||||
|
||||
<H4><A NAME="mpeg">2.1.1.1 MPEG files</A></H4>
|
||||
|
||||
<P>MPEG files come in different guises:</P>
|
||||
|
||||
<UL>
|
||||
<LI>MPG: This is the most <B>basic</B> form of the MPEG file formats. It
|
||||
contains MPEG1 video, and MP2 (MPEG-1 layer 2) or rarely MP1 audio.</LI>
|
||||
<LI>DAT: This is the very same format as MPG with a different extension. It
|
||||
is used on <B>Video CD</B>s. Due to the way VCDs are created and Linux is
|
||||
designed, DAT files cannot be played nor copied from VCDs as regular files.
|
||||
You have to use <CODE>vcd://</CODE> to play a Video CD.</LI>
|
||||
<LI>VOB: This is the MPEG file format on <B>DVD</B>s. It is the same as MPG,
|
||||
plus the capability to contain subtitles or non-MPEG (AC3) audio. It
|
||||
contains encoded MPEG2 video and usually AC3 audio, but DTS, MP2 and
|
||||
uncompressed LPCM are allowed, too.<BR> <B>Read the <A
|
||||
HREF="cd-dvd.html#dvd">DVD section</A>!</B></LI>
|
||||
</UL>
|
||||
|
||||
<P>Series of frames form independent groups in MPEG files. This means that you
|
||||
can cut/join an MPEG file with standard file tools (like <CODE>dd</CODE>,
|
||||
<CODE>cut</CODE>), and it remains completely functional.</P>
|
||||
|
||||
<P>One important feature of MPGs is that they have a field to describe the
|
||||
aspect ratio of the video stream within. For example SVCDs have 480x480
|
||||
resolution video, and in the header that field is set to 4:3, so that it is
|
||||
played at 640x480. AVI files do not have this field, so they have to be
|
||||
rescaled during encoding or played with the <CODE>-aspect</CODE> option.</P>
|
||||
|
||||
|
||||
<H4><A NAME="avi">2.1.1.2 AVI files</A></H4>
|
||||
|
||||
<P>Designed by Microsoft, <B>AVI (Audio Video Interleaved)</B> is a widespread
|
||||
multipurpose format currently used mostly for DivX and DivX4 video. It has
|
||||
many known drawbacks and shortcomings (for example in streaming). It
|
||||
supports one video stream and 0 to 99 audio streams. File size is limited to
|
||||
2GB, but there exists an extension allowing bigger files called
|
||||
<B>OpenDML</B>. Microsoft currently strongly discourages its use and
|
||||
encourages ASF/WMV. Not that anybody cares.</P>
|
||||
|
||||
<P>There is a hack that allows AVI files to contain an Ogg Vorbis audio
|
||||
stream, but makes them incompatible with standard AVI. MPlayer
|
||||
supports playing these files. Seeking is also implemented but severely
|
||||
hampered by badly encoded files with confusing headers. Unfortunately the
|
||||
only encoder currently capable of creating these files, NanDub, has this
|
||||
problem.</P>
|
||||
|
||||
<P><B>Note:</B> DV cameras create raw DV streams that DV grabbing utilities
|
||||
convert to two different types of AVI files. The AVI will then contain either
|
||||
separate audio and video streams that MPlayer can play or the raw DV
|
||||
stream for which support is under development.</P>
|
||||
|
||||
<P>There are two kinds of AVI files:</P>
|
||||
<UL>
|
||||
<LI><B>Interleaved:</B> Audio and video content is interleaved. This is the
|
||||
standard usage. Recommended and mostly used. Some tools create
|
||||
interleaved AVIs with bad sync. MPlayer detects these as
|
||||
interleaved, and this climaxes in loss of A/V sync, probably at seeking.
|
||||
These files should be played as non-interleaved (with the <CODE>-ni</CODE>
|
||||
option).</LI>
|
||||
<LI><B>Non-interleaved:</B> First comes the whole video stream, then the whole
|
||||
audio stream. It thus needs a lot of seeking, making playing from network or
|
||||
CD-Rom difficult.</LI>
|
||||
</UL>
|
||||
|
||||
<P>MPlayer supports two kinds of timings for AVI files:</P>
|
||||
<UL>
|
||||
<LI><B>bps-based</B>: It is based on the bitrate/samplerate of the video/audio stream. This
|
||||
method is used by most players, including <A HREF="http://avifile.sourceforge.net">avifile</A>
|
||||
and Windows Media Player.
|
||||
Files with broken headers, and files created with VBR audio but not with a
|
||||
VBR-compliant encoder will result in A/V desync with this method (mostly at
|
||||
seeking).</LI>
|
||||
<LI><B>interleaving-based</B>: It does not use the bitrate value of the header, instead
|
||||
it uses the relative position of interleaved audio and video chunks, making
|
||||
badly encoded files with VBR audio playable.</LI>
|
||||
</UL>
|
||||
|
||||
<P>Any audio and video codec is allowed, but note that VBR audio is not well
|
||||
supported by most players. The file format makes it possible to use VBR
|
||||
audio, but most players expect CBR audio, thus they fail with VBR. VBR is
|
||||
uncommon and the Microsoft AVI specs only describe CBR audio. Most AVI
|
||||
encoders/multiplexers create bad files when using VBR audio. There are only
|
||||
two known exceptions: NanDub and <A HREF="encoding.html">MEncoder</A>.</P>
|
||||
|
||||
|
||||
<H4><A NAME="asf">2.1.1.3 ASF/WMV files</A></H4>
|
||||
|
||||
<P>ASF (active streaming format) comes from Microsoft. They developed two
|
||||
variants of ASF, v1.0 and v2.0. v1.0 is used by their media tools (Windows
|
||||
Media Player and Windows Media Encoder) and is very secret. v2.0 is published
|
||||
and patented :). Of course they differ, there is no compatibility at all (it
|
||||
is just another legal game). MPlayer supports only v1.0, as nobody has
|
||||
ever seen v2.0 files :). Note that ASF files nowadays come with the extension
|
||||
.WMA or .WMV.</P>
|
||||
|
||||
|
||||
<H4><A NAME="mov">2.1.1.4 QuickTime/MOV files</A></H4>
|
||||
|
||||
<P>These formats were designed by Apple and can contain any codec, CBR or VBR.
|
||||
They usually have a .QT or .MOV extension. Ever since the MPEG4 group chose
|
||||
QuickTime as the recommended file format for MPEG4, their MOV files come with
|
||||
an
|
||||
.MPG or .MP4 extension (Interestingly the video and audio streams in these
|
||||
files are real MPG and AAC files. You can even extract them with the
|
||||
<CODE>-dumpvideo</CODE> and <CODE>-dumpaudio</CODE> options.).</P>
|
||||
|
||||
<P><B>Note:</B> Most new QuickTime files use <B>Sorenson</B> video and QDesign
|
||||
Music audio. See our <A HREF="codecs.html#sorenson">Sorenson</A> codec
|
||||
section.</P>
|
||||
|
||||
|
||||
<H4><A NAME="vivo">2.1.1.5 VIVO files</A></H4>
|
||||
|
||||
<P>MPlayer happily demuxes VIVO file formats. The biggest disadvantage
|
||||
of the format is that it has no index block, nor a fixed packet size or sync
|
||||
bytes and most files lack even keyframes, so forget seeking!</P>
|
||||
|
||||
<P>The video codec of VIVO/1.0 files is standard <B>h.263</B>. The video codec
|
||||
of VIVO/2.0 files is a modified, nonstandard <B>h.263v2</B>. The audio is the
|
||||
same, it may be <B>g.723</B> (standard), or <B>Vivo Siren</B>.</P>
|
||||
|
||||
<P>See the <A HREF="codecs.html#vivo_video">VIVO video codec</A> and
|
||||
<A HREF="codecs.html#vivo_audio">VIVO audio codec</A> sections for installation
|
||||
instructions.</P>
|
||||
|
||||
|
||||
<H4><A NAME="fli">2.1.1.6 FLI files</A></H4>
|
||||
|
||||
<P><B>FLI</B> is a very old file format used by Autodesk Animator, but it is a
|
||||
common file format for short animations on the net. MPlayer demuxes
|
||||
and decodes FLI movies and is even able to seek within them (useful when
|
||||
looping with the <CODE>-loop</CODE> option). FLI files do not have keyframes,
|
||||
so the picture will be messy for a short time after seeking.</P>
|
||||
|
||||
|
||||
<H4><A NAME="real">2.1.1.7 RealMedia (RM) files</A></H4>
|
||||
|
||||
<P>Yes, MPlayer can read (demux) RealMedia (.rm) files. Seeking works,
|
||||
but you have to explicitly specify the <CODE>-forceidx</CODE> option
|
||||
(the format supports keyframes). Here are the lists of the supported
|
||||
<A HREF="codecs.html#realvideo">RealVideo</A>
|
||||
and <A HREF="codecs.html#realaudio">RealAudio</A> codecs.</P>
|
||||
|
||||
|
||||
<H4><A NAME="nuppelvideo">2.1.1.8 NuppelVideo files</A></H4>
|
||||
|
||||
<P><A HREF="http://mars.tuwien.ac.at/~roman/nuppelvideo">NuppelVideo</A>
|
||||
is a TV grabber tool (AFAIK:). MPlayer can read its .NUV files (only
|
||||
NuppelVideo 5.0). Those files can contain uncompressed YV12, YV12+RTJpeg
|
||||
compressed, YV12 RTJpeg+lzo compressed, and YV12+lzo compressed frames.
|
||||
MPlayer decodes them all (and also <B>encodes</B> them with
|
||||
MEncoder to DivX/etc!). Seeking works.</P>
|
||||
|
||||
|
||||
<H4><A NAME="yuv4mpeg">2.1.1.9 yuv4mpeg files</A></H4>
|
||||
|
||||
<P><A HREF="http://mjpeg.sourceforge.net">yuv4mpeg / yuv4mpeg2</A> is a file
|
||||
format used by the <A HREF="http://mjpeg.sf.net">mjpegtools programs</A>.
|
||||
You can grab, produce, filter or encode video in this format using these
|
||||
tools. The file format is really a sequence of uncompressed YUV 4:2:0
|
||||
images.</P>
|
||||
|
||||
|
||||
<H4><A NAME="film">2.1.1.10 FILM files</A></H4>
|
||||
|
||||
<P>This format is used on old Sega Saturn CD-Rom games.</P>
|
||||
|
||||
|
||||
<H4><A NAME="roq">2.1.1.11 RoQ files</A></H4>
|
||||
|
||||
<P>RoQ files are multimedia files used in some ID games such as Quake III and
|
||||
Return to Castle Wolfenstein.</P>
|
||||
|
||||
|
||||
<H4><A NAME="ogg">2.1.1.12 OGG/OGM files</A></H4>
|
||||
|
||||
<P>This is a new file format from <A HREF="http://www.xiph.org">Xiphophorus</A>.
|
||||
It can contain any video or audio codec, CBR or VBR. You will need to
|
||||
have <CODE>libogg</CODE> and <CODE>libvorbis</CODE> installed
|
||||
before compiling MPlayer to be able to play it.</P>
|
||||
|
||||
|
||||
<H4><A NAME="sdp">2.1.1.13 SDP files</A></H4>
|
||||
|
||||
<P><A HREF="ftp://ftp.rfc-editor.org/in-notes/rfc2327.txt">SDP</A>
|
||||
is an IETF standard format for describing video and/or audio RTP streams.
|
||||
(The "<A HREF="http://www.live.com/mplayer/">LIVE.COM Streaming Media</A>"
|
||||
libraries are required.)</P>
|
||||
|
||||
|
||||
<H4><A NAME="pva">2.1.1.14 PVA files</A></H4>
|
||||
|
||||
<P>PVA is an MPEG-like format used by DVB TV boards' software (e.g.: MultiDec,
|
||||
WinTV) under Windows.</P>
|
||||
|
||||
<P>The PVA specifications can be downloaded from the following address:
|
||||
<A HREF="http://www.technotrend.de/download/av_format_v1.pdf">http://www.technotrend.de/download/av_format_v1.pdf</A></P>
|
||||
|
||||
|
||||
<H4><A NAME="gif">2.1.1.15 GIF files</A></H4>
|
||||
|
||||
<P>The <B>GIF</B> format is a common format for web graphics. There are two
|
||||
versions of the GIF spec, GIF87a and GIF89a. The main difference is that
|
||||
GIF89a allows for animation. MPlayer supports both formats through use
|
||||
of libungif or another libgif-compatible library. Non-animated GIFs will
|
||||
be displayed as single frame videos. (Use the <CODE>-loop</CODE> and
|
||||
<CODE>-fixed-vo</CODE> options to display these longer.)</P>
|
||||
|
||||
<P>MPlayer currently does not support seeking in GIF files. GIF files do
|
||||
not necessarily have a fixed frame size, nor a fixed framerate. Rather,
|
||||
each frame is of independent size and is supposed to be positioned in a
|
||||
certain place on a field of fixed-size. The framerate is controlled by
|
||||
an optional block before each frame that specifies the next frame's delay
|
||||
in centiseconds.</P>
|
||||
|
||||
<P>Standard GIF files contain 24-bit RGB frames with at most an 8-bit
|
||||
indexed pallete. These frames are usually LZW-compressed, although
|
||||
some GIF encoders produce uncompressed frames to avoid patent issues
|
||||
with LZW compression.</P>
|
||||
|
||||
<P>If your distribution does not come with libungif, download a copy from the
|
||||
<A HREF="http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml">libungif homepage</A>.
|
||||
For detailed technical information, have a look at the
|
||||
<A HREF="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF89a specification</A>.</P>
|
||||
|
||||
|
||||
<H3><A NAME="audio_formats">2.1.2 Audio formats</A></H3>
|
||||
|
||||
<P>MPlayer is a <B>Movie</B> and not a <B>Media</B> player, although
|
||||
it can play some audio file formats (they are listed in the sections below).
|
||||
This is not a recommended usage of MPlayer, you better use
|
||||
<A HREF="http://www.xmms.org">xmms</A>.</P>
|
||||
|
||||
|
||||
<H4><A NAME="mp3">2.1.2.1 MP3 files</A></H4>
|
||||
|
||||
<P>You may have problems playing certain MP3 files that MPlayer will
|
||||
misdetect as MPEGs and play incorrectly or not at all. This cannot be fixed
|
||||
without dropping support for certain broken MPEG files and thus will remain
|
||||
like this for the foreseeable future. The <CODE>-demuxer</CODE> flag
|
||||
described in the man page may help you in these cases.</P>
|
||||
|
||||
|
||||
<H4><A NAME="wav">2.1.2.2 WAV files</A></H4>
|
||||
|
||||
|
||||
<H4><A NAME="ogg_vorbis">2.1.2.3 OGG/OGM files (Vorbis)</A></H4>
|
||||
|
||||
<P>Requires properly installed <CODE>libogg</CODE> and
|
||||
<CODE>libvorbis</CODE>.</P>
|
||||
|
||||
|
||||
<H4><A NAME="wma">2.1.2.4 WMA/ASF files</A></H4>
|
||||
|
||||
|
||||
<H4><A NAME="mp4">2.1.2.5 MP4 files</A></H4>
|
||||
|
||||
|
||||
<H4><A NAME="cdda">2.1.2.6 CD audio</A></H4>
|
||||
|
||||
<P>MPlayer can use <B>cdparanoia</B> (lib) to play CDDA (Audio CD).
|
||||
The scope of this section does not contain enumerating cdparanoia's
|
||||
features.</P>
|
||||
|
||||
<P>See the man page's <CODE>-cdda</CODE> option which can be used to
|
||||
pass options to cdparanoia.</P>
|
||||
|
||||
|
||||
<H4><A NAME="xmms">2.1.2.7 XMMS</A></H4>
|
||||
|
||||
<P>MPlayer can use XMMS input plugins to play many file formats. There are
|
||||
plugins for SNES game tunes, SID tunes (from Commodore 64), many Amiga
|
||||
formats, .xm, .it, VQF, musepack, Bonk, shorten and many others. You can find
|
||||
them at the
|
||||
<A HREF="http://www.xmms.org/plugins_input.html">XMMS input plugin page</A>.</P>
|
||||
|
||||
<P>For this feature you need to have XMMS and compile MPlayer with
|
||||
<CODE>./configure --enable-xmms</CODE>. If that does not work, you might need
|
||||
to set the XMMS plugin and library path explicitly by way of the
|
||||
<CODE>--with-xmmsplugindir</CODE> and <CODE>--with-xmmslibdir</CODE>
|
||||
options.</P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,802 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<title>Creating Skins - MPlayer - The Movie Player for Linux</title>
|
||||
<link rel="stylesheet" type="text/css" href="../default.css">
|
||||
<style type="text/css">
|
||||
em.note {color: green;
|
||||
font-style: normal;}
|
||||
em.warn {color: red;
|
||||
font-style: normal;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Appendix D - MPlayer skin format</h1>
|
||||
|
||||
<p>The purpose of this document is to describe the MPlayer skin format.
|
||||
The information contained here might be wrong, for</p>
|
||||
|
||||
<ol type="a">
|
||||
<li>It is not me who wrote the GUI.</li>
|
||||
<li>The GUI is not finished.</li>
|
||||
<li>I might be wrong.</li>
|
||||
</ol>
|
||||
|
||||
<p>So do not be surprised if something does not work as described here.</p>
|
||||
|
||||
<p>Thanks to <em>Zoltán Ponekker</em> for his help.</p>
|
||||
|
||||
<p><em>András Mohari <mayday@freemail.hu></em></p>
|
||||
|
||||
|
||||
<h2><a name="overview">D.1 Overview</a></h2>
|
||||
|
||||
<p>It does not really have anything to do with the skin format, but you should
|
||||
know that MPlayer has <b>no</b> builtin skin, so <b>at least one skin
|
||||
must be installed in order to be able to use the GUI.</b></p>
|
||||
|
||||
|
||||
<h3><a name="directories">D.1.1 Directories</a></h3>
|
||||
|
||||
<p>The directories searched for skins are (in order):</p>
|
||||
|
||||
<pre>
|
||||
$(DATADIR)/Skin/
|
||||
$(PREFIX)/share/mplayer/Skin/
|
||||
~/.mplayer/Skin/
|
||||
</pre>
|
||||
|
||||
<p>Note that the first path may vary according to the way MPlayer was configured
|
||||
(see the <code>--prefix</code> and <code>--datadir</code> arguments of the
|
||||
<code>configure</code> script).</p>
|
||||
|
||||
<p>Every skin is installed into its own directory under one of the directories
|
||||
listed above, for example:</p>
|
||||
|
||||
<pre>
|
||||
$(PREFIX)/share/mplayer/Skin/default/
|
||||
</pre>
|
||||
|
||||
|
||||
<h3><a name="images">D.1.2 Image formats</a></h3>
|
||||
|
||||
<p>Images must be truecolor (24 or 32 bpp) PNGs.</p>
|
||||
|
||||
<p>In the main window and in the playbar (see below) you can use images with
|
||||
`transparency': Regions filled with the color #FF00FF
|
||||
(<font color="#FF00FF">magenta</font>) are fully transparent when viewed by
|
||||
MPlayer. This means that you can even have shaped windows if your X server
|
||||
has the XShape extension.</p>
|
||||
|
||||
|
||||
<h3><a name="components">D.1.3 Skin components</a></h3>
|
||||
|
||||
<p>Skins are quite free-format (unlike the fixed-format skins of Winamp/XMMS,
|
||||
for example), so it is up to you to create something great.</p>
|
||||
|
||||
<p>Currently there are three windows to be decorated: the
|
||||
<a href="#mainwin">main window</a>, the <a href="#subwindow">subwindow</a>,
|
||||
the <a href="#mainwin">playbar</a>, and the <a href="#skinmenu">skin menu</a>
|
||||
(which can be activated by a right click).</p>
|
||||
|
||||
<ul>
|
||||
<li><p>The <b>main window</b> and/or the <b>playbar</b> is where you can
|
||||
control MPlayer. The background of the window is an image. Various items
|
||||
can (and must) be placed in the window: <em>buttons</em>, <em>potmeters</em>
|
||||
(sliders) and <em>labels</em>. For every item, you must specify its position
|
||||
and size.</p>
|
||||
|
||||
<p>A <b>button</b> has three states (pressed, released, disabled), thus its
|
||||
image must be divided into three parts vertically. See the
|
||||
<a href="#main.button">button</a> item for details.</p>
|
||||
|
||||
<p>A <b>potmeter</b> (mainly used for the seek bar and volume/balance
|
||||
control) can have any number of phases by dividing its image into
|
||||
different parts below each other. See
|
||||
<a href="#main.hpotmeter">hpotmeter</a> and
|
||||
<a href="#main.potmeter">potmeter</a> for details.</p>
|
||||
|
||||
<p><b>Labels</b> are a bit special: The characters needed to draw them are
|
||||
taken from an image file, and the characters in the image are described by
|
||||
a <a href="#fonts">font description file</a>. The latter is a plain text
|
||||
file which specifies the x,y position and size of each character in the
|
||||
image (the image file and its font description file form a font
|
||||
<em>together</em>). See <a href="#main.dlabel">dlabel</a> and
|
||||
<a href="#main.slabel">slabel</a> for details.</p>
|
||||
|
||||
<p><em class="note"><b>Note:</b> all images can have full transparency as
|
||||
described in the section about <a href="#images">image formats</a>. If the X
|
||||
server doesn't support the XShape extension, the parts marked transparent
|
||||
will be black. If you'd like to use this feature, the width of the main
|
||||
window's background image must be dividable by 8.</em></p>
|
||||
</li>
|
||||
|
||||
<li>The <b>subwindow</b> is where the movie appears. It can display a
|
||||
specified image if there is no movie loaded (it is quite boring to have an
|
||||
empty window :-)) <em class=note><b>Note:</b> transparency is
|
||||
<b>not allowed</b> here.</em></li>
|
||||
|
||||
<li><p>The <b>skin menu</b> is just a way to control MPlayer by means of menu
|
||||
entries. Two images are required for the menu: one of them is the base image
|
||||
that shows the menu in its normal state, the other one is used to display
|
||||
the selected entries. When you pop up the menu, the first image is shown. If
|
||||
you move the mouse over the menu entries, the currently selected entry is
|
||||
copied from the second image over the menu entry below the mouse pointer
|
||||
(the second image is never shown as a whole).</p>
|
||||
|
||||
<p>A menu entry is defined by its position and size in the image (see the
|
||||
section about the <a href="#skinmenu">skin menu</a> for details).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>There is an important thing not mentioned yet: For buttons, potmeters and
|
||||
menu entries to work, MPlayer must know what to do if they are clicked. This
|
||||
is done by <a href="#guimsg">messages</a> (events). For these items you must
|
||||
define the messages to be generated when they are clicked.</p>
|
||||
|
||||
|
||||
<h3><a name="files">D.1.4 Files</a></h3>
|
||||
|
||||
<p>You need the following files to build a skin:</p>
|
||||
|
||||
<ul>
|
||||
<li>The configuration file named <a href="#skin">skin</a> tells MPlayer how
|
||||
to put different parts of the skin together and what to do if you click
|
||||
somewhere in the window.</li>
|
||||
<li>The background image for the main window.</li>
|
||||
<li>Images for the items in the main window (including one or more font
|
||||
description files needed to draw labels).</li>
|
||||
<li>The image to be displayed in the subwindow (optional).</li>
|
||||
<li>Two images for the skin menu (they are needed only if you want to create
|
||||
a menu).</li>
|
||||
</ul>
|
||||
|
||||
<p>With the exception of the skin configuration file, you can name the other
|
||||
files whatever you want (but note that font description files must have
|
||||
a <code>.fnt</code> extension).</p>
|
||||
|
||||
|
||||
<h2><a name="skinfile">D.2 The skin file</a></h2>
|
||||
|
||||
<p>As mentioned above, this is the skin configuration file. It is line oriented;
|
||||
comment lines start with a '<code>;</code>' character at the beginning of the
|
||||
line (only spaces and tabs are allowed before the '<code>;</code>').</p>
|
||||
|
||||
<p>The file is made up of sections. Each section describes the skin for an
|
||||
application and has the following form:</p>
|
||||
|
||||
<table border="1" width="100%">
|
||||
<tr bgcolor="silver">
|
||||
<td>
|
||||
<pre>
|
||||
section = <i>section name</i>
|
||||
.
|
||||
.
|
||||
.
|
||||
end
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>Currently there is only one application, so you need only one section: its
|
||||
name is <b>movieplayer</b>.</p>
|
||||
|
||||
<p>Within this section each window is described by a block of the following
|
||||
form:</p>
|
||||
|
||||
<table border="1" width="100%">
|
||||
<tr bgcolor="silver">
|
||||
<td>
|
||||
<pre>
|
||||
window = <i>window name</i>
|
||||
.
|
||||
.
|
||||
.
|
||||
end
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>where <i>window name</i> can be one of these strings:</p>
|
||||
|
||||
<ul>
|
||||
<li><b>main</b> - for the main window</li>
|
||||
<li><b>sub</b> - for the subwindow</li>
|
||||
<li><b>menu</b> - for the skin menu</li>
|
||||
<li><b>playbar</b> - playbar</li>
|
||||
</ul>
|
||||
|
||||
<p>(The sub and menu blocks are optional - you do not need to create a menu or
|
||||
decorate the subwindow.)</p>
|
||||
|
||||
<p>Within a window block, you can define each item for the window by a line in
|
||||
this form:</p>
|
||||
|
||||
<dl>
|
||||
<dt><b><code>item = parameter</code></b></dt>
|
||||
<dd>Where <code>item</code> is a string that identifies the type of the GUI
|
||||
item, <code>parameter</code> is a numeric or textual value (or a list of
|
||||
values separated by commas).</dd>
|
||||
</dl>
|
||||
|
||||
<p>Putting the above together, the whole file looks something like this:</p>
|
||||
|
||||
<table border="1" width="100%">
|
||||
<tr bgcolor="silver">
|
||||
<td>
|
||||
<pre>
|
||||
section = movieplayer
|
||||
window = main
|
||||
; ... items for main window ...
|
||||
end
|
||||
|
||||
window = sub
|
||||
; ... items for subwindow ...
|
||||
end
|
||||
|
||||
window = menu
|
||||
; ... items for menu ...
|
||||
end
|
||||
|
||||
window = playbar
|
||||
; ... items for playbar ...
|
||||
end
|
||||
end
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>The name of an image file must be given without leading directories - images
|
||||
are searched for in the <code>Skin</code> directory. You may (but you need
|
||||
not) specify the extension of the file. If the file does not exist, MPlayer
|
||||
tries to load the file <code><filename>.<ext></code>, where
|
||||
<code>png</code> and <code>PNG</code> are tried for <code><ext></code>
|
||||
(in this order). The first matching file will be used.</p>
|
||||
|
||||
<p>Finally some words about positioning. The main window and the subwindow can
|
||||
be placed in the different corners of the screen by giving <code>X</code> and
|
||||
<code>Y</code> coordinates. <code>0</code> is top or left, <code>-1</code> is
|
||||
center and <code>-2</code> is right or bottom, as shown in this
|
||||
illustration:</p>
|
||||
|
||||
<pre>
|
||||
|
||||
(0, 0)----(-1, 0)----(-2, 0)
|
||||
| | |
|
||||
| | |
|
||||
(0,-1)----(-1,-1)----(-2,-1)
|
||||
| | |
|
||||
| | |
|
||||
(0,-2)----(-1,-2)----(-2,-2)
|
||||
|
||||
</pre>
|
||||
|
||||
<table border="1" cellpadding="5" width="100%">
|
||||
<tr bgcolor="#ffffcc">
|
||||
<td>Here is an example to make this clear. Suppose that you have an image
|
||||
called <code>main.png</code> that you use for the main window:
|
||||
<blockquote>
|
||||
<code>base = main, -1, -1</code>
|
||||
</blockquote>
|
||||
MPlayer tries to load <code>main</code>, <code>main.png</code>,
|
||||
<code>main.PNG</code> files.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<h3><a name="mainwindow">D.2.1 Main window and playbar</a></h3>
|
||||
|
||||
<p>Below is the list of entries that can be used in the
|
||||
'<code>window = main</code>' . . . '<code>end</code>', and the
|
||||
'<code>window = playbar</code>' . . '<code>end</code>' blocks.</p>
|
||||
|
||||
<dl>
|
||||
<dt><a name="main.base"><b><code>base = image, X, Y</code></b></a></dt>
|
||||
<dd>Lets you specify the background image to be used for the main window.
|
||||
The window will appear at the given <code>X,Y</code> position on the screen
|
||||
The window will have the size of the image.
|
||||
<div><em class="warn"><b>Note:</b> These coordinates do not currently work
|
||||
for the display window.</em></div>
|
||||
<div><em class="warn"><b>Warning:</b> Transparent regions in the image
|
||||
(colored #FF00FF) appear black on X servers without the XShape extension.
|
||||
The image's width must be dividable by 8.</em></div>
|
||||
</dd>
|
||||
|
||||
<dt><a name="main.button"><b><code>button = image, X, Y, width, height,
|
||||
message</code></b></a></dt>
|
||||
<dd>Place a button of <code>width</code> * <code>height</code> size at
|
||||
position <code>X</code>,<code>Y</code>. The specified <code>message</code>
|
||||
is generated when the button is clicked. The image given by
|
||||
<code>image</code> must have three parts below each other (according to the
|
||||
possible states of the button), like this:
|
||||
<pre>
|
||||
+------------+
|
||||
| pressed |
|
||||
+------------+
|
||||
| released |
|
||||
+------------+
|
||||
| disabled |
|
||||
+------------+
|
||||
</pre>
|
||||
</dd>
|
||||
|
||||
<dt><a name="main.decoration"><b><code>decoration = enable|disable</code></b>
|
||||
</a></dt>
|
||||
<dd>Enable or disable window manager decoration of the main window. Default
|
||||
is <b>disable</b>.
|
||||
<div><em class="warn"><b>Note:</b> This doesn't work for the display window,
|
||||
there is no need to.</em></div>
|
||||
</dd>
|
||||
|
||||
<dt><a name="main.hpotmeter"><b><code>hpotmeter = button, bwidth, bheight,
|
||||
phases, numphases, default, X, Y, width, height, message</code><br>
|
||||
<code>vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y,
|
||||
width, height, message</code></b></a></dt>
|
||||
<dd>Place a horizontal (hpotmeter) or vertical (vpotmeter) potmeter of
|
||||
<code>width</code> * <code>height</code>
|
||||
size at position <code>X</code>,<code>Y</code>. The image can be divided
|
||||
into different parts for the different phases of the potmeter (for example,
|
||||
you can have a pot for volume control that turns from green to red while its
|
||||
value changes from the minimum to the maximum.). <code>hpotmeter</code> can
|
||||
have a button that can be dragged horizontally.
|
||||
|
||||
<div>The parameters are:</div>
|
||||
|
||||
<ul>
|
||||
<li><code>button</code> - the image to be used for the button (must have
|
||||
three parts below each other, like in case of
|
||||
<a href="#main.button">button</a>)</li>
|
||||
<li><code>bwidth</code>, <code>bheight</code> - size of the button</li>
|
||||
<li><code>phases</code> - The image to be used for the different phases of
|
||||
the hpotmeter. A special value of <code>NULL</code> can be used if you
|
||||
want no such image. The image must be divided into
|
||||
<code>numphases</code>parts vertically like this:
|
||||
<pre>
|
||||
+------------+
|
||||
| phase #1 |
|
||||
+------------+
|
||||
| phase #2 |
|
||||
+------------+
|
||||
...
|
||||
+------------+
|
||||
| phase #n |
|
||||
+------------+
|
||||
</pre>
|
||||
</li>
|
||||
<li><code>numphases</code> - number of phases stored in the
|
||||
<code>phases</code> image</li>
|
||||
<li><code>default</code> - default value for hpotmeter (in the range 0 to
|
||||
100)</li>
|
||||
<li><code>X</code>, <code>Y</code> - position for the hpotmeter</li>
|
||||
<li><code>width</code>, <code>height</code> - width and height of the
|
||||
<code>hpotmeter</code></li>
|
||||
<li><code>message</code> - the message to be generated when the value of
|
||||
<code>hpotmeter</code> is changed</li>
|
||||
</ul>
|
||||
</dd>
|
||||
|
||||
<dt><a name="main.potmeter"><b><code>potmeter = phases, numphases, default, X,
|
||||
Y, width, height, message</code></b></a></dt>
|
||||
<dd>A <code>hpotmeter</code> without a button. (I guess it is meant to be
|
||||
turned around, but it reacts to horizontal dragging only.) For the
|
||||
description of the parameters see <a href="#main.hpotmeter">hpotmeter</a>.
|
||||
<code>phases</code> can be <code>NULL</code>, but it is quite useless, since
|
||||
you cannot see where the <code>potmeter</code> is set.</dd>
|
||||
|
||||
<dt><a name="main.font"><b><code>font = fontfile, fontid</code></b></a></dt>
|
||||
<dd>Defines a font. <code>fontfile</code> is the name of a font description
|
||||
file with a <code>.fnt</code> extension (<b>do not</b> specify the extension
|
||||
here). <code>fontid</code> is used to refer to the font (see
|
||||
<a href="#main.dlabel">dlabel</a> and <a href="#main.slabel">slabel</a>).
|
||||
Up to 25 fonts can be defined.</dd>
|
||||
|
||||
<dt><a name="main.slabel"><b><code>slabel = X, Y, fontid, "text"</code></b>
|
||||
</a></dt>
|
||||
<dd>
|
||||
Place a static label at the position <code>X</code>,<code>Y</code>.
|
||||
<code>text</code> is displayed using the font identified by <code>fontid</code>.
|
||||
The text is just a raw string (<code>$x</code> variables do not work) that must
|
||||
be enclosed between double quotes (but the <code>"</code> character cannot be
|
||||
part of the text). The label is displayed using the font identified by
|
||||
<code>fontid</code>.</dd>
|
||||
|
||||
<dt><a name="main.dlabel"><b><code>dlabel = X, Y, length, align, fontid,
|
||||
"text"</code></b></a></dt>
|
||||
<dd>Place a dynamic label at the position <code>X</code>,<code>Y</code>. The
|
||||
label is called dynamic because its text is refreshed periodically. The
|
||||
maximum length of the label is given by <code>length</code> (its height is
|
||||
the height of a character). If the text to be displayed is wider than that,
|
||||
it will be scrolled, otherwise it is aligned within the specified space by
|
||||
the value of the <code>align</code> parameter: <code>0</code> is for right,
|
||||
<code>1</code> is for center, <code>2</code> is for left.<br>
|
||||
The text to be displayed is given by <code>text</code>: It must be written
|
||||
between double quotes (but the <code>"</code> character cannot be part of
|
||||
the text). The label is displayed using the font identified by
|
||||
<code>fontid</code>. You can use the following variables in the text:
|
||||
|
||||
<table align="center" border="1">
|
||||
<tr align="center"><th>Variable</th><th align="left">Meaning</th></tr>
|
||||
<tr><td align="center"><kbd>$1</kbd></td>
|
||||
<td>play time in <em>hh:mm:ss</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$2</kbd></td>
|
||||
<td>play time in <em>mmmm:ss</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$3</kbd></td>
|
||||
<td>play time in <em>hh</em> format (hours)</td></tr>
|
||||
<tr><td align="center"><kbd>$4</kbd></td>
|
||||
<td>play time in <em>mm</em> format (minutes)</td></tr>
|
||||
<tr><td align="center"><kbd>$5</kbd></td>
|
||||
<td>play time in <em>ss</em> format (seconds)</td></tr>
|
||||
<tr><td align="center"><kbd>$6</kbd></td>
|
||||
<td>movie length in <em>hh:mm:ss</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$7</kbd></td>
|
||||
<td>movie length in <em>mmmm:ss</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$8</kbd></td>
|
||||
<td>play time in <em>h:mm:ss</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$v</kbd></td>
|
||||
<td>volume in <em>xxx.xx%</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$V</kbd></td>
|
||||
<td>volume in <em>xxx.x</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$b</kbd></td>
|
||||
<td>balance in <em>xxx.xx%</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$B</kbd></td>
|
||||
<td>balance in <em>xxx.x</em> format</td></tr>
|
||||
<tr><td align="center"><kbd>$$</kbd></td>
|
||||
<td>the <kbd>$</kbd> character</td></tr>
|
||||
<tr><td align="center"><kbd>$a</kbd></td>
|
||||
<td>a character according to the audio type (none: <code>n</code>,
|
||||
mono: <code>m</code>, stereo: <code>t</code>)</td></tr>
|
||||
<tr><td align="center"><kbd>$t</kbd></td>
|
||||
<td>track number (in playlist)</td></tr>
|
||||
<tr><td align="center"><kbd>$o</kbd></td>
|
||||
<td>filename</td></tr>
|
||||
<tr><td align="center"><kbd>$f</kbd></td>
|
||||
<td>filename in lower case</td></tr>
|
||||
<tr><td align="center"><kbd>$F</kbd></td>
|
||||
<td>filename in upper case</td></tr>
|
||||
<tr><td align="center"><kbd>$T</kbd></td>
|
||||
<td>a character according to the stream type (file: <code>f</code>,
|
||||
Video CD: <code>v</code>, DVD: <code>d</code>, URL: <code>u</code>)
|
||||
</td></tr>
|
||||
<tr><td align="center"><kbd>$p</kbd></td>
|
||||
<td>the "p" character (if a movie is playing and the font has the "p"
|
||||
character)</td></tr>
|
||||
<tr><td align="center"><kbd>$s</kbd></td>
|
||||
<td>the "s" character (if the movie is stopped and the font has the "s"
|
||||
character)</td></tr>
|
||||
<tr><td align="center"><kbd>$e</kbd></td>
|
||||
<td>the "e" character (if playback is paused and the font has the "e"
|
||||
character)</td></tr>
|
||||
<tr><td align="center"><kbd>$x</kbd></td>
|
||||
<td>movie width</td></tr>
|
||||
<tr><td align="center"><kbd>$y</kbd></td>
|
||||
<td>movie height</td></tr>
|
||||
<tr><td align="center"><kbd>$C</kbd></td>
|
||||
<td>name of the codec used</td></tr>
|
||||
</table>
|
||||
|
||||
<em class="note"><b>Note:</b> The <kbd>$a</kbd>, <kbd>$T</kbd>,
|
||||
<kbd>$p</kbd>, <kbd>$s</kbd>and <kbd>$e</kbd> variables all return
|
||||
characters that should be displayed as special symbols (for example, "e" is
|
||||
for the pause symbol that usually looks something like <code>||</code>). You
|
||||
should have a font for normal characters and a different font for symbols.
|
||||
See the section about <a href="#symbols">symbols</a> for more
|
||||
information.</em>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3><a name="subwindow">D.2.2 Subwindow</a></h3>
|
||||
|
||||
<p>The following entries can be used in the '<code>window = sub</code>'
|
||||
. . . '<code>end</code>' block.</p>
|
||||
|
||||
<dl>
|
||||
<dt><a name="sub.base"><b><code>base = image, X, Y, width, height</code></b>
|
||||
</a></dt>
|
||||
<dd>The image to be displayed in the window. The window will appear at the
|
||||
given <code>X</code>,<code>Y</code> position on the screen (<code>0,0</code>
|
||||
is the top left corner). You can specify <code>-1</code> for center and
|
||||
<code>-2</code> for right (<code>X</code>) and bottom (<code>Y</code>). The
|
||||
window will be as large as the image. <code>width</code> and
|
||||
<code>height</code> denote the size of the window; they are optional (if
|
||||
they are missing, the window is the same size as the image).</dd>
|
||||
|
||||
<dt><a name="sub.background"><b><code>background = R, G, B</code></b></a></dt>
|
||||
<dd>Lets you set the background color. It is useful if the image is smaller
|
||||
than the window. <code>R</code>, <code>G</code> and <code>B</code> specifies
|
||||
the red, green and blue component of the color (each of them is a decimal
|
||||
number from 0 to 255).</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3><a name="skinmenu">D.2.3 Skin menu</a></h3>
|
||||
|
||||
<p>As mentioned earlier, the menu is displayed using two images. Normal menu
|
||||
entries are taken from the image specified by the <code>base</code> item,
|
||||
while the currently selected entry is taken from the image specified by the
|
||||
<code>selected</code> item. You must define the position and size of each menu
|
||||
entry through the <code>menu</code> item.</p>
|
||||
|
||||
<p>These are the entries that can be used in the '<code>window = menu</code>'
|
||||
. . . '<code>end</code>' block.</p>
|
||||
|
||||
<dl>
|
||||
<dt><a name="menu.base"><b><code>base = image</code></b></a></dt>
|
||||
<dd>The image for normal menu entries.</dd>
|
||||
|
||||
<dt><a name="menu.selected"><b><code>selected = image</code></b></a></dt>
|
||||
<dd>The image showing the menu with all entries selected.</dd>
|
||||
|
||||
<dt><a name="menu.menu"><b><code>menu = X, Y, width, height, message</code>
|
||||
</b></a></dt>
|
||||
<dd>Defines the <code>X,Y</code> position and the size of a menu entry in the
|
||||
image. <code>message</code> is the message to be generated when the mouse
|
||||
button is released over the entry.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h2><a name="fonts">D.3 Fonts</a></h2>
|
||||
|
||||
<p>As mentioned in the section about the parts of a skin, a font is defined by
|
||||
an image and a description file. You can place the characters anywhere in the
|
||||
image, but make sure that their position and size is given in the description
|
||||
file exactly.</p>
|
||||
|
||||
<p>The font description file (with <code>.fnt</code> extension) can have comment
|
||||
lines starting with '<code>;</code>'. The file must have a line in the
|
||||
form</p>
|
||||
|
||||
<dl>
|
||||
<dt><a name="font.image"><b><code>image = image</code></b></a></dt>
|
||||
<dd>Where <code>image</code> is the name of the image file to be used for the
|
||||
font (you do not have to specify the extension).</dd>
|
||||
|
||||
<dt><a name="font.char"><b><code>"char" = X, Y, width, height</code></b>
|
||||
</a></dt>
|
||||
<dd>Here <code>X</code> and <code>Y</code> specify the position of the
|
||||
<code>char</code> character in the image (<code>0,0</code> is the upper left
|
||||
corner). <code>width</code> and <code>height</code> are the dimensions of
|
||||
the character in pixels.</dd>
|
||||
</dl>
|
||||
|
||||
<p>This example defines the A, B, C characters using <code>font.png</code>.</p>
|
||||
|
||||
<table width="100%" border="1">
|
||||
<tr bgcolor="silver">
|
||||
<td>
|
||||
<pre>
|
||||
; Can be "font" instead of "font.png".
|
||||
image = font.png
|
||||
|
||||
; Three characters are enough for demonstration purposes :-)
|
||||
"A" = 0,0, 7,13
|
||||
"B" = 7,0, 7,13
|
||||
"C" = 14,0, 7,13
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<h3><a name="symbols">D.3.1 Symbols</a></h3>
|
||||
|
||||
<p>Some characters have special meanings when returned by some of the variables
|
||||
used in <a href="#main.dlabel">dlabel</a>. These characters are meant to be
|
||||
shown as symbols so that things like a nice DVD logo can be displayed instead
|
||||
of the character 'd' for a DVD stream.</p>
|
||||
|
||||
<p>The following table lists all the characters that can be used to display
|
||||
symbols (and thus require a different font).</p>
|
||||
|
||||
<table align="center" border="1">
|
||||
<tr><th align="center">Character</th><th align="left">Symbol</th></tr>
|
||||
<tr><td align="center"><kbd>p</kbd></td>
|
||||
<td align=left>play</td></tr>
|
||||
<tr><td align="center"><kbd>s</kbd></td>
|
||||
<td align=left>stop</td></tr>
|
||||
<tr><td align="center"><kbd>e</kbd></td>
|
||||
<td align=left>pause</td></tr>
|
||||
<tr><td align="center"><kbd>n</kbd></td>
|
||||
<td align=left>no sound</td></tr>
|
||||
<tr><td align="center"><kbd>m</kbd></td>
|
||||
<td align=left>mono sound</td></tr>
|
||||
<tr><td align="center"><kbd>t</kbd></td>
|
||||
<td align=left>stereo sound</td></tr>
|
||||
<tr><td align="center"><kbd>f</kbd></td>
|
||||
<td align=left>stream is a file</td></tr>
|
||||
<tr><td align="center"><kbd>v</kbd></td>
|
||||
<td align=left>stream is a Video CD</td></tr>
|
||||
<tr><td align="center"><kbd>d</kbd></td>
|
||||
<td align=left>stream is a DVD</td></tr>
|
||||
<tr><td align="center"><kbd>u</kbd></td>
|
||||
<td align="left">stream is a URL</td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
<h2><a name="guimessages">D.4 GUI messages</a></h2>
|
||||
|
||||
<p>These are the messages that can be generated by buttons, potmeters and menu
|
||||
entries.</p>
|
||||
|
||||
<p><em class="note"><b>Note:</b> Some of the messages might not work as expected
|
||||
(or not work at all). As you know, the GUI is under development.</em></p>
|
||||
|
||||
|
||||
<h3>Playback control:</h3>
|
||||
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><b>evNext</b></dt>
|
||||
<dd>Jump to next track in the playlist.</dd>
|
||||
|
||||
<dt><b>evPause</b></dt>
|
||||
<dd>Pause playing.</dd>
|
||||
|
||||
<dt><b>evPauseSwitchToPlay</b></dt>
|
||||
<dd>Forms a switch together with <code>evPlaySwitchToPause</code>. They can
|
||||
be used to have a common play/pause button. Both messages should be
|
||||
assigned to buttons displayed at the very same position in the window.
|
||||
This message pauses playing and the image for the
|
||||
<code>evPlaySwitchToPause</code> button is displayed (to indicate that the
|
||||
button can be pressed to continue playing).</dd>
|
||||
|
||||
<dt><b>evPlay</b></dt>
|
||||
<dd>Start playing.</dd>
|
||||
|
||||
<dt><b>evPlaySwitchToPause</b></dt>
|
||||
<dd>The opposite of <code>evPauseSwitchToPlay</code>. This message starts
|
||||
playing and the image for the <code>evPauseSwitchToPlay</code> button is
|
||||
displayed (to indicate that the button can be pressed to pause
|
||||
playing).</dd>
|
||||
|
||||
<dt><b>evPrev</b></dt>
|
||||
<dd>Jump to previous track in the playlist.</dd>
|
||||
|
||||
<dt><b>evStop</b></dt>
|
||||
<dd>Stop playing.</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<h3>Seeking:</h3>
|
||||
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><b>evBackward10sec</b></dt>
|
||||
<dt><b>evBackward1min</b></dt>
|
||||
<dt><b>evBackward10min</b></dt>
|
||||
<dd>Seek backward 10 seconds / 1 minute / 10 minutes.</dd>
|
||||
|
||||
<dt><b>evForward10sec</b></dt>
|
||||
<dt><b>evForward1min</b></dt>
|
||||
<dt><b>evForward10min</b></dt>
|
||||
<dd>Seek forward 10 seconds / 1 minute / 10 minutes.</dd>
|
||||
|
||||
<dt><b>evSetMoviePosition</b></dt>
|
||||
<dd>Seek to position (can be used by a potmeter; the relative value (0-100%)
|
||||
of the potmeter is used).</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<h3>Video control:</h3>
|
||||
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><b>evDoubleSize</b></dt>
|
||||
<dd>Set the movie window to double size.</dd>
|
||||
|
||||
<dt><b>evFullScreen</b></dt>
|
||||
<dd>Switch fullscreen mode on/off.</dd>
|
||||
|
||||
<dt><b>evNormalSize</b></dt>
|
||||
<dd>Set the movie window to its normal size.</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<h3>Audio control:</h3>
|
||||
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><b>evDecAudioBufDelay</b></dt>
|
||||
<dd>Decrease audio buffer delay.</dd>
|
||||
|
||||
<dt><b>evDecBalance</b></dt>
|
||||
<dd>Decrease balance.</dd>
|
||||
|
||||
<dt><b>evDecVolume</b></dt>
|
||||
<dd>Decrease volume.</dd>
|
||||
|
||||
<dt><b>evIncAudioBufDelay</b></dt>
|
||||
<dd>Increase audio buffer delay.</dd>
|
||||
|
||||
<dt><b>evIncBalance</b></dt>
|
||||
<dd>Increase balance.</dd>
|
||||
|
||||
<dt><b>evIncVolume</b></dt>
|
||||
<dd>Increase volume.</dd>
|
||||
|
||||
<dt><b>evMute</b></dt>
|
||||
<dd>Mute/unmute the sound.</dd>
|
||||
|
||||
<dt><b>evSetBalance</b></dt>
|
||||
<dd>Set balance (can be used by a potmeter; the relative value (0-100%) of
|
||||
the potmeter is used).</dd>
|
||||
|
||||
<dt><b>evSetVolume</b></dt>
|
||||
<dd>Set volume (can be used by a potmeter; the relative value (0-100%) of
|
||||
the potmeter is used).</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<h3>Miscellaneous:</h3>
|
||||
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><b>evAbout</b></dt>
|
||||
<dd>Open the about window.</dd>
|
||||
|
||||
<dt><b>evDropSubtitle</b></dt>
|
||||
<dd>Disables the currently used subtitle.</dd>
|
||||
|
||||
<dt><b>evEqualizer</b></dt>
|
||||
<dd>Turn the equalizer on/off.</dd>
|
||||
|
||||
<dt><b>evExit</b></dt>
|
||||
<dd>Quit the program.</dd>
|
||||
|
||||
<dt><b>evIconify</b></dt>
|
||||
<dd>Iconify the window.</dd>
|
||||
|
||||
<dt><b>evLoad</b></dt>
|
||||
<dd>Load a file (by opening a file browser window, where you can choose a
|
||||
file).</dd>
|
||||
|
||||
<dt><b>evLoadPlay</b></dt>
|
||||
<dd>Does the same as <code>evLoad</code>, but it automatically starts
|
||||
playing after the file is loaded.</dd>
|
||||
|
||||
<dt><b>evLoadSubtitle</b></dt>
|
||||
<dd>Loads a subtitle file (with the fileselector)</dd>
|
||||
|
||||
<dt><b>evLoadAudioFile</b></dt>
|
||||
<dd>Loads an audio file (with the fileselector)</dd>
|
||||
|
||||
<dt><b>evNone</b></dt>
|
||||
<dd>Empty message, it has no effect (except maybe in CVS versions :-)).</dd>
|
||||
|
||||
<dt><b>evPlayList</b></dt>
|
||||
<dd>Open/close the playlist window.</dd>
|
||||
|
||||
<dt><b>evPlayDVD</b></dt>
|
||||
<dd>Tries to open the disc in the given DVD-ROM drive.</dd>
|
||||
|
||||
<dt><b>evPlayVCD</b></dt>
|
||||
<dd>Tries to open the disc in the given CD-ROM drive.</dd>
|
||||
|
||||
<dt><b>evPreferences</b></dt>
|
||||
<dd>Open the preferences window.</dd>
|
||||
|
||||
<dt><b>evSetAspect</b></dt>
|
||||
<dd>Sets displayed image aspect.</dd>
|
||||
|
||||
<dt><b>evSetURL</b></dt>
|
||||
<dd>Displays the URL dialog window.</dd>
|
||||
|
||||
<dt><b>evSkinBrowser</b></dt>
|
||||
<dd>Open the skin browser window.</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,854 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>Sound - MPlayer - The Movie Player for Linux</TITLE>
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
|
||||
<H3><A NAME="audio">2.3.2 Audio output devices</A></H3>
|
||||
|
||||
<H4><A NAME="sync">2.3.2.1 Audio/Video synchronisation</A></H4>
|
||||
|
||||
<P>MPlayer's audio interface is called <I>libao2</I>. It currently
|
||||
contains these drivers:</P>
|
||||
|
||||
<DL>
|
||||
<DT>oss</DT>
|
||||
<DD>OSS (ioctl) driver (supports hardware AC3 passthrough)</DD>
|
||||
|
||||
<DT>sdl</DT>
|
||||
<DD>SDL driver (supports sound daemons like <B>ESD</B> and <B>ARTS</B>)</DD>
|
||||
|
||||
<DT>nas</DT>
|
||||
<DD>NAS (Network Audio System) driver</DD>
|
||||
|
||||
<DT>alsa5</DT>
|
||||
<DD>native ALSA 0.5 driver</DD>
|
||||
|
||||
<DT>alsa9</DT>
|
||||
<DD>native ALSA 0.9 driver (supports hardware AC3 passthrough)</DD>
|
||||
|
||||
<DT>sun</DT>
|
||||
<DD>SUN audio driver (<CODE>/dev/audio</CODE>) for BSD and Solaris8 users</DD>
|
||||
|
||||
<DT>macosx</DT>
|
||||
<DD>native MacOSX driver</DD>
|
||||
|
||||
<DT>win32</DT>
|
||||
<DD>native Win32 driver</DD>
|
||||
|
||||
<DT>arts</DT>
|
||||
<DD>native ARTS driver (mostly for KDE users)</DD>
|
||||
|
||||
<DT>esd</DT>
|
||||
<DD>native ESD driver (mostly for GNOME users)</DD>
|
||||
</DL>
|
||||
|
||||
<P>Linux sound card drivers have compatibility problems. This is because MPlayer
|
||||
relies on an in-built feature of <EM>properly</EM> coded sound drivers that
|
||||
enable them to maintain correct audio/video sync. Regrettably, some driver
|
||||
authors don't take the care to code this feature since it is not needed for
|
||||
playing MP3s or sound effects. </P>
|
||||
|
||||
<P>Other media players like <A HREF="http://avifile.sourceforge.net">aviplay</A>
|
||||
or <A HREF="http://xine.sourceforge.net">xine</A> possibly work
|
||||
out-of-the-box with these drivers because they use "simple" methods with
|
||||
internal timing. Measuring showed that their methods are not as efficient
|
||||
as MPlayer's. </P>
|
||||
|
||||
<P>Using MPlayer with a properly written audio driver will never result
|
||||
in A/V desyncs related to the audio, except only with very badly created
|
||||
files (check the man page for workarounds).</P>
|
||||
|
||||
<P>If you happen to have a bad audio driver, try the <CODE>-autosync</CODE>
|
||||
option, it should sort out your problems. See the man page for detailed
|
||||
information.</P>
|
||||
|
||||
<P>Some notes:</P>
|
||||
|
||||
<UL>
|
||||
<LI>If you have an OSS driver, first try <CODE>-ao oss</CODE> (this is the
|
||||
default). If you experience glitches, halts or anything out of the
|
||||
ordinary, try <CODE>-ao sdl</CODE> (NOTE: You need to have SDL libraries
|
||||
and header files installed). The SDL audio driver helps in a lot of cases
|
||||
and also supports ESD (GNOME) and ARTS (KDE).</LI>
|
||||
<LI>If you have ALSA version 0.5, then you almost always have to use
|
||||
<CODE>-ao alsa5</CODE> , since ALSA 0.5 has buggy OSS emulation code, and
|
||||
will <B>crash MPlayer</B> with a message like this:<BR>
|
||||
<CODE>DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!</CODE></LI>
|
||||
<LI>On Solaris, use the SUN audio driver with the <CODE>-ao sun</CODE> option,
|
||||
otherwise neither video nor audio will work.</LI>
|
||||
<LI>If the sound clicks when playing from CD-ROM, turn on IRQ unmasking, e.g.
|
||||
<CODE>hdparm -u1 /dev/cdrom</CODE> (<CODE>man hdparm</CODE>). This is
|
||||
generally beneficial and described in more detail in the
|
||||
<A HREF="cd-dvd.html#drives">CD-ROM section</A>.</LI>
|
||||
</UL>
|
||||
|
||||
|
||||
<H4><A NAME="experiences">2.3.2.2 Sound Card experiences, recommendations</A></H4>
|
||||
|
||||
<P>On Linux, a 2.4.x kernel is highly recommended. Kernel 2.2 is not tested.</P>
|
||||
|
||||
<P>Linux sound drivers are primarily provided by the free version of OSS. These
|
||||
drivers have been superceded by <A HREF="http://www.alsa-project.org">ALSA</A>
|
||||
(Advanced Linux Sound Architecture) in the 2.5 development series. If your
|
||||
distribution does not already use ALSA you may wish to try their drivers if
|
||||
you experience sound problems. ALSA drivers are generally superior to OSS in
|
||||
compatibility, performance and features. But some sound cards are only
|
||||
supported by the commercial OSS drivers from
|
||||
<A HREF="http://www.opensound.com/">4Front Technologies</A>. They also support
|
||||
several non-Linux systems.</P>
|
||||
|
||||
<TABLE BORDER="1" WIDTH="100%">
|
||||
|
||||
<TR>
|
||||
<TH ROWSPAN="2"><B>SOUND CARD</B></TH>
|
||||
<TH COLSPAN="4"><B>DRIVER</B></TH>
|
||||
<TH ROWSPAN="2"><B>Max kHz</B></TH>
|
||||
<TH ROWSPAN="2"><B>Max Channels</B></TH>
|
||||
<TH ROWSPAN="2"><B>Max Opens<FONT SIZE="-2"><A HREF=#note1>[1]</A></FONT></B></TH>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TH><B>OSS/Free</B></TH>
|
||||
<TH><B>ALSA</B></TH>
|
||||
<TH><B>OSS/Pro</B></TH>
|
||||
<TH><B>other</B></TH>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>VIA onboard (686/A/B, 8233, 8235)</B></TD>
|
||||
<TD><A HREF="http://sourceforge.net/project/showfiles.php?group_id=3242&release_id=59602">via82cxxx_audio</A></TD>
|
||||
<TD>snd-via82xx</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
<TD>4-48 kHz or 48 kHz only, depending on the chipset</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>Aureal Vortex 2</B></TD>
|
||||
<TD>none</TD>
|
||||
<TD>none</TD>
|
||||
<TD>OK</TD>
|
||||
<TD><A HREF="http://aureal.sourceforge.net">Linux Aureal Drivers</A><BR>
|
||||
<A HREF="http://makacs.poliod.hu/~pontscho/aureal/au88xx-1.1.3.tar.bz2">buffer size increased to 32k</A></TD>
|
||||
<TD>48</TD>
|
||||
<TD>4.1</TD>
|
||||
<TD>5+</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>SB Live!</B></TD>
|
||||
<TD>Analog OK, SP/DIF not working</TD>
|
||||
<TD>Both OK</TD>
|
||||
<TD>Both OK</TD>
|
||||
<TD><A HREF="http://opensource.creative.com">Creative's OSS driver (SP/DIF support)</A></TD>
|
||||
<TD>192</TD>
|
||||
<TD>4.0/5.1</TD>
|
||||
<TD>32</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>SB 128 PCI (es1371)</B></TD>
|
||||
<TD>OK</TD>
|
||||
<TD>?</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
<TD>48</TD>
|
||||
<TD>stereo</TD>
|
||||
<TD>2</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>SB AWE 64</B></TD>
|
||||
<TD>max 44kHz</TD>
|
||||
<TD>48kHz sounds bad</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
<TD>48</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>GUS PnP</B></TD>
|
||||
<TD>none</TD>
|
||||
<TD>OK</TD>
|
||||
<TD>OK</TD>
|
||||
<TD> </TD>
|
||||
<TD>48</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>Gravis UltraSound ACE</B></TD>
|
||||
<TD>not OK</TD>
|
||||
<TD>OK</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
<TD>44</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>Gravis UltraSound MAX</B></TD>
|
||||
<TD>OK</TD>
|
||||
<TD>OK (?)</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
<TD>48</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>ESS 688</B></TD>
|
||||
<TD>OK</TD>
|
||||
<TD>OK (?)</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
<TD>48</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>C-Media cards (CMI8338/8738)</B></TD>
|
||||
<TD>OK</TD>
|
||||
<TD>OK SP/DIF is supported with ALSA 0.9.x</TD>
|
||||
<TD>?</TD>
|
||||
<TD> </TD>
|
||||
<TD>44</TD>
|
||||
<TD>stereo</TD>
|
||||
<TD>1</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>Yamaha cards (*ymf*)</B></TD>
|
||||
<TD>not OK (?) (maybe <CODE>-ao sdl</CODE>)</TD>
|
||||
<TD>OK only with ALSA 0.5 with OSS emulation <B>AND</B>
|
||||
<CODE>-ao sdl</CODE> (!) (?)</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
<TD>?</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>Cards with envy24 chips (like Terratec EWS88MT)</B></TD>
|
||||
<TD>?</TD>
|
||||
<TD>?</TD>
|
||||
<TD>OK</TD>
|
||||
<TD> </TD>
|
||||
<TD>?</TD>
|
||||
<TD> </TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD><B>PC Speaker or DAC</B></TD>
|
||||
<TD>OK</TD>
|
||||
<TD>none</TD>
|
||||
<TD> </TD>
|
||||
<TD><A HREF="http://www.geocities.com/stssppnn/pcsp.html">Linux PC speaker OSS driver</a></TD>
|
||||
<TD>The driver emulates 44.1, maybe more.</TD>
|
||||
<TD>mono</TD>
|
||||
<TD>1</TD>
|
||||
</TR>
|
||||
|
||||
</TABLE>
|
||||
|
||||
<P><A NAME="note1"><B>[1]</B></A>: the number of applications that are able to use the
|
||||
device <I>at the same time</I>.</P>
|
||||
|
||||
<P>Feedback to this document is welcome. Please tell us how MPlayer
|
||||
and your sound card(s) worked together.</P>
|
||||
|
||||
|
||||
<H4><A NAME="af">2.3.2.3 Audio filters</A></H4>
|
||||
|
||||
<P>The old audio plugins have been superseded by a new audio filter layer. Audio
|
||||
filters are used for changing the properties of the audio data before the
|
||||
sound reaches the sound card. The activation and deactivation of the filters
|
||||
is normally automated but can be overridden. The filters are activated when
|
||||
the properties of the audio data differ from those required by the sound card
|
||||
and deactivated if unnecessary. The <CODE>-af filter1,filter2,...</CODE>
|
||||
option is used to override the automatic activation of filters or to insert
|
||||
filters that are not automatically inserted. The filters will be executed as
|
||||
they appear in the comma separated list.</P>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mplayer -af resample,pan movie.avi </CODE></P>
|
||||
|
||||
<P>would run the sound through the resampling filter followed by the pan filter.
|
||||
Observe that the list must not contain any spaces, else it will fail.</P>
|
||||
|
||||
<P>The filters often have options that change their behavior. These options
|
||||
are explained in detail in the sections below. A filter will execute using
|
||||
default settings if its options are omitted. Here is an example of how to use
|
||||
filters in combination with filter specific options:</P>
|
||||
|
||||
<P> <CODE>mplayer -af resample=11025,pan=1:0.5:0.5 -channels 1
|
||||
-srate 11025 media.avi</CODE></P>
|
||||
|
||||
<P>would set the output frequency of the resample filter to 11025Hz and downmix
|
||||
the audio to 1 channel using the pan filter.</P>
|
||||
|
||||
<P>The overall execution of the filter layer is controlled using the
|
||||
<CODE>-af-adv</CODE> option. This option has two suboptions:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>force</CODE><DT>
|
||||
<DD>is a Bit field that controls how the filters are inserted and what
|
||||
speed/accuracy optimizations they use:
|
||||
<DL>
|
||||
<DT><CODE>0</CODE></DT>
|
||||
<DD>Use automatic insertion of filters and optimize according to CPU
|
||||
speed.</DD>
|
||||
<DT><CODE>1</CODE></DT>
|
||||
<DD>Use automatic insertion of filters and optimize for the highest
|
||||
speed.<BR>
|
||||
<EM>Warning:</EM> Some features in the audio filters may silently fail,
|
||||
and the sound quality may drop.</DD>
|
||||
<DT><CODE>2</CODE></DT>
|
||||
<DD>Use automatic insertion of filters and optimize for quality.</DD>
|
||||
<DT><CODE>3</CODE></DT>
|
||||
<DD>Use no automatic insertion of filters and no optimization.<BR>
|
||||
<I>Warning:</I> It may be possible to crash MPlayer using this
|
||||
setting.</DD>
|
||||
<DT><CODE>4</CODE></DT>
|
||||
<DD>Use automatic insertion of filters according to 0 above, but use
|
||||
floating point processing when possible.</DD>
|
||||
<DT><CODE>5</CODE></DT>
|
||||
<DD>Use automatic insertion of filters according to 1 above, but use
|
||||
floating point processing when possible.</DD>
|
||||
<DT><CODE>6</CODE></DT>
|
||||
<DD>Use automatic insertion of filters according to 2 above, but use
|
||||
floating point processing when possible.</DD>
|
||||
<DT><CODE>7</CODE></DT>
|
||||
<DD>Use no automatic insertion of filters according to 3 above, and use
|
||||
floating point processing when possible.</DD>
|
||||
</DL>
|
||||
</DD>
|
||||
|
||||
<DT><CODE>list</CODE></DT>
|
||||
<DD>is an alias for the -af option.</DD>
|
||||
</DL>
|
||||
|
||||
<P>The filter layer is also affected by the following generic options:
|
||||
|
||||
<DL>
|
||||
<DT><CODE>-v</CODE></DT>
|
||||
<DD>Increases the verbosity level and makes most filters print out extra
|
||||
status messages.</DD>
|
||||
<DT><CODE>-channels</CODE></DT>
|
||||
<DD>This option sets the number of output channels you would like your
|
||||
sound card to use.
|
||||
It also affects the number of channels that are being decoded from the
|
||||
media. If the media contains less channels than requested the channels
|
||||
filter (see below) will automatically be inserted. The routing will be the
|
||||
default routing for the channels filter.</DD>
|
||||
<DT><CODE>-srate</CODE></DT>
|
||||
<DD>This option selects the sample rate you would like your sound card to
|
||||
use (of course the cards have limits on this). If the sample
|
||||
frequency of your sound card is different from that of the current media,
|
||||
the resample filter (see below) will be inserted into the audio filter layer
|
||||
to compensate for the difference.</DD>
|
||||
<DT><CODE>-format</CODE><DT>
|
||||
<DD>This option sets the sample format between the audio filter layer and the sound
|
||||
card. If the requested sample format of your sound card is different from
|
||||
that of the current media, a format filter (see below) will be inserted to
|
||||
rectify the difference.</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
<H4><A NAME="af_resample">2.3.2.3.1 Up/Down-sampling</A></H4>
|
||||
|
||||
<P>MPlayer fully supports sound up/down-sampling through the
|
||||
<CODE>resample</CODE> filter. It can be used if you
|
||||
have a fixed frequency sound card or if you are stuck with an old sound card
|
||||
that is only capable of max 44.1kHz. This filter is automatically enabled if
|
||||
it is necessary, but it can also be explicitly enabled on the command line. It
|
||||
has three options:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>srate <8000-192000></CODE></DT>
|
||||
<DD>is an integer used for setting the output sample
|
||||
frequency in Hz. The valid range for this parameter is 8kHz to 192kHz. If
|
||||
the input and output sample frequency are the same or if this parameter is
|
||||
omitted the filter is automatically unloaded. A high sample frequency
|
||||
normally improves the audio quality, especially when used in combination
|
||||
with other filters.</DD>
|
||||
|
||||
<DT><CODE>sloppy</CODE></DT>
|
||||
<DD>is an optional binary parameter that allows the output frequency to differ
|
||||
slightly from the frequency given by <CODE>srate</CODE>. This option can be
|
||||
used if the startup of the playback is extremely slow. It is enabled by
|
||||
default.</DD>
|
||||
|
||||
<DT><CODE>type <0-2></CODE><DT>
|
||||
<DD>is an optional integer between <CODE>0</CODE> and <CODE>2</CODE> that
|
||||
selects which resampling method to use. Here <CODE>0</CODE> represents
|
||||
linear interpolation as resampling method, <CODE>1</CODE> represents
|
||||
resampling using a poly-phase filter-bank and integer processing and
|
||||
<CODE>2</CODE> represents resampling using a poly-phase filter-bank and
|
||||
floating point processing. Linear interpolation is extremely fast, but
|
||||
suffers from poor sound quality especially when used for up-sampling. The
|
||||
best quality is given by <CODE>2</CODE> but this method also suffers from
|
||||
the highest CPU load.</DD>
|
||||
</DL>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mplayer -af resample=44100:0:0</CODE></P>
|
||||
|
||||
<P>would set the output frequency of the resample filter to 44100Hz using exact
|
||||
output frequency scaling and linear interpolation.</P>
|
||||
|
||||
|
||||
<H4><A NAME="af_channels">2.3.2.3.2 Changing the number of channels</A></H4>
|
||||
|
||||
<P>The <CODE>channels</CODE> filter can be used for adding and removing
|
||||
channels, it can also be used for routing or copying channels. It is
|
||||
automatically enabled when the output from the audio filter layer differs from
|
||||
the input layer or when it is requested by another filter. This filter unloads
|
||||
itself if not needed. The number of options is dynamic:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>nch <1-6></CODE></DT>
|
||||
<DD>is an integer between <CODE>1</CODE> and <CODE>6</CODE> that is used for
|
||||
setting the number of output channels. This option is required, leaving it
|
||||
empty results in a runtime error.</DD>
|
||||
|
||||
<DT><CODE>nr <1-6></CODE></DT>
|
||||
<DD>is an integer between <CODE>1</CODE> and <CODE>6</CODE> that is used for
|
||||
specifying the number of routes. This parameter is optional. If it is
|
||||
omitted the default routing is used.</DD>
|
||||
|
||||
<DT><CODE>from1:to1:from2:to2:from3:to3...</CODE></DT>
|
||||
<DD>are pairs of numbers between <CODE>0</CODE> and <CODE>5</CODE> that define
|
||||
where each channel should be routed.</DD>
|
||||
</DL>
|
||||
|
||||
<P>If only <CODE>nch</CODE> is given the default routing is used, it works as
|
||||
follows: If the number of output channels is bigger than the number of input
|
||||
channels empty channels are inserted (except mixing from mono to stereo, then
|
||||
the mono channel is repeated in both of the output channels). If the number of
|
||||
output channels is smaller than the number of input channels the exceeding
|
||||
channels are truncated.</P>
|
||||
|
||||
<P>Example 1:<BR>
|
||||
<CODE>mplayer -af channels=4:4:0:1:1:0:2:2:3:3 media.avi </CODE></P>
|
||||
|
||||
<P>would change the number of channels to 4 and set up 4 routes that swap
|
||||
channel 0 and channel 1 and leave channel 2 and 3 intact. Observe that if
|
||||
media containing two channels was played back, channels 2 and 3 would contain
|
||||
silence but 0 and 1 would still be swapped.</P>
|
||||
|
||||
<P>Example 2:<BR>
|
||||
<CODE>mplayer -af channels=6:4:0:0:0:1:0:2:0:3 media.avi </CODE></P>
|
||||
|
||||
<P>would change the number of channels to 6 and set up 4 routes that copy
|
||||
channel 0 to channels 0 to 3. Channel 4 and 5 will contain silence.</P>
|
||||
|
||||
|
||||
<H4><A NAME="af_format">2.3.2.3.3 Sample format converter</A></H4>
|
||||
|
||||
<P>The <CODE>format</CODE> filter converts between different sample formats. It
|
||||
is automatically enabled when needed by the sound card or another filter.</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>bps <number></CODE></DT>
|
||||
<DD>can be <CODE>1</CODE>, <CODE>2</CODE> or <CODE>4</CODE> and denotes the
|
||||
number of bytes per sample. This option is required, leaving it empty
|
||||
results in a runtime error.</DD>
|
||||
|
||||
<DT><CODE>f <format></CODE></DT>
|
||||
<DD>is a text string describing the sample format. The string is a
|
||||
concatenated mix of: <CODE>alaw</CODE>, <CODE>mulaw</CODE> or
|
||||
<CODE>imaadpcm</CODE>, <CODE>float</CODE> or <CODE>int</CODE>,
|
||||
<CODE>unsigned</CODE> or <CODE>signed</CODE>, <CODE>le</CODE> or
|
||||
<CODE>be</CODE> (little or big endian). This option is required, leaving it
|
||||
empty results in a runtime error.</DD>
|
||||
</DL>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mplayer -af format=4:float media.avi</CODE></P>
|
||||
|
||||
<P>would set the output format to 4 bytes per sample floating point
|
||||
data.</P>
|
||||
|
||||
|
||||
<H4><A NAME="af_delay">2.3.2.3.4 Delay</A></H4>
|
||||
|
||||
<P>The <CODE>delay</CODE> filter delays the sound to the loudspeakers such that
|
||||
the sound from the different channels arrives at the listening position
|
||||
simultaneously.
|
||||
It is only useful if you have more than 2 loudspeakers. This filter has a
|
||||
variable number of parameters:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>d1:d2:d3...</CODE></DT>
|
||||
<DD>are floating point numbers representing the delays in ms that should be
|
||||
imposed on the different channels. The minimum delay is 0ms and the maximum
|
||||
is 1000ms.</DD>
|
||||
</DL>
|
||||
|
||||
<P>To calculate the required delay for the different channels do as follows:</P>
|
||||
|
||||
<OL>
|
||||
<LI>Measure the distance to the loudspeakers in meters in relation to your
|
||||
listening position, giving you the distances s1 to s5 (for a 5.1 system).
|
||||
There is no point in compensating for the sub-woofer (you will not hear the
|
||||
difference anyway).</LI>
|
||||
<LI>Subtract the distances s1 to s5 from the maximum distance i.e.<BR>
|
||||
s[i] = max(s) - s[i]; i = 1...5</LI>
|
||||
<LI>Calculated the required delays in ms as<BR>
|
||||
d[i] = 1000*s[i]/342; i = 1...5 </LI>
|
||||
</OL>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mplayer -af delay=10.5:10.5:0:0:7:0 media.avi</CODE></P>
|
||||
|
||||
<P>would delay front left and right by 10.5ms, the two rear channels and the sub
|
||||
by 0ms and the center channel by 7ms.</P>
|
||||
|
||||
|
||||
<H4><A NAME="af_volume">2.3.2.3.5 Software volume control</A></H4>
|
||||
|
||||
<P>Software volume control is implemented by the <CODE>volume</CODE> audio
|
||||
filter. Use this filter with caution since
|
||||
it can reduce the signal to noise ratio of the sound. In most cases it is best
|
||||
to set the level for the PCM sound to max, leave this filter out and control
|
||||
the output level to your speakers with the master volume control of the mixer.
|
||||
In case your sound card has a digital PCM mixer instead of an analog one, and
|
||||
you hear distortion, use the MASTER mixer instead.
|
||||
If there is an external amplifier connected to the computer (this is almost
|
||||
always the case), the noise level can be minimized by adjusting the master
|
||||
level and the volume knob on the amplifier until the hissing noise in the
|
||||
background is gone. This filter has two options:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>v <-200 - +60></CODE></DT>
|
||||
<DD>is a floating point number between <CODE>-200</CODE> and <CODE>+60</CODE>
|
||||
which represents the volume level in dB. The default level is 0dB.</DD>
|
||||
|
||||
<DT><CODE>c</CODE></DT>
|
||||
<DD>is a binary control that turns soft clipping on and off. Soft-clipping can
|
||||
make the sound more smooth if very high volume levels are used. Enable this
|
||||
option if the dynamic range of the loudspeakers is very low. Be aware that
|
||||
this feature creates distortion and should be considered a last resort.</DD>
|
||||
</DL>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mplayer -af volume=10.1:0 media.avi</CODE></P>
|
||||
|
||||
<P>would amplify the sound by 10.1dB and hard-clip if the sound level is too
|
||||
high.</P>
|
||||
|
||||
<P>This filter has a second feature: It measures the overall maximum sound level
|
||||
and prints out that level when MPlayer exits. This volume estimate can be used
|
||||
for setting the sound level in MEncoder such that the maximum dynamic range is
|
||||
utilized.</P>
|
||||
|
||||
|
||||
<H4><A NAME="af_equalizer">2.3.2.3.6 Equalizer</A></H4>
|
||||
|
||||
<P>The <CODE>equalizer</CODE> filter represents a 10 octave band graphic
|
||||
equalizer, implemented using 10 IIR
|
||||
band pass filters. This means that it works regardless of what type of audio
|
||||
is being played back. The center frequencies for the 10 bands are:</P>
|
||||
|
||||
<TABLE BORDER="0" WIDTH="100%">
|
||||
<TR><TD>Band No.</TD><TD>Center frequency</TD></TR>
|
||||
<TR><TD>0</TD><TD>31.25 Hz</TD></TR>
|
||||
<TR><TD>1</TD><TD>62.50 Hz</TD></TR>
|
||||
<TR><TD>2</TD><TD>125.0 Hz</TD></TR>
|
||||
<TR><TD>3</TD><TD>250.0 Hz</TD></TR>
|
||||
<TR><TD>4</TD><TD>500.0 Hz</TD></TR>
|
||||
<TR><TD>5</TD><TD>1.000 kHz</TD></TR>
|
||||
<TR><TD>6</TD><TD>2.000 kHz</TD></TR>
|
||||
<TR><TD>7</TD><TD>4.000 kHz</TD></TR>
|
||||
<TR><TD>8</TD><TD>8.000 kHz</TD></TR>
|
||||
<TR><TD>9</TD><TD>16.00 kHz</TD></TR>
|
||||
</TABLE>
|
||||
|
||||
<P>If the sample rate of the sound being played back is lower than the center
|
||||
frequency for a frequency band, then that band will be disabled. A known bug
|
||||
with this filter is that the characteristics for the uppermost band are not
|
||||
completely symmetric if the sample rate is close to the center frequency of
|
||||
that band. This problem can be worked around by up-sampling the sound using
|
||||
the resample filter before it reaches this filter. </P>
|
||||
|
||||
<P>This filter has 10 parameters:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>g1:g2:g3...g10</CODE></DT>
|
||||
<DD>are floating point numbers between <CODE>-12</CODE> and <CODE>+12</CODE>
|
||||
representing the gain in dB for each frequency band.</DD>
|
||||
</DL>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mplayer -af equalizer=11:11:10:5:0:-12:0:5:12:12 media.avi</CODE></P>
|
||||
|
||||
<P>would amplify the sound in the upper and lower frequency region while
|
||||
canceling it almost completely around 1kHz.</P>
|
||||
|
||||
|
||||
<H4><A NAME="af_panning">2.3.2.3.7 Panning filter</A></H4>
|
||||
|
||||
<P>Use the <CODE>pan</CODE> filter to mix channels arbitrarily. It is basically
|
||||
a combination of the volume control and the channels filter. There are two
|
||||
major uses for this filter:</P>
|
||||
|
||||
<OL>
|
||||
<LI>Down-mixing many channels to only a few, stereo to mono for example.</LI>
|
||||
<LI>Varying the "width" of the center speaker in a surround sound system.</LI>
|
||||
</OL>
|
||||
|
||||
<P>This filter is hard to use, and will require some tinkering before the
|
||||
desired result is obtained. The number of options for this filter depends on
|
||||
the number of output channels:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>nch <1-6></CODE></DT>
|
||||
<DD>is an integer between <CODE>1</CODE> and <CODE>6</CODE> and is used for
|
||||
setting the number of output channels. This option is required, leaving it
|
||||
empty results in a runtime error.</DD>
|
||||
|
||||
<DT><CODE>l00:l01:l02:..l10:l11:l12:...ln0:ln1:ln2:...</CODE></DT>
|
||||
<DD>are floating point values between <CODE>0</CODE> and <CODE>1</CODE>.
|
||||
<CODE>l[i][j]</CODE> determines how much of input channel j is mixed into
|
||||
output channel i.</DD>
|
||||
</DL>
|
||||
|
||||
<P>Example 1:<BR>
|
||||
<CODE>mplayer -af pan=1:0.5:0.5 -channels 1 media.avi</CODE></P>
|
||||
|
||||
<P>would down-mix from stereo to mono.</P>
|
||||
|
||||
<P>Example 2:<BR>
|
||||
<CODE>mplayer -af pan=3:1:0:1:0.5:0.5 -channels 3 media.avi</CODE></P>
|
||||
|
||||
<P>would give 3 channel output leaving channels 0 and 1 intact, and mix channels
|
||||
0 and 1 into output channel 2 (which could be sent to a sub-woofer for
|
||||
example).</P>
|
||||
|
||||
|
||||
<H4><A NAME="af_sub">2.3.2.3.8 Sub-woofer</A></H4>
|
||||
|
||||
<P>The <CODE>sub</CODE> filter adds a sub woofer channel to the audio stream.
|
||||
The audio data
|
||||
used for creating the sub-woofer channel is an average of the sound in channel
|
||||
0 and channel 1. The resulting sound is then low-pass filtered by a 4th
|
||||
order Butterworth filter with a default cutoff frequency of 60Hz and added to
|
||||
a separate channel in the audio stream. Warning: Disable this filter when you
|
||||
are playing DVDs with Dolby Digital 5.1 sound, otherwise this filter will
|
||||
disrupt the sound to the sub-woofer. This filter has two parameters:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>fc <20-300></CODE></DT>
|
||||
<DD>is an optional floating point number used for setting the cutoff frequency
|
||||
for the filter in Hz. The valid range is 20Hz to 300Hz. For the best result
|
||||
try setting the cutoff frequency as low as possible. This will improve the
|
||||
stereo or surround sound experience. The default cutoff frequency is
|
||||
60Hz.</DD>
|
||||
|
||||
<DT><CODE>ch <0-5></CODE></DT>
|
||||
<DD>is an optional integer between <CODE>0</CODE> and <CODE>5</CODE> which
|
||||
determines the channel number in which to insert the sub-channel audio.
|
||||
The default is channel number <CODE>5</CODE>. Observe that the number of
|
||||
channels will automatically be increased to <CODE>ch</CODE> if
|
||||
necessary.</DD>
|
||||
</DL>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mplayer -af sub=100:4 -channels 5 media.avi</CODE></P>
|
||||
|
||||
<P>would add a sub-woofer channel with a cutoff frequency of 100Hz to output
|
||||
channel 4.</P>
|
||||
|
||||
<H4><A NAME="af_surround">2.3.2.3.9 Surround-sound decoder</A></H4>
|
||||
|
||||
<P>Matrix encoded surround sound can be decoded by the <CODE>surround</CODE>
|
||||
filter. Dolby Surround is
|
||||
an example of a matrix encoded format. Many files with 2 channel audio
|
||||
actually contain matrixed surround sound. To use this feature you need a sound
|
||||
card supporting at least 4 channels. This filter has one parameter:</P>
|
||||
|
||||
<DL>
|
||||
<DT><CODE>d <0-1000></CODE></DT>
|
||||
<DD>is an optional floating point number between <CODE>0</CODE> and
|
||||
<CODE>1000</CODE> used for setting the delay time in ms for the rear
|
||||
speakers. This delay should be set as follows: if d1 is the distance from
|
||||
the listening position to the front speakers and d2 is the distance from
|
||||
the listening position to the rear speakers, then the delay <CODE>d</CODE>
|
||||
should be set to 15ms if d1 <= d2 and to 15 + 5*(d1-d2) if d1 > d2.
|
||||
The default value for <CODE>d</CODE> is 20ms.</DD>
|
||||
</DL>
|
||||
|
||||
<P>Example:<BR>
|
||||
<CODE>mplayer -af surround=15 -channels 4 media.avi</CODE></P>
|
||||
|
||||
<P>would add surround sound decoding with 15ms delay for the sound to the rear
|
||||
speakers.</P>
|
||||
|
||||
|
||||
<H4><A NAME="plugins">2.3.2.4 Audio plugins (deprecated)</A></H4>
|
||||
|
||||
<H2><STRONG>Note: Audio plugins have been deprecated by audio filters and will be
|
||||
removed soon.</STRONG></H2>
|
||||
|
||||
<P>MPlayer has support for audio plugins. Audio plugins can be used to
|
||||
change the properties of the audio data before it reaches the sound
|
||||
card. They are enabled using the <CODE>-aop</CODE> option which takes a
|
||||
<CODE>list=plugin1,plugin2,...</CODE> argument. The <CODE>list</CODE> argument
|
||||
is required and determines which plugins should be used and in which order they
|
||||
should be executed. Example:</P>
|
||||
|
||||
<P> <CODE>mplayer media.avi -aop list=resample,format</CODE></P>
|
||||
|
||||
<P>would run the sound through the resampling plugin followed by the format
|
||||
plugin.</P>
|
||||
|
||||
<P>The plugins can also have options that change their behavior. These
|
||||
options are explained in detail in the sections below. A plugin will execute
|
||||
using default settings if its options are omitted. Here is an example of how
|
||||
to use plugins in combination with plugin specific options:</P>
|
||||
|
||||
<P> <CODE>mplayer media.avi -aop
|
||||
list=resample,format:fout=44100:format=0x8</CODE></P>
|
||||
|
||||
<P>would set the output frequency of the resample plugin to 44100Hz and the
|
||||
output format of the format plugin to AFMT_U8.</P>
|
||||
|
||||
<P>Currently audio plugins cannot be used in MEncoder.</P>
|
||||
|
||||
|
||||
<H4><A NAME="resample">2.3.2.4.1 Up/Downsampling</A></H4>
|
||||
|
||||
<P>MPlayer fully supports up/downsampling of the sound. This plugin can
|
||||
be used if you have a fixed frequency sound card or if you are
|
||||
stuck with an old sound card that is only capable of max 44.1kHz.
|
||||
MPlayer <EM>autodetects</EM> whether or not usage of this plugin is necessary.
|
||||
This plugin has one option, <CODE>fout</CODE>, which is used for setting the
|
||||
desired output sample frequency. The value is given in Hz, and defaults to
|
||||
48kHz.</P>
|
||||
|
||||
<P>Usage:<BR>
|
||||
<CODE>mplayer media.avi -aop list=resample:fout=<required
|
||||
frequency in Hz, like 44100></CODE></P>
|
||||
|
||||
<P>Note that the output frequency should not be scaled up from the default value.
|
||||
Scaling up will cause the audio and video streams to be played in slow motion
|
||||
and cause audio distortion.</P>
|
||||
|
||||
|
||||
<H4><A NAME="surround_decoding">2.3.2.4.2 Surround Sound decoding</A></H4>
|
||||
|
||||
<P>MPlayer has an audio plugin that can decode matrix encoded
|
||||
surround sound. Dolby Surround is an example of a matrix encoded format.
|
||||
Many files with 2 channel audio actually contain matrixed surround sound.
|
||||
To use this feature you need a sound card supporting at least 4 channels.</P>
|
||||
|
||||
<P>Usage:<BR>
|
||||
<CODE>mplayer media.avi -aop list=surround</CODE></P>
|
||||
|
||||
|
||||
<H4><A NAME="format">2.3.2.3.3 Sample format converter</A></H4>
|
||||
|
||||
<P>If your sound card driver does not support signed 16bit <CODE>int</CODE> data type,
|
||||
this plugin can
|
||||
be used to change the format to one which your sound card can understand. It
|
||||
has one option, <CODE>format</CODE>, which can be set to one of the numbers
|
||||
found in <CODE>libao2/afmt.h</CODE>. This plugin is hardly ever needed and is
|
||||
intended for advanced users. Keep in mind that this plugin only changes the
|
||||
sample format and not the sample frequency or the number of channels.</P>
|
||||
|
||||
<P>Usage:<BR>
|
||||
<CODE>mplayer media.avi -aop
|
||||
list=format:format=<required output format></CODE></P>
|
||||
|
||||
|
||||
<H4><A NAME="delay">2.3.2.4.4 Delay</A></H4>
|
||||
|
||||
<P>This plugin delays the sound and is intended as an example of how to develop
|
||||
new plugins. It can not be used for anything useful from a users perspective
|
||||
and is mentioned here for the sake of completeness only. Do not use this
|
||||
plugin unless you are a developer.</P>
|
||||
|
||||
<P>If you have a file with a consistent A/V sync fault, use the <CODE>+/-</CODE>
|
||||
keys to adjust timings on-the-fly instead. Usage of the OSD is recommended
|
||||
to make this easier.</P>
|
||||
|
||||
|
||||
<H4><A NAME="volume">2.3.2.4.5 Software volume control</A></H4>
|
||||
|
||||
<P>This plugin is a software replacement for the volume control, and
|
||||
can be used on machines with a broken mixer device. It can also be
|
||||
used if one wants to change the output volume of MPlayer
|
||||
without changing the PCM volume setting in the mixer. It has one
|
||||
option <CODE>volume</CODE> that is used for setting the initial
|
||||
sound level. The initial sound level can be set to values between 0
|
||||
and 255 and defaults to 101 which equals 0dB amplification. Use this
|
||||
plugin with caution since it can reduce the signal to noise ratio of
|
||||
the sound. In most cases it is best to set the level for the PCM
|
||||
sound to max, leave this plugin out and control the output level to
|
||||
your speakers with the MASTER volume control of the mixer.
|
||||
In case your sound card has a digital PCM mixer instead of an analog one, and
|
||||
you hear distortion, use the MASTER mixer instead.
|
||||
external amplifier connected to the computer (this is almost always
|
||||
the case), the noise level can be minimized by adjusting the master
|
||||
level and the volume knob on the amplifier until the hissing noise
|
||||
in the background is gone.</P>
|
||||
|
||||
<P>Usage:<BR>
|
||||
<CODE>mplayer media.avi -aop
|
||||
list=volume:volume=<0-255></CODE></P>
|
||||
|
||||
<P>This plugin also has compressor or "soft-clipping" capabilities.
|
||||
Compression can be used if the dynamic range of the sound is very
|
||||
high or if the dynamic range of the loudspeakers is very
|
||||
low. Be aware that this feature creates distortion and should be
|
||||
considered a last resort.</P>
|
||||
|
||||
<P>Usage:<BR>
|
||||
<CODE>mplayer media.avi -aop
|
||||
list=volume:softclip</CODE></P>
|
||||
|
||||
|
||||
<H4><A NAME="extrastereo">2.3.2.4.6 Extrastereo</A></H4>
|
||||
|
||||
<P>This plugin (linearly) increases the difference between left and right
|
||||
channels (like the XMMS extrastereo plugin) which gives some sort of "live"
|
||||
effect to playback.</P>
|
||||
|
||||
<P>Usage:<BR>
|
||||
<CODE>mplayer media.avi -aop list=extrastereo</CODE><BR>
|
||||
<CODE>mplayer media.avi -aop list=extrastereo:mul=3.45</CODE></P>
|
||||
|
||||
<P>The default coefficient (<CODE>mul</CODE>) is a float number that defaults
|
||||
to 2.5. If you set it to 0.0, you will have mono sound (average of both
|
||||
channels). If you set it to 1.0, sound will be unchanged, if you set it to
|
||||
-1.0, left and right channels will be swapped.</P>
|
||||
|
||||
|
||||
<H4><A NAME="normalizer">2.3.2.4.7 Volume normalizer</A></H4>
|
||||
|
||||
<P>This plugin maximizes the volume without distorting the sound.</P>
|
||||
|
||||
<P>Usage:<BR>
|
||||
<CODE>mplayer media.avi -aop list=volnorm</CODE><BR>
|
||||
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,190 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>Developer Cries - MPlayer - The Movie Player for Linux</TITLE>
|
||||
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
|
||||
<H1><A NAME="appendix_e">Appendix E - Developer Cries</A></H1>
|
||||
|
||||
<P>There are two major topics which always cause huge dispute and flame on the
|
||||
<A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A>
|
||||
mailing list. Number one is the topic of the</P>
|
||||
|
||||
|
||||
<H2><A NAME="gcc">E.1 GCC 2.96</A></H2>
|
||||
|
||||
<P><B>The background:</B> The GCC <B>2.95</B> series is an official GNU release
|
||||
and version 2.95.3 of GCC is the most bug-free in that series.
|
||||
We have never noticed compilation problems that we could trace to GCC 2.95.3.
|
||||
Starting with Red Hat Linux 7.0, <B>Red Hat</B> included a heavily
|
||||
patched CVS version of GCC in their distribution and named it <B>2.96</B>. Red
|
||||
Hat included this version in the distribution because GCC 3.0 was not finished
|
||||
at the time, and they needed a compiler that worked well on all of their
|
||||
supported platforms, including IA64 and s390. The Linux distributor
|
||||
<B>Mandrake</B> also followed Red Hat's example and started shipping GCC 2.96
|
||||
with their Linux-Mandrake 8.0 series.</P>
|
||||
|
||||
<P><B>The statements:</B> The GCC team disclaimed any link with GCC 2.96 and
|
||||
issued an <A HREF="http://gcc.gnu.org/gcc-2.96.html">official response</A> to
|
||||
GCC 2.96. Many developers around the world began having problems with GCC 2.96,
|
||||
and started recommending other compilers. Examples are
|
||||
<A HREF="http://www.mysql.com/downloads/mysql-3.23.html">MySQL</A>,
|
||||
<A HREF="http://avifile.sourceforge.net/news-old1.htm">avifile</A> and
|
||||
<A HREF="http://www.winehq.com/news/?view=92#RH%207.1%20gcc%20fixes%20compiler%20bug">Wine</A>.
|
||||
Other interesting links are
|
||||
<A HREF="http://www.atnf.csiro.au/people/rgooch/linux/docs/kernel-newsflash.html">
|
||||
Linux kernel news flash about kernel 2.4.17</A> and
|
||||
<A HREF="http://www.voy.com/3516/572.html">Voy Forum</A>.
|
||||
MPlayer also suffered from intermittent problems that were all solved by
|
||||
switching to a different version of GCC. Several projects started implementing
|
||||
workarounds for some of the 2.96 issues, but we refused to fix other people's
|
||||
bugs, especially since some workarounds may imply a performance penalty.</P>
|
||||
|
||||
<P>You can read about the other side of the story
|
||||
<A HREF="http://web.archive.org/web/20011024212120/http://www.bero.org/gcc296.html">at this site</A>.
|
||||
GCC 2.96 does not allow | (pipe) characters in assembler comments
|
||||
because it supports Intel as well as AT&T Syntax and the | character is a
|
||||
symbol in the Intel variant. The problem is that it <B>silently</B> ignores the
|
||||
whole assembler block. This is supposedly fixed now, GCC prints a warning instead
|
||||
of skipping the block.</P>
|
||||
|
||||
<P><B>The present:</B> Red Hat says that GCC 2.96-85 and above is fixed. The
|
||||
situation has indeed improved, yet we still see problem reports on our
|
||||
mailing lists that disappear with a different compiler. In any case it does not
|
||||
matter any longer. Hopefully a maturing GCC 3.x will solve the issue for good.
|
||||
If you want to compile with 2.96 give the <CODE>--disable-gcc-checking</CODE>
|
||||
flag to configure. Remember that you are on your own and <B>do not report any
|
||||
bugs</B>. If you do, you will only get banned from our mailing list because
|
||||
we have had more than enough flame wars over GCC 2.96. Please let the matter
|
||||
rest.</P>
|
||||
|
||||
<P>If you have problems with GCC 2.96, you can get 2.96-85 packages from the
|
||||
Red Hat <A HREF="ftp://updates.redhat.com">ftp server</A>, or just go for the
|
||||
3.0.4 packages offered for version 7.2 and later. You can also get
|
||||
<A HREF="ftp://people.redhat.com/jakub/gcc/3.2-10/">gcc-3.2-10 packages</A>
|
||||
(unofficial, but working fine) and you can install them along the GCC 2.96 you
|
||||
already have. MPlayer will detect it and use 3.2-10 instead of 2.96. If you do
|
||||
not want to or cannot use the binary packages, here is how you can compile the
|
||||
latest GCC from source:</P>
|
||||
|
||||
<OL>
|
||||
<LI>Go to the <A HREF="http://gcc.gnu.org/mirrors.html">GCC mirrors page</A>
|
||||
page and download <CODE>gcc-core-XXX.tar.gz</CODE> where <CODE>XXX</CODE> is
|
||||
the version number. This includes the complete C compiler and is sufficient
|
||||
for MPlayer. If you also want C++, Java or some of the other advanced GCC
|
||||
features <CODE>gcc-XXX.tar.gz</CODE> may better suit your needs.</LI>
|
||||
<LI>Extract the archive with<BR>
|
||||
<CODE>tar -xvzf gcc-core-XXX.tar.gz</CODE></LI>
|
||||
<LI>GCC is not built inside the source directory itself like most programs,
|
||||
but needs a build directory outside the source directory. Thus you need to
|
||||
create this directory via<BR>
|
||||
<CODE>mkdir gcc-build</CODE></LI>
|
||||
<LI>Then you can proceed to configure GCC in the build directory, but you need
|
||||
the configure from the source directory:<BR>
|
||||
<CODE>cd gcc-build<BR>
|
||||
../gcc-XXX/configure</CODE></LI>
|
||||
<LI>Compile GCC by issuing this command in the build directory:<BR>
|
||||
<CODE>make bootstrap</CODE></LI>
|
||||
<LI>Now you can install GCC (as root) by typing<BR>
|
||||
<CODE>make install</CODE></LI>
|
||||
</OL>
|
||||
|
||||
|
||||
<H2><A NAME="binary">E.2 Binary distribution</A></H2>
|
||||
|
||||
<P>MPlayer previously contained source from the OpenDivX project, which
|
||||
disallows binary redistribution. This code has been removed in version
|
||||
0.90-pre1 and the remaining file <CODE>divx_vbr.c</CODE> that is derived
|
||||
from OpenDivX sources has been put under the GPL by its authors as of version
|
||||
0.90pre9. You are now welcome to create binary packages as you see fit.</P>
|
||||
|
||||
<P>Another impediment to binary redistribution were compiletime optimizations
|
||||
for CPU architecture. MPlayer now supports runtime CPU detection (specify
|
||||
the <CODE>--enable-runtime-cpudetection</CODE> option when configuring). It
|
||||
is disabled by default because it implies a small speed sacrifice, but it is
|
||||
now possible to create binaries that run on different members of the Intel
|
||||
CPU family.</P>
|
||||
|
||||
|
||||
<H2><A NAME="nvidia">E.3 nVidia</A></H2>
|
||||
|
||||
<P>We dislike the fact that <A HREF="http://www.nvidia.com">nVidia</A>
|
||||
only provides binary drivers (for use with XFree86), which are often buggy.
|
||||
We have had many reports on
|
||||
<A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A>
|
||||
about problems related to these closed-source drivers
|
||||
and their poor quality, instability and poor user and expert support.
|
||||
Some examples can be found on the
|
||||
<A HREF="http://www.nvnews.net/vbulletin/forumdisplay.php?s=6d83dc289805c37caef49b77857a0b7e&daysprune=&forumid=27">
|
||||
nVidia Linux Forum</A>.
|
||||
Many of these problems/issues keep appearing repeatedly.
|
||||
We have been contacted by nVidia lately, and they said these bugs
|
||||
do not exist, instability is caused by bad AGP chips, and they received
|
||||
no reports of driver bugs (like the purple line). So if you have a
|
||||
problem with your nVidia card, you are advised to update the nVidia driver
|
||||
and/or buy a new motherboard or ask nVidia to supply open-source drivers.
|
||||
In any case, if you are using the nVidia binary drivers and facing driver related problems,
|
||||
please be aware that you will receive very little help from our side because we have
|
||||
little power to help in this matter.</P>
|
||||
|
||||
|
||||
<H2><A NAME="barr">E.4 Joe Barr</A></H2>
|
||||
|
||||
<P>Joe Barr became infamous by writing a less than favorable
|
||||
<A HREF="http://www.linuxworld.com/site-stories/2001/1214.mplayer.html">
|
||||
MPlayer review</A>. He found MPlayer hard to install, but then
|
||||
again he is not very fond of
|
||||
<A HREF="http://www.linuxworld.com/linuxworld/lw-2000-06/lw-06-exam.html">reading documentation</A>.
|
||||
He also concluded that the developers were unfriendly and the documentation
|
||||
incomplete and insulting. You be the judge.
|
||||
He went on to mention MPlayer negatively in his
|
||||
<A HREF="http://www.linuxworld.com/site-stories/2001/1227.predictions.html">10 Linux predictions for 2002</A>
|
||||
In a followup
|
||||
<A HREF="http://www.linuxworld.com/site-stories/2002/0125.xine.html">review of xine</A>
|
||||
he continued stirring up controversy. Ironically at the end of that article he
|
||||
quotes his exchange with Günter Bartsch, the original author of xine, that
|
||||
perfectly summarizes the whole situation:</P>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
However, he also went on to say that he was "surprised" by my column about
|
||||
MPlayer and thought it was unfair, reminding me that it is a free software
|
||||
project. "If you don't like it," Bartsch said, "you're free not to use it."
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P>He does not reply to our mails. His editor does not reply to our mails.
|
||||
Here are some quotes from different people about Joe Barr, so you can form your
|
||||
own opinion:</P>
|
||||
|
||||
<P>Marc Rassbach has <A HREF="http://daily.daemonnews.org/view_story.php3?story_id=2102">something to say</A>
|
||||
about the man.</P>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
You may all remember the LinuxWorld 2000, when he claimed that Linus T said
|
||||
that 'FreeBSD is just a handful of programmers'. Linus said NOTHING of the
|
||||
sort. When Joe was called on this, his reaction was to call BSD supporters
|
||||
assholes and jerks.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P>A <A HREF="http://www.mplayerhq.hu/pipermail/mplayer-users/2001-December/009118.html">quote</A>
|
||||
from Robert Munro on the
|
||||
<A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A>
|
||||
mailing list:</P>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P>He's interesting, but not good at avoiding, um... controversy. Joe Barr
|
||||
used to be one of the regulars on Will Zachmann's Canopus forum on Compuserve,
|
||||
years ago. He was an OS/2 advocate then (I was an OS/2 fan too).</P>
|
||||
|
||||
<P>He used to go over-the-top, flaming people, and I suspect he had some hard
|
||||
times, then. He's mellowed some, judging by his columns recently. Moderately
|
||||
subtle humor was not his mode in those earlier days, not at all.</P>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
1595
DOCS/en/video.html
1595
DOCS/en/video.html
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user