Mercurial > mplayer.hg
changeset 9382:1b3444713694
Move English files to en/ subdirectory.
author | diego |
---|---|
date | Mon, 10 Feb 2003 00:00:00 +0000 |
parents | 007a1bdce1f4 |
children | ce313c6e5999 |
files | DOCS/bugreports.html DOCS/cd-dvd.html DOCS/codecs-in.html DOCS/codecs.html DOCS/documentation.html DOCS/en/bugreports.html DOCS/en/cd-dvd.html DOCS/en/codecs-in.html DOCS/en/codecs.html DOCS/en/documentation.html DOCS/en/encoding.html DOCS/en/faq.html DOCS/en/formats.html DOCS/en/mplayer.1 DOCS/en/skin.html DOCS/en/sound.html DOCS/en/users_against_developers.html DOCS/en/video.html DOCS/encoding.html DOCS/faq.html DOCS/formats.html DOCS/mplayer.1 DOCS/skin.html DOCS/sound.html DOCS/users_against_developers.html DOCS/video.html |
diffstat | 26 files changed, 11619 insertions(+), 11619 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/bugreports.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,289 +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. 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.tuxedo.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</A> - by <A HREF="http://www.tuxedo.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>Please 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 the following on your command line:</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>
--- a/DOCS/cd-dvd.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,266 +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>You can also try</P> - -<P> <CODE>echo current_speed:4 > /proc/ide/[cdrom device]/settings</CODE></P> - -<P>but you will need 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>DVD Navigation support (dvdnav)</H4> - -<P>Support for DVD navigation via <CODE>dvdnav</CODE> was being worked on, but - it was never finished properly and it is currently unmaintained. Who knows, it - might even compile.</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 the <CODE>-vcd</CODE> option 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>
--- a/DOCS/codecs-in.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>Codec Status Table - 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 text="#000000" link="#666666" vlink="#666666" alink="#666666"> -<table width=750 border="0"> - <tr> - <td align="right"> - <p> </p> - - <p><b>Status of codecs support</b></p> - </td> - </tr> - <tr> - <td> - <p><a href="#vc">Video codecs</a><br><a href="#ac">Audio codecs</a><br></p> - </td> - </tr> - <tr> - <td align="center"> - <b><font face="Verdana, Arial, Helvetica, sans-serif" size="5"><a name="vc">Video codecs:</a></font></b><br><br> - - <table width="100%" border="1" cellspacing="0" cellpadding="5"> - - <tr> - <td colspan=6 bgcolor="#CCCCCC"><b>Working video codecs</b></td> - </tr> - <tr> - <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> - <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">fourcc</font></b></td> - <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> - <td width=40 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">out</font></b></td> - <td align=center colspan=2><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">comments</font></b></td> - </tr> -<!-- %0 --> - <tr> - <td align=center><b>%i</b></td> - <td align=center><b>%F</b></td> - <td align=center><b>%d</b></td> - <td align=center><b>%Y</b></td> - <td align=center colspan=2><b>%c</b></td> - </tr> -<!-- %. --> - - <tr> - <td colspan=6 bgcolor="#CCCCCC"><b>New / Untested codecs</b></td> - </tr> - <tr> - <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> - <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">fourcc</font></b></td> - <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> - <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> - </tr> -<!-- %4 --> - <tr> - <td align=center><b>%i</b></td> - <td align=center><b>%F</b></td> - <td align=center><b>%d</b></td> - <td align=center colspan=3><b>%c</b></td> - </tr> -<!-- %. --> - - <tr> - <td colspan=6 bgcolor="#CCCCCC"><b>Codecs with problems</b></td> - </tr> - <tr> - <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> - <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">fourcc</font></b></td> - <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> - <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> - </tr> -<!-- %2 --> - <tr> - <td align=center><b>%i</b></td> - <td align=center><b>%F</b></td> - <td align=center><b>%d</b></td> - <td align=center colspan=3><b>%c</b></td> - </tr> -<!-- %. --> - - <tr> - <td colspan=6 bgcolor="#CCCCCC"><b>Not yet working codecs:</b></td> - </tr> - <tr> - <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> - <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">fourcc</font></b></td> - <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> - <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> - </tr> -<!-- %3 --> - <tr> - <td align=center><b>%i</b></td> - <td align=center><b>%F</b></td> - <td align=center><b>%d</b></td> - <td align=center colspan=3><b>%c</b></td> - </tr> -<!-- %. --> - - </table> - - <br><b><font face="Verdana, Arial, Helvetica, sans-serif" size="5"><a name="ac">Audio codecs:</a></font></b><br><br> - - <table width="100%" border="1" cellspacing="0" cellpadding="5"> - - <tr> - <td colspan=6 bgcolor="#CCCCCC"><b>Working audio codecs</b></td> - </tr> - <tr> - <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> - <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">format</font></b></td> - <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> - <td align=center colspan=3><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">comments</font></b></td> - </tr> -<!-- %5 --> - <tr> - <td align=center><b>%i</b></td> - <td align=center><b>%f</b></td> - <td align=center><b>%d</b></td> - <td align=center colspan=3><b>%c</b></td> - </tr> -<!-- %. --> - - <tr> - <td colspan=6 bgcolor="#CCCCCC"><b>New / Untested codecs</b></td> - </tr> - <tr> - <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> - <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">format</font></b></td> - <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> - <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> - </tr> -<!-- %9 --> - <tr> - <td align=center><b>%i</b></td> - <td align=center><b>%f</b></td> - <td align=center><b>%d</b></td> - <td align=center colspan=3><b>%c</b></td> - </tr> -<!-- %. --> - - <tr> - <td colspan=6 bgcolor="#CCCCCC"><b>Codecs with problems</b></td> - </tr> - <tr> - <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> - <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">format</font></b></td> - <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> - <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> - </tr> -<!-- %7 --> - <tr> - <td align=center><b>%i</b></td> - <td align=center><b>%f</b></td> - <td align=center><b>%d</b></td> - <td align=center colspan=3><b>%c</b></td> - </tr> -<!-- %. --> - - <tr> - <td colspan=6 bgcolor="#CCCCCC"><b>Not yet working codecs</b></td> - </tr> - <tr> - <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> - <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">format</font></b></td> - <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> - <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> - </tr> -<!-- %8 --> - <tr> - <td align=center><b>%i</b></td> - <td align=center><b>%f</b></td> - <td align=center><b>%d</b></td> - <td align=center colspan=3><b>%c</b></td> - </tr> -<!-- %. --> - - </table> - </td> - </tr> -</table> -</body> -</html>
--- a/DOCS/codecs.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,539 +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>Win32/QT <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 libavcodec. 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 /usr/local/lib/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 /usr/local/lib/libdivxdecore.so /usr/local/lib/libdivxdecore.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 DivX/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/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/HuffYUV - 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 (WMV1). Also a very - interesting one is the WMA decoder.</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/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><B>Note:</B> RealPlayer libraries currently <B>only work with Linux, FreeBSD, - NetBSD and Cygwin on the x86 and Alpha 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>you have to choose between DivX4 <B>or</B> XViD support at compiletime</LI> - <LI>under development</LI> -</UL> - -<H4>INSTALLING XVID CVS</H4> - -<P>XViD is currently available only from CVS. Here are the - download and installation instructions:</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>Edit the Makefile for your architecture (probably - <CODE>Makefile.linuxx86</CODE>) to fit your needs.</LI> - <LI><CODE>make -f Makefile.linuxx86</CODE></LI> - <LI>Copy the <CODE>divx4.h</CODE> and <CODE>xvid.h</CODE> header files from - <CODE>xvidcore/src/</CODE> to <CODE>/usr/local/include/</CODE>.</LI> - <LI>Get <CODE>encore2.h</CODE> and <CODE>decore.h</CODE> from the DivX4Linux - package, and copy them 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 1 (fourcc <I>SVQ1</I>) - decoding supported by <B>native - codecs</B><BR> - Actually there are two (nearly equal) decoders for SVQ1: one is built in - MPlayer, the other is in libavcodec. You can invoke each of them with the - <CODE>-vc svq1</CODE> and <CODE>-vc ffsvq1</CODE> options respectively. - Some files may work with one of them, and not with the other, so test - both decoders. The decoder was written (reverse engineered) by the - <A HREF="http://www.xinehq.de">xine</A> authors.</LI> - <LI>Sorenson 3 (fourcc <I>SVQ3</I>) - decoding supported by <B>Win32 - QuickTime libraries</B></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>compile MPlayer with:<BR> - <CODE>$ ./configure --enable-qtx-codecs</CODE></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/lib/win32</CODE>)</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> -</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> - - -<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>
--- a/DOCS/documentation.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2061 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML> - -<HEAD> - <TITLE>Documentation - 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 ALIGN="center">MPlayer - The Movie Player for LINUX</H1> - -<H2 ALIGN="center">© 2000-2003 Arpad Gereoffy (A'rpi/ESP-team)<BR> - <A HREF="http://www.mplayerhq.hu">http://www.mplayerhq.hu</A></H2> - -<P ALIGN="center">[ English ] - <A HREF="Hungarian/documentation.html">[ Hungarian ]</A> - <A HREF="German/documentation.html">[ German ]</A> - <A HREF="French/documentation.html">[ French ]</A> - <A HREF="Polish/documentation.html">[ Polish ]</A> - <A HREF="Italian/documentation.html">[ Italian ]</A> - <A HREF="Chinese/documentation.html">[ Chinese ]</A></P> - -<HR> - -<H2>Table of Contents</H2> - -<HR> - -<UL> - <LI><A HREF="#reading">0. How to read this documentation</A></LI> - <LI><A HREF="#introduction">1. Introduction</A> - <UL> - <LI><A HREF="#history">1.1 History</A></LI> - <LI><A HREF="#installation">1.2 Installation</A></LI> - <LI><A HREF="#gui">1.3 What about the GUI?</A></LI> - <LI><A HREF="#subtitles_osd">1.4 Subtitles and OSD</A> - <UL> - <LI><A HREF="#mpsub">1.4.1 MPlayer's own subtitle format (MPsub)</A></LI> - <LI><A HREF="#install_osd">1.4.2 Installing OSD and subtitles</A></LI> - <LI><A HREF="#menu">1.4.3 OSD Menu</A></LI> - </UL> - </LI> - <LI><A HREF="#rtc">1.5 RTC</A></LI> - </UL> - </LI> - <LI><A HREF="#features">2. Features</A> - <UL> - <LI><A HREF="formats.html">2.1 Supported formats</A> - <UL> - <LI><A HREF="formats.html#video_formats">2.1.1 Video formats</A> - <UL> - <LI><A HREF="formats.html#mpeg">2.1.1.1 MPEG files</A></LI> - <LI><A HREF="formats.html#avi">2.1.1.2 AVI files</A></LI> - <LI><A HREF="formats.html#asf">2.1.1.3 ASF/WMV files</A></LI> - <LI><A HREF="formats.html#mov">2.1.1.4 QuickTime/MOV files</A></LI> - <LI><A HREF="formats.html#vivo">2.1.1.5 VIVO files</A></LI> - <LI><A HREF="formats.html#fli">2.1.1.6 FLI files</A></LI> - <LI><A HREF="formats.html#real">2.1.1.7 RealMedia (RM) files</A></LI> - <LI><A HREF="formats.html#nuppelvideo">2.1.1.8 NuppelVideo files</A></LI> - <LI><A HREF="formats.html#yuv4mpeg">2.1.1.9 yuv4mpeg files</A></LI> - <LI><A HREF="formats.html#film">2.1.1.10 FILM files</A></LI> - <LI><A HREF="formats.html#roq">2.1.1.11 RoQ files</A></LI> - <LI><A HREF="formats.html#ogg">2.1.1.12 OGG/OGM files</A></LI> - <LI><A HREF="formats.html#sdp">2.1.1.13 SDP files</A></LI> - <LI><A HREF="formats.html#pva">2.1.1.14 PVA files</A></LI> - <LI><A HREF="formats.html#gif">2.1.1.15 GIF files</A></LI> - </UL> - </LI> - <LI><A HREF="formats.html#audio_formats">2.1.2 Audio formats</A> - <UL> - <LI><A HREF="formats.html#mp3">2.1.2.1 MP3 files</A></LI> - <LI><A HREF="formats.html#wav">2.1.2.2 WAV files</A></LI> - <LI><A HREF="formats.html#ogg_vorbis">2.1.2.3 OGG/OGM files (Vorbis)</A></LI> - <LI><A HREF="formats.html#wma">2.1.2.4 WMA/ASF files</A></LI> - <LI><A HREF="formats.html#mp4">2.1.2.5 MP4 files</A></LI> - <LI><A HREF="formats.html#cdda">2.1.2.6 CD audio</A></LI> - <LI><A HREF="formats.html#xmms">2.1.2.7 XMMS</A></LI> - </UL> - </LI> - </UL> - </LI> - <LI><A HREF="codecs.html">2.2 Supported codecs</A> - <UL> - <LI><A HREF="codecs.html#video_codecs">2.2.1 Video codecs</A> - <UL> - <LI><A HREF="codecs.html#divx">2.2.1.1 DivX4/DivX5</A></LI> - <LI><A HREF="codecs.html#libavcodec">2.2.1.2 FFmpeg DivX/libavcodec</A></LI> - <LI><A HREF="codecs.html#xanim">2.2.1.3 XAnim codecs</A></LI> - <LI><A HREF="codecs.html#vivo_video">2.2.1.4 VIVO video</A></LI> - <LI><A HREF="codecs.html#mpeg">2.2.1.5 MPEG 1/2 video</A></LI> - <LI><A HREF="codecs.html#ms_video1">2.2.1.6 MS Video1</A></LI> - <LI><A HREF="codecs.html#cinepak">2.2.1.7 Cinepak CVID</A></LI> - <LI><A HREF="codecs.html#realvideo">2.2.1.8 RealVideo</A></LI> - <LI><A HREF="codecs.html#xvid">2.2.1.9 XViD</A></LI> - <LI><A HREF="codecs.html#sorenson">2.2.1.10 Sorenson</A></LI> - </UL> - </LI> - <LI><A HREF="codecs.html#audio_codecs">2.2.2 Audio codecs</A> - <UL> - <LI><A HREF="codecs.html#software_ac3">2.2.2.1 Software AC3 decoding</A></LI> - <LI><A HREF="codecs.html#hardware_ac3">2.2.2.2 Hardware AC3 decoding</A></LI> - <LI><A HREF="codecs.html#libmad">2.2.2.3 libmad support</A></LI> - <LI><A HREF="codecs.html#vivo_audio">2.2.2.4 VIVO audio</A></LI> - <LI><A HREF="codecs.html#realaudio">2.2.2.5 RealAudio</A></LI> - <LI><A HREF="codecs.html#qdesign">2.2.2.6 QDesign codecs</A></LI> - <LI><A HREF="codecs.html#qclp">2.2.2.7 Qualcomm codec</A></LI> - </UL> - </LI> - <LI><A HREF="codecs.html#importing">2.2.3 Win32 codec importing HOWTO</A> - <UL> - <LI><A HREF="codecs.html#importing_vfw">2.2.3.1 VFW codecs</A></LI> - <LI><A HREF="codecs.html#importing_directshow">2.2.3.2 DirectShow codecs</A></LI> - </UL> - </LI> - </UL> - </LI> - <LI><A HREF="#output">2.3 Output devices</A> - <UL> - <LI><A HREF="video.html">2.3.1 Video output devices</A> - <UL> - <LI><A HREF="video.html#mtrr">2.3.1.1 Setting up MTRR</A></LI> - <LI><A HREF="video.html#normal">2.3.1.2 Video outputs for traditional video cards</A> - <UL> - <LI><A HREF="video.html#xv">2.3.1.2.1 Xv</A> - <UL> - <LI><A HREF="video.html#xv_3dfx">2.3.1.2.1.1 3dfx cards</A></LI> - <LI><A HREF="video.html#xv_s3">2.3.1.2.1.2 S3 cards</A></LI> - <LI><A HREF="video.html#xv_nvidia">2.3.1.2.1.3 nVidia cards</A></LI> - <LI><A HREF="video.html#xv_ati">2.3.1.2.1.4 ATI cards</A></LI> - <LI><A HREF="video.html#xv_neomagic">2.3.1.2.1.5 NeoMagic cards</A></LI> - <LI><A HREF="video.html#xv_trident">2.3.1.2.1.6 Trident cards</A></LI> - <LI><A HREF="video.html#xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></LI> - </UL> - </LI> - <LI><A HREF="video.html#dga">2.3.1.2.2 DGA</A></LI> - <LI><A HREF="video.html#sdl">2.3.1.2.3 SDL</A></LI> - <LI><A HREF="video.html#svgalib">2.3.1.2.4 SVGAlib</A></LI> - <LI><A HREF="video.html#fbdev">2.3.1.2.5 Framebuffer output (FBdev)</A></LI> - <LI><A HREF="video.html#mga_vid">2.3.1.2.6 Matrox framebuffer (mga_vid)</A></LI> - <LI><A HREF="video.html#tdfxfb">2.3.1.2.7 3dfx YUV support (tdfxfb)</A></LI> - <LI><A HREF="video.html#opengl">2.3.1.2.8 OpenGL output</A></LI> - <LI><A HREF="video.html#aalib">2.3.1.2.9 AAlib - text mode displaying</A></LI> - <LI><A HREF="video.html#vesa">2.3.1.2.10 VESA - output to VESA BIOS</A></LI> - <LI><A HREF="video.html#x11">2.3.1.2.11 X11</A></LI> - <LI><A HREF="video.html#vidix">2.3.1.2.12 VIDIX</A> - <UL> - <LI><A HREF="video.html#vidix_ati"> 2.3.1.2.12.1 ATI cards</A></LI> - <LI><A HREF="video.html#vidix_matrox"> 2.3.1.2.12.2 Matrox cards</A></LI> - <LI><A HREF="video.html#vidix_trident"> 2.3.1.2.12.3 Trident cards</A></LI> - <LI><A HREF="video.html#vidix_3dlabs"> 2.3.1.2.12.4 3DLabs cards</A></LI> - </UL> - </LI> - <LI><A HREF="video.html#directfb">2.3.1.2.13 DirectFB</A></LI> - <LI><A HREF="video.html#dfbmga">2.3.1.2.14 DirectFB/Matrox (dfbmga)</A></LI> - </UL> - </LI> - <LI><A HREF="video.html#mpegdec">2.3.1.3 MPEG decoders</A> - <UL> - <LI><A HREF="video.html#dvb">2.3.1.3.1 DVB</A></LI> - <LI><A HREF="video.html#dxr2">2.3.1.3.2 DXR2</A></LI> - <LI><A HREF="video.html#dxr3">2.3.1.3.3 DXR3/Hollywood+</A></LI> - </UL> - </LI> - <LI><A HREF="video.html#other">2.3.1.4 Other visualization hardware</A> - <UL> - <LI><A HREF="video.html#zr">2.3.1.4.1 Zoran JPEG decoders</A></LI> - <LI><A HREF="video.html#blinken">2.3.1.4.2 Blinkenlights</A></LI> - </UL> - </LI> - <LI><A HREF="video.html#tv-out">2.3.1.5 TV-out support</A> - <UL> - <LI><A HREF="video.html#tv-out_matrox">2.3.1.5.1 Matrox G400 cards</A></LI> - <LI><A HREF="video.html#tv-out_matrox_g450">2.3.1.5.2 Matrox G450/G550 cards</A></LI> - <LI><A HREF="video.html#tv-out_ati">2.3.1.5.3 ATI cards</A></LI> - <LI><A HREF="video.html#tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></LI> - <LI><A HREF="video.html#tv-out_nvidia">2.3.1.5.5 nVidia</A></LI> - </UL> - </LI> - </UL> - <LI><A HREF="sound.html">2.3.2 Audio output devices</A> - <UL> - <LI><A HREF="sound.html#sync">2.3.2.1 Audio/Video synchronisation</A></LI> - <LI><A HREF="sound.html#experiences">2.3.2.2 Sound card experiences, recommendations</A></LI> - <LI><A HREF="sound.html#af">2.3.2.3 Audio filters</A> - <UL> - <LI><A HREF="sound.html#af_resample">2.3.2.3.1 Up/Downsampling</A></LI> - <LI><A HREF="sound.html#af_channels">2.3.2.3.2 Changing the number of channels</A></LI> - <LI><A HREF="sound.html#af_format">2.3.2.3.3 Sample format converter</A></LI> - <LI><A HREF="sound.html#af_delay">2.3.2.3.4 Delay</A></LI> - <LI><A HREF="sound.html#af_volume">2.3.2.3.5 Software volume control</A></LI> - <LI><A HREF="sound.html#af_equalizer">2.3.2.3.6 Equalizer</A></LI> - <LI><A HREF="sound.html#af_panning">2.3.2.3.7 Panning filter</A></LI> - <LI><A HREF="sound.html#af_sub">2.3.2.3.8 Sub-woofer</A></LI> - <LI><A HREF="sound.html#af_surround">2.3.2.3.9 Surround-sound decoder</A></LI> - </UL> - </LI> - <LI><A HREF="sound.html#plugins">2.3.2.4 Audio plugins (deprecated)</A> - <UL> - <LI><A HREF="sound.html#resample">2.3.2.4.1 Up/Downsampling</A></LI> - <LI><A HREF="sound.html#surround_decoding">2.3.2.4.2 Surround Sound decoding</A></LI> - <LI><A HREF="sound.html#format">2.3.2.4.3 Sample format converter</A></LI> - <LI><A HREF="sound.html#delay">2.3.2.4.4 Delay</A></LI> - <LI><A HREF="sound.html#volume">2.3.2.4.5 Software volume control</A></LI> - <LI><A HREF="sound.html#extrastereo">2.3.2.4.6 Extrastereo</A></LI> - <LI><A HREF="sound.html#normalizer">2.3.2.4.7 Volume Normalizer</A></LI> - </UL> - </LI> - </UL> - </LI> - </UL> - </LI> - <LI><A HREF="#tv">2.4 TV input</A> - <UL> - <LI><A HREF="#tv_compilation">2.4.1 Compilation</A></LI> - <LI><A HREF="#tv_tips">2.4.2 Usage tips</A></LI> - <LI><A HREF="#tv_examples">2.4.3 Examples</A></LI> - </UL> - </LI> - <LI><A HREF="#edl">2.5 Edit Decision Lists (EDL)</A> - <UL> - <LI><A HREF="#edl_using">2.5.1 Using an EDL file</A></LI> - <LI><A HREF="#edl_making">2.5.2 Making an EDL file</A></LI> - </UL> - </LI> - </UL> - </LI> - <LI><A HREF="#usage">3. Usage</A> - <UL> - <LI><A HREF="#command_line">3.1 Command line</A></LI> - <LI><A HREF="#control">3.2 Control</A> - <UL> - <LI><A HREF="#controls_configuration">3.2.1 Controls configuration</A> - <UL> - <LI><A HREF="#key_names">3.2.1.1 Key names</A></LI> - <LI><A HREF="#commands">3.2.1.2 Commands</A></LI> - </UL> - </LI> - <LI><A HREF="#lirc">3.2.2 Control from LIRC</A></LI> - <LI><A HREF="#slave">3.2.3 Slave mode</A></LI> - </UL> - </LI> - <LI><A HREF="#streaming">3.3 Streaming from network or pipes</A></LI> - </UL> - </LI> - <LI><A HREF="cd-dvd.html">4. CD/DVD section</A> - <UL> - <LI><A HREF="cd-dvd.html#drives">4.1 CD/DVD drives</A></LI> - <LI><A HREF="cd-dvd.html#dvd">4.2 DVD playback</A></LI> - <LI><A HREF="cd-dvd.html#vcd">4.3 VCD playback</A></LI> - </UL> - </LI> - <LI><A HREF="faq.html">5. FAQ section</A> - <UL> - <LI><A HREF="faq.html#compilation">5.1 Compilation</A></LI> - <LI><A HREF="faq.html#general">5.2 General questions</A></LI> - <LI><A HREF="faq.html#playback">5.3 Playback problems</A></LI> - <LI><A HREF="faq.html#driver">5.4 Video/audio driver problems (vo/ao)</A></LI> - <LI><A HREF="faq.html#dvd">5.5 DVD playback</A></LI> - <LI><A HREF="faq.html#features">5.6 Feature requests</A></LI> - <LI><A HREF="faq.html#encoding">5.7 Encoding</A></LI> - </UL> - </LI> - <LI><A HREF="#ports">6. Ports</A> - <UL> - <LI><A HREF="#linux">6.1 Linux</A> - <UL> - <LI><A HREF="#debian">6.1.1 Debian packaging</A></LI> - <LI><A HREF="#rpm">6.1.2 RPM packaging</A></LI> - <LI><A HREF="#arm">6.1.3 ARM</A></LI> - </UL> - </LI> - <LI><A HREF="#bsd">6.2 *BSD</A> - <UL> - <LI><A HREF="#freebsd">6.2.1 FreeBSD</A></LI> - <LI><A HREF="#openbsd">6.2.2 OpenBSD</A></LI> - </UL> - </LI> - <LI><A HREF="#solaris">6.3 Solaris</A></LI> - <LI><A HREF="#sgi">6.4 Silicon Graphics / Irix</A></LI> - <LI><A HREF="#qnx">6.5 QNX</A></LI> - <LI><A HREF="#cygwin">6.6 Cygwin</A></LI> - </UL> - </LI> - <LI><A HREF="encoding.html">7. Encoding with MEncoder</A> - <UL> - <LI><A HREF="encoding.html#2pass">7.1 Encoding 2 or 3-pass MPEG-4 ("DIVX")</A></LI> - <LI><A HREF="encoding.html#mpeg">7.2 Encoding to MPEG format</A></LI> - <LI><A HREF="encoding.html#rescaling">7.3 Rescaling movies</A></LI> - <LI><A HREF="encoding.html#copying">7.4 Stream copying</A></LI> - <LI><A HREF="encoding.html#fixing">7.5 Fixing AVIs with broken index</A></LI> - <UL> - <LI><A HREF="encoding.html#appending">7.5.1 Appending multiple AVI files</A></LI> - </UL> - <LI><A HREF="encoding.html#libavcodec">7.6 Encoding with the libavcodec codec family</A></LI> - <LI><A HREF="encoding.html#image_files">7.7 Encoding from multiple input image files (JPEGs or PNGs)</A></LI> - <LI><A HREF="encoding.html#vobsub">7.8 Extracting DVD subtitles to a Vobsub file</A></LI> - <LI><A HREF="encoding.html#aspect">7.9 Preserving aspect ratio</A></LI> - </UL> - </LI> - <LI><A HREF="#mailing_lists">Appendix A - Mailing lists</A></LI> - <LI><A HREF="bugreports.html">Appendix B - How to report bugs</A></LI> - <LI><A HREF="#known_bugs">Appendix C - Known bugs</A></LI> - <LI><A HREF="skin.html">Appendix D - MPlayer skin format</A> - <UL> - <LI><A HREF="skin.html#overview">D.1 Overview</A> - <UL> - <LI><A HREF="skin.html#directories">D.1.1 Directories</A></LI> - <LI><A HREF="skin.html#images">D.1.2 Images</A></LI> - <LI><A HREF="skin.html#components">D.1.3 Skin components</A></LI> - <LI><A HREF="skin.html#files">D.1.4 Files</A></LI> - </UL> - </LI> - <LI><A HREF="skin.html#skinfile">D.2 The skin file</A> - <UL> - <LI><A HREF="skin.html#mainwindow">D.2.1 Main window and playbar</A></LI> - <LI><A HREF="skin.html#subwindow">D.2.2 Subwindow</A></LI> - <LI><A HREF="skin.html#skinmenu">D.2.3 Skin menu</A></LI> - </UL> - </LI> - <LI><A HREF="skin.html#fonts">D.3 Fonts</A> - <UL> - <LI><A HREF="skin.html#symbols">D.3.1 Symbols</A></LI> - </UL> - </LI> - <LI><A HREF="skin.html#guimessages">D.4 GUI messages</A></LI> - </UL> - </LI> - <LI><A HREF="users_against_developers.html">Appendix E - Developer Cries</A> - <UL> - <LI><A HREF="users_against_developers.html#gcc">E.1 GCC 2.96</A></LI> - <LI><A HREF="users_against_developers.html#binary">E.2 Binary distribution</A></LI> - <LI><A HREF="users_against_developers.html#nvidia">E.3 nVidia</A></LI> - <LI><A HREF="users_against_developers.html#barr">E.4 Joe Barr</A></LI> - </UL> - </LI> - <LI><A HREF="tech/patches.txt">Appendix F - How to send patches</A></LI> -</UL> - -<HR> - - - -<H1><A NAME="reading">0. How to read this documentation</A></H1> - -<P>If you are a first-time installer: be sure to read everything from here to - the end of the Installation section, and follow the links you will find. If - you have any other questions, return to the Table of Contents and - search for the topic, read the <A HREF="faq.html">FAQ</A>, or try grepping - through the files.</P> - -<P>The main rule of this documentation: if it's not documented, it - <U>does not exist</U>. If I don't say you encode audio from TV tuner, you - can't. A healthy quantity of combining ability is welcomed, though. - Good luck. You'll need it :) And for another good advice, let me quote - Chris Phillips from the - <A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A> - mailing list:</P> - -<BLOCKQUOTE> - I said a while ago that there is such a difference between a newbie and - a dumbass. No matter what you actually know about a system (linux, cars, - girls :D) you should ALWAYS be able to take a step back and be objective, - otherwise, you're just dumb IMHO. A girl i live with assumed the vacuum - cleaner was broken because it didn't suck things up. never thought to change - the bag, becasue she'd never done it before... now that's just stupid, not a - case of simply not knowing what to do... Simply not being that familiar with - your surroundings is no excuse for a) laziness and b) ignorance. So many - people seem to see the word "error" and then stop... few seem to actually - read the words on the OTHER side of the colon. -</BLOCKQUOTE> - - - -<H1><A NAME="introduction">1. Introduction</A></H1> - - -<P>MPlayer is a movie player for LINUX (runs on many other Unices, and - <B>non-x86</B> CPUs, see the <A HREF="#ports">ports section</A>). It plays most - MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, - FILM, RoQ, PVA files, supported by many native, XAnim, RealPlayer, and - Win32 DLL codecs. You can watch <B>VideoCD</B>, <B>SVCD</B>, <B>DVD</B>, - <B>3ivx</B>, <B>RealMedia</B>, and <B>DivX</B> movies too (and you don't need - the avifile - library at all!). Another big feature of MPlayer is the wide range of - supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev, - AAlib, DirectFB, but you can also use GGI and SDL (and this way all their - drivers) and some lowlevel card-specific drivers (for Matrox, 3Dfx and Radeon, - Mach64, Permedia3) too! Most - of them supports software or hardware scaling, so you can enjoy movies in - fullscreen. MPlayer supports displaying through some hardware MPEG - decoder boards, such as the <B><A HREF="video.html#dvb">DVB</A></B> and - <B><A HREF="video.html#dxr3">DXR3/Hollywood+</A></B>. And what about the nice big antialiased - shaded subtitles (<B>10 supported types</B>) with European/ISO 8859-1,2 - (Hungarian, English, Czech, etc), Cyrillic, Korean fonts, and the onscreen - display (OSD)?</P> - -<P>The player is rock solid playing damaged MPEG files (useful for some VCDs), - and it plays bad AVI files which are unplayable with the famous - windows media player. Even AVI files without index chunk are playable, and - you can temporarily rebuild their indexes with the <CODE>-idx</CODE> option, or - permanently with MEncoder, thus enabling seeking! - As you see, stability and quality are the most important things, - but the speed is also amazing.</P> - -<P>MEncoder (MPlayer's Movie Encoder) is a simple movie encoder, - designed to encode MPlayer-playable movies - (<B>AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA</B>) to other - MPlayer-playable formats (see below). It can encode with various codecs, like - <B>DivX4</B> (1 or 2 passes), libavcodec, - <B>PCM</B>/<B>MP3</B>/<B>VBR MP3</B> audio. Also has powerful plugin system - for video manipulation.</P> - -<H4>MEncoder features</H4> - -<UL> - <LI>encoding from the wide range of fileformats and decoders of MPlayer</LI> - <LI>encoding to all the codecs of ffmpeg's - <A HREF="codecs.html#libavcodec">libavcodec</A></LI> - <LI>video encoding from <B>V4L compatible TV tuners</B></LI> - <LI>encoding/multiplexing to interleaved AVI files with proper index</LI> - <LI>creating files from external audio stream</LI> - <LI>1, 2 or 3 pass encoding</LI> - <LI><B>VBR</B> MP3 audio - <B>IMPORTANT NOTE:</B> VBR MP3 audio doesn't - always play nicely on Windows players!</LI> - <LI>PCM audio</LI> - <LI>stream copying</LI> - <LI>input A/V synchronizing (PTS-based, can be disabled with -mc 0 option)</LI> - <LI>FPS correction with <CODE>-ofps</CODE> option (useful when encoding - 29.97fps VOB to 24fps AVI)</LI> - <LI>using our very powerful plugin system (crop, expand, flip, postprocess, - rotate, scale, rgb/yuv conversion)</LI> - <LI>can encode DVD/VOBsub <B>AND</B> text subtitles into the output file</LI> - <LI>can rip DVD subtitles to Vobsub format</LI> -</UL> - -<H4>Planned features</H4> - -<UL> - <LI>even wider variety of available en/decoding formats/codecs - (creating VOB files with DivX4/Indeo5/VIVO streams :)</LI> -</UL> - -<P>MPlayer and MEncoder can be distributed under the terms of the GNU General - Public License Version 2.</P> - - -<H2><A NAME="history">1.1 History</A></H2> - -<P>This began a year ago... - I (A'rpi) have tried lots of players under linux (mtv,xmps,dvdview,livid/oms,videolan, - xine,xanim,avifile,xmmp) but they all have some problem. Mostly with special - files or with audio/video sync. Most of them is unable to play both MPEG1, - MPEG2 and AVI (DivX) files. Many players have image quality or speed problems - too. So I've decided to write/modify one...</P> - -<UL> - <LI><B>mpg12play v0.1-v0.3:</B> Sep 22-25, 2000<BR> - The first try, hacked together in a half hour! - I've used libmpeg3 from www.heroinewarrior.com up to the version 0.3, - but there were image quality and speed problems with it.</LI> - <LI><B>mpg12play v0.5-v0.87:</B> Sep 28-Oct 20, 2000<BR> - Mpeg codec replaced with DVDview by Dirk Farin, it was a great stuff, - but it was slow and was written in C++ (I hate C++!!!)</LI> - <LI><B>mpg12play v0.9-v0.95pre5:</B> Oct 21-Nov 2, 2000<BR> - Mpeg codec was libmpeg2 (mpeg2dec) by Aaron Holtzman & Michel Lespinasse. - It's great, optimized very fast C code with perfect image quality and - 100% MPEG standard conformance.</LI> - <LI><B>MPlayer v0.01:</B> Nov 11, 2000<BR> - The first MPlayer.</LI> - <LI><B>MPlayer v0.3-v0.9:</B> Nov 18-Dec 4, 2000<BR> - It was a pack of two programs: mpg12play v0.95pre6 and my new simple AVI - player 'avip' based on avifile's Win32 DLL loader.</LI> - <LI><B>MPlayer v0.10:</B> Jan 1, 2001<BR> - The MPEG and AVI player in a single binary!</LI> - <LI><B>MPlayer v0.11pre series:</B><BR> - Some new developers joined and from 0.11 the mplayer project is a team-work! - Added .ASF file support, and OpenDivX (see www.projectmayo.com) en/decoding.</LI> - <LI><B>MPlayer v0.17a "The IdegCounter"</B> Apr 27, 2001<BR> - The release version of the 0.11pre after 4 months of heavy development! - Try it, and be amazed! Thousands of new features added... and of course - old code was improved too, bugs removed etc.</LI> - <LI><B>MPlayer 0.18 "The BugCounter"</B> Jul 9, 2001<BR> - 2 months since 0.17 and here's a new release.. Completed ASF support, - more subtitle formats, introduced libao (similar to libvo but to audio), - even more stable than ever, and so on. It's a MUST!</LI> - <LI><B>MPlayer 0.50 "The Faszom(C)ounter"</B> Oct 8, 2001<BR> - Hmm. Release again. Tons of new features, beta GUI version, bugs fixed, - new vo and ao drivers, ported to many systems, including opensource DivX - codecs and much more. Try it!</LI> - <LI><B>MPlayer 0.60 "The RTFMCounter"</B> Jan 3, 2002<BR> - MOV/VIVO/RM/FLI/NUV fileformats support, native CRAM, Cinepak, ADPCM codecs, - and support for XAnim's binary codecs; DVD subtitles support, first - release of MEncoder, TV grabbing, cache, liba52, countless fixes.</LI> - <LI><B>MPlayer 0.90pre10 "The BirthdayCounter"</B> Nov 11, 2002<BR> - Although this is not a release, I am going to mention it because it - came out 2 years after MPlayer v0.01. Happy birthday, MPlayer!</LI> - <LI><B>MPlayer 0.90rc1 "The CodecCounter"</B> Dec 7, 2002<BR> - Again not a release, but after adding Sorenson 3 (QuickTime) and Windows - Media 9 support, MPlayer is the world's first movie player with support - for all known video formats!</LI> - <LI><B>MPlayer 0.90 "?"</B> Date yet unknown</LI> -</UL> - - -<H2><A NAME="installation">1.2 Installation</A></H2> - -<P>In this chapter I'll try to guide you through the compiling and - configuring process of MPlayer. It's not easy, but it won't necessarily - be hard. If you experience a different behavior than what I explain, please - search through this documentation and you'll find your answers. If you - see links, please follow them and read carefully what they contain. It - will take some time, but it DOES worth it.</P> - -<P>You need a fairly recent system. On Linux, 2.4.x kernels are recommended.</P> - -<H4>Software requirements:</H4> - -<UL> - <LI><B>binutils</B> - suggested version is <B>2.11.x</B> . This program is - responsible for generating MMX/3DNow!/etc instructions, thus very important.</LI> - <LI><B>gcc</B> - suggested versions are: <B>2.95.3</B> (maybe <B>2.95.4</B>) and <B>3.2+</B>. - <B>NEVER</B> use 2.96 or 3.0.x! They generate faulty code for MPlayer. - If you decide to change gcc from 2.96, then don't decide in favor of 3.0.x - just because it's newer! Early releases of 3.0.x were even more buggy than - 2.96. So downgrade to 2.95.x (downgrade libstdc++ too, other programs may - need it) or don't up/downgrade at all (but in this case, be prepared for - runtime problems). If you vote for 3.x.x, try to use the latest version, - early releases had various bugs, so be sure you use at least 3.1, it's - tested and working. For detailed information about gcc 2.96's bugs (that are - still NOT fixed, they have been WORKED AROUND in MPlayer!), see the - <A HREF="users_against_developers.html#gcc">gcc 2.96</A> section and the - <A HREF="faq.html">FAQ</A>.</LI> - <LI><B>XFree86</B> - suggested version is <B>always the newest (4.2.1)</B>. - Normally, everyone wants this, as starting with XFree86 4.0.2, it contains - the <A HREF="video.html#xv">XVideo</A> extension (somewhere referred to - as <B>Xv</B>) which is needed to enable the hardware YUV acceleration (fast - image display) on cards that support it.<BR> - Make sure its <B>development package</B> is installed, too, otherwise - it won't work.<BR> - For some video cards you don't need XFree86. See list below.</LI> - <LI><B>make</B> - suggested version is <B>always the newest</B> (at least 3.79.x). This - usually isn't important.</LI> - <LI><B>SDL</B> - it's not mandatory, but can help in some cases (bad audio, - video cards that lag strangely with the xv driver). Always use the newest - (beginning from 1.2.x).</LI> - <LI><B>libjpeg</B> - optional JPEG decoder, used by -mf and some QT MOV files. - Useful for both MPlayer and MEncoder if you plan to work with jpeg files.</LI> - <LI><B>libpng</B> - recommended and default (M)PNG decoder. Required for GUI. - Useful for both MPlayer and MEncoder.</LI> - <LI><B>lame</B> - recommended, needed for encoding MP3 audio with MEncoder, - suggested version is <B>always the newest</B> (at least 3.90).</LI> - <LI><B>libogg</B> - optional, needed for playing OGG file format.</LI> - <LI><B>libvorbis</B> - optional, needed for playing OGG Vorbis audio.</LI> - <LI><B><A HREF="http://www.live.com/mplayer/">LIVE.COM Streaming Media</A></B> - - optional, needed for playing RTSP/RTP streams.</LI> - <LI><B>directfb</B> - optional, from - <A HREF="http://www.directfb.org">http://www.directfb.org</A></LI> - <LI><B>cdparanoia</B> - optional, for CDDA support</LI> - <LI><B>libfreetype</B> - optional, for TTF fonts support. At least 2.0.9 is - required.</LI> - <LI><B>libxmms</B> - optional, for XMMS input plugin support. At least 1.2.7 is - required.</LI> -</UL> - -<H4>Codecs:</H4> - -<UL> - <LI><B>libavcodec</B>: This codec package is capable of decoding - H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1 encoded video streams and - WMA (Windows Media Audio) v1/v2 audio streams, on - multiple platforms. It is also known to be the fastest for this task. - See the <A HREF="codecs.html#libavcodec">libavcodec</A> section for details. - Features:<BR> - <UL> - <LI>gain decoding of videos mentioned above, on non-x86 machines</LI> - <LI>encoding with most of the mentioned codecs</LI> - <LI>this codec is the <B>fastest codec available</B> for DivX/3/4/5 and - other MPEG4 types. Recommended!</LI> - </UL> - </LI> - <LI><B>Win32 codecs</B>: If you plan to use MPlayer on x86 architecture, you - will possibly need them. Download the Win32 codecs from our - <A HREF="http://www.mplayerhq.hu/MPlayer/releases/codecs/">codecs page</A> - and install them to <CODE>/usr/lib/win32</CODE> <B>BEFORE</B> compiling - MPlayer, otherwise no Win32 support will be compiled!<BR> - <B>Note:</B> the avifile project has a similar codecs package, but it differs - from ours. If you want to use all supported codecs, then install our package - (do not worry, avifile works with it without problems). Features:<BR> - <UL> - <LI>you need this if you want to play or encode for example movies recorded - with various hardware compressors, like tuner cards, digital cameras - (example: DV, ATI VCR, MJPEG)</LI> - <LI>needed if you want to play <B>WMV8, WMV9/WMA9 movies</B>.</LI> - <LI>Not needed for old - ASF's with MP41 or MP42 video (though VoxWare audio is frequent for these - files - it's done by the Win32 codec), or WMV7. Also not needed - for WMA (Windows Media Audio), libavcodec has opensource decoder - for that.</LI> - </UL> - </LI> - <LI><B>QuickTime codecs</B>: on x86 platforms these codecs can be used - to decode Sorenson v1/v3, RPZA, and other QuickTime video, and - QDesign audio streams. Installation instructions can be found in the - <A HREF="codecs.html#sorenson">Sorenson video codec</A> section.</LI> - <LI><B>DivX4/DivX5</B>: information about this codec is available in the - <A HREF="codecs.html#divx">DivX4/DivX5</A> section. You possibly don't want - this codec as <B>libavcodec</B> (see above) is much faster and has better - quality than this, for both decoding and encoding.<BR> - Features: - <UL> - <LI>1 pass or 2 pass encoding with - <A HREF="encoding.html">MEncoder</A></LI> - <LI>can play old <B>DivX3</B> movies much faster than the Win32 DLL but - slower than <B>libavcodec</B>!</LI> - <LI>it's closed-source, and only an x86 version is available.</LI> - </UL> - </LI> - <LI><B>XviD</B>: Open source encoding alternative to Divx4Linux<BR> - Features: - <UL> - <LI>1 pass or 2 pass encoding with - <A HREF="encoding.html">MEncoder</A></LI> - <LI>it's open-source, so it's multiplatform.</LI> - <LI>it's about 2 times faster than DivX4 when encoding - about the same - quality</LI> - </UL> - </LI> - <LI>The <A HREF="codecs.html#xanim">XAnim codecs</A> are the best (full - screen, hardware YUV zoom) for decoding <B>3ivx</B> and Indeo 3/4/5 movies, - and some old formats. And they are multiplatform, so this is the only way to - play Indeo on non-x86 platforms (well, apart from using XAnim:). But for - example Cinepak movies are best played with MPlayer's own Cinepak - decoder!</LI> - <LI>For <B>Ogg Vorbis</B> audio decoding you need to install - <CODE>libvorbis</CODE> properly. Use deb/rpm packages if available, or - compile from - <A HREF="http://ogg.org/ogg/vorbis/download/vorbis_nightly_cvs.tgz">source</A> - (this is a nightly updated tarball of Vorbis CVS).</LI> - <LI>MPlayer can use the libraries of RealPlayer 8 or RealONE to play - files with <B>RealVideo 2.0 - 4.0</B> video, and Sipro/Cook audio. See - <A HREF="formats.html#real">RealMedia file format</A> section for - installation instructions and more information.</LI> -</UL> - -<H4>Video Cards</H4> - -<P>There are generally two kind of video cards. One kind (the newer cards) has - <B>hardware scaling and YUV acceleration</B> support, the other cards don't.</P> - -<H4>YUV cards</H4> - -<P>They can display and scale (zoom) the picture to any size that fits in - their memory, with <B>small CPU usage</B> (even when zooming), thus - fullscreen playing is nice and very fast.</P> - -<UL> - <LI><B>Matrox G200/G400/G450/G550 cards</B>: although a - <A HREF="video.html#vidix">Vidix driver</A> is provided, it is recommended - to use the mga_vid kernel module instead, for it works much better. - Please see the <A HREF="video.html#mga_vid">mga_vid</A> section about its - installation and usage. It is important to do these steps <I>before</I> - compiling MPlayer, otherwise no mga_vid support will be built. Also - check out the <A HREF="video.html#tv-out_matrox">Matrox TV-out</A> section. - <U><B>If you don't use Linux</B></U>, your only possibility is the VIDIX - driver: read the <A HREF="video.html#vidix">VIDIX</A> section.</LI> - <LI><B>3Dfx Voodoo3/Banshee cards</B>: please see the - <A HREF="video.html#tdfxfb">tdfxfb</A> section in order to gain big - speedup. It is important to do these steps <B>before</B> compiling - MPlayer, otherwise no 3Dfx support will be built. Also see the <A - HREF="video.html#tv-out_voodoo">3dfx TV-out section</A>. If you use X, use - <B>at least 4.2.0</B>, as the 3dfx Xv driver was broken in 4.1.0 and earlier - releases.</LI> - <LI><B>ATI cards</B>: <A HREF="video.html#vidix">Vidix driver</A> is - provided for the following cards: - <B>Radeon</B>, <B>Rage128</B>, <B>Mach64</B> (Rage XL/Mobility, Xpert98). - Also see the <A HREF="video.html#tv-out_ati">ATI cards - section</A> of the TV-out documentation, to know if you card's TV-out is - supported under Linux/MPlayer.</LI> - <LI><B>S3 cards</B>: the Savage and Virge/DX chips have hardware acceleration. - Use as new XFree86 version as possible, older drivers are buggy. Savage chips - have problems with YV12 display, see <A HREF="video.html#xv_s3">S3 Xv - section</A> for details. Older, Trio cards have no, or slow hardware - support.</LI> - <LI><B>nVidia cards</B>: may or may not be good choice for video playing. - If you do not have a GeForce2 (or newer) card, it's not likely to work - without bugs. - <B>The built-in nVidia driver in XFree86 does not support hardware YUV - acceleration on all nVidia cards.</B> You have to download nVidia's - closed-source drivers from nVidia.com. See the - <A HREF="video.html#xv_nvidia">nVidia Xv driver</A> section for - details. Please also check the <A HREF="video.html#tv-out_nvidia">nVidia - TV-out section</A> if you wish to use a TV.</LI> - <LI><B>3DLabs GLINT R3 and Permedia3</B>: a VIDIX driver is provided - (pm3_vid). Please see the <A HREF="video.html#vidix">VIDIX</A> section for - details.</LI> - <LI><B>Other cards</B>: None of the above? - <UL> - <LI>Try if the XFree86 driver (and your card) supports hardware - acceleration. See the <A HREF="video.html#xv">Xv section</A> for - details.</LI> - <LI>If it doesn't, then your card's video features aren't supported under - your operating system :(<BR> - If hardware scaling works under Windows, it doesn't mean it will work - under Linux or other operating systems: it depends on the drivers. Most - manufacturers neither make Linux drivers nor release specifications - for their chips, so you are unlucky using their cards. - See 'Non-YUV cards'.</LI> - </UL> - </LI> -</UL> - -<H4>Non-YUV cards</H4> - -<P>Fullscreen playing can be achieved by either enabling <B>software scaling</B> - (use the <CODE>-zoom</CODE> or <CODE>-vop scale</CODE> - option, but I warn you: this is slow), or switching to a small resolution - video mode, for example 352x288. If you don't have YUV acceleration, the - latter method is recommended. Video mode switching can be enabled by - using the <CODE>-vm</CODE> option and it works with the following drivers:</P> - -<UL> - <LI><B>using</B> XFree86: see the - <A HREF="video.html#dga">DGA driver</A> and - <A HREF="video.html#x11">X11 driver</A> sections for details. DGA is - recommended! Also try DGA via SDL, sometimes it's better.</LI> - <LI><B>not using</B> XFree86: try the drivers in the following order: - <A HREF="video.html#vesa">vesa</A>, - <A HREF="video.html#fbdev">fbdev</A>, - <A HREF="video.html#svgalib">svgalib</A>, - <A HREF="video.html#aalib">aalib</A>.</LI> -</UL> - -<H4>Some cards:</H4> - -<UL> - <LI><B>Cirrus Logic cards</B>: - <UL> - <LI>GD 7548: present on-board and tested in Compaq Armada 41xx notebook - series. - <UL> - <LI>XFree86 3: works in 8/16bpp modes. However, the driver is - dramatically slow and buggy in 800x600@16bpp. - <B>Recommended: 640x480@16bpp</B></LI> - <LI>XFree86 4: the Xserver freezes soon after start unless - acceleration is disabled, but then the whole thing gets - slower than XFree86 3. No XVideo.</LI> - <LI>FBdev: framebuffer can be turned on with the <CODE>clgenfb</CODE> - driver in the kernel, though for me it worked only in 8bpp, thus - unusable. The clgenfb source had to be extended with the 7548 ID - before compilation.</LI> - <LI>VESA: the card is only VBE 1.2 capable, so VESA output can't be - used. Can't be workarounded with UniVBE.</LI> - <LI>SVGAlib: detects an older Cirrus chip. Usable but slow with - <CODE>-bpp 8</CODE>.</LI> - </UL> - </LI> - </UL> - </LI> -</UL> - - -<H4>Sound cards:</H4> - -<UL> - <LI><B>Soundblaster Live!</B>: with this card you can use 4 or 6 (<B>5.1</B>) - channels AC3 decoding instead of 2. Read the - <A HREF="codecs.html#software_ac3">Software AC3 decoding</A> section. - For hardware AC3 passthrough you <B>must</B> use ALSA 0.9 with OSS emulation!</LI> - <LI><B>C-Media with SP/DIF out</B>: hardware AC3 passthrough is possible - with these cards, see - <A HREF="codecs.html#hardware_ac3">Hardware AC3 decoding</A> section.</LI> - <LI>Features of <B>other cards</B> aren't supported by MPlayer. - <U>It's very recommended to read the <A HREF="sound.html">sound card - section</A>!</U></LI> -</UL> - -<H4>Features:</H4> - -<UL> - <LI>Decide if you need GUI. If you do, see the <A HREF="#gui">GUI section</A> - before compiling.</LI> - <LI>If you want to install MEncoder (our great all-purpose encoder), - see the <A HREF="encoding.html">MEncoder section</A>.</LI> - <LI>If you have a V4L compatible <B>TV tuner</B> card, and wish to watch/grab - and encode movies with MPlayer, read the <A HREF="#tv">TV input</A> - section.</LI> - <LI>There is a neat <B>OSD Menu</B> support ready to be used. Check the - <A HREF="#menu">OSD Menu</A> section.</LI> -</UL> - -<P>Then build MPlayer:</P> - -<PRE> - ./configure - make - make install -</PRE> - -<P>At this point, MPlayer is ready to use. The directory - <CODE>$PREFIX/etc/mplayer</CODE> contains the <CODE>codecs.conf</CODE> - file, which is used to tell the program all the codecs and their - capabilities. This file should always be kept up to date together with the - main binary.<BR> - Check if you have <CODE>codecs.conf</CODE> in your home directory - (<CODE>~/.mplayer/codecs.conf</CODE>) left from old MPlayer versions, and remove it.</P> - -<P><B>Debian users</B> can build a <CODE>.deb</CODE> package for themselves, - it's very simple. Just exec <CODE>fakeroot debian/rules binary</CODE> in - MPlayer's root directory. See - <A HREF="documentation.html#debian">Debian packaging</A> for detailed - instructions.</P> - -<P><B>Always browse the output of <CODE>./configure</CODE></B>, and the - <CODE>configure.log</CODE> file, they contain information about what will be - built, and what will not. You may also want to view <CODE>config.h</CODE> and - <CODE>config.mak</CODE> files.<BR> - If you have some libraries installed, but not detected by - <CODE>./configure</CODE>, then check if you also have the proper header files - (usually the -dev packages) and their version matches. The - <CODE>configure.log</CODE> file usually tells you what is missing.</P> - -<P>Though not mandatory, the fonts should be installed in order to gain OSD, - and subtitle functionality. The recommended method is installing a TTF - font file and telling MPlayer to use it. See the - <A HREF="#install_osd">Subtitles and OSD</A> section for details.</P> - - - -<H2><A NAME="gui">1.3 What about the GUI?</A></H2> - -<P>The GUI needs GTK 1.2.x (it isn't fully GTK, but the panels are). The skins - are stored in PNG format, so gtk, libpng (and their devel stuff, usually - called gtk-dev and libpng-dev) has to be installed. - You can build it by specifying <CODE>--enable-gui</CODE> during - <CODE>./configure</CODE>. Then, to turn on GUI mode, you either</P> - <UL> - <LI>specify <CODE>gui=yes</CODE> in your config file</LI> - <LI><CODE>ln -s $PREFIX/bin/mplayer $PREFIX/bin/gmplayer</CODE> , - and call <CODE>gmplayer</CODE> instead.</LI> - </UL> - -<P>Currently you can't use the <CODE>-gui</CODE> option on the command line, - due to technical reasons.</P> - -<P>As MPlayer doesn't have a skin included, you have to download them if - you want to use the GUI. See the - <A HREF="http://www.mplayerhq.hu/homepage/dload.html">download page</A>. - They should be extracted to the usual system-wide directory - (<CODE>$PREFIX/share/mplayer/Skin</CODE>), or to - <CODE>$HOME/.mplayer/Skin</CODE>. MPlayer by default looks in these - directories for a directory named <I>default</I>, but you can use the - <CODE>-skin newskin</CODE> option, or the <CODE>skin=newskin</CODE> config - file directive to use the skin in <CODE>*/Skin/newskin</CODE> directory.</P> - - -<H2><A NAME="subtitles_osd">1.4 Subtitles and OSD</A></H2> - -<P> - MPlayer can display subtitles along with movie files. Currently the following - formats are supported:</P> -<UL> - <LI>VobSub</LI> - <LI>OGM</LI> - <LI>CC (closed caption)</LI> - <LI>Microdvd</LI> - <LI>SubRip</LI> - <LI>SubViewer</LI> - <LI>Sami</LI> - <LI>VPlayer</LI> - <LI>RT</LI> - <LI>SSA</LI> - <LI>MPsub</LI> - <LI>AQTitle</LI> - <LI>JACOsub</LI> -</UL> - -<P>MPlayer can dump the previously listed subtitle formats (<B>except - the three first</B>) into the following destination formats, with the given - options:</P> - -<UL> - <LI>MPsub: <CODE>-dumpmpsub</CODE></LI> - <LI>SubRip: <CODE>-dumpsrtsub</CODE></LI> - <LI>Microdvd: <CODE>-dumpmicrodvdsub</CODE></LI> - <LI>JACOsub: <CODE>-dumpjacosub</CODE></LI> - <LI>Sami: <CODE>-dumpsami</CODE></LI> -</UL> - -<P>The command line options differ slightly for the different formats:</P> - -<H4>VobSub subtitles</H4> - -<P>VobSub subtitles consist of a big (some megabytes) .SUB file, and optional - .IDX and/or .IFO files.<BR> - Usage: If you have files like <CODE>sample.sub</CODE>, - <CODE>sample.ifo</CODE> (optional), <CODE>sample.idx</CODE> - you have to pass - MPlayer the <CODE>-vobsub sample [-vobsubid <id>]</CODE> options (full - path optional). The <CODE>-vobsubid</CODE> option is like <CODE>-sid</CODE> - for DVDs, you can choose between subtitle tracks (languages) with it. In case - that <CODE>-vobsubid</CODE> is omitted, MPlayer will try to use the languages - given by the <CODE>-slang</CODE> option and fall back to the - <CODE>langidx</CODE> item in the .IDX file to set the subtitle language. If - that fails, there will be no subtitles.</P> - -<H4>Other subtitles</H4> - -<P>The other formats consist of a single text file containing timing, - placement and text information.<BR> - Usage: If you have a file like <CODE>sample.txt</CODE>, you have to pass the - option <CODE>-sub sample.txt</CODE> (full path optional).</P> - -<H4>Adjusting subtitle timing and placement:</H4> - -<DL> - <DT><CODE>-subdelay <sec></CODE></DT> - <DD>Delays subtitles by <sec> seconds. Can be negative.</DD> - - <DT><CODE>-subfps <rate></CODE></DT> - <DD>Specify frame/sec rate of subtitle file (float number)</DD> - - <DT><CODE>-subpos <0 - 100></CODE></DT> - <DD>Specify the position of subtitles.</DD> -</DL> - -<P>If you experience a growing delay between the movie and the subtitles when - using a MicroDVD subtitle file, most likely the frame rate of the movie and - the subtitle file are different.<BR> Please note that the MicroDVD subtitle - format uses absolute frame numbers for its timing, and therefore the - <CODE>-subfps</CODE> option cannot be used with this format. As - MPlayer has no way to guess the frame rate of the subtitle file, you - have to manually convert the frame rate. There is a little perl script in the - <CODE>contrib</CODE> directory of the MPlayer FTP site to do this conversion - for you.</P> - -<P>MPlayer will try to guess the subtitle files you want to use when playing a - movie. If, like in most cases, subtitle and movie files have the same name and - are in the same place, you do not need to set the subtitle options. Just play - the movie, MPlayer will handle the subtitles automatically.</P> - -<P>About DVD subtitles, read the <A HREF="cd-dvd.html#dvd">DVD section</A>.</P> - - -<H3><A NAME="mpsub">1.4.1 MPlayer's own subtitle format (MPsub)</A></H3> - -<P>MPlayer introduces a new subtitle format called <B>MPsub</B>. It was - designed by Gabucino. Basically its main feature is being - <I>dynamically</I> time-based (although it has frame-based mode too). Example - (from - <A HREF="tech/mpsub.sub">DOCS/tech/mpsub.sub</A>):</P> - -<P><CODE><I># first number : wait this much after previous subtitle disappeared<BR> - # second number : display the current subtitle for this many seconds<BR> - <BR> - 15 3<BR> - A long long, time ago...<BR> - <BR> - 0 3<BR> - in a galaxy far away...<BR> - <BR> - 0 3<BR> - Naboo was under an attack.<BR></I></CODE></P> - -<P>So you see, the main goal was to <B>make subtitle - editing/timing/joining/cutting easy</B>. And, if you - say - get an SSA - subtitle but it's badly timed/delayed to your version of the movie, you - simply do a <CODE>mplayer dummy.avi -sub source.ssa -dumpmpsub</CODE>. - A <CODE>dump.mpsub</CODE> file will be created in the current directory, - which will contain the source subtitle's text, but in <B>MPsub</B> format. - Then you can freely add/subtract seconds to/from the subtitle.</P> - -<P>Subtitles are displayed with a technique called <B>'OSD', On Screen - Display</B>. OSD is used to display current time, volume bar, seek bar - etc.</P> - -<H3><A NAME="install_osd">1.4.2 Installing OSD and subtitles</A></H3> - -<P>You need an MPlayer font package to be able to use OSD/SUB feature. - There are many ways to get it:</P> - -<UL> - <LI>download ready-to-use font packages from MPlayer site. - Note: Currently available fonts are limited for iso 8859-1/2 support, - but there are some other (including Korean, Russian, 8859-8 etc) fonts - at contrib/font section of FTP, made by users.<BR> - <BR> - Font should have appropriate font.desc file which maps unicode font - positions to the actual code page of the subtitles text. Other solution is - to have subtitles encoded in utf8 encoding and use <CODE>-utf8</CODE> - option or just name the subtitles file <video_name>.utf and have it - in the same dir as the video file. Recoding from different codepages to - utf8 could be done by using konwert (Debian) or iconv (Red Hat) - programs.<BR> - Some URLs: - <UL> - <LI><A HREF="ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/">ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/</A> - ISO fonts</LI> - <LI><A HREF="ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/">ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/</A> - various fonts by users</LI> - <LI><A HREF="http://realtime.ssu.ac.kr/~lethean/mplayer/">http://realtime.ssu.ac.kr/~lethean/mplayer/</A> - Korean fonts & RAW plugin</LI> - </UL> - </LI> - <LI>use the font generator tool at TOOLS/subfont-c - It's a complete tool to convert from TTF/Type1/etc font to mplayer font pkg. - (read TOOLS/subfont-c/README for details)</LI> - <LI>use the font generator GIMP plugin at TOOLS/subfont-GIMP - (note: you must have HSI RAW plugin too, see URL below)</LI> - <LI>using a TrueType (TTF) font, by the means of the <B>freetype</B> - library. Version 2.0.9 or greater is mandatory! Then you - have two methods: - <UL> - <LI>use the <CODE>-font /path/to/arial.ttf</CODE> option to specify - a TrueType font file on every occassion</LI> - <LI>create a symlink: <CODE>ln -s /path/to/arial.ttf ~/.mplayer/subfont.ttf</CODE></LI> - </UL> - </LI> -</UL> - -<P>If you chose non-TTF fonts, UNZIP the file you downloaded to <CODE>~/.mplayer</CODE> or - <CODE>$PREFIX/share/mplayer</CODE>. Then rename or symlink one of the extracted directories to - <CODE>font</CODE> (like: <CODE>ln -s ~/.mplayer/arial-24 - ~/.mplayer/font</CODE>). Now you have to see a timer at the upper left corner - of the movie (switch it off with the "o" key).</P> - - -<P>OSD has 4 states: (switch with 'o')</P> - -<P>(subtitles are <I>always enabled</I>, for disabling them please read the man - page)</P> - -<UL> - <LI>volume bar + seek bar (default)</LI> - <LI>volume bar + seek bar + timer + file position percentage on seeking</LI> - <LI>volume bar + seek bar + timer + total duration of media</LI> - <LI>subtitles only</LI> -</UL> - -<P>You can change default behaviour by setting <CODE>osdlevel=</CODE> variable - in config file, or the <CODE>-osdlevel</CODE> command line option.</P> - - -<H3><A NAME="menu">1.4.3 OSD menu</A></H3> - -<P>MPlayer has a completely user definiable OSD Menu interface.</P> - -<P><B>NOTE:</B> the Preferences menu is currently UNIMPLEMENTED!</P> - -<H4>Installation</H4> - -<OL> - <LI>compile MPlayer by passing the <CODE>--enable-menu</CODE> parameters to - <CODE>./configure</CODE></LI> - <LI>make sure you have an OSD font installed</LI> - <LI>copy <CODE>etc/menu.conf</CODE> to your <CODE>.mplayer</CODE> - directory</LI> - <LI>copy <CODE>etc/input.conf</CODE> to your <CODE>.mplayer</CODE> - directory, or to the system-wide MPlayer config dir (default: - <CODE>/usr/local/etc/mplayer</CODE>)</LI> - <LI>check and edit <CODE>input.conf</CODE> to enable menu movement - keys (it is described there).</LI> - <LI>start MPlayer by the following example:<BR> - <CODE>$ mplayer -menu file.avi</CODE></LI> - <LI>push any menu key you defined</LI> -</OL> - - -<H2><A NAME="rtc">1.5 RTC</A></H2> - -There are three timing methods in MPlayer. - -<UL> - <LI><B>To use the old method</B>, you don't have to do anything. It uses - <CODE>usleep()</CODE> to tune A/V sync, with +/- 10ms accuracy. However - sometimes the sync has to be tuned even finer.</LI> - <LI><B>The new timer</B> code uses PC's RTC (Real Time Clock) for this task, - because it has precise 1ms timers. It is automagically enabled when - available, but requires root privileges, a <I>setuid root</I> - MPlayer binary or a properly set up kernel. - <BR> - If you are running kernel 2.4.19pre8 or later you can adjust the maximum - RTC frequency for normal users through the <CODE>/proc</CODE> filesystem. - Use this command to enable RTC for normal users: - <P> - <CODE>echo 1024 > /proc/sys/dev/rtc/max-user-freq</CODE> - </P> - If you do not have such a new kernel, you can also change one line in - <CODE>drivers/char/rtc.c</CODE> and recompile your kernel. Find the - section that reads - <PRE> - * We don't really want Joe User enabling more - * than 64Hz of interrupts on a multi-user machine. - */ - if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE))) - </PRE> - and change the 64 to 1024. You should really know what you are doing, though. - <BR> - You can see the new timer's efficiency in the status line. - <BR> - The power management functions of some notebook BIOSes with speedstep CPUs - interact badly with RTC. Audio and video may get out of sync. Plugging the - external power connector in before you power up your notebook seems to help. - You can always turn off RTC support with the <CODE>-nortc</CODE> option. - In some hardware combinations (confirmed during usage of non-DMA DVD - drive on an ALi1541 board) usage of the RTC timer causes skippy playback. - It's recommended to use the third method in these cases.</LI> - <LI><B>The third timer code</B> is turned on with the <CODE>-softsleep</CODE> - option. It has the efficiency of the RTC, but it doesn't use RTC. On the other - hand, it requires more CPU.</LI> -</UL> - -<B>Note:</B> <B>NEVER install a setuid root MPlayer binary on a multiuser system!</B> -It's a clear way for everyone to become root. - - - -<H1><A NAME="features">2. Features</A></H1> - - -<H2><A NAME="formats">2.1</A> <A HREF="formats.html">Supported formats</A></H2> - - -<H2><A NAME="codecs">2.2</A> <A HREF="codecs.html">Supported codecs</A></H2> - - -<H2><A NAME="output">2.3</A> <A HREF="video.html">Video</A> & <A HREF="sound.html">Audio</A> output devices</H2> - - -<H2><A NAME="tv"><B>2.4 TV input</B></A></H2> - -<P>This section is about how to enable <B>watching/grabbing from V4L compatible -TV tuner</B>. See the man page for a description of TV options and keyboard -controls.</P> - -<H3><A NAME="tv_compilation">2.4.1 Compilation</A></H3> - -<OL> - <LI>First, you have to recompile. <CODE>./configure</CODE> will autodetect - kernel headers of v4l stuff and the existence of <CODE>/dev/video*</CODE> - entries. If they exist, TV support will be built (see the output of - <CODE>./configure</CODE>).</LI> - <LI>Make sure your tuner works with another TV software in Linux, for example - xawtv.</LI> -</OL> - -<H3><A NAME="tv_tips">2.4.2 Usage tips</A></H3> - -The full listing of the options is available on the manual page. Here -are just a few tips: - -<UL> - <LI>Use the <CODE>channels</CODE> option. An example:<BR> - <CODE>-tv on:channels=26-MTV1,23-TV2</CODE><BR> - Explanation: using this option, only the 26 and 23 channels will be usable, - and there will be a nice OSD text upon channel switching, displaying the - channel's name. Spaces in the channel name must be replaced by the "_" - character.</LI> - <LI>Choose some sane image dimensions. The dimensions of the resulting image - should be divisible by 16.</LI> - <LI>If you capture the video with the vertical resolution higher than half of - the full resolution (i.e. 288 for PAL or 240 for NTSC), make sure you - turned deinterlacing on. Otherwise you'll get a movie which is distorted - during fast-motion scenes and the bitrate controller will be probably even - unable to retain the specified bitrate as the interlacing artifacts produce - high amount of detail and thus consume lot of bandwidth. You can enable - deinterlacing with <CODE>-vop pp=DEINT_TYPE</CODE>. Usually - <CODE>pp=lb</CODE> does a good job, but it can be matter of personal - preference. See other deinterlacing algorithms in the manual and give it a - try.</LI> - <LI>Crop out the dead space. When you capture the video, the areas at the - edges are usually black or contain some noise. These again consume lots of - unnecessary bandwidth. More precisely it's not the black areas themselves - but the sharp transitions between the black and the brighter video image - which do but that's not important for now. Before you start capturing, - adjust the arguments of the <CODE>crop</CODE> option so that all the crap - at the margins is cropped out. Again, don't forget to keep the resulting - dimensions sane.</LI> - <LI>Watch out for CPU load. It shouldn't cross the 90% boundary for most of - the time. If you have a large capture buffer, MEncoder can survive an - overload for few seconds but nothing more. It's better to turn off the 3D - OpenGL screensavers and similar stuff.</LI> - <LI>Don't mess with the system clock. MEncoder uses the system clock for - doing A/V sync. If you adjust the system clock (especially backwards in - time), MEncoder gets confused and you will lose frames. This is an - important issue if you are hooked to a network and run some time - synchronization software like NTP. You have to turn NTP off during the - capture process if you want to capture reliably.</LI> - <LI>Don't change the <CODE>outfmt</CODE> unless you know what you are doing - or your card/driver really doesn't support the default (YV12 colorspace). - In the older versions of MPlayer/MEncoder it was necessary to specify the - output format. This issue should be fixed in the current releases and - <CODE>outfmt</CODE> isn't required anymore, and the default suits the most - purposes. For example, if you are capturing into DivX using libavcodec and - specify <CODE>outfmt=RGB24</CODE> in order to increase the quality of the - captured images, the captured image will be actually later converted back - into YV12 so the only thing you achieve is a massive waste of CPU power. - </LI> - <LI>To specify the I420 colorspace (<CODE>outfmt=i420</CODE>), you have to - add an option <CODE>-vc rawi420</CODE> due to a fourcc conflict with an - Intel Indeo video codec.</LI> - <LI>There are several ways of capturing audio. You can grab the sound either - using your soundcard via an external cable connection between video card - and line-in, or using the built-in ADC in the bt878 chip. In the latter - case, you have to load the <b>btaudio</b> driver. Read the - <CODE>linux/Documentation/sound/btaudio</CODE> file (in the kernel tree, - not MPlayer's) for some instructions on using this driver.</LI> - <LI>If MEncoder cannot open the audio device, make sure that it is really - available. There can be some trouble with the sound servers like arts - (KDE) or esd (GNOME). If you have a full duplex soundcard (almost any - decent card supports it today), and you are using KDE, try to check the - "full duplex" option in the sound server preference menu.</LI> -</UL> - -<H3><A NAME="tv_examples">2.4.3 Examples</A></H3> - -<P>Dummy output, to AAlib :)<BR> - <CODE> mplayer -tv on:driver=dummy:width=640:height=480 -vo aa</CODE><BR> - <BR> - Input from standard V4L<BR> - <CODE> mplayer -tv -on:driver=v4l:width=640:height=480 -vo xv</CODE><BR> - <BR> - - A more sophisticated example. This makes MEncoder capture the full - PAL image, crop the margins, and deinterlace the picture using - a linear blend algorithm. Audio is compressed with a constant - bitrate of 64kbps, using LAME codec. This setup is suitable for - capturing movies.<BR> <CODE> mencoder -tv - on:driver=v4l:width=768:height=576 \<BR> - -ovc lavc -lavcopts - vcodec=mpeg4:vbitrate=900 \<BR> -oac - mp3lame -lameopts cbr:br=64 \<BR> -vop - pp=lb,crop=720:544:24:16 -o output.avi </CODE><BR> - - <BR> - This will additionally rescale the image to 384x288 and compresses - the video with the bitrate of 350kbps in high quality mode. The - vqmax option looses the quantizer and allows the video compressor to - actualy reach so low bitrate even at the expense of the - quality. This can be used for capturing long TV series, where the - video quality isn't so important.<BR> - <CODE> - mencoder -tv on:driver=v4l:width=768:height=576 \<BR> - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \<BR> - -oac mp3lame -lameopts cbr:br=48 \<BR> - -vop scale=384:288,pp=tn/lb,crop=720:540:24:18 -sws 1 -o output.avi - </CODE><BR> - - It's also possible to specify smaller image dimensions in the - <CODE>-tv</CODE> option and omit the software scaling but this - approach uses the maximum available information and is a little more - resistant to noise. The bt8x8 chips can do the pixel averaging only - in the horizontal direction due to a hardware limitation.</P> - - -<H2><A NAME="edl">2.5 Edit Decision Lists (EDL)</A></H2> - -<P>The edit decision list (EDL) system allows you to automatically skip or mute - sections of videos during playback, based on a movie specific EDL - configuration file.</P> - -<P>This is useful for those who may want to watch a film in "family-friendly" - mode. You can cut out any violence, profanity, Jar-Jar Binks .. from a movie - according to your own personal preferences. Aside from this, there are other - uses, like automatically skipping over commercials in video files you - watch.</P> - -<P>The EDL file format is pretty bare-bones. Once the EDL system has reached a - certain level of maturity, an XML-based file format will probably be - implemented (keeping backwards compatibility with previous EDL formats).</P> - -<P>The maximum number of EDL entries for the current incarnation of EDL is 1000. - If you happen to need more, change the <CODE>#define MAX_EDL_ENTRIES</CODE> - in the <CODE>edl.h</CODE> file.</P> - -<H3><A NAME="edl_using">2.5.1 Using an EDL file</A></H3> - -<P>Include the <CODE>-edl <filename></CODE> flag when you run MPlayer, - with the name of the EDL file you want applied to the video.</P> - -<H3><A NAME="edl_making">2.5.2 Making an EDL file</A></H3> - -<P>The current EDL file format is:</P> - -<CODE>[begin second] [end second] [action]</CODE> - -<P>Where the seconds are floating-point numbers and the action is either - <CODE>0</CODE> for skip or <CODE>1</CODE> for mute. Example:</P> - -<PRE> -5.3 7.1 0 -15 16.7 1 -420 422 0 -</PRE> - -<P>This will skip from second 5.3 to second 7.1 of the video, then mute at - 15 seconds, unmute at 16.7 seconds and skip from second 420 to second - 422 of the video. These actions will be performed when the playback timer - reaches the times given in the file.</P> - -<P>To create an EDL file to work from, use the - <CODE>-edlout <filename></CODE> flag. During playback, when you want to - mark the previous two seconds to skip over, hit <CODE>i</CODE>. A - corresponding entry will be written to the file for that time. You can then go - back and fine-tune the generated EDL file.</P> - - - -<H1><A NAME="usage">3. Usage</A></H1> - - -<H2><A NAME="command_line">3.1 Command line</A></H2> - -<P>MPlayer utilizes a complex playtree. It consists of global options - written as first (for example <CODE>mplayer -vfm 5</CODE>), and options - written after filenames, that apply only to the given filename/URL/whatever - (for example <CODE>mplayer -vfm 5 movie1.avi movie2.avi -vfm 4</CODE>).<BR> - You can group filenames/URLs together using { and }. It's useful with - option -loop: <CODE>mplayer { 1.avi -loop 2 2.avi } -loop 3</CODE> - will play files in this order: 1 1 2 1 1 2 1 1 2<BR> - </P> - -<TABLE BORDER=0> - <TR><TD> </TD><TD>file</TD><TD> </TD><TD><CODE>mplayer [options] [path/]filename</CODE></TD></TR> - <TR><TD></TD><TD>files</TD><TD></TD><TD><CODE>mplayer [default options] [path/]filename1 [options for filename1] filename2 [options for filename2] ...</CODE></TD></TR> - <TR><TD></TD><TD>VCD</TD><TD></TD><TD><CODE>mplayer [options] -vcd trackno [-cdrom-device /dev/cdrom]</CODE></TD></TR> - <TR><TD></TD><TD>DVD</TD><TD></TD><TD><CODE>mplayer [options] -dvd titleno [-dvd-device /dev/dvd]</CODE></TD></TR> - <TR><TD></TD><TD>WWW</TD><TD></TD><TD><CODE>mplayer [options] http://site.com/file.asf (playlists can be used, too)</CODE></TD></TR> - <TR><TD></TD><TD>RTSP</TD><TD></TD><TD><CODE>mplayer [options] rtsp://server.example.com/streamName</CODE></TD></TR> -</TABLE> - -<P> - Latest versions of MPlayer also accept VCD and DVD tracks in URL style, just like - xine does: <CODE>mplayer dvd://1</CODE> or <CODE>mplayer vcd://1</CODE></P> - -<PRE> - mplayer -vo x11 /mnt/Films/Contact/contact2.mpg - mplayer -vcd 2 - mplayer -afm 3 /mnt/DVDtrailers/alien4.vob - mplayer -dvd 1 -dvd-device /dev/hdc - mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi -</PRE> - - -<H2><A NAME="control">3.2 Control</A></H2> - -<P>MPlayer has a fully configurable, command driven, control layer which - lets you control MPlayer with keyboard, mouse, joystick or remote - control (using LIRC). See the man page for the complete list of keyboard - controls.</P> - - -<H3><A NAME="controls_configuration">3.2.1 Controls configuration</A></H3> - -<P>MPlayer allows you bind any key/button to any MPlayer command - using a simple config file. The syntax consist of a key name followed by a - command. The default config file location is - <CODE>$HOME/.mplayer/input.conf</CODE> but it can be overridden using the - <CODE>-input</CODE> conf option (relative path are relative to - <CODE>$HOME/.mplayer</CODE>). - -<P>Example:</P> - -<PRE> -## -## MPlayer input control file -## - -RIGHT seek +10 -LEFT seek -10 -- audio_delay 0.100 -+ audio_delay -0.100 -q quit -> pt_step 1 -< pt_step -1 -ENTER pt_step 1 1 -</PRE> - - -<H4><A NAME="key_names">3.2.1.1 Key names</A></H4> - -<P>You can have a full list by running <CODE>mplayer -input keylist</CODE></P> - -<H4>Keyboard:</H4> - -<UL> - <LI>Any printable character</LI> - <LI>SPACE</LI> - <LI>ENTER</LI> - <LI>TAB</LI> - <LI>CTRL</LI> - <LI>BS</LI> - <LI>DEL</LI> - <LI>INS</LI> - <LI>HOME</LI> - <LI>END</LI> - <LI>PGUP</LI> - <LI>PGDWN</LI> - <LI>ESC</LI> - <LI>RIGHT</LI> - <LI>LEFT</LI> - <LI>UP</LI> - <LI>DOWN</LI> -</UL> - -<H4>Mouse (only supported under X):</H4> - -<UL> - <LI>MOUSE_BTN0 (Left button)</LI> - <LI>MOUSE_BTN1 (Right button)</LI> - <LI>MOUSE_BTN2 (Middle button)</LI> - <LI>MOUSE_BTN3 (Wheel)</LI> - <LI>MOUSE_BTN4 (Wheel)</LI> - <LI>...</LI> - <LI>MOUSE_BTN9</LI> -</UL> - -<H4>Joystick (support must be enabled at compile time):</H4> - -<UL> - <LI>JOY_RIGHT or JOY_AXIS0_PLUS</LI> - <LI>JOY_LEFT or JOY_AXIS0_MINUS</LI> - <LI>JOY_UP or JOY_AXIS1_MINUS</LI> - <LI>JOY_DOWN or JOY_AXIS1_PLUS</LI> - <LI>JOY_AXIS2_PLUS</LI> - <LI>JOY_AXIS2_MINUS</LI> - <LI>...</LI> - <LI>JOY_AXIS9_PLUS</LI> - <LI>JOY_AXIS9_MINUS</LI> -</UL> - - -<H4><A NAME="commands">3.2.1.2 Commands</A></H4> - -<P>You can have a full list of known commands by running "mplayer -input cmdlist"</P> - -<UL> - <LI><B>seek</B> (int) val [(int) type=0] - <P>Seek to some place in the movie.<BR> - Type 0 is a relative seek of +/- val seconds.<BR> - Type 1 seek to val % in the movie.</P></LI> - <LI><B>audio_delay</B> (float) val - <P>Adjust the audio delay of val seconds</P></LI> - <LI><B>quit</B> - <P>Quit MPlayer</P></LI> - <LI><B>pause</B> - <P>Pause/unpause the playback</P></LI> - <LI><B>grap_frames</B> - <P>Somebody know ?</P></LI> - <LI><B>pt_step</B> (int) val [(int) force=0] - <P>Go to next/previous entry in playtree. Val sign tell the direction.<BR> - If no other entry is available in the given direction it won't do anything - unless force is non 0.</P></LI> - <LI><B>pt_up_step</B> (int) val [(int) force=0] - <P>Like pt_step but it jump to next/previous in the parent list. It's useful - to break inner loop in the playtree.</P></LI> - <LI><B>alt_src_step</B> (int) val - <P>When more than one source is available it select the next/previous one - (only supported by asx playlist).</P></LI> - <LI><B>sub_delay</B> (float) val [(int) abs=0] - <P>Adjust the subtitles delay of +/- val seconds or set it to val seconds - when abs is non zero.</P></LI> - <LI><B>osd</B> [(int) level=-1] - <P>Toggle osd mode or set it to level when level > 0.</P></LI> - <LI><B>volume</B> (int) dir - <P>Increase/decrease volume</P></LI> - <LI><B>contrast</B> (int) val [(int) abs=0]</LI> - <LI><B>brightness</B> (int) val [(int) abs=0]</LI> - <LI><B>hue</B> (int) val [(int) abs=0]</LI> - <LI><B>saturation</B> (int) val [(int) abs=0] - <P>Set/Adjust video parameters. Val range from -100 to 100.</P></LI> - <LI><B>frame_drop</B> [(int) type=-1] - <P>Toggle/Set frame dropping mode.</P></LI> - <LI><B>sub_visibility</B> - <P>Toggle subtitle visibility.</P></LI> - <LI><B>sub_pos</B> (int) val - <P>Adjust subtitles position.</P></LI> - <LI><B>vobsub_lang</B> - <P>Change the language of VobSub subtitles.</P></LI> - <LI><B>vo_fullscreen</B> - <P>Switch fullscreen mode.</P></LI> - <LI><B>tv_step_channel</B> (int) dir - <P>Select next/previous tv channel.</P></LI> - <LI><B>tv_step_norm</B> - <P>Change TV norm.</P></LI> - <LI><B>tv_step_chanlist</B> - <P>Change channel list.</P></LI> - <LI><B>gui_loadfile</B></LI> - <LI><B>gui_loadsubtitle</B></LI> - <LI><B>gui_about</B></LI> - <LI><B>gui_play</B></LI> - <LI><B>gui_stop</B></LI> - <LI><B>gui_playlist</B></LI> - <LI><B>gui_preferences</B></LI> - <LI><B>gui_skinbrowser</B> - <P>GUI actions</P></LI> -</UL> - - -<H3><A NAME="lirc">3.2.2 Control from LIRC</A></H3> - -<P>Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver, - an (almost) arbitrary remote control and control your Linux box with it! - More about it at <A HREF="http://www.lirc.org">www.lirc.org</A>.</P> - -<P>If you have installed the lirc-package, configure will autodetect it. If - everything went fine, MPlayer will print a message like "Setting up - lirc support..." on startup. If an error occurs it will tell you. If it - doesn't tell you anything about LIRC there's no support compiled in. That's - it :-)</P> - -<P>The application name for MPlayer is - oh wonder - <CODE>mplayer</CODE>. - You can use any mplayer commands and even pass more than one command by - separating them with \n. Don't forget to enable the repeat flag in .lircrc - when it make sense (seek, volume, etc). Here's an excerpt from my - .lircrc:</P> - -<PRE> -begin - button = VOLUME_PLUS - prog = mplayer - config = volume 1 - repeat = 1 -end - -begin - button = VOLUME_MINUS - prog = mplayer - config = volume -1 - repeat = 1 -end - -begin - button = CD_PLAY - prog = mplayer - config = pause -end - -begin - button = CD_STOP - prog = mplayer - config = seek 0 1\npause -end -</PRE> - -<P>If you don't like the standard location for the lirc-config file (~/.lircrc) - use the -lircconf <filename> option to specify another file.</P> - - -<H3><A NAME="slave">3.2.3 Slave mode</A></H3> - -<P>The slave mode allow you to build simple frontend to MPlayer. When - enabled (with the <CODE>-slave</CODE> option) MPlayer will read - commands separated by new line (\n) from stdin.</P> - - -<H2><A NAME="streaming">3.3 Streaming from network or pipes</A></H2> - -<P>MPlayer can play files from network, using the HTTP, MMS or RTSP/RTP - protocol.</P> - -<P>Playing goes by simply using adding the URL to the command line. - MPlayer also honors the http_proxy environment variable, and uses - proxy if available. Proxy usage can also be forced:</P> - -<P><CODE>mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf</CODE></P> - -<P>MPlayer can read from stdin (NOT named pipes). This can be for example - used to play from FTP:</P> - -<P><CODE> wget ftp://micorsops.com/something.avi -O - | mplayer -</CODE></P> - -<P>Note: it's also recommended to enable CACHE when playback from network:</P> - -<P><CODE> wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -</CODE></P> - - - -<H1><A NAME="faq">4.</A> <A HREF="faq.html">FAQ section</A></H1> - - - -<H1><A NAME="cd/dvd">5.</A> <A HREF="cd-dvd.html">CD/DVD section</A></H1> - - - -<H1><A NAME="ports">6. Ports</A></H1> - - -<H2><A NAME="linux">6.1 Linux</A></H2> - -<P>The main development platform is Linux on x86, although MPlayer works on many - other Linux ports.</P> - - -<H3><A NAME="debian">6.1.1 Debian packaging</A></H3> - -<P>To build a Debian package, run the following command in the MPlayer source - directory:</P> - -<PRE> - fakeroot debian/rules binary -</PRE> - -<P>As root you can then install the <CODE>.deb</CODE> package as usual:</P> - -<PRE> - dpkg -i ../mplayer_<version>.deb -</PRE> - -<P>Christian Marillat has been making unofficial Debian MPlayer, MEncoder and - font packages for a while, you can (apt-)get them from his - <A HREF="http://marillat.free.fr/">homepage</A>. These packages are highly - unofficial, however, as Christian made and redistributed these packages when - MPlayer was still not fully GPLed and - <A HREF="users_against_developers.html#binary">binary redistribution</A> was - not allowed. Christian ignored requests to stop redistributing his packages, - which caused bad blood with MPlayer developers. Binary redistribution is not - a problem anymore, but we <B>do not support</B> these packages!</P> - - -<H3><A NAME="rpm">6.1.2 RPM packaging</A></H3> - -<P>Dominik Mierzejewski created and maintains official Red Hat RPM packages of - MPlayer. They are available from his - <A HREF="http://www.piorunek.pl/~dominik/linux/pkgs/mplayer/">homepage</A>. - Please read the instructions there and report problems to him, not us.</P> - -<P>There are other RPM versions (SuSE now includes MPlayer in their official - distribution, Mandrake packages are available from the - <A HREF="http://plf.zarb.org/">P.L.F</A>) of MPlayer, but none of them is - officially supported.</P> - - -<H3><A NAME="arm">6.1.3 ARM</A></H3> - -<P>MPlayer works on Linux PDAs with ARM CPU e.g. Sharp Zaurus, Compaq Ipaq. - The easiest way to obtain MPlayer is to get it from one of the - <A HREF="http://www.openzaurus.org">Openzaurus</A> package feeds. - If you want to compile it yourself, you should look at the - <A HREF="http://openzaurus.bkbits.net:8080/buildroot/src/packages/mplayer?nav=index.html|src/.|src/packages">mplayer</A> - and the - <A HREF="http://openzaurus.bkbits.net:8080/buildroot/src/packages/libavcodec?nav=index.html|src/.|src/packages">libavcodec</A> - directory in the OpenZaurus distribution buildroot. These always have the - latest Makefile and patches used for building a CVS MPlayer with libavcodec. - <BR>If you need a GUI frontend, you can use xmms-embedded.</P> - - -<H2><A NAME="bsd">6.2 *BSD</A></H2> - -<P>MPlayer runs on FreeBSD, OpenBSD, NetBSD, BSD/OS and Darwin. There are - ports/pkgsrc/fink/etc versions of MPlayer available that are probably easier - to use than our raw sources.</P> - -<P>To build MPlayer you will need GNU make (gmake - native BSD make will not - work) and a recent version of binutils.</P> - -<P>If MPlayer complains about not finding <CODE>/dev/cdrom</CODE> or - <CODE>/dev/dvd</CODE>, create an appropiate symbolic link:<BR> - <CODE>ln -s /dev/(your_cdrom_device) /dev/cdrom</CODE>.</P> - -<P>To use Win32 DLLs with MPlayer you will need to re-compile the kernel with - "<CODE>option USER_LDT</CODE>" (unless you run FreeBSD -CURRENT, where this - is the default).</P> - -<H3><A NAME="freebsd">6.2.1 FreeBSD</A></H3> - -<P>If your CPU has SSE, recompile your kernel with "options CPU_ENABLE_SSE" to - use it (FreeBSD-STABLE or kernel patches required).</P> - -<H3><A NAME="openbsd">6.2.2 OpenBSD</A></H3> - -<P>Due to limitations in different versions of gas (relocation vs MMX), you will - need to compile in two steps: First make sure that the non-native as is first - in your <CODE>$PATH</CODE> and do a <CODE>gmake -k</CODE>, then make sure that - the native version is used and do <CODE>gmake</CODE>.</P> - - -<H2><A NAME="solaris">6.3 Solaris</A></H2> - -<P>MPlayer should work on Solaris 2.6 or newer.</P> - -<P>On <B>UltraSPARC</B>s, MPlayer takes advantage of their <B>VIS</B> - extensions (equivalent to MMX), currently only in <I>libmpeg2</I>, - <I>libvo</I> and <I>libavcodec</I>, but not in mp3lib. You can watch a VOB - file on a 400MHz CPU. You'll need - <A HREF="http://www.sun.com/sparc/vis/mediaLib.html">mLib</A> installed.</P> - -<P>To build the package you will need GNU make (gmake, /opt/sfw/gmake), native - Solaris make will not work. Typical error you get when building with Solaris' - make instead of GNU make:</P> - -<PRE> - % /usr/ccs/bin/make - make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen -</PRE> - -<P>On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter - if GNU C/C++ compiler is configured with or without the GNU assembler.</P> - -<P>On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler, - configured to use the GNU assembler! The mplayer code on the x86 platform - makes heavy use of MMX, SSE and 3DNOW! instructions that cannot be compiled - using Sun's assembler <CODE>/usr/ccs/bin/as</CODE>.</P> - -<P>The configure script tries to find out, which assembler program is used by - your "gcc" command (in case the autodetection fails, use the - <CODE>--as=/whereever/you/have/installed/gnu-as</CODE> option to tell the - configure script where it can find GNU "as" on your system).</P> - -<P>Error message from configure on a Solaris x86 system using GCC - without GNU assembler:</P> - -<PRE> - % configure - ... - Checking assembler (/usr/ccs/bin/as) ... , failed - Please upgrade(downgrade) binutils to 2.10.1... -</PRE> - -<P>(Solution: Install and use a gcc configured with "--with-as=gas")</P> - -<P>Typical error you get when building with a GNU C compiler that does - not use GNU as:</P> - -<PRE> - % gmake - ... - gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math - -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c - Assembler: mplayer.c - "(stdin)", line 3567 : Illegal mnemonic - "(stdin)", line 3567 : Syntax error - ... more "Illegal mnemonic" and "Syntax error" errors ... -</PRE> - -<P>Due to bugs in Solaris 8, you may not be able to play DVD discs larger - than 4 GB:</P> - -<UL> - <LI>The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk - block >4GB on a device using a logical blocksize != DEV_BSIZE (i.e. CD-ROM - and DVD media). Due to a 32Bit int overflow, a disk address modulo 4GB is - accessed. - (<A HREF="http://groups.yahoo.com/group/solarisonintel/message/22516">http://groups.yahoo.com/group/solarisonintel/message/22516</A>) - <P> - This problem does not exist in the SPARC version of Solaris 8. - </P> - </LI> - <LI>A similar bug is present in the hsfs(7FS) filesystem code (aka - ISO9660), hsfs may not not support partitions/disks larger than 4GB, all data - is accessed modulo 4GB. - (<A HREF="http://groups.yahoo.com/group/solarisonintel/message/22592">http://groups.yahoo.com/group/solarisonintel/message/22592</A>). - <P> - The hsfs problem can be fixed by installing patch 109764-04 (sparc) / - 109765-04 (x86). - </P> - </LI> -</UL> - -<P>On Solaris with an UltraSPARC CPU, you can get some extra speed by - using the CPU's VIS instructions for certain time consuming operations. - VIS acceleration can be used in MPlayer by calling functions in Sun's - <A HREF="http://www.sun.com/sparc/vis/mediaLib.html">mediaLib</A>.</P> - -<P>VIS accelerated operations from mediaLib are used for mpeg2 video - decoding and for color space conversion in the video output drivers.</P> - - -<H2><A NAME="sgi">6.4 Silicon Graphics / IRIX</A></H2> - -<P>You can either try to install the GNU install program, and (if you did not - put it in your global path) then point to the location with:</P> - -<PRE> - ./configure --install-path=PATH -</PRE> - -<P>Or you can use the default install delivered with IRIX 6.5 in which case you - will have to edit the Makefile a littlebit by hand. Change the following two - lines:</P> - -<PRE> - $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 - - $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf -</PRE> - -<P>to:</P> - -<PRE> - $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ - - $(INSTALL) -m 644 codecs.conf $(CONFDIR)/ -</PRE> - -<P>And then do (from within the MPlayer source dir):</P> - -<PRE> - cp DOCS/mplayer.1 . ; cp etc/codecs.conf . -</PRE> - -<P>and then go on with building and installing.</P> - - -<H2><A NAME="qnx">6.5 QNX</A></H2> - -<P>Works. You'll need to download SDL for QNX, and install it. Then run - MPlayer with <CODE>-vo sdl:photon</CODE> and <CODE>-ao sdl:nto</CODE> - options, and it should be fast.</P> - -<P>The <CODE>-vo x11</CODE> output will be even slower than on Linux, since - QNX has only X <I>emulation</I> which is VERY slow. Use SDL.</P> - - -<H2><A NAME="cygwin">6.6 Cygwin</A></H2> - -<P>The Cygwin port is still in its infancy. Currently there is no support for - Win32 DLLs or OpenGL. SDL is known to distort sound and image or crash - on some systems. <A HREF="tech/patches.txt">Patches</A> are always welcome. - Best results are achieved with the native DirectX video output driver - (<CODE>-vo directx</CODE>) and the native Windows waveout audio driver - (<CODE>-ao win32</CODE>). You should also check out the - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">mplayer-cygwin</A> - mailing list for help and latest information.</P> - -<P>You have to copy or symlink <CODE>etc/cygwin_inttypes.h</CODE> from the - MPlayer source directory to <CODE>/usr/include/inttypes.h</CODE> in order to - make MPlayer compile.</P> - -<P>To get native DirectX video, download - <A HREF="http://www.videolan.org/vlc/dx7headers.tgz">DirectX 7 header files</A>, - extract them to <CODE>/usr/include/</CODE> or <CODE>/usr/local/include/</CODE> - and recompile. If the image is distorted, try turning off hardware - acceleration with <CODE>-vo directx:noaccel</CODE>.</P> - -<P>Instructions and files for making SDL run under Cygwin can be found on the - <A HREF="http://www.libsdl.org/extras/win32/cygwin/">libsdl site</A>.</P> - -<P>You can play VCDs by playing the <CODE>.DAT</CODE> or <CODE>.MPG</CODE> files - that Windows exposes on VCDs. It works like this (adjust for the drive letter - of your CD-ROM):</P> - -<P><CODE>mplayer d:/mpegav/avseq01.dat</CODE></P> - -<P><CODE>mplayer /cydrive/d/MPEG2/AVSEQ01.MPG</CODE></P> - -<P>DVDs also work, just set the DVD device correctly to whatever your CD-ROM - device is:</P> - -<P><CODE>mplayer -dvd <title> -dvd-device '\\.\d:'</CODE></P> - -<P>QuickTime DLLs have also been reported to work. Compile with - <CODE>--enable-qtx-codecs</CODE> and put the codecs into the - default Windows DLL location, <CODE>C:\WINNT\system32</CODE> or - <CODE>C:\Windows\system</CODE> depending on your Windows version.</P> - - - -<H1><A NAME="encoding">7.</A> <A HREF="encoding.html">Encoding with MEncoder</A></H1> - - - -<H1><A NAME="mailing_lists">Appendix A - Mailing lists</A></H1> - -<P>There are some public mailing lists on MPlayer. Unless explicitly - stated otherwise the language of these lists is <B>English</B>. Please do - not send messages in other languages or HTML mail! Message size limit is 80k. - If you have something bigger put it up for download somewhere. Click the - links to subscribe. On the mailing lists, the same rules about writing - and quoting apply as on usenet. Please follow them, it makes the life of - those who read your mails a lot easier. If you do not know them please - read <A HREF="http://learn.to/edit_messages">HOWTO edit messages</A> or - (if you are in a hurry) - <A HREF="http://www.xs4all.nl/~hanb/documents/quotingguide.html"> - Quoting HOWTO</A>.</P> - -<UL> - <LI>MPlayer announce list: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-announce">http://mplayerhq.hu/mailman/listinfo/mplayer-announce</A><BR> - List for MPlayer announcements. Subscribe here if you want to get - announcements about new features.</LI> - <LI>MPlayer developers list: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng</A><BR> - This list is about MPlayer development! Talking about interface/API - changes, new libraries, code optimization, configure changes is ontopic - here. Send patches but <B>not</B> bug reports, user questions, feature - requests or flames here to keep the list traffic low.</LI> - <LI>MPlayer users list: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">http://mplayerhq.hu/mailman/listinfo/mplayer-users</A> - <UL> - <LI>Send bug reports here after reading the <A HREF="#known_bugs">Known Bugs</A> - and <A HREF="bugreports.html">bug reporting section</A>).</LI> - <LI>Send feature requests here (after reading the <B>whole</B> - documentation).</LI> - <LI>Send user questions here (after reading the <B>whole</B> - documentation).</LI> - </UL> - </LI> - <LI>MPlayer Hungarian users list: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok">http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok</A> - <UL> - <LI>Hungarian language list</LI> - <LI>Topic? We'll see about it... mostly flame and RTFM questions up to - now :(</LI> - </UL> - </LI> - <LI>MPlayer & Matrox G200/G400/G450/G550 users: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-matrox">http://mplayerhq.hu/mailman/listinfo/mplayer-matrox</A><BR> - Matrox related questions like - <UL> - <LI>things about mga_vid</LI> - <LI>Matrox's official beta drivers (for X 4.x.x)</LI> - <LI>matroxfb-TVout stuff</LI> - </UL> - </LI> - <LI>MPlayer & DVB card users: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">http://mplayerhq.hu/mailman/listinfo/mplayer-dvb</A><BR> - Things related to the hardware decoder card called DVB (<B>not</B> DXR3!). - </LI> - <LI>MPlayer CVS-log: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog">http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog</A><BR> - All changes in MPlayer code are automatically sent to this list. Only - questions about these changes belong here (if you do not understand why a - change is required or you have a better fix or you have noticed a possible - bug/problem in the commit). - </LI> - <LI>MPlayer CygWin-porting list: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin">http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin</A><BR> - List for discussion about MPlayer's CygWin port. - </LI> - <LI>MPlayer OS/2-porting list: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-os2">http://mplayerhq.hu/mailman/listinfo/mplayer-os2</A><BR> - List for discussion about MPlayer's OS/2 port. - </LI> - <LI>MPlayer Weekly News' editors and translators list: - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-mwn">http://mplayerhq.hu/mailman/listinfo/mplayer-mwn</A><BR> - List for discussion about the Weekly News releases. - </LI> -</UL> - -<P><B>Note:</B> You can reach the searchable mailing list archives at - <A HREF="http://www.mplayerhq.hu/cgi-bin/htsearch">http://www.mplayerhq.hu/cgi-bin/htsearch</A>. - - - -<H1><A NAME="bug_reports">Appendix B</A> - <A HREF="bugreports.html">How to report bugs</A></H1> - - - -<H1><A NAME="known_bugs">Appendix C - Known bugs</A></H1> - -<P>Special system/CPU-specific bugs/problems:</P> -<UL> - -<LI>SIGILL (signal 4) on P3 using 2.2.x kernels:<BR> - Problem: kernel 2.2.x doesn't have proper (working) SSE support<BR> - Solution: upgrade kernel to 2.4.x<BR> - Workaround: <CODE>./configure --disable-sse</CODE></LI> - -<LI>General SIGILL (signal 4):<BR> - Problem: you compiled and run mplayer in different machines - (for example compiled on P3 and running on Celeron)<BR> - Solution: compile MPlayer on the same machine where you will use it!<BR> - Workaround: <CODE>./configure --disable-sse</CODE> etc. options</LI> - -<LI>"Internal buffer inconsistency" during MEncoder run:<BR> - Problem: known problem when lame < 3.90 was compiled with gcc 2.96 or 3.x.<BR> - Solution: use lame >=3.90.<BR> - Workaround: compile lame with gcc 2.95.x and remove any already installed - lame packages, they may have been compiled with gcc 2.96.</LI> - -<LI>Messed up MP2/MP3 sound on PPC:<BR> - Problem: known GCC miscompilation bug on PPC platforms, no fix yet.<BR> - Workaround: use FFmpeg's (slow) MP1/MP2/MP3 decoder (<CODE>-ac ffmpeg</CODE>)</LI> - -<LI>sig11 in libmpeg2, when scaling+encoding:<BR> - Problem: known GCC 2.95.2 MMX bug, upgrade to 2.95.3.</LI> -</UL> - -<P>Various A-V sync and other audio problems:</P> - -General audio delay or jerky sound (exists with all or many files): -<UL> - <LI>most common: buggy audio driver! - try to use different drivers, try - ALSA 0.9 OSS emulation with -ao oss, also try -ao sdl, sometimes it helps. - If your file plays fine with -nosound, then you can be sure it's sound card - (driver) problem.</LI> - <LI>audio buffer problems (buffer size badly detected)<BR> - Workaround: mplayer -abs option</LI> - <LI>samplerate problems - maybe your card doesn't support the samplerate - used in your files - try the resampling plugin (-aop)</LI> - <LI>slow machine (CPU or VGA)<BR> - try with -vo null, if it plays well, then you have slow VGA card/driver<BR> - Workaround: buy a faster card or read this documentation about how to speed up<BR> - Also try -framedrop</LI> -</UL> - -Audio delay/de-sync specific to one or a few files: -<UL> - <LI>bad file<BR> - Workaround: - <UL> - <LI>-ni or -nobps option (for non-interleaved or bad files)<BR> - and/or</LI> - <LI>-mc 0 (required for files with badly interleaved VBR audio)<BR> - and/or</LI> - <LI>-delay option or +/- keys at runtime to adjust delay</LI> - </UL> - If none of these help, please upload the file, we'll check (and fix). - </LI> - <LI>your sound card doesn't support 48kHz playback<BR> - Workaround: buy a better sound card... or try to decrease fps by 10% (use - -fps 27 for a 30fps movie) or use the resampler plugin</LI> - <LI>slow machine<BR> - (if A-V is not around 0, and the last number in the status line increasing)<BR> - Workaround: -framedrop</LI> -</UL> - -No sound at all: -<UL> - <LI>your file uses an unsupported audio codec<BR> - Workaround: read the documentation and help us adding support for it</LI> -</UL> - -No picture at all (just plain grey/green window): -<UL> - <LI>your file uses an unsupported video codec<BR> - Workaround: read the documentation and help us adding support for it</LI> - <LI>auto-selected codec can't decode the file, try to select another using -vc - or -vfm options</LI> - <LI>you try to play DivX 3.x file with OpenDivX decoder or XviD (-vc odivx) - - install Divx4Linux and recompile player</LI> -</UL> - -<P>Video-out problems:</P> - -<P>First note: options -fs -vm and -zoom are just recommendations, not (yet) - supported by all drivers. So it isn't a bug if it doesn't work. - Only a few driver supports scaling/zooming, don't expect this from x11 or dga.</P> - -<P>OSD/sub flickering:<BR> - - x11 driver: sorry, it can't be fixed now<BR> - - xv driver: use -double option</P> - -<P>Green image using mga_vid (-vo mga / -vo xmga):<BR> - - mga_vid misdetected your card's RAM amount, reload it using mga_ram_size option</P> - - - -<H1><A NAME="skin">Appendix D</A> - <A HREF="skin.html">MPlayer skin format</A></H1> - - - -<H1><A NAME="flame_wars">Appendix E</A> - <A HREF="users_against_developers.html">Developer Cries</A></H1> - - - -<H1><A NAME="patches">Appendix F</A> - <A HREF="tech/patches.txt">How to send patches</A></H1> - - -</BODY> -</HTML>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/bugreports.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,289 @@ +<!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. 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.tuxedo.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</A> + by <A HREF="http://www.tuxedo.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>Please 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 the following on your command line:</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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/cd-dvd.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,266 @@ +<!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>You can also try</P> + +<P> <CODE>echo current_speed:4 > /proc/ide/[cdrom device]/settings</CODE></P> + +<P>but you will need 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>DVD Navigation support (dvdnav)</H4> + +<P>Support for DVD navigation via <CODE>dvdnav</CODE> was being worked on, but + it was never finished properly and it is currently unmaintained. Who knows, it + might even compile.</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 the <CODE>-vcd</CODE> option 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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/codecs-in.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,185 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Codec Status Table - 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 text="#000000" link="#666666" vlink="#666666" alink="#666666"> +<table width=750 border="0"> + <tr> + <td align="right"> + <p> </p> + + <p><b>Status of codecs support</b></p> + </td> + </tr> + <tr> + <td> + <p><a href="#vc">Video codecs</a><br><a href="#ac">Audio codecs</a><br></p> + </td> + </tr> + <tr> + <td align="center"> + <b><font face="Verdana, Arial, Helvetica, sans-serif" size="5"><a name="vc">Video codecs:</a></font></b><br><br> + + <table width="100%" border="1" cellspacing="0" cellpadding="5"> + + <tr> + <td colspan=6 bgcolor="#CCCCCC"><b>Working video codecs</b></td> + </tr> + <tr> + <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> + <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">fourcc</font></b></td> + <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> + <td width=40 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">out</font></b></td> + <td align=center colspan=2><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">comments</font></b></td> + </tr> +<!-- %0 --> + <tr> + <td align=center><b>%i</b></td> + <td align=center><b>%F</b></td> + <td align=center><b>%d</b></td> + <td align=center><b>%Y</b></td> + <td align=center colspan=2><b>%c</b></td> + </tr> +<!-- %. --> + + <tr> + <td colspan=6 bgcolor="#CCCCCC"><b>New / Untested codecs</b></td> + </tr> + <tr> + <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> + <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">fourcc</font></b></td> + <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> + <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> + </tr> +<!-- %4 --> + <tr> + <td align=center><b>%i</b></td> + <td align=center><b>%F</b></td> + <td align=center><b>%d</b></td> + <td align=center colspan=3><b>%c</b></td> + </tr> +<!-- %. --> + + <tr> + <td colspan=6 bgcolor="#CCCCCC"><b>Codecs with problems</b></td> + </tr> + <tr> + <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> + <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">fourcc</font></b></td> + <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> + <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> + </tr> +<!-- %2 --> + <tr> + <td align=center><b>%i</b></td> + <td align=center><b>%F</b></td> + <td align=center><b>%d</b></td> + <td align=center colspan=3><b>%c</b></td> + </tr> +<!-- %. --> + + <tr> + <td colspan=6 bgcolor="#CCCCCC"><b>Not yet working codecs:</b></td> + </tr> + <tr> + <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> + <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">fourcc</font></b></td> + <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> + <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> + </tr> +<!-- %3 --> + <tr> + <td align=center><b>%i</b></td> + <td align=center><b>%F</b></td> + <td align=center><b>%d</b></td> + <td align=center colspan=3><b>%c</b></td> + </tr> +<!-- %. --> + + </table> + + <br><b><font face="Verdana, Arial, Helvetica, sans-serif" size="5"><a name="ac">Audio codecs:</a></font></b><br><br> + + <table width="100%" border="1" cellspacing="0" cellpadding="5"> + + <tr> + <td colspan=6 bgcolor="#CCCCCC"><b>Working audio codecs</b></td> + </tr> + <tr> + <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> + <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">format</font></b></td> + <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> + <td align=center colspan=3><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">comments</font></b></td> + </tr> +<!-- %5 --> + <tr> + <td align=center><b>%i</b></td> + <td align=center><b>%f</b></td> + <td align=center><b>%d</b></td> + <td align=center colspan=3><b>%c</b></td> + </tr> +<!-- %. --> + + <tr> + <td colspan=6 bgcolor="#CCCCCC"><b>New / Untested codecs</b></td> + </tr> + <tr> + <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> + <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">format</font></b></td> + <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> + <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> + </tr> +<!-- %9 --> + <tr> + <td align=center><b>%i</b></td> + <td align=center><b>%f</b></td> + <td align=center><b>%d</b></td> + <td align=center colspan=3><b>%c</b></td> + </tr> +<!-- %. --> + + <tr> + <td colspan=6 bgcolor="#CCCCCC"><b>Codecs with problems</b></td> + </tr> + <tr> + <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> + <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">format</font></b></td> + <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> + <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> + </tr> +<!-- %7 --> + <tr> + <td align=center><b>%i</b></td> + <td align=center><b>%f</b></td> + <td align=center><b>%d</b></td> + <td align=center colspan=3><b>%c</b></td> + </tr> +<!-- %. --> + + <tr> + <td colspan=6 bgcolor="#CCCCCC"><b>Not yet working codecs</b></td> + </tr> + <tr> + <td width=150 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codec name</font></b></td> + <td width=70 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">format</font></b></td> + <td width=120 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">codecfile</font></b></td> + <td colspan=3 align=center><b><font color="#AAAAAA" face="Verdana, Arial, Helvetica, sans-serif" size="2">problem</font></b></td> + </tr> +<!-- %8 --> + <tr> + <td align=center><b>%i</b></td> + <td align=center><b>%f</b></td> + <td align=center><b>%d</b></td> + <td align=center colspan=3><b>%c</b></td> + </tr> +<!-- %. --> + + </table> + </td> + </tr> +</table> +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/codecs.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,539 @@ +<!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>Win32/QT <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 libavcodec. 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 /usr/local/lib/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 /usr/local/lib/libdivxdecore.so /usr/local/lib/libdivxdecore.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 DivX/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/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/HuffYUV + 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 (WMV1). Also a very + interesting one is the WMA decoder.</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/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><B>Note:</B> RealPlayer libraries currently <B>only work with Linux, FreeBSD, + NetBSD and Cygwin on the x86 and Alpha 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>you have to choose between DivX4 <B>or</B> XViD support at compiletime</LI> + <LI>under development</LI> +</UL> + +<H4>INSTALLING XVID CVS</H4> + +<P>XViD is currently available only from CVS. Here are the + download and installation instructions:</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>Edit the Makefile for your architecture (probably + <CODE>Makefile.linuxx86</CODE>) to fit your needs.</LI> + <LI><CODE>make -f Makefile.linuxx86</CODE></LI> + <LI>Copy the <CODE>divx4.h</CODE> and <CODE>xvid.h</CODE> header files from + <CODE>xvidcore/src/</CODE> to <CODE>/usr/local/include/</CODE>.</LI> + <LI>Get <CODE>encore2.h</CODE> and <CODE>decore.h</CODE> from the DivX4Linux + package, and copy them 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 1 (fourcc <I>SVQ1</I>) - decoding supported by <B>native + codecs</B><BR> + Actually there are two (nearly equal) decoders for SVQ1: one is built in + MPlayer, the other is in libavcodec. You can invoke each of them with the + <CODE>-vc svq1</CODE> and <CODE>-vc ffsvq1</CODE> options respectively. + Some files may work with one of them, and not with the other, so test + both decoders. The decoder was written (reverse engineered) by the + <A HREF="http://www.xinehq.de">xine</A> authors.</LI> + <LI>Sorenson 3 (fourcc <I>SVQ3</I>) - decoding supported by <B>Win32 + QuickTime libraries</B></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>compile MPlayer with:<BR> + <CODE>$ ./configure --enable-qtx-codecs</CODE></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/lib/win32</CODE>)</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> +</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> + + +<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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/documentation.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,2061 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + +<HEAD> + <TITLE>Documentation - 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 ALIGN="center">MPlayer - The Movie Player for LINUX</H1> + +<H2 ALIGN="center">© 2000-2003 Arpad Gereoffy (A'rpi/ESP-team)<BR> + <A HREF="http://www.mplayerhq.hu">http://www.mplayerhq.hu</A></H2> + +<P ALIGN="center">[ English ] + <A HREF="Hungarian/documentation.html">[ Hungarian ]</A> + <A HREF="German/documentation.html">[ German ]</A> + <A HREF="French/documentation.html">[ French ]</A> + <A HREF="Polish/documentation.html">[ Polish ]</A> + <A HREF="Italian/documentation.html">[ Italian ]</A> + <A HREF="Chinese/documentation.html">[ Chinese ]</A></P> + +<HR> + +<H2>Table of Contents</H2> + +<HR> + +<UL> + <LI><A HREF="#reading">0. How to read this documentation</A></LI> + <LI><A HREF="#introduction">1. Introduction</A> + <UL> + <LI><A HREF="#history">1.1 History</A></LI> + <LI><A HREF="#installation">1.2 Installation</A></LI> + <LI><A HREF="#gui">1.3 What about the GUI?</A></LI> + <LI><A HREF="#subtitles_osd">1.4 Subtitles and OSD</A> + <UL> + <LI><A HREF="#mpsub">1.4.1 MPlayer's own subtitle format (MPsub)</A></LI> + <LI><A HREF="#install_osd">1.4.2 Installing OSD and subtitles</A></LI> + <LI><A HREF="#menu">1.4.3 OSD Menu</A></LI> + </UL> + </LI> + <LI><A HREF="#rtc">1.5 RTC</A></LI> + </UL> + </LI> + <LI><A HREF="#features">2. Features</A> + <UL> + <LI><A HREF="formats.html">2.1 Supported formats</A> + <UL> + <LI><A HREF="formats.html#video_formats">2.1.1 Video formats</A> + <UL> + <LI><A HREF="formats.html#mpeg">2.1.1.1 MPEG files</A></LI> + <LI><A HREF="formats.html#avi">2.1.1.2 AVI files</A></LI> + <LI><A HREF="formats.html#asf">2.1.1.3 ASF/WMV files</A></LI> + <LI><A HREF="formats.html#mov">2.1.1.4 QuickTime/MOV files</A></LI> + <LI><A HREF="formats.html#vivo">2.1.1.5 VIVO files</A></LI> + <LI><A HREF="formats.html#fli">2.1.1.6 FLI files</A></LI> + <LI><A HREF="formats.html#real">2.1.1.7 RealMedia (RM) files</A></LI> + <LI><A HREF="formats.html#nuppelvideo">2.1.1.8 NuppelVideo files</A></LI> + <LI><A HREF="formats.html#yuv4mpeg">2.1.1.9 yuv4mpeg files</A></LI> + <LI><A HREF="formats.html#film">2.1.1.10 FILM files</A></LI> + <LI><A HREF="formats.html#roq">2.1.1.11 RoQ files</A></LI> + <LI><A HREF="formats.html#ogg">2.1.1.12 OGG/OGM files</A></LI> + <LI><A HREF="formats.html#sdp">2.1.1.13 SDP files</A></LI> + <LI><A HREF="formats.html#pva">2.1.1.14 PVA files</A></LI> + <LI><A HREF="formats.html#gif">2.1.1.15 GIF files</A></LI> + </UL> + </LI> + <LI><A HREF="formats.html#audio_formats">2.1.2 Audio formats</A> + <UL> + <LI><A HREF="formats.html#mp3">2.1.2.1 MP3 files</A></LI> + <LI><A HREF="formats.html#wav">2.1.2.2 WAV files</A></LI> + <LI><A HREF="formats.html#ogg_vorbis">2.1.2.3 OGG/OGM files (Vorbis)</A></LI> + <LI><A HREF="formats.html#wma">2.1.2.4 WMA/ASF files</A></LI> + <LI><A HREF="formats.html#mp4">2.1.2.5 MP4 files</A></LI> + <LI><A HREF="formats.html#cdda">2.1.2.6 CD audio</A></LI> + <LI><A HREF="formats.html#xmms">2.1.2.7 XMMS</A></LI> + </UL> + </LI> + </UL> + </LI> + <LI><A HREF="codecs.html">2.2 Supported codecs</A> + <UL> + <LI><A HREF="codecs.html#video_codecs">2.2.1 Video codecs</A> + <UL> + <LI><A HREF="codecs.html#divx">2.2.1.1 DivX4/DivX5</A></LI> + <LI><A HREF="codecs.html#libavcodec">2.2.1.2 FFmpeg DivX/libavcodec</A></LI> + <LI><A HREF="codecs.html#xanim">2.2.1.3 XAnim codecs</A></LI> + <LI><A HREF="codecs.html#vivo_video">2.2.1.4 VIVO video</A></LI> + <LI><A HREF="codecs.html#mpeg">2.2.1.5 MPEG 1/2 video</A></LI> + <LI><A HREF="codecs.html#ms_video1">2.2.1.6 MS Video1</A></LI> + <LI><A HREF="codecs.html#cinepak">2.2.1.7 Cinepak CVID</A></LI> + <LI><A HREF="codecs.html#realvideo">2.2.1.8 RealVideo</A></LI> + <LI><A HREF="codecs.html#xvid">2.2.1.9 XViD</A></LI> + <LI><A HREF="codecs.html#sorenson">2.2.1.10 Sorenson</A></LI> + </UL> + </LI> + <LI><A HREF="codecs.html#audio_codecs">2.2.2 Audio codecs</A> + <UL> + <LI><A HREF="codecs.html#software_ac3">2.2.2.1 Software AC3 decoding</A></LI> + <LI><A HREF="codecs.html#hardware_ac3">2.2.2.2 Hardware AC3 decoding</A></LI> + <LI><A HREF="codecs.html#libmad">2.2.2.3 libmad support</A></LI> + <LI><A HREF="codecs.html#vivo_audio">2.2.2.4 VIVO audio</A></LI> + <LI><A HREF="codecs.html#realaudio">2.2.2.5 RealAudio</A></LI> + <LI><A HREF="codecs.html#qdesign">2.2.2.6 QDesign codecs</A></LI> + <LI><A HREF="codecs.html#qclp">2.2.2.7 Qualcomm codec</A></LI> + </UL> + </LI> + <LI><A HREF="codecs.html#importing">2.2.3 Win32 codec importing HOWTO</A> + <UL> + <LI><A HREF="codecs.html#importing_vfw">2.2.3.1 VFW codecs</A></LI> + <LI><A HREF="codecs.html#importing_directshow">2.2.3.2 DirectShow codecs</A></LI> + </UL> + </LI> + </UL> + </LI> + <LI><A HREF="#output">2.3 Output devices</A> + <UL> + <LI><A HREF="video.html">2.3.1 Video output devices</A> + <UL> + <LI><A HREF="video.html#mtrr">2.3.1.1 Setting up MTRR</A></LI> + <LI><A HREF="video.html#normal">2.3.1.2 Video outputs for traditional video cards</A> + <UL> + <LI><A HREF="video.html#xv">2.3.1.2.1 Xv</A> + <UL> + <LI><A HREF="video.html#xv_3dfx">2.3.1.2.1.1 3dfx cards</A></LI> + <LI><A HREF="video.html#xv_s3">2.3.1.2.1.2 S3 cards</A></LI> + <LI><A HREF="video.html#xv_nvidia">2.3.1.2.1.3 nVidia cards</A></LI> + <LI><A HREF="video.html#xv_ati">2.3.1.2.1.4 ATI cards</A></LI> + <LI><A HREF="video.html#xv_neomagic">2.3.1.2.1.5 NeoMagic cards</A></LI> + <LI><A HREF="video.html#xv_trident">2.3.1.2.1.6 Trident cards</A></LI> + <LI><A HREF="video.html#xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></LI> + </UL> + </LI> + <LI><A HREF="video.html#dga">2.3.1.2.2 DGA</A></LI> + <LI><A HREF="video.html#sdl">2.3.1.2.3 SDL</A></LI> + <LI><A HREF="video.html#svgalib">2.3.1.2.4 SVGAlib</A></LI> + <LI><A HREF="video.html#fbdev">2.3.1.2.5 Framebuffer output (FBdev)</A></LI> + <LI><A HREF="video.html#mga_vid">2.3.1.2.6 Matrox framebuffer (mga_vid)</A></LI> + <LI><A HREF="video.html#tdfxfb">2.3.1.2.7 3dfx YUV support (tdfxfb)</A></LI> + <LI><A HREF="video.html#opengl">2.3.1.2.8 OpenGL output</A></LI> + <LI><A HREF="video.html#aalib">2.3.1.2.9 AAlib - text mode displaying</A></LI> + <LI><A HREF="video.html#vesa">2.3.1.2.10 VESA - output to VESA BIOS</A></LI> + <LI><A HREF="video.html#x11">2.3.1.2.11 X11</A></LI> + <LI><A HREF="video.html#vidix">2.3.1.2.12 VIDIX</A> + <UL> + <LI><A HREF="video.html#vidix_ati"> 2.3.1.2.12.1 ATI cards</A></LI> + <LI><A HREF="video.html#vidix_matrox"> 2.3.1.2.12.2 Matrox cards</A></LI> + <LI><A HREF="video.html#vidix_trident"> 2.3.1.2.12.3 Trident cards</A></LI> + <LI><A HREF="video.html#vidix_3dlabs"> 2.3.1.2.12.4 3DLabs cards</A></LI> + </UL> + </LI> + <LI><A HREF="video.html#directfb">2.3.1.2.13 DirectFB</A></LI> + <LI><A HREF="video.html#dfbmga">2.3.1.2.14 DirectFB/Matrox (dfbmga)</A></LI> + </UL> + </LI> + <LI><A HREF="video.html#mpegdec">2.3.1.3 MPEG decoders</A> + <UL> + <LI><A HREF="video.html#dvb">2.3.1.3.1 DVB</A></LI> + <LI><A HREF="video.html#dxr2">2.3.1.3.2 DXR2</A></LI> + <LI><A HREF="video.html#dxr3">2.3.1.3.3 DXR3/Hollywood+</A></LI> + </UL> + </LI> + <LI><A HREF="video.html#other">2.3.1.4 Other visualization hardware</A> + <UL> + <LI><A HREF="video.html#zr">2.3.1.4.1 Zoran JPEG decoders</A></LI> + <LI><A HREF="video.html#blinken">2.3.1.4.2 Blinkenlights</A></LI> + </UL> + </LI> + <LI><A HREF="video.html#tv-out">2.3.1.5 TV-out support</A> + <UL> + <LI><A HREF="video.html#tv-out_matrox">2.3.1.5.1 Matrox G400 cards</A></LI> + <LI><A HREF="video.html#tv-out_matrox_g450">2.3.1.5.2 Matrox G450/G550 cards</A></LI> + <LI><A HREF="video.html#tv-out_ati">2.3.1.5.3 ATI cards</A></LI> + <LI><A HREF="video.html#tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></LI> + <LI><A HREF="video.html#tv-out_nvidia">2.3.1.5.5 nVidia</A></LI> + </UL> + </LI> + </UL> + <LI><A HREF="sound.html">2.3.2 Audio output devices</A> + <UL> + <LI><A HREF="sound.html#sync">2.3.2.1 Audio/Video synchronisation</A></LI> + <LI><A HREF="sound.html#experiences">2.3.2.2 Sound card experiences, recommendations</A></LI> + <LI><A HREF="sound.html#af">2.3.2.3 Audio filters</A> + <UL> + <LI><A HREF="sound.html#af_resample">2.3.2.3.1 Up/Downsampling</A></LI> + <LI><A HREF="sound.html#af_channels">2.3.2.3.2 Changing the number of channels</A></LI> + <LI><A HREF="sound.html#af_format">2.3.2.3.3 Sample format converter</A></LI> + <LI><A HREF="sound.html#af_delay">2.3.2.3.4 Delay</A></LI> + <LI><A HREF="sound.html#af_volume">2.3.2.3.5 Software volume control</A></LI> + <LI><A HREF="sound.html#af_equalizer">2.3.2.3.6 Equalizer</A></LI> + <LI><A HREF="sound.html#af_panning">2.3.2.3.7 Panning filter</A></LI> + <LI><A HREF="sound.html#af_sub">2.3.2.3.8 Sub-woofer</A></LI> + <LI><A HREF="sound.html#af_surround">2.3.2.3.9 Surround-sound decoder</A></LI> + </UL> + </LI> + <LI><A HREF="sound.html#plugins">2.3.2.4 Audio plugins (deprecated)</A> + <UL> + <LI><A HREF="sound.html#resample">2.3.2.4.1 Up/Downsampling</A></LI> + <LI><A HREF="sound.html#surround_decoding">2.3.2.4.2 Surround Sound decoding</A></LI> + <LI><A HREF="sound.html#format">2.3.2.4.3 Sample format converter</A></LI> + <LI><A HREF="sound.html#delay">2.3.2.4.4 Delay</A></LI> + <LI><A HREF="sound.html#volume">2.3.2.4.5 Software volume control</A></LI> + <LI><A HREF="sound.html#extrastereo">2.3.2.4.6 Extrastereo</A></LI> + <LI><A HREF="sound.html#normalizer">2.3.2.4.7 Volume Normalizer</A></LI> + </UL> + </LI> + </UL> + </LI> + </UL> + </LI> + <LI><A HREF="#tv">2.4 TV input</A> + <UL> + <LI><A HREF="#tv_compilation">2.4.1 Compilation</A></LI> + <LI><A HREF="#tv_tips">2.4.2 Usage tips</A></LI> + <LI><A HREF="#tv_examples">2.4.3 Examples</A></LI> + </UL> + </LI> + <LI><A HREF="#edl">2.5 Edit Decision Lists (EDL)</A> + <UL> + <LI><A HREF="#edl_using">2.5.1 Using an EDL file</A></LI> + <LI><A HREF="#edl_making">2.5.2 Making an EDL file</A></LI> + </UL> + </LI> + </UL> + </LI> + <LI><A HREF="#usage">3. Usage</A> + <UL> + <LI><A HREF="#command_line">3.1 Command line</A></LI> + <LI><A HREF="#control">3.2 Control</A> + <UL> + <LI><A HREF="#controls_configuration">3.2.1 Controls configuration</A> + <UL> + <LI><A HREF="#key_names">3.2.1.1 Key names</A></LI> + <LI><A HREF="#commands">3.2.1.2 Commands</A></LI> + </UL> + </LI> + <LI><A HREF="#lirc">3.2.2 Control from LIRC</A></LI> + <LI><A HREF="#slave">3.2.3 Slave mode</A></LI> + </UL> + </LI> + <LI><A HREF="#streaming">3.3 Streaming from network or pipes</A></LI> + </UL> + </LI> + <LI><A HREF="cd-dvd.html">4. CD/DVD section</A> + <UL> + <LI><A HREF="cd-dvd.html#drives">4.1 CD/DVD drives</A></LI> + <LI><A HREF="cd-dvd.html#dvd">4.2 DVD playback</A></LI> + <LI><A HREF="cd-dvd.html#vcd">4.3 VCD playback</A></LI> + </UL> + </LI> + <LI><A HREF="faq.html">5. FAQ section</A> + <UL> + <LI><A HREF="faq.html#compilation">5.1 Compilation</A></LI> + <LI><A HREF="faq.html#general">5.2 General questions</A></LI> + <LI><A HREF="faq.html#playback">5.3 Playback problems</A></LI> + <LI><A HREF="faq.html#driver">5.4 Video/audio driver problems (vo/ao)</A></LI> + <LI><A HREF="faq.html#dvd">5.5 DVD playback</A></LI> + <LI><A HREF="faq.html#features">5.6 Feature requests</A></LI> + <LI><A HREF="faq.html#encoding">5.7 Encoding</A></LI> + </UL> + </LI> + <LI><A HREF="#ports">6. Ports</A> + <UL> + <LI><A HREF="#linux">6.1 Linux</A> + <UL> + <LI><A HREF="#debian">6.1.1 Debian packaging</A></LI> + <LI><A HREF="#rpm">6.1.2 RPM packaging</A></LI> + <LI><A HREF="#arm">6.1.3 ARM</A></LI> + </UL> + </LI> + <LI><A HREF="#bsd">6.2 *BSD</A> + <UL> + <LI><A HREF="#freebsd">6.2.1 FreeBSD</A></LI> + <LI><A HREF="#openbsd">6.2.2 OpenBSD</A></LI> + </UL> + </LI> + <LI><A HREF="#solaris">6.3 Solaris</A></LI> + <LI><A HREF="#sgi">6.4 Silicon Graphics / Irix</A></LI> + <LI><A HREF="#qnx">6.5 QNX</A></LI> + <LI><A HREF="#cygwin">6.6 Cygwin</A></LI> + </UL> + </LI> + <LI><A HREF="encoding.html">7. Encoding with MEncoder</A> + <UL> + <LI><A HREF="encoding.html#2pass">7.1 Encoding 2 or 3-pass MPEG-4 ("DIVX")</A></LI> + <LI><A HREF="encoding.html#mpeg">7.2 Encoding to MPEG format</A></LI> + <LI><A HREF="encoding.html#rescaling">7.3 Rescaling movies</A></LI> + <LI><A HREF="encoding.html#copying">7.4 Stream copying</A></LI> + <LI><A HREF="encoding.html#fixing">7.5 Fixing AVIs with broken index</A></LI> + <UL> + <LI><A HREF="encoding.html#appending">7.5.1 Appending multiple AVI files</A></LI> + </UL> + <LI><A HREF="encoding.html#libavcodec">7.6 Encoding with the libavcodec codec family</A></LI> + <LI><A HREF="encoding.html#image_files">7.7 Encoding from multiple input image files (JPEGs or PNGs)</A></LI> + <LI><A HREF="encoding.html#vobsub">7.8 Extracting DVD subtitles to a Vobsub file</A></LI> + <LI><A HREF="encoding.html#aspect">7.9 Preserving aspect ratio</A></LI> + </UL> + </LI> + <LI><A HREF="#mailing_lists">Appendix A - Mailing lists</A></LI> + <LI><A HREF="bugreports.html">Appendix B - How to report bugs</A></LI> + <LI><A HREF="#known_bugs">Appendix C - Known bugs</A></LI> + <LI><A HREF="skin.html">Appendix D - MPlayer skin format</A> + <UL> + <LI><A HREF="skin.html#overview">D.1 Overview</A> + <UL> + <LI><A HREF="skin.html#directories">D.1.1 Directories</A></LI> + <LI><A HREF="skin.html#images">D.1.2 Images</A></LI> + <LI><A HREF="skin.html#components">D.1.3 Skin components</A></LI> + <LI><A HREF="skin.html#files">D.1.4 Files</A></LI> + </UL> + </LI> + <LI><A HREF="skin.html#skinfile">D.2 The skin file</A> + <UL> + <LI><A HREF="skin.html#mainwindow">D.2.1 Main window and playbar</A></LI> + <LI><A HREF="skin.html#subwindow">D.2.2 Subwindow</A></LI> + <LI><A HREF="skin.html#skinmenu">D.2.3 Skin menu</A></LI> + </UL> + </LI> + <LI><A HREF="skin.html#fonts">D.3 Fonts</A> + <UL> + <LI><A HREF="skin.html#symbols">D.3.1 Symbols</A></LI> + </UL> + </LI> + <LI><A HREF="skin.html#guimessages">D.4 GUI messages</A></LI> + </UL> + </LI> + <LI><A HREF="users_against_developers.html">Appendix E - Developer Cries</A> + <UL> + <LI><A HREF="users_against_developers.html#gcc">E.1 GCC 2.96</A></LI> + <LI><A HREF="users_against_developers.html#binary">E.2 Binary distribution</A></LI> + <LI><A HREF="users_against_developers.html#nvidia">E.3 nVidia</A></LI> + <LI><A HREF="users_against_developers.html#barr">E.4 Joe Barr</A></LI> + </UL> + </LI> + <LI><A HREF="tech/patches.txt">Appendix F - How to send patches</A></LI> +</UL> + +<HR> + + + +<H1><A NAME="reading">0. How to read this documentation</A></H1> + +<P>If you are a first-time installer: be sure to read everything from here to + the end of the Installation section, and follow the links you will find. If + you have any other questions, return to the Table of Contents and + search for the topic, read the <A HREF="faq.html">FAQ</A>, or try grepping + through the files.</P> + +<P>The main rule of this documentation: if it's not documented, it + <U>does not exist</U>. If I don't say you encode audio from TV tuner, you + can't. A healthy quantity of combining ability is welcomed, though. + Good luck. You'll need it :) And for another good advice, let me quote + Chris Phillips from the + <A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A> + mailing list:</P> + +<BLOCKQUOTE> + I said a while ago that there is such a difference between a newbie and + a dumbass. No matter what you actually know about a system (linux, cars, + girls :D) you should ALWAYS be able to take a step back and be objective, + otherwise, you're just dumb IMHO. A girl i live with assumed the vacuum + cleaner was broken because it didn't suck things up. never thought to change + the bag, becasue she'd never done it before... now that's just stupid, not a + case of simply not knowing what to do... Simply not being that familiar with + your surroundings is no excuse for a) laziness and b) ignorance. So many + people seem to see the word "error" and then stop... few seem to actually + read the words on the OTHER side of the colon. +</BLOCKQUOTE> + + + +<H1><A NAME="introduction">1. Introduction</A></H1> + + +<P>MPlayer is a movie player for LINUX (runs on many other Unices, and + <B>non-x86</B> CPUs, see the <A HREF="#ports">ports section</A>). It plays most + MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, + FILM, RoQ, PVA files, supported by many native, XAnim, RealPlayer, and + Win32 DLL codecs. You can watch <B>VideoCD</B>, <B>SVCD</B>, <B>DVD</B>, + <B>3ivx</B>, <B>RealMedia</B>, and <B>DivX</B> movies too (and you don't need + the avifile + library at all!). Another big feature of MPlayer is the wide range of + supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev, + AAlib, DirectFB, but you can also use GGI and SDL (and this way all their + drivers) and some lowlevel card-specific drivers (for Matrox, 3Dfx and Radeon, + Mach64, Permedia3) too! Most + of them supports software or hardware scaling, so you can enjoy movies in + fullscreen. MPlayer supports displaying through some hardware MPEG + decoder boards, such as the <B><A HREF="video.html#dvb">DVB</A></B> and + <B><A HREF="video.html#dxr3">DXR3/Hollywood+</A></B>. And what about the nice big antialiased + shaded subtitles (<B>10 supported types</B>) with European/ISO 8859-1,2 + (Hungarian, English, Czech, etc), Cyrillic, Korean fonts, and the onscreen + display (OSD)?</P> + +<P>The player is rock solid playing damaged MPEG files (useful for some VCDs), + and it plays bad AVI files which are unplayable with the famous + windows media player. Even AVI files without index chunk are playable, and + you can temporarily rebuild their indexes with the <CODE>-idx</CODE> option, or + permanently with MEncoder, thus enabling seeking! + As you see, stability and quality are the most important things, + but the speed is also amazing.</P> + +<P>MEncoder (MPlayer's Movie Encoder) is a simple movie encoder, + designed to encode MPlayer-playable movies + (<B>AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA</B>) to other + MPlayer-playable formats (see below). It can encode with various codecs, like + <B>DivX4</B> (1 or 2 passes), libavcodec, + <B>PCM</B>/<B>MP3</B>/<B>VBR MP3</B> audio. Also has powerful plugin system + for video manipulation.</P> + +<H4>MEncoder features</H4> + +<UL> + <LI>encoding from the wide range of fileformats and decoders of MPlayer</LI> + <LI>encoding to all the codecs of ffmpeg's + <A HREF="codecs.html#libavcodec">libavcodec</A></LI> + <LI>video encoding from <B>V4L compatible TV tuners</B></LI> + <LI>encoding/multiplexing to interleaved AVI files with proper index</LI> + <LI>creating files from external audio stream</LI> + <LI>1, 2 or 3 pass encoding</LI> + <LI><B>VBR</B> MP3 audio - <B>IMPORTANT NOTE:</B> VBR MP3 audio doesn't + always play nicely on Windows players!</LI> + <LI>PCM audio</LI> + <LI>stream copying</LI> + <LI>input A/V synchronizing (PTS-based, can be disabled with -mc 0 option)</LI> + <LI>FPS correction with <CODE>-ofps</CODE> option (useful when encoding + 29.97fps VOB to 24fps AVI)</LI> + <LI>using our very powerful plugin system (crop, expand, flip, postprocess, + rotate, scale, rgb/yuv conversion)</LI> + <LI>can encode DVD/VOBsub <B>AND</B> text subtitles into the output file</LI> + <LI>can rip DVD subtitles to Vobsub format</LI> +</UL> + +<H4>Planned features</H4> + +<UL> + <LI>even wider variety of available en/decoding formats/codecs + (creating VOB files with DivX4/Indeo5/VIVO streams :)</LI> +</UL> + +<P>MPlayer and MEncoder can be distributed under the terms of the GNU General + Public License Version 2.</P> + + +<H2><A NAME="history">1.1 History</A></H2> + +<P>This began a year ago... + I (A'rpi) have tried lots of players under linux (mtv,xmps,dvdview,livid/oms,videolan, + xine,xanim,avifile,xmmp) but they all have some problem. Mostly with special + files or with audio/video sync. Most of them is unable to play both MPEG1, + MPEG2 and AVI (DivX) files. Many players have image quality or speed problems + too. So I've decided to write/modify one...</P> + +<UL> + <LI><B>mpg12play v0.1-v0.3:</B> Sep 22-25, 2000<BR> + The first try, hacked together in a half hour! + I've used libmpeg3 from www.heroinewarrior.com up to the version 0.3, + but there were image quality and speed problems with it.</LI> + <LI><B>mpg12play v0.5-v0.87:</B> Sep 28-Oct 20, 2000<BR> + Mpeg codec replaced with DVDview by Dirk Farin, it was a great stuff, + but it was slow and was written in C++ (I hate C++!!!)</LI> + <LI><B>mpg12play v0.9-v0.95pre5:</B> Oct 21-Nov 2, 2000<BR> + Mpeg codec was libmpeg2 (mpeg2dec) by Aaron Holtzman & Michel Lespinasse. + It's great, optimized very fast C code with perfect image quality and + 100% MPEG standard conformance.</LI> + <LI><B>MPlayer v0.01:</B> Nov 11, 2000<BR> + The first MPlayer.</LI> + <LI><B>MPlayer v0.3-v0.9:</B> Nov 18-Dec 4, 2000<BR> + It was a pack of two programs: mpg12play v0.95pre6 and my new simple AVI + player 'avip' based on avifile's Win32 DLL loader.</LI> + <LI><B>MPlayer v0.10:</B> Jan 1, 2001<BR> + The MPEG and AVI player in a single binary!</LI> + <LI><B>MPlayer v0.11pre series:</B><BR> + Some new developers joined and from 0.11 the mplayer project is a team-work! + Added .ASF file support, and OpenDivX (see www.projectmayo.com) en/decoding.</LI> + <LI><B>MPlayer v0.17a "The IdegCounter"</B> Apr 27, 2001<BR> + The release version of the 0.11pre after 4 months of heavy development! + Try it, and be amazed! Thousands of new features added... and of course + old code was improved too, bugs removed etc.</LI> + <LI><B>MPlayer 0.18 "The BugCounter"</B> Jul 9, 2001<BR> + 2 months since 0.17 and here's a new release.. Completed ASF support, + more subtitle formats, introduced libao (similar to libvo but to audio), + even more stable than ever, and so on. It's a MUST!</LI> + <LI><B>MPlayer 0.50 "The Faszom(C)ounter"</B> Oct 8, 2001<BR> + Hmm. Release again. Tons of new features, beta GUI version, bugs fixed, + new vo and ao drivers, ported to many systems, including opensource DivX + codecs and much more. Try it!</LI> + <LI><B>MPlayer 0.60 "The RTFMCounter"</B> Jan 3, 2002<BR> + MOV/VIVO/RM/FLI/NUV fileformats support, native CRAM, Cinepak, ADPCM codecs, + and support for XAnim's binary codecs; DVD subtitles support, first + release of MEncoder, TV grabbing, cache, liba52, countless fixes.</LI> + <LI><B>MPlayer 0.90pre10 "The BirthdayCounter"</B> Nov 11, 2002<BR> + Although this is not a release, I am going to mention it because it + came out 2 years after MPlayer v0.01. Happy birthday, MPlayer!</LI> + <LI><B>MPlayer 0.90rc1 "The CodecCounter"</B> Dec 7, 2002<BR> + Again not a release, but after adding Sorenson 3 (QuickTime) and Windows + Media 9 support, MPlayer is the world's first movie player with support + for all known video formats!</LI> + <LI><B>MPlayer 0.90 "?"</B> Date yet unknown</LI> +</UL> + + +<H2><A NAME="installation">1.2 Installation</A></H2> + +<P>In this chapter I'll try to guide you through the compiling and + configuring process of MPlayer. It's not easy, but it won't necessarily + be hard. If you experience a different behavior than what I explain, please + search through this documentation and you'll find your answers. If you + see links, please follow them and read carefully what they contain. It + will take some time, but it DOES worth it.</P> + +<P>You need a fairly recent system. On Linux, 2.4.x kernels are recommended.</P> + +<H4>Software requirements:</H4> + +<UL> + <LI><B>binutils</B> - suggested version is <B>2.11.x</B> . This program is + responsible for generating MMX/3DNow!/etc instructions, thus very important.</LI> + <LI><B>gcc</B> - suggested versions are: <B>2.95.3</B> (maybe <B>2.95.4</B>) and <B>3.2+</B>. + <B>NEVER</B> use 2.96 or 3.0.x! They generate faulty code for MPlayer. + If you decide to change gcc from 2.96, then don't decide in favor of 3.0.x + just because it's newer! Early releases of 3.0.x were even more buggy than + 2.96. So downgrade to 2.95.x (downgrade libstdc++ too, other programs may + need it) or don't up/downgrade at all (but in this case, be prepared for + runtime problems). If you vote for 3.x.x, try to use the latest version, + early releases had various bugs, so be sure you use at least 3.1, it's + tested and working. For detailed information about gcc 2.96's bugs (that are + still NOT fixed, they have been WORKED AROUND in MPlayer!), see the + <A HREF="users_against_developers.html#gcc">gcc 2.96</A> section and the + <A HREF="faq.html">FAQ</A>.</LI> + <LI><B>XFree86</B> - suggested version is <B>always the newest (4.2.1)</B>. + Normally, everyone wants this, as starting with XFree86 4.0.2, it contains + the <A HREF="video.html#xv">XVideo</A> extension (somewhere referred to + as <B>Xv</B>) which is needed to enable the hardware YUV acceleration (fast + image display) on cards that support it.<BR> + Make sure its <B>development package</B> is installed, too, otherwise + it won't work.<BR> + For some video cards you don't need XFree86. See list below.</LI> + <LI><B>make</B> - suggested version is <B>always the newest</B> (at least 3.79.x). This + usually isn't important.</LI> + <LI><B>SDL</B> - it's not mandatory, but can help in some cases (bad audio, + video cards that lag strangely with the xv driver). Always use the newest + (beginning from 1.2.x).</LI> + <LI><B>libjpeg</B> - optional JPEG decoder, used by -mf and some QT MOV files. + Useful for both MPlayer and MEncoder if you plan to work with jpeg files.</LI> + <LI><B>libpng</B> - recommended and default (M)PNG decoder. Required for GUI. + Useful for both MPlayer and MEncoder.</LI> + <LI><B>lame</B> - recommended, needed for encoding MP3 audio with MEncoder, + suggested version is <B>always the newest</B> (at least 3.90).</LI> + <LI><B>libogg</B> - optional, needed for playing OGG file format.</LI> + <LI><B>libvorbis</B> - optional, needed for playing OGG Vorbis audio.</LI> + <LI><B><A HREF="http://www.live.com/mplayer/">LIVE.COM Streaming Media</A></B> + - optional, needed for playing RTSP/RTP streams.</LI> + <LI><B>directfb</B> - optional, from + <A HREF="http://www.directfb.org">http://www.directfb.org</A></LI> + <LI><B>cdparanoia</B> - optional, for CDDA support</LI> + <LI><B>libfreetype</B> - optional, for TTF fonts support. At least 2.0.9 is + required.</LI> + <LI><B>libxmms</B> - optional, for XMMS input plugin support. At least 1.2.7 is + required.</LI> +</UL> + +<H4>Codecs:</H4> + +<UL> + <LI><B>libavcodec</B>: This codec package is capable of decoding + H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1 encoded video streams and + WMA (Windows Media Audio) v1/v2 audio streams, on + multiple platforms. It is also known to be the fastest for this task. + See the <A HREF="codecs.html#libavcodec">libavcodec</A> section for details. + Features:<BR> + <UL> + <LI>gain decoding of videos mentioned above, on non-x86 machines</LI> + <LI>encoding with most of the mentioned codecs</LI> + <LI>this codec is the <B>fastest codec available</B> for DivX/3/4/5 and + other MPEG4 types. Recommended!</LI> + </UL> + </LI> + <LI><B>Win32 codecs</B>: If you plan to use MPlayer on x86 architecture, you + will possibly need them. Download the Win32 codecs from our + <A HREF="http://www.mplayerhq.hu/MPlayer/releases/codecs/">codecs page</A> + and install them to <CODE>/usr/lib/win32</CODE> <B>BEFORE</B> compiling + MPlayer, otherwise no Win32 support will be compiled!<BR> + <B>Note:</B> the avifile project has a similar codecs package, but it differs + from ours. If you want to use all supported codecs, then install our package + (do not worry, avifile works with it without problems). Features:<BR> + <UL> + <LI>you need this if you want to play or encode for example movies recorded + with various hardware compressors, like tuner cards, digital cameras + (example: DV, ATI VCR, MJPEG)</LI> + <LI>needed if you want to play <B>WMV8, WMV9/WMA9 movies</B>.</LI> + <LI>Not needed for old + ASF's with MP41 or MP42 video (though VoxWare audio is frequent for these + files - it's done by the Win32 codec), or WMV7. Also not needed + for WMA (Windows Media Audio), libavcodec has opensource decoder + for that.</LI> + </UL> + </LI> + <LI><B>QuickTime codecs</B>: on x86 platforms these codecs can be used + to decode Sorenson v1/v3, RPZA, and other QuickTime video, and + QDesign audio streams. Installation instructions can be found in the + <A HREF="codecs.html#sorenson">Sorenson video codec</A> section.</LI> + <LI><B>DivX4/DivX5</B>: information about this codec is available in the + <A HREF="codecs.html#divx">DivX4/DivX5</A> section. You possibly don't want + this codec as <B>libavcodec</B> (see above) is much faster and has better + quality than this, for both decoding and encoding.<BR> + Features: + <UL> + <LI>1 pass or 2 pass encoding with + <A HREF="encoding.html">MEncoder</A></LI> + <LI>can play old <B>DivX3</B> movies much faster than the Win32 DLL but + slower than <B>libavcodec</B>!</LI> + <LI>it's closed-source, and only an x86 version is available.</LI> + </UL> + </LI> + <LI><B>XviD</B>: Open source encoding alternative to Divx4Linux<BR> + Features: + <UL> + <LI>1 pass or 2 pass encoding with + <A HREF="encoding.html">MEncoder</A></LI> + <LI>it's open-source, so it's multiplatform.</LI> + <LI>it's about 2 times faster than DivX4 when encoding - about the same + quality</LI> + </UL> + </LI> + <LI>The <A HREF="codecs.html#xanim">XAnim codecs</A> are the best (full + screen, hardware YUV zoom) for decoding <B>3ivx</B> and Indeo 3/4/5 movies, + and some old formats. And they are multiplatform, so this is the only way to + play Indeo on non-x86 platforms (well, apart from using XAnim:). But for + example Cinepak movies are best played with MPlayer's own Cinepak + decoder!</LI> + <LI>For <B>Ogg Vorbis</B> audio decoding you need to install + <CODE>libvorbis</CODE> properly. Use deb/rpm packages if available, or + compile from + <A HREF="http://ogg.org/ogg/vorbis/download/vorbis_nightly_cvs.tgz">source</A> + (this is a nightly updated tarball of Vorbis CVS).</LI> + <LI>MPlayer can use the libraries of RealPlayer 8 or RealONE to play + files with <B>RealVideo 2.0 - 4.0</B> video, and Sipro/Cook audio. See + <A HREF="formats.html#real">RealMedia file format</A> section for + installation instructions and more information.</LI> +</UL> + +<H4>Video Cards</H4> + +<P>There are generally two kind of video cards. One kind (the newer cards) has + <B>hardware scaling and YUV acceleration</B> support, the other cards don't.</P> + +<H4>YUV cards</H4> + +<P>They can display and scale (zoom) the picture to any size that fits in + their memory, with <B>small CPU usage</B> (even when zooming), thus + fullscreen playing is nice and very fast.</P> + +<UL> + <LI><B>Matrox G200/G400/G450/G550 cards</B>: although a + <A HREF="video.html#vidix">Vidix driver</A> is provided, it is recommended + to use the mga_vid kernel module instead, for it works much better. + Please see the <A HREF="video.html#mga_vid">mga_vid</A> section about its + installation and usage. It is important to do these steps <I>before</I> + compiling MPlayer, otherwise no mga_vid support will be built. Also + check out the <A HREF="video.html#tv-out_matrox">Matrox TV-out</A> section. + <U><B>If you don't use Linux</B></U>, your only possibility is the VIDIX + driver: read the <A HREF="video.html#vidix">VIDIX</A> section.</LI> + <LI><B>3Dfx Voodoo3/Banshee cards</B>: please see the + <A HREF="video.html#tdfxfb">tdfxfb</A> section in order to gain big + speedup. It is important to do these steps <B>before</B> compiling + MPlayer, otherwise no 3Dfx support will be built. Also see the <A + HREF="video.html#tv-out_voodoo">3dfx TV-out section</A>. If you use X, use + <B>at least 4.2.0</B>, as the 3dfx Xv driver was broken in 4.1.0 and earlier + releases.</LI> + <LI><B>ATI cards</B>: <A HREF="video.html#vidix">Vidix driver</A> is + provided for the following cards: + <B>Radeon</B>, <B>Rage128</B>, <B>Mach64</B> (Rage XL/Mobility, Xpert98). + Also see the <A HREF="video.html#tv-out_ati">ATI cards + section</A> of the TV-out documentation, to know if you card's TV-out is + supported under Linux/MPlayer.</LI> + <LI><B>S3 cards</B>: the Savage and Virge/DX chips have hardware acceleration. + Use as new XFree86 version as possible, older drivers are buggy. Savage chips + have problems with YV12 display, see <A HREF="video.html#xv_s3">S3 Xv + section</A> for details. Older, Trio cards have no, or slow hardware + support.</LI> + <LI><B>nVidia cards</B>: may or may not be good choice for video playing. + If you do not have a GeForce2 (or newer) card, it's not likely to work + without bugs. + <B>The built-in nVidia driver in XFree86 does not support hardware YUV + acceleration on all nVidia cards.</B> You have to download nVidia's + closed-source drivers from nVidia.com. See the + <A HREF="video.html#xv_nvidia">nVidia Xv driver</A> section for + details. Please also check the <A HREF="video.html#tv-out_nvidia">nVidia + TV-out section</A> if you wish to use a TV.</LI> + <LI><B>3DLabs GLINT R3 and Permedia3</B>: a VIDIX driver is provided + (pm3_vid). Please see the <A HREF="video.html#vidix">VIDIX</A> section for + details.</LI> + <LI><B>Other cards</B>: None of the above? + <UL> + <LI>Try if the XFree86 driver (and your card) supports hardware + acceleration. See the <A HREF="video.html#xv">Xv section</A> for + details.</LI> + <LI>If it doesn't, then your card's video features aren't supported under + your operating system :(<BR> + If hardware scaling works under Windows, it doesn't mean it will work + under Linux or other operating systems: it depends on the drivers. Most + manufacturers neither make Linux drivers nor release specifications + for their chips, so you are unlucky using their cards. + See 'Non-YUV cards'.</LI> + </UL> + </LI> +</UL> + +<H4>Non-YUV cards</H4> + +<P>Fullscreen playing can be achieved by either enabling <B>software scaling</B> + (use the <CODE>-zoom</CODE> or <CODE>-vop scale</CODE> + option, but I warn you: this is slow), or switching to a small resolution + video mode, for example 352x288. If you don't have YUV acceleration, the + latter method is recommended. Video mode switching can be enabled by + using the <CODE>-vm</CODE> option and it works with the following drivers:</P> + +<UL> + <LI><B>using</B> XFree86: see the + <A HREF="video.html#dga">DGA driver</A> and + <A HREF="video.html#x11">X11 driver</A> sections for details. DGA is + recommended! Also try DGA via SDL, sometimes it's better.</LI> + <LI><B>not using</B> XFree86: try the drivers in the following order: + <A HREF="video.html#vesa">vesa</A>, + <A HREF="video.html#fbdev">fbdev</A>, + <A HREF="video.html#svgalib">svgalib</A>, + <A HREF="video.html#aalib">aalib</A>.</LI> +</UL> + +<H4>Some cards:</H4> + +<UL> + <LI><B>Cirrus Logic cards</B>: + <UL> + <LI>GD 7548: present on-board and tested in Compaq Armada 41xx notebook + series. + <UL> + <LI>XFree86 3: works in 8/16bpp modes. However, the driver is + dramatically slow and buggy in 800x600@16bpp. + <B>Recommended: 640x480@16bpp</B></LI> + <LI>XFree86 4: the Xserver freezes soon after start unless + acceleration is disabled, but then the whole thing gets + slower than XFree86 3. No XVideo.</LI> + <LI>FBdev: framebuffer can be turned on with the <CODE>clgenfb</CODE> + driver in the kernel, though for me it worked only in 8bpp, thus + unusable. The clgenfb source had to be extended with the 7548 ID + before compilation.</LI> + <LI>VESA: the card is only VBE 1.2 capable, so VESA output can't be + used. Can't be workarounded with UniVBE.</LI> + <LI>SVGAlib: detects an older Cirrus chip. Usable but slow with + <CODE>-bpp 8</CODE>.</LI> + </UL> + </LI> + </UL> + </LI> +</UL> + + +<H4>Sound cards:</H4> + +<UL> + <LI><B>Soundblaster Live!</B>: with this card you can use 4 or 6 (<B>5.1</B>) + channels AC3 decoding instead of 2. Read the + <A HREF="codecs.html#software_ac3">Software AC3 decoding</A> section. + For hardware AC3 passthrough you <B>must</B> use ALSA 0.9 with OSS emulation!</LI> + <LI><B>C-Media with SP/DIF out</B>: hardware AC3 passthrough is possible + with these cards, see + <A HREF="codecs.html#hardware_ac3">Hardware AC3 decoding</A> section.</LI> + <LI>Features of <B>other cards</B> aren't supported by MPlayer. + <U>It's very recommended to read the <A HREF="sound.html">sound card + section</A>!</U></LI> +</UL> + +<H4>Features:</H4> + +<UL> + <LI>Decide if you need GUI. If you do, see the <A HREF="#gui">GUI section</A> + before compiling.</LI> + <LI>If you want to install MEncoder (our great all-purpose encoder), + see the <A HREF="encoding.html">MEncoder section</A>.</LI> + <LI>If you have a V4L compatible <B>TV tuner</B> card, and wish to watch/grab + and encode movies with MPlayer, read the <A HREF="#tv">TV input</A> + section.</LI> + <LI>There is a neat <B>OSD Menu</B> support ready to be used. Check the + <A HREF="#menu">OSD Menu</A> section.</LI> +</UL> + +<P>Then build MPlayer:</P> + +<PRE> + ./configure + make + make install +</PRE> + +<P>At this point, MPlayer is ready to use. The directory + <CODE>$PREFIX/etc/mplayer</CODE> contains the <CODE>codecs.conf</CODE> + file, which is used to tell the program all the codecs and their + capabilities. This file should always be kept up to date together with the + main binary.<BR> + Check if you have <CODE>codecs.conf</CODE> in your home directory + (<CODE>~/.mplayer/codecs.conf</CODE>) left from old MPlayer versions, and remove it.</P> + +<P><B>Debian users</B> can build a <CODE>.deb</CODE> package for themselves, + it's very simple. Just exec <CODE>fakeroot debian/rules binary</CODE> in + MPlayer's root directory. See + <A HREF="documentation.html#debian">Debian packaging</A> for detailed + instructions.</P> + +<P><B>Always browse the output of <CODE>./configure</CODE></B>, and the + <CODE>configure.log</CODE> file, they contain information about what will be + built, and what will not. You may also want to view <CODE>config.h</CODE> and + <CODE>config.mak</CODE> files.<BR> + If you have some libraries installed, but not detected by + <CODE>./configure</CODE>, then check if you also have the proper header files + (usually the -dev packages) and their version matches. The + <CODE>configure.log</CODE> file usually tells you what is missing.</P> + +<P>Though not mandatory, the fonts should be installed in order to gain OSD, + and subtitle functionality. The recommended method is installing a TTF + font file and telling MPlayer to use it. See the + <A HREF="#install_osd">Subtitles and OSD</A> section for details.</P> + + + +<H2><A NAME="gui">1.3 What about the GUI?</A></H2> + +<P>The GUI needs GTK 1.2.x (it isn't fully GTK, but the panels are). The skins + are stored in PNG format, so gtk, libpng (and their devel stuff, usually + called gtk-dev and libpng-dev) has to be installed. + You can build it by specifying <CODE>--enable-gui</CODE> during + <CODE>./configure</CODE>. Then, to turn on GUI mode, you either</P> + <UL> + <LI>specify <CODE>gui=yes</CODE> in your config file</LI> + <LI><CODE>ln -s $PREFIX/bin/mplayer $PREFIX/bin/gmplayer</CODE> , + and call <CODE>gmplayer</CODE> instead.</LI> + </UL> + +<P>Currently you can't use the <CODE>-gui</CODE> option on the command line, + due to technical reasons.</P> + +<P>As MPlayer doesn't have a skin included, you have to download them if + you want to use the GUI. See the + <A HREF="http://www.mplayerhq.hu/homepage/dload.html">download page</A>. + They should be extracted to the usual system-wide directory + (<CODE>$PREFIX/share/mplayer/Skin</CODE>), or to + <CODE>$HOME/.mplayer/Skin</CODE>. MPlayer by default looks in these + directories for a directory named <I>default</I>, but you can use the + <CODE>-skin newskin</CODE> option, or the <CODE>skin=newskin</CODE> config + file directive to use the skin in <CODE>*/Skin/newskin</CODE> directory.</P> + + +<H2><A NAME="subtitles_osd">1.4 Subtitles and OSD</A></H2> + +<P> + MPlayer can display subtitles along with movie files. Currently the following + formats are supported:</P> +<UL> + <LI>VobSub</LI> + <LI>OGM</LI> + <LI>CC (closed caption)</LI> + <LI>Microdvd</LI> + <LI>SubRip</LI> + <LI>SubViewer</LI> + <LI>Sami</LI> + <LI>VPlayer</LI> + <LI>RT</LI> + <LI>SSA</LI> + <LI>MPsub</LI> + <LI>AQTitle</LI> + <LI>JACOsub</LI> +</UL> + +<P>MPlayer can dump the previously listed subtitle formats (<B>except + the three first</B>) into the following destination formats, with the given + options:</P> + +<UL> + <LI>MPsub: <CODE>-dumpmpsub</CODE></LI> + <LI>SubRip: <CODE>-dumpsrtsub</CODE></LI> + <LI>Microdvd: <CODE>-dumpmicrodvdsub</CODE></LI> + <LI>JACOsub: <CODE>-dumpjacosub</CODE></LI> + <LI>Sami: <CODE>-dumpsami</CODE></LI> +</UL> + +<P>The command line options differ slightly for the different formats:</P> + +<H4>VobSub subtitles</H4> + +<P>VobSub subtitles consist of a big (some megabytes) .SUB file, and optional + .IDX and/or .IFO files.<BR> + Usage: If you have files like <CODE>sample.sub</CODE>, + <CODE>sample.ifo</CODE> (optional), <CODE>sample.idx</CODE> - you have to pass + MPlayer the <CODE>-vobsub sample [-vobsubid <id>]</CODE> options (full + path optional). The <CODE>-vobsubid</CODE> option is like <CODE>-sid</CODE> + for DVDs, you can choose between subtitle tracks (languages) with it. In case + that <CODE>-vobsubid</CODE> is omitted, MPlayer will try to use the languages + given by the <CODE>-slang</CODE> option and fall back to the + <CODE>langidx</CODE> item in the .IDX file to set the subtitle language. If + that fails, there will be no subtitles.</P> + +<H4>Other subtitles</H4> + +<P>The other formats consist of a single text file containing timing, + placement and text information.<BR> + Usage: If you have a file like <CODE>sample.txt</CODE>, you have to pass the + option <CODE>-sub sample.txt</CODE> (full path optional).</P> + +<H4>Adjusting subtitle timing and placement:</H4> + +<DL> + <DT><CODE>-subdelay <sec></CODE></DT> + <DD>Delays subtitles by <sec> seconds. Can be negative.</DD> + + <DT><CODE>-subfps <rate></CODE></DT> + <DD>Specify frame/sec rate of subtitle file (float number)</DD> + + <DT><CODE>-subpos <0 - 100></CODE></DT> + <DD>Specify the position of subtitles.</DD> +</DL> + +<P>If you experience a growing delay between the movie and the subtitles when + using a MicroDVD subtitle file, most likely the frame rate of the movie and + the subtitle file are different.<BR> Please note that the MicroDVD subtitle + format uses absolute frame numbers for its timing, and therefore the + <CODE>-subfps</CODE> option cannot be used with this format. As + MPlayer has no way to guess the frame rate of the subtitle file, you + have to manually convert the frame rate. There is a little perl script in the + <CODE>contrib</CODE> directory of the MPlayer FTP site to do this conversion + for you.</P> + +<P>MPlayer will try to guess the subtitle files you want to use when playing a + movie. If, like in most cases, subtitle and movie files have the same name and + are in the same place, you do not need to set the subtitle options. Just play + the movie, MPlayer will handle the subtitles automatically.</P> + +<P>About DVD subtitles, read the <A HREF="cd-dvd.html#dvd">DVD section</A>.</P> + + +<H3><A NAME="mpsub">1.4.1 MPlayer's own subtitle format (MPsub)</A></H3> + +<P>MPlayer introduces a new subtitle format called <B>MPsub</B>. It was + designed by Gabucino. Basically its main feature is being + <I>dynamically</I> time-based (although it has frame-based mode too). Example + (from + <A HREF="tech/mpsub.sub">DOCS/tech/mpsub.sub</A>):</P> + +<P><CODE><I># first number : wait this much after previous subtitle disappeared<BR> + # second number : display the current subtitle for this many seconds<BR> + <BR> + 15 3<BR> + A long long, time ago...<BR> + <BR> + 0 3<BR> + in a galaxy far away...<BR> + <BR> + 0 3<BR> + Naboo was under an attack.<BR></I></CODE></P> + +<P>So you see, the main goal was to <B>make subtitle + editing/timing/joining/cutting easy</B>. And, if you - say - get an SSA + subtitle but it's badly timed/delayed to your version of the movie, you + simply do a <CODE>mplayer dummy.avi -sub source.ssa -dumpmpsub</CODE>. + A <CODE>dump.mpsub</CODE> file will be created in the current directory, + which will contain the source subtitle's text, but in <B>MPsub</B> format. + Then you can freely add/subtract seconds to/from the subtitle.</P> + +<P>Subtitles are displayed with a technique called <B>'OSD', On Screen + Display</B>. OSD is used to display current time, volume bar, seek bar + etc.</P> + +<H3><A NAME="install_osd">1.4.2 Installing OSD and subtitles</A></H3> + +<P>You need an MPlayer font package to be able to use OSD/SUB feature. + There are many ways to get it:</P> + +<UL> + <LI>download ready-to-use font packages from MPlayer site. + Note: Currently available fonts are limited for iso 8859-1/2 support, + but there are some other (including Korean, Russian, 8859-8 etc) fonts + at contrib/font section of FTP, made by users.<BR> + <BR> + Font should have appropriate font.desc file which maps unicode font + positions to the actual code page of the subtitles text. Other solution is + to have subtitles encoded in utf8 encoding and use <CODE>-utf8</CODE> + option or just name the subtitles file <video_name>.utf and have it + in the same dir as the video file. Recoding from different codepages to + utf8 could be done by using konwert (Debian) or iconv (Red Hat) + programs.<BR> + Some URLs: + <UL> + <LI><A HREF="ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/">ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/</A> - ISO fonts</LI> + <LI><A HREF="ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/">ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/</A> - various fonts by users</LI> + <LI><A HREF="http://realtime.ssu.ac.kr/~lethean/mplayer/">http://realtime.ssu.ac.kr/~lethean/mplayer/</A> - Korean fonts & RAW plugin</LI> + </UL> + </LI> + <LI>use the font generator tool at TOOLS/subfont-c + It's a complete tool to convert from TTF/Type1/etc font to mplayer font pkg. + (read TOOLS/subfont-c/README for details)</LI> + <LI>use the font generator GIMP plugin at TOOLS/subfont-GIMP + (note: you must have HSI RAW plugin too, see URL below)</LI> + <LI>using a TrueType (TTF) font, by the means of the <B>freetype</B> + library. Version 2.0.9 or greater is mandatory! Then you + have two methods: + <UL> + <LI>use the <CODE>-font /path/to/arial.ttf</CODE> option to specify + a TrueType font file on every occassion</LI> + <LI>create a symlink: <CODE>ln -s /path/to/arial.ttf ~/.mplayer/subfont.ttf</CODE></LI> + </UL> + </LI> +</UL> + +<P>If you chose non-TTF fonts, UNZIP the file you downloaded to <CODE>~/.mplayer</CODE> or + <CODE>$PREFIX/share/mplayer</CODE>. Then rename or symlink one of the extracted directories to + <CODE>font</CODE> (like: <CODE>ln -s ~/.mplayer/arial-24 + ~/.mplayer/font</CODE>). Now you have to see a timer at the upper left corner + of the movie (switch it off with the "o" key).</P> + + +<P>OSD has 4 states: (switch with 'o')</P> + +<P>(subtitles are <I>always enabled</I>, for disabling them please read the man + page)</P> + +<UL> + <LI>volume bar + seek bar (default)</LI> + <LI>volume bar + seek bar + timer + file position percentage on seeking</LI> + <LI>volume bar + seek bar + timer + total duration of media</LI> + <LI>subtitles only</LI> +</UL> + +<P>You can change default behaviour by setting <CODE>osdlevel=</CODE> variable + in config file, or the <CODE>-osdlevel</CODE> command line option.</P> + + +<H3><A NAME="menu">1.4.3 OSD menu</A></H3> + +<P>MPlayer has a completely user definiable OSD Menu interface.</P> + +<P><B>NOTE:</B> the Preferences menu is currently UNIMPLEMENTED!</P> + +<H4>Installation</H4> + +<OL> + <LI>compile MPlayer by passing the <CODE>--enable-menu</CODE> parameters to + <CODE>./configure</CODE></LI> + <LI>make sure you have an OSD font installed</LI> + <LI>copy <CODE>etc/menu.conf</CODE> to your <CODE>.mplayer</CODE> + directory</LI> + <LI>copy <CODE>etc/input.conf</CODE> to your <CODE>.mplayer</CODE> + directory, or to the system-wide MPlayer config dir (default: + <CODE>/usr/local/etc/mplayer</CODE>)</LI> + <LI>check and edit <CODE>input.conf</CODE> to enable menu movement + keys (it is described there).</LI> + <LI>start MPlayer by the following example:<BR> + <CODE>$ mplayer -menu file.avi</CODE></LI> + <LI>push any menu key you defined</LI> +</OL> + + +<H2><A NAME="rtc">1.5 RTC</A></H2> + +There are three timing methods in MPlayer. + +<UL> + <LI><B>To use the old method</B>, you don't have to do anything. It uses + <CODE>usleep()</CODE> to tune A/V sync, with +/- 10ms accuracy. However + sometimes the sync has to be tuned even finer.</LI> + <LI><B>The new timer</B> code uses PC's RTC (Real Time Clock) for this task, + because it has precise 1ms timers. It is automagically enabled when + available, but requires root privileges, a <I>setuid root</I> + MPlayer binary or a properly set up kernel. + <BR> + If you are running kernel 2.4.19pre8 or later you can adjust the maximum + RTC frequency for normal users through the <CODE>/proc</CODE> filesystem. + Use this command to enable RTC for normal users: + <P> + <CODE>echo 1024 > /proc/sys/dev/rtc/max-user-freq</CODE> + </P> + If you do not have such a new kernel, you can also change one line in + <CODE>drivers/char/rtc.c</CODE> and recompile your kernel. Find the + section that reads + <PRE> + * We don't really want Joe User enabling more + * than 64Hz of interrupts on a multi-user machine. + */ + if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE))) + </PRE> + and change the 64 to 1024. You should really know what you are doing, though. + <BR> + You can see the new timer's efficiency in the status line. + <BR> + The power management functions of some notebook BIOSes with speedstep CPUs + interact badly with RTC. Audio and video may get out of sync. Plugging the + external power connector in before you power up your notebook seems to help. + You can always turn off RTC support with the <CODE>-nortc</CODE> option. + In some hardware combinations (confirmed during usage of non-DMA DVD + drive on an ALi1541 board) usage of the RTC timer causes skippy playback. + It's recommended to use the third method in these cases.</LI> + <LI><B>The third timer code</B> is turned on with the <CODE>-softsleep</CODE> + option. It has the efficiency of the RTC, but it doesn't use RTC. On the other + hand, it requires more CPU.</LI> +</UL> + +<B>Note:</B> <B>NEVER install a setuid root MPlayer binary on a multiuser system!</B> +It's a clear way for everyone to become root. + + + +<H1><A NAME="features">2. Features</A></H1> + + +<H2><A NAME="formats">2.1</A> <A HREF="formats.html">Supported formats</A></H2> + + +<H2><A NAME="codecs">2.2</A> <A HREF="codecs.html">Supported codecs</A></H2> + + +<H2><A NAME="output">2.3</A> <A HREF="video.html">Video</A> & <A HREF="sound.html">Audio</A> output devices</H2> + + +<H2><A NAME="tv"><B>2.4 TV input</B></A></H2> + +<P>This section is about how to enable <B>watching/grabbing from V4L compatible +TV tuner</B>. See the man page for a description of TV options and keyboard +controls.</P> + +<H3><A NAME="tv_compilation">2.4.1 Compilation</A></H3> + +<OL> + <LI>First, you have to recompile. <CODE>./configure</CODE> will autodetect + kernel headers of v4l stuff and the existence of <CODE>/dev/video*</CODE> + entries. If they exist, TV support will be built (see the output of + <CODE>./configure</CODE>).</LI> + <LI>Make sure your tuner works with another TV software in Linux, for example + xawtv.</LI> +</OL> + +<H3><A NAME="tv_tips">2.4.2 Usage tips</A></H3> + +The full listing of the options is available on the manual page. Here +are just a few tips: + +<UL> + <LI>Use the <CODE>channels</CODE> option. An example:<BR> + <CODE>-tv on:channels=26-MTV1,23-TV2</CODE><BR> + Explanation: using this option, only the 26 and 23 channels will be usable, + and there will be a nice OSD text upon channel switching, displaying the + channel's name. Spaces in the channel name must be replaced by the "_" + character.</LI> + <LI>Choose some sane image dimensions. The dimensions of the resulting image + should be divisible by 16.</LI> + <LI>If you capture the video with the vertical resolution higher than half of + the full resolution (i.e. 288 for PAL or 240 for NTSC), make sure you + turned deinterlacing on. Otherwise you'll get a movie which is distorted + during fast-motion scenes and the bitrate controller will be probably even + unable to retain the specified bitrate as the interlacing artifacts produce + high amount of detail and thus consume lot of bandwidth. You can enable + deinterlacing with <CODE>-vop pp=DEINT_TYPE</CODE>. Usually + <CODE>pp=lb</CODE> does a good job, but it can be matter of personal + preference. See other deinterlacing algorithms in the manual and give it a + try.</LI> + <LI>Crop out the dead space. When you capture the video, the areas at the + edges are usually black or contain some noise. These again consume lots of + unnecessary bandwidth. More precisely it's not the black areas themselves + but the sharp transitions between the black and the brighter video image + which do but that's not important for now. Before you start capturing, + adjust the arguments of the <CODE>crop</CODE> option so that all the crap + at the margins is cropped out. Again, don't forget to keep the resulting + dimensions sane.</LI> + <LI>Watch out for CPU load. It shouldn't cross the 90% boundary for most of + the time. If you have a large capture buffer, MEncoder can survive an + overload for few seconds but nothing more. It's better to turn off the 3D + OpenGL screensavers and similar stuff.</LI> + <LI>Don't mess with the system clock. MEncoder uses the system clock for + doing A/V sync. If you adjust the system clock (especially backwards in + time), MEncoder gets confused and you will lose frames. This is an + important issue if you are hooked to a network and run some time + synchronization software like NTP. You have to turn NTP off during the + capture process if you want to capture reliably.</LI> + <LI>Don't change the <CODE>outfmt</CODE> unless you know what you are doing + or your card/driver really doesn't support the default (YV12 colorspace). + In the older versions of MPlayer/MEncoder it was necessary to specify the + output format. This issue should be fixed in the current releases and + <CODE>outfmt</CODE> isn't required anymore, and the default suits the most + purposes. For example, if you are capturing into DivX using libavcodec and + specify <CODE>outfmt=RGB24</CODE> in order to increase the quality of the + captured images, the captured image will be actually later converted back + into YV12 so the only thing you achieve is a massive waste of CPU power. + </LI> + <LI>To specify the I420 colorspace (<CODE>outfmt=i420</CODE>), you have to + add an option <CODE>-vc rawi420</CODE> due to a fourcc conflict with an + Intel Indeo video codec.</LI> + <LI>There are several ways of capturing audio. You can grab the sound either + using your soundcard via an external cable connection between video card + and line-in, or using the built-in ADC in the bt878 chip. In the latter + case, you have to load the <b>btaudio</b> driver. Read the + <CODE>linux/Documentation/sound/btaudio</CODE> file (in the kernel tree, + not MPlayer's) for some instructions on using this driver.</LI> + <LI>If MEncoder cannot open the audio device, make sure that it is really + available. There can be some trouble with the sound servers like arts + (KDE) or esd (GNOME). If you have a full duplex soundcard (almost any + decent card supports it today), and you are using KDE, try to check the + "full duplex" option in the sound server preference menu.</LI> +</UL> + +<H3><A NAME="tv_examples">2.4.3 Examples</A></H3> + +<P>Dummy output, to AAlib :)<BR> + <CODE> mplayer -tv on:driver=dummy:width=640:height=480 -vo aa</CODE><BR> + <BR> + Input from standard V4L<BR> + <CODE> mplayer -tv +on:driver=v4l:width=640:height=480 -vo xv</CODE><BR> + <BR> + + A more sophisticated example. This makes MEncoder capture the full + PAL image, crop the margins, and deinterlace the picture using + a linear blend algorithm. Audio is compressed with a constant + bitrate of 64kbps, using LAME codec. This setup is suitable for + capturing movies.<BR> <CODE> mencoder -tv + on:driver=v4l:width=768:height=576 \<BR> + -ovc lavc -lavcopts + vcodec=mpeg4:vbitrate=900 \<BR> -oac + mp3lame -lameopts cbr:br=64 \<BR> -vop + pp=lb,crop=720:544:24:16 -o output.avi </CODE><BR> + + <BR> + This will additionally rescale the image to 384x288 and compresses + the video with the bitrate of 350kbps in high quality mode. The + vqmax option looses the quantizer and allows the video compressor to + actualy reach so low bitrate even at the expense of the + quality. This can be used for capturing long TV series, where the + video quality isn't so important.<BR> + <CODE> + mencoder -tv on:driver=v4l:width=768:height=576 \<BR> + -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \<BR> + -oac mp3lame -lameopts cbr:br=48 \<BR> + -vop scale=384:288,pp=tn/lb,crop=720:540:24:18 -sws 1 -o output.avi + </CODE><BR> + + It's also possible to specify smaller image dimensions in the + <CODE>-tv</CODE> option and omit the software scaling but this + approach uses the maximum available information and is a little more + resistant to noise. The bt8x8 chips can do the pixel averaging only + in the horizontal direction due to a hardware limitation.</P> + + +<H2><A NAME="edl">2.5 Edit Decision Lists (EDL)</A></H2> + +<P>The edit decision list (EDL) system allows you to automatically skip or mute + sections of videos during playback, based on a movie specific EDL + configuration file.</P> + +<P>This is useful for those who may want to watch a film in "family-friendly" + mode. You can cut out any violence, profanity, Jar-Jar Binks .. from a movie + according to your own personal preferences. Aside from this, there are other + uses, like automatically skipping over commercials in video files you + watch.</P> + +<P>The EDL file format is pretty bare-bones. Once the EDL system has reached a + certain level of maturity, an XML-based file format will probably be + implemented (keeping backwards compatibility with previous EDL formats).</P> + +<P>The maximum number of EDL entries for the current incarnation of EDL is 1000. + If you happen to need more, change the <CODE>#define MAX_EDL_ENTRIES</CODE> + in the <CODE>edl.h</CODE> file.</P> + +<H3><A NAME="edl_using">2.5.1 Using an EDL file</A></H3> + +<P>Include the <CODE>-edl <filename></CODE> flag when you run MPlayer, + with the name of the EDL file you want applied to the video.</P> + +<H3><A NAME="edl_making">2.5.2 Making an EDL file</A></H3> + +<P>The current EDL file format is:</P> + +<CODE>[begin second] [end second] [action]</CODE> + +<P>Where the seconds are floating-point numbers and the action is either + <CODE>0</CODE> for skip or <CODE>1</CODE> for mute. Example:</P> + +<PRE> +5.3 7.1 0 +15 16.7 1 +420 422 0 +</PRE> + +<P>This will skip from second 5.3 to second 7.1 of the video, then mute at + 15 seconds, unmute at 16.7 seconds and skip from second 420 to second + 422 of the video. These actions will be performed when the playback timer + reaches the times given in the file.</P> + +<P>To create an EDL file to work from, use the + <CODE>-edlout <filename></CODE> flag. During playback, when you want to + mark the previous two seconds to skip over, hit <CODE>i</CODE>. A + corresponding entry will be written to the file for that time. You can then go + back and fine-tune the generated EDL file.</P> + + + +<H1><A NAME="usage">3. Usage</A></H1> + + +<H2><A NAME="command_line">3.1 Command line</A></H2> + +<P>MPlayer utilizes a complex playtree. It consists of global options + written as first (for example <CODE>mplayer -vfm 5</CODE>), and options + written after filenames, that apply only to the given filename/URL/whatever + (for example <CODE>mplayer -vfm 5 movie1.avi movie2.avi -vfm 4</CODE>).<BR> + You can group filenames/URLs together using { and }. It's useful with + option -loop: <CODE>mplayer { 1.avi -loop 2 2.avi } -loop 3</CODE> + will play files in this order: 1 1 2 1 1 2 1 1 2<BR> + </P> + +<TABLE BORDER=0> + <TR><TD> </TD><TD>file</TD><TD> </TD><TD><CODE>mplayer [options] [path/]filename</CODE></TD></TR> + <TR><TD></TD><TD>files</TD><TD></TD><TD><CODE>mplayer [default options] [path/]filename1 [options for filename1] filename2 [options for filename2] ...</CODE></TD></TR> + <TR><TD></TD><TD>VCD</TD><TD></TD><TD><CODE>mplayer [options] -vcd trackno [-cdrom-device /dev/cdrom]</CODE></TD></TR> + <TR><TD></TD><TD>DVD</TD><TD></TD><TD><CODE>mplayer [options] -dvd titleno [-dvd-device /dev/dvd]</CODE></TD></TR> + <TR><TD></TD><TD>WWW</TD><TD></TD><TD><CODE>mplayer [options] http://site.com/file.asf (playlists can be used, too)</CODE></TD></TR> + <TR><TD></TD><TD>RTSP</TD><TD></TD><TD><CODE>mplayer [options] rtsp://server.example.com/streamName</CODE></TD></TR> +</TABLE> + +<P> + Latest versions of MPlayer also accept VCD and DVD tracks in URL style, just like + xine does: <CODE>mplayer dvd://1</CODE> or <CODE>mplayer vcd://1</CODE></P> + +<PRE> + mplayer -vo x11 /mnt/Films/Contact/contact2.mpg + mplayer -vcd 2 + mplayer -afm 3 /mnt/DVDtrailers/alien4.vob + mplayer -dvd 1 -dvd-device /dev/hdc + mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi +</PRE> + + +<H2><A NAME="control">3.2 Control</A></H2> + +<P>MPlayer has a fully configurable, command driven, control layer which + lets you control MPlayer with keyboard, mouse, joystick or remote + control (using LIRC). See the man page for the complete list of keyboard + controls.</P> + + +<H3><A NAME="controls_configuration">3.2.1 Controls configuration</A></H3> + +<P>MPlayer allows you bind any key/button to any MPlayer command + using a simple config file. The syntax consist of a key name followed by a + command. The default config file location is + <CODE>$HOME/.mplayer/input.conf</CODE> but it can be overridden using the + <CODE>-input</CODE> conf option (relative path are relative to + <CODE>$HOME/.mplayer</CODE>). + +<P>Example:</P> + +<PRE> +## +## MPlayer input control file +## + +RIGHT seek +10 +LEFT seek -10 +- audio_delay 0.100 ++ audio_delay -0.100 +q quit +> pt_step 1 +< pt_step -1 +ENTER pt_step 1 1 +</PRE> + + +<H4><A NAME="key_names">3.2.1.1 Key names</A></H4> + +<P>You can have a full list by running <CODE>mplayer -input keylist</CODE></P> + +<H4>Keyboard:</H4> + +<UL> + <LI>Any printable character</LI> + <LI>SPACE</LI> + <LI>ENTER</LI> + <LI>TAB</LI> + <LI>CTRL</LI> + <LI>BS</LI> + <LI>DEL</LI> + <LI>INS</LI> + <LI>HOME</LI> + <LI>END</LI> + <LI>PGUP</LI> + <LI>PGDWN</LI> + <LI>ESC</LI> + <LI>RIGHT</LI> + <LI>LEFT</LI> + <LI>UP</LI> + <LI>DOWN</LI> +</UL> + +<H4>Mouse (only supported under X):</H4> + +<UL> + <LI>MOUSE_BTN0 (Left button)</LI> + <LI>MOUSE_BTN1 (Right button)</LI> + <LI>MOUSE_BTN2 (Middle button)</LI> + <LI>MOUSE_BTN3 (Wheel)</LI> + <LI>MOUSE_BTN4 (Wheel)</LI> + <LI>...</LI> + <LI>MOUSE_BTN9</LI> +</UL> + +<H4>Joystick (support must be enabled at compile time):</H4> + +<UL> + <LI>JOY_RIGHT or JOY_AXIS0_PLUS</LI> + <LI>JOY_LEFT or JOY_AXIS0_MINUS</LI> + <LI>JOY_UP or JOY_AXIS1_MINUS</LI> + <LI>JOY_DOWN or JOY_AXIS1_PLUS</LI> + <LI>JOY_AXIS2_PLUS</LI> + <LI>JOY_AXIS2_MINUS</LI> + <LI>...</LI> + <LI>JOY_AXIS9_PLUS</LI> + <LI>JOY_AXIS9_MINUS</LI> +</UL> + + +<H4><A NAME="commands">3.2.1.2 Commands</A></H4> + +<P>You can have a full list of known commands by running "mplayer -input cmdlist"</P> + +<UL> + <LI><B>seek</B> (int) val [(int) type=0] + <P>Seek to some place in the movie.<BR> + Type 0 is a relative seek of +/- val seconds.<BR> + Type 1 seek to val % in the movie.</P></LI> + <LI><B>audio_delay</B> (float) val + <P>Adjust the audio delay of val seconds</P></LI> + <LI><B>quit</B> + <P>Quit MPlayer</P></LI> + <LI><B>pause</B> + <P>Pause/unpause the playback</P></LI> + <LI><B>grap_frames</B> + <P>Somebody know ?</P></LI> + <LI><B>pt_step</B> (int) val [(int) force=0] + <P>Go to next/previous entry in playtree. Val sign tell the direction.<BR> + If no other entry is available in the given direction it won't do anything + unless force is non 0.</P></LI> + <LI><B>pt_up_step</B> (int) val [(int) force=0] + <P>Like pt_step but it jump to next/previous in the parent list. It's useful + to break inner loop in the playtree.</P></LI> + <LI><B>alt_src_step</B> (int) val + <P>When more than one source is available it select the next/previous one + (only supported by asx playlist).</P></LI> + <LI><B>sub_delay</B> (float) val [(int) abs=0] + <P>Adjust the subtitles delay of +/- val seconds or set it to val seconds + when abs is non zero.</P></LI> + <LI><B>osd</B> [(int) level=-1] + <P>Toggle osd mode or set it to level when level > 0.</P></LI> + <LI><B>volume</B> (int) dir + <P>Increase/decrease volume</P></LI> + <LI><B>contrast</B> (int) val [(int) abs=0]</LI> + <LI><B>brightness</B> (int) val [(int) abs=0]</LI> + <LI><B>hue</B> (int) val [(int) abs=0]</LI> + <LI><B>saturation</B> (int) val [(int) abs=0] + <P>Set/Adjust video parameters. Val range from -100 to 100.</P></LI> + <LI><B>frame_drop</B> [(int) type=-1] + <P>Toggle/Set frame dropping mode.</P></LI> + <LI><B>sub_visibility</B> + <P>Toggle subtitle visibility.</P></LI> + <LI><B>sub_pos</B> (int) val + <P>Adjust subtitles position.</P></LI> + <LI><B>vobsub_lang</B> + <P>Change the language of VobSub subtitles.</P></LI> + <LI><B>vo_fullscreen</B> + <P>Switch fullscreen mode.</P></LI> + <LI><B>tv_step_channel</B> (int) dir + <P>Select next/previous tv channel.</P></LI> + <LI><B>tv_step_norm</B> + <P>Change TV norm.</P></LI> + <LI><B>tv_step_chanlist</B> + <P>Change channel list.</P></LI> + <LI><B>gui_loadfile</B></LI> + <LI><B>gui_loadsubtitle</B></LI> + <LI><B>gui_about</B></LI> + <LI><B>gui_play</B></LI> + <LI><B>gui_stop</B></LI> + <LI><B>gui_playlist</B></LI> + <LI><B>gui_preferences</B></LI> + <LI><B>gui_skinbrowser</B> + <P>GUI actions</P></LI> +</UL> + + +<H3><A NAME="lirc">3.2.2 Control from LIRC</A></H3> + +<P>Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver, + an (almost) arbitrary remote control and control your Linux box with it! + More about it at <A HREF="http://www.lirc.org">www.lirc.org</A>.</P> + +<P>If you have installed the lirc-package, configure will autodetect it. If + everything went fine, MPlayer will print a message like "Setting up + lirc support..." on startup. If an error occurs it will tell you. If it + doesn't tell you anything about LIRC there's no support compiled in. That's + it :-)</P> + +<P>The application name for MPlayer is - oh wonder - <CODE>mplayer</CODE>. + You can use any mplayer commands and even pass more than one command by + separating them with \n. Don't forget to enable the repeat flag in .lircrc + when it make sense (seek, volume, etc). Here's an excerpt from my + .lircrc:</P> + +<PRE> +begin + button = VOLUME_PLUS + prog = mplayer + config = volume 1 + repeat = 1 +end + +begin + button = VOLUME_MINUS + prog = mplayer + config = volume -1 + repeat = 1 +end + +begin + button = CD_PLAY + prog = mplayer + config = pause +end + +begin + button = CD_STOP + prog = mplayer + config = seek 0 1\npause +end +</PRE> + +<P>If you don't like the standard location for the lirc-config file (~/.lircrc) + use the -lircconf <filename> option to specify another file.</P> + + +<H3><A NAME="slave">3.2.3 Slave mode</A></H3> + +<P>The slave mode allow you to build simple frontend to MPlayer. When + enabled (with the <CODE>-slave</CODE> option) MPlayer will read + commands separated by new line (\n) from stdin.</P> + + +<H2><A NAME="streaming">3.3 Streaming from network or pipes</A></H2> + +<P>MPlayer can play files from network, using the HTTP, MMS or RTSP/RTP + protocol.</P> + +<P>Playing goes by simply using adding the URL to the command line. + MPlayer also honors the http_proxy environment variable, and uses + proxy if available. Proxy usage can also be forced:</P> + +<P><CODE>mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf</CODE></P> + +<P>MPlayer can read from stdin (NOT named pipes). This can be for example + used to play from FTP:</P> + +<P><CODE> wget ftp://micorsops.com/something.avi -O - | mplayer -</CODE></P> + +<P>Note: it's also recommended to enable CACHE when playback from network:</P> + +<P><CODE> wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -</CODE></P> + + + +<H1><A NAME="faq">4.</A> <A HREF="faq.html">FAQ section</A></H1> + + + +<H1><A NAME="cd/dvd">5.</A> <A HREF="cd-dvd.html">CD/DVD section</A></H1> + + + +<H1><A NAME="ports">6. Ports</A></H1> + + +<H2><A NAME="linux">6.1 Linux</A></H2> + +<P>The main development platform is Linux on x86, although MPlayer works on many + other Linux ports.</P> + + +<H3><A NAME="debian">6.1.1 Debian packaging</A></H3> + +<P>To build a Debian package, run the following command in the MPlayer source + directory:</P> + +<PRE> + fakeroot debian/rules binary +</PRE> + +<P>As root you can then install the <CODE>.deb</CODE> package as usual:</P> + +<PRE> + dpkg -i ../mplayer_<version>.deb +</PRE> + +<P>Christian Marillat has been making unofficial Debian MPlayer, MEncoder and + font packages for a while, you can (apt-)get them from his + <A HREF="http://marillat.free.fr/">homepage</A>. These packages are highly + unofficial, however, as Christian made and redistributed these packages when + MPlayer was still not fully GPLed and + <A HREF="users_against_developers.html#binary">binary redistribution</A> was + not allowed. Christian ignored requests to stop redistributing his packages, + which caused bad blood with MPlayer developers. Binary redistribution is not + a problem anymore, but we <B>do not support</B> these packages!</P> + + +<H3><A NAME="rpm">6.1.2 RPM packaging</A></H3> + +<P>Dominik Mierzejewski created and maintains official Red Hat RPM packages of + MPlayer. They are available from his + <A HREF="http://www.piorunek.pl/~dominik/linux/pkgs/mplayer/">homepage</A>. + Please read the instructions there and report problems to him, not us.</P> + +<P>There are other RPM versions (SuSE now includes MPlayer in their official + distribution, Mandrake packages are available from the + <A HREF="http://plf.zarb.org/">P.L.F</A>) of MPlayer, but none of them is + officially supported.</P> + + +<H3><A NAME="arm">6.1.3 ARM</A></H3> + +<P>MPlayer works on Linux PDAs with ARM CPU e.g. Sharp Zaurus, Compaq Ipaq. + The easiest way to obtain MPlayer is to get it from one of the + <A HREF="http://www.openzaurus.org">Openzaurus</A> package feeds. + If you want to compile it yourself, you should look at the + <A HREF="http://openzaurus.bkbits.net:8080/buildroot/src/packages/mplayer?nav=index.html|src/.|src/packages">mplayer</A> + and the + <A HREF="http://openzaurus.bkbits.net:8080/buildroot/src/packages/libavcodec?nav=index.html|src/.|src/packages">libavcodec</A> + directory in the OpenZaurus distribution buildroot. These always have the + latest Makefile and patches used for building a CVS MPlayer with libavcodec. + <BR>If you need a GUI frontend, you can use xmms-embedded.</P> + + +<H2><A NAME="bsd">6.2 *BSD</A></H2> + +<P>MPlayer runs on FreeBSD, OpenBSD, NetBSD, BSD/OS and Darwin. There are + ports/pkgsrc/fink/etc versions of MPlayer available that are probably easier + to use than our raw sources.</P> + +<P>To build MPlayer you will need GNU make (gmake - native BSD make will not + work) and a recent version of binutils.</P> + +<P>If MPlayer complains about not finding <CODE>/dev/cdrom</CODE> or + <CODE>/dev/dvd</CODE>, create an appropiate symbolic link:<BR> + <CODE>ln -s /dev/(your_cdrom_device) /dev/cdrom</CODE>.</P> + +<P>To use Win32 DLLs with MPlayer you will need to re-compile the kernel with + "<CODE>option USER_LDT</CODE>" (unless you run FreeBSD -CURRENT, where this + is the default).</P> + +<H3><A NAME="freebsd">6.2.1 FreeBSD</A></H3> + +<P>If your CPU has SSE, recompile your kernel with "options CPU_ENABLE_SSE" to + use it (FreeBSD-STABLE or kernel patches required).</P> + +<H3><A NAME="openbsd">6.2.2 OpenBSD</A></H3> + +<P>Due to limitations in different versions of gas (relocation vs MMX), you will + need to compile in two steps: First make sure that the non-native as is first + in your <CODE>$PATH</CODE> and do a <CODE>gmake -k</CODE>, then make sure that + the native version is used and do <CODE>gmake</CODE>.</P> + + +<H2><A NAME="solaris">6.3 Solaris</A></H2> + +<P>MPlayer should work on Solaris 2.6 or newer.</P> + +<P>On <B>UltraSPARC</B>s, MPlayer takes advantage of their <B>VIS</B> + extensions (equivalent to MMX), currently only in <I>libmpeg2</I>, + <I>libvo</I> and <I>libavcodec</I>, but not in mp3lib. You can watch a VOB + file on a 400MHz CPU. You'll need + <A HREF="http://www.sun.com/sparc/vis/mediaLib.html">mLib</A> installed.</P> + +<P>To build the package you will need GNU make (gmake, /opt/sfw/gmake), native + Solaris make will not work. Typical error you get when building with Solaris' + make instead of GNU make:</P> + +<PRE> + % /usr/ccs/bin/make + make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen +</PRE> + +<P>On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter + if GNU C/C++ compiler is configured with or without the GNU assembler.</P> + +<P>On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler, + configured to use the GNU assembler! The mplayer code on the x86 platform + makes heavy use of MMX, SSE and 3DNOW! instructions that cannot be compiled + using Sun's assembler <CODE>/usr/ccs/bin/as</CODE>.</P> + +<P>The configure script tries to find out, which assembler program is used by + your "gcc" command (in case the autodetection fails, use the + <CODE>--as=/whereever/you/have/installed/gnu-as</CODE> option to tell the + configure script where it can find GNU "as" on your system).</P> + +<P>Error message from configure on a Solaris x86 system using GCC + without GNU assembler:</P> + +<PRE> + % configure + ... + Checking assembler (/usr/ccs/bin/as) ... , failed + Please upgrade(downgrade) binutils to 2.10.1... +</PRE> + +<P>(Solution: Install and use a gcc configured with "--with-as=gas")</P> + +<P>Typical error you get when building with a GNU C compiler that does + not use GNU as:</P> + +<PRE> + % gmake + ... + gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math + -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c + Assembler: mplayer.c + "(stdin)", line 3567 : Illegal mnemonic + "(stdin)", line 3567 : Syntax error + ... more "Illegal mnemonic" and "Syntax error" errors ... +</PRE> + +<P>Due to bugs in Solaris 8, you may not be able to play DVD discs larger + than 4 GB:</P> + +<UL> + <LI>The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk + block >4GB on a device using a logical blocksize != DEV_BSIZE (i.e. CD-ROM + and DVD media). Due to a 32Bit int overflow, a disk address modulo 4GB is + accessed. + (<A HREF="http://groups.yahoo.com/group/solarisonintel/message/22516">http://groups.yahoo.com/group/solarisonintel/message/22516</A>) + <P> + This problem does not exist in the SPARC version of Solaris 8. + </P> + </LI> + <LI>A similar bug is present in the hsfs(7FS) filesystem code (aka + ISO9660), hsfs may not not support partitions/disks larger than 4GB, all data + is accessed modulo 4GB. + (<A HREF="http://groups.yahoo.com/group/solarisonintel/message/22592">http://groups.yahoo.com/group/solarisonintel/message/22592</A>). + <P> + The hsfs problem can be fixed by installing patch 109764-04 (sparc) / + 109765-04 (x86). + </P> + </LI> +</UL> + +<P>On Solaris with an UltraSPARC CPU, you can get some extra speed by + using the CPU's VIS instructions for certain time consuming operations. + VIS acceleration can be used in MPlayer by calling functions in Sun's + <A HREF="http://www.sun.com/sparc/vis/mediaLib.html">mediaLib</A>.</P> + +<P>VIS accelerated operations from mediaLib are used for mpeg2 video + decoding and for color space conversion in the video output drivers.</P> + + +<H2><A NAME="sgi">6.4 Silicon Graphics / IRIX</A></H2> + +<P>You can either try to install the GNU install program, and (if you did not + put it in your global path) then point to the location with:</P> + +<PRE> + ./configure --install-path=PATH +</PRE> + +<P>Or you can use the default install delivered with IRIX 6.5 in which case you + will have to edit the Makefile a littlebit by hand. Change the following two + lines:</P> + +<PRE> + $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 + + $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf +</PRE> + +<P>to:</P> + +<PRE> + $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ + + $(INSTALL) -m 644 codecs.conf $(CONFDIR)/ +</PRE> + +<P>And then do (from within the MPlayer source dir):</P> + +<PRE> + cp DOCS/mplayer.1 . ; cp etc/codecs.conf . +</PRE> + +<P>and then go on with building and installing.</P> + + +<H2><A NAME="qnx">6.5 QNX</A></H2> + +<P>Works. You'll need to download SDL for QNX, and install it. Then run + MPlayer with <CODE>-vo sdl:photon</CODE> and <CODE>-ao sdl:nto</CODE> + options, and it should be fast.</P> + +<P>The <CODE>-vo x11</CODE> output will be even slower than on Linux, since + QNX has only X <I>emulation</I> which is VERY slow. Use SDL.</P> + + +<H2><A NAME="cygwin">6.6 Cygwin</A></H2> + +<P>The Cygwin port is still in its infancy. Currently there is no support for + Win32 DLLs or OpenGL. SDL is known to distort sound and image or crash + on some systems. <A HREF="tech/patches.txt">Patches</A> are always welcome. + Best results are achieved with the native DirectX video output driver + (<CODE>-vo directx</CODE>) and the native Windows waveout audio driver + (<CODE>-ao win32</CODE>). You should also check out the + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">mplayer-cygwin</A> + mailing list for help and latest information.</P> + +<P>You have to copy or symlink <CODE>etc/cygwin_inttypes.h</CODE> from the + MPlayer source directory to <CODE>/usr/include/inttypes.h</CODE> in order to + make MPlayer compile.</P> + +<P>To get native DirectX video, download + <A HREF="http://www.videolan.org/vlc/dx7headers.tgz">DirectX 7 header files</A>, + extract them to <CODE>/usr/include/</CODE> or <CODE>/usr/local/include/</CODE> + and recompile. If the image is distorted, try turning off hardware + acceleration with <CODE>-vo directx:noaccel</CODE>.</P> + +<P>Instructions and files for making SDL run under Cygwin can be found on the + <A HREF="http://www.libsdl.org/extras/win32/cygwin/">libsdl site</A>.</P> + +<P>You can play VCDs by playing the <CODE>.DAT</CODE> or <CODE>.MPG</CODE> files + that Windows exposes on VCDs. It works like this (adjust for the drive letter + of your CD-ROM):</P> + +<P><CODE>mplayer d:/mpegav/avseq01.dat</CODE></P> + +<P><CODE>mplayer /cydrive/d/MPEG2/AVSEQ01.MPG</CODE></P> + +<P>DVDs also work, just set the DVD device correctly to whatever your CD-ROM + device is:</P> + +<P><CODE>mplayer -dvd <title> -dvd-device '\\.\d:'</CODE></P> + +<P>QuickTime DLLs have also been reported to work. Compile with + <CODE>--enable-qtx-codecs</CODE> and put the codecs into the + default Windows DLL location, <CODE>C:\WINNT\system32</CODE> or + <CODE>C:\Windows\system</CODE> depending on your Windows version.</P> + + + +<H1><A NAME="encoding">7.</A> <A HREF="encoding.html">Encoding with MEncoder</A></H1> + + + +<H1><A NAME="mailing_lists">Appendix A - Mailing lists</A></H1> + +<P>There are some public mailing lists on MPlayer. Unless explicitly + stated otherwise the language of these lists is <B>English</B>. Please do + not send messages in other languages or HTML mail! Message size limit is 80k. + If you have something bigger put it up for download somewhere. Click the + links to subscribe. On the mailing lists, the same rules about writing + and quoting apply as on usenet. Please follow them, it makes the life of + those who read your mails a lot easier. If you do not know them please + read <A HREF="http://learn.to/edit_messages">HOWTO edit messages</A> or + (if you are in a hurry) + <A HREF="http://www.xs4all.nl/~hanb/documents/quotingguide.html"> + Quoting HOWTO</A>.</P> + +<UL> + <LI>MPlayer announce list: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-announce">http://mplayerhq.hu/mailman/listinfo/mplayer-announce</A><BR> + List for MPlayer announcements. Subscribe here if you want to get + announcements about new features.</LI> + <LI>MPlayer developers list: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng</A><BR> + This list is about MPlayer development! Talking about interface/API + changes, new libraries, code optimization, configure changes is ontopic + here. Send patches but <B>not</B> bug reports, user questions, feature + requests or flames here to keep the list traffic low.</LI> + <LI>MPlayer users list: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">http://mplayerhq.hu/mailman/listinfo/mplayer-users</A> + <UL> + <LI>Send bug reports here after reading the <A HREF="#known_bugs">Known Bugs</A> + and <A HREF="bugreports.html">bug reporting section</A>).</LI> + <LI>Send feature requests here (after reading the <B>whole</B> + documentation).</LI> + <LI>Send user questions here (after reading the <B>whole</B> + documentation).</LI> + </UL> + </LI> + <LI>MPlayer Hungarian users list: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok">http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok</A> + <UL> + <LI>Hungarian language list</LI> + <LI>Topic? We'll see about it... mostly flame and RTFM questions up to + now :(</LI> + </UL> + </LI> + <LI>MPlayer & Matrox G200/G400/G450/G550 users: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-matrox">http://mplayerhq.hu/mailman/listinfo/mplayer-matrox</A><BR> + Matrox related questions like + <UL> + <LI>things about mga_vid</LI> + <LI>Matrox's official beta drivers (for X 4.x.x)</LI> + <LI>matroxfb-TVout stuff</LI> + </UL> + </LI> + <LI>MPlayer & DVB card users: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">http://mplayerhq.hu/mailman/listinfo/mplayer-dvb</A><BR> + Things related to the hardware decoder card called DVB (<B>not</B> DXR3!). + </LI> + <LI>MPlayer CVS-log: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog">http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog</A><BR> + All changes in MPlayer code are automatically sent to this list. Only + questions about these changes belong here (if you do not understand why a + change is required or you have a better fix or you have noticed a possible + bug/problem in the commit). + </LI> + <LI>MPlayer CygWin-porting list: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin">http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin</A><BR> + List for discussion about MPlayer's CygWin port. + </LI> + <LI>MPlayer OS/2-porting list: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-os2">http://mplayerhq.hu/mailman/listinfo/mplayer-os2</A><BR> + List for discussion about MPlayer's OS/2 port. + </LI> + <LI>MPlayer Weekly News' editors and translators list: + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-mwn">http://mplayerhq.hu/mailman/listinfo/mplayer-mwn</A><BR> + List for discussion about the Weekly News releases. + </LI> +</UL> + +<P><B>Note:</B> You can reach the searchable mailing list archives at + <A HREF="http://www.mplayerhq.hu/cgi-bin/htsearch">http://www.mplayerhq.hu/cgi-bin/htsearch</A>. + + + +<H1><A NAME="bug_reports">Appendix B</A> - <A HREF="bugreports.html">How to report bugs</A></H1> + + + +<H1><A NAME="known_bugs">Appendix C - Known bugs</A></H1> + +<P>Special system/CPU-specific bugs/problems:</P> +<UL> + +<LI>SIGILL (signal 4) on P3 using 2.2.x kernels:<BR> + Problem: kernel 2.2.x doesn't have proper (working) SSE support<BR> + Solution: upgrade kernel to 2.4.x<BR> + Workaround: <CODE>./configure --disable-sse</CODE></LI> + +<LI>General SIGILL (signal 4):<BR> + Problem: you compiled and run mplayer in different machines + (for example compiled on P3 and running on Celeron)<BR> + Solution: compile MPlayer on the same machine where you will use it!<BR> + Workaround: <CODE>./configure --disable-sse</CODE> etc. options</LI> + +<LI>"Internal buffer inconsistency" during MEncoder run:<BR> + Problem: known problem when lame < 3.90 was compiled with gcc 2.96 or 3.x.<BR> + Solution: use lame >=3.90.<BR> + Workaround: compile lame with gcc 2.95.x and remove any already installed + lame packages, they may have been compiled with gcc 2.96.</LI> + +<LI>Messed up MP2/MP3 sound on PPC:<BR> + Problem: known GCC miscompilation bug on PPC platforms, no fix yet.<BR> + Workaround: use FFmpeg's (slow) MP1/MP2/MP3 decoder (<CODE>-ac ffmpeg</CODE>)</LI> + +<LI>sig11 in libmpeg2, when scaling+encoding:<BR> + Problem: known GCC 2.95.2 MMX bug, upgrade to 2.95.3.</LI> +</UL> + +<P>Various A-V sync and other audio problems:</P> + +General audio delay or jerky sound (exists with all or many files): +<UL> + <LI>most common: buggy audio driver! - try to use different drivers, try + ALSA 0.9 OSS emulation with -ao oss, also try -ao sdl, sometimes it helps. + If your file plays fine with -nosound, then you can be sure it's sound card + (driver) problem.</LI> + <LI>audio buffer problems (buffer size badly detected)<BR> + Workaround: mplayer -abs option</LI> + <LI>samplerate problems - maybe your card doesn't support the samplerate + used in your files - try the resampling plugin (-aop)</LI> + <LI>slow machine (CPU or VGA)<BR> + try with -vo null, if it plays well, then you have slow VGA card/driver<BR> + Workaround: buy a faster card or read this documentation about how to speed up<BR> + Also try -framedrop</LI> +</UL> + +Audio delay/de-sync specific to one or a few files: +<UL> + <LI>bad file<BR> + Workaround: + <UL> + <LI>-ni or -nobps option (for non-interleaved or bad files)<BR> + and/or</LI> + <LI>-mc 0 (required for files with badly interleaved VBR audio)<BR> + and/or</LI> + <LI>-delay option or +/- keys at runtime to adjust delay</LI> + </UL> + If none of these help, please upload the file, we'll check (and fix). + </LI> + <LI>your sound card doesn't support 48kHz playback<BR> + Workaround: buy a better sound card... or try to decrease fps by 10% (use + -fps 27 for a 30fps movie) or use the resampler plugin</LI> + <LI>slow machine<BR> + (if A-V is not around 0, and the last number in the status line increasing)<BR> + Workaround: -framedrop</LI> +</UL> + +No sound at all: +<UL> + <LI>your file uses an unsupported audio codec<BR> + Workaround: read the documentation and help us adding support for it</LI> +</UL> + +No picture at all (just plain grey/green window): +<UL> + <LI>your file uses an unsupported video codec<BR> + Workaround: read the documentation and help us adding support for it</LI> + <LI>auto-selected codec can't decode the file, try to select another using -vc + or -vfm options</LI> + <LI>you try to play DivX 3.x file with OpenDivX decoder or XviD (-vc odivx) + - install Divx4Linux and recompile player</LI> +</UL> + +<P>Video-out problems:</P> + +<P>First note: options -fs -vm and -zoom are just recommendations, not (yet) + supported by all drivers. So it isn't a bug if it doesn't work. + Only a few driver supports scaling/zooming, don't expect this from x11 or dga.</P> + +<P>OSD/sub flickering:<BR> + - x11 driver: sorry, it can't be fixed now<BR> + - xv driver: use -double option</P> + +<P>Green image using mga_vid (-vo mga / -vo xmga):<BR> + - mga_vid misdetected your card's RAM amount, reload it using mga_ram_size option</P> + + + +<H1><A NAME="skin">Appendix D</A> - <A HREF="skin.html">MPlayer skin format</A></H1> + + + +<H1><A NAME="flame_wars">Appendix E</A> - <A HREF="users_against_developers.html">Developer Cries</A></H1> + + + +<H1><A NAME="patches">Appendix F</A> - <A HREF="tech/patches.txt">How to send patches</A></H1> + + +</BODY> +</HTML>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/encoding.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,320 @@ +<!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 libavcodec'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>-vop scale=widht: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 -vop 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, Vorbis) 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:</P> + +<UL> + <LI>mjpeg - Motion 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>rv10 - an old RealVideo codec</LI> + <LI>mpeg1video - MPEG1 video :)</LI> + <LI>huffyuv - lossless compression</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 should the player 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 + must be a better feature!</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 files (DVD, SVCD). + Regretfully, there are <U>no</U> video players outside which support this + attribute. Except MPlayer.</P> + +<P>This feature can be used only with <B>libavcodec</B>'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 manpage about 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:aspect=16.0/9.0 -vop crop=714:548:0:14 -oac copy -o output.avi</CODE></P> + +</BODY> +</HTML>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/faq.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,803 @@ +<!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="#compilation">5.1 Compilation</A></LI> + <LI><A HREF="#general">5.2 General questions</A></LI> + <LI><A HREF="#playback">5.3 Playback problems</A></LI> + <LI><A HREF="#driver">5.4 Video/audio driver problems (vo/ao)</A></LI> + <LI><A HREF="#dvd">5.5 DVD playback</A></LI> + <LI><A HREF="#features">5.6 Feature requests</A></LI> + <LI><A HREF="#encoding">5.7 Encoding</A></LI> +</UL> + + +<H2><A NAME="compilation">5.1 Compilation</A></H2> + +<DL> + + <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 does "No such file or directory" mean?</DT> + <DD>A: Probably there is no such file or directory.</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 G200/G400, how do I compile/use the mga_vid driver?</DT> + <DD>A: Read the <A HREF="video.html#mga_vid">mga_vid documentation</A>.</DD> + <DD> </DD> + + <DT>Q: Are there rpm/deb/... packages of MPlayer?</DT> + <DD>A: You can make a .deb package for yourself, check the + <A HREF="documentation.html#debian">Debian packaging</A> section. + There are links to official Red Hat RPM packages available on our + <A HREF="http://www.mplayerhq.hu/homepage/dload.html">download page</A>.</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: 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: 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> + +</DL> + + +<H2><A NAME="general">5.2 General questions</A></H2> + +<DL> + + <DT>Q: How do I create a proper patch for MPlayer?</DT> + <DD>A: We made a <A HREF="tech/patches.txt">short document</A> describing + all the necessary details. Please follow the 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: 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: 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> option and read 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/lib/win32/</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: Are there any mailing lists on MPlayer?</DT> + <DD>A: Yes. See the bottom of the info page on + <A HREF="http://www.mplayerhq.hu/homepage/info.html">our homepage</A> to + subscribe.</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: 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>-vop 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> + +</DL> + + +<H2><A NAME="playback">5.3 Playback problems</A></H2> + +<DL> + + <DT>Q: I can play certain AVIs but I get no sound and this kind of error: + <PRE> + Detected audio codec: [divx] afm:4 (DivX audio (WMA)) + Requested audio codec family [divx] (afm=4) not available (enable it at + compile time!) + </PRE> + </DT> + <DD>A: Probably the audio uses a codec not natively supported by + MPlayer. Install the Win32 codec package as described in the README + or in the <A HREF="documentation.html#installation">Installation</A> section.</DD> + <DD> </DD> + + <DT>Q: ... works with avifile/aviplay but doesn't with MPlayer.</DT> + <DD>A: MPlayer is not avifile. + The only common thing between these players is the Win32 DLL loader. + The codecs (DLL) set, synchronization, demultiplexing etc is totally + different and shouldn't be compared. + If something works with aviplay it doesn't mean that MPlayer will + work and vice versa.</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 <A HREF="bugreports.html">this</A> and upload the file to FTP.</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: I got this playing MPEG files: Can't find codec for video format + 0x10000001!</DT> + <DD>A: You have an old version of codecs.conf at <CODE>~/.mplayer/</CODE>. + Upgrade it from <CODE>/etc/</CODE>.<BR> + <B>OR</B> you have the <CODE>vc=</CODE> option or something similar in your + config file(s).</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: I have an AVI that produces a gray screen when played with + <CODE>-vc odivx</CODE> and a green one with <CODE>-vc divx4</CODE>.</DT> + <DD>A: It's not a DivX file, but an M$ MPEG4v3. Update your codecs.conf.</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: Disable the Windows DLL in <CODE>codecs.conf</CODE>, or use the + <CODE>-vc ffmjpeg</CODE> option (compile MPlayer with libavcodec for this + to work).</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 input + documentation</A>).</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: 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: All the WMV (or other..) files I play create a green/gray window and + there is only sound! MPlayer prints:<BR> + <CODE>Detected video codec: [null] drv:0 (NULL codec (no decoding))</CODE></DT> + <DD>A: Update your <CODE>codecs.conf</CODE>.</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> + +</DL> + + +<H2><A NAME="driver">5.4 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">documentation</A>. 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: When I use the GUI with SDL video output, a second video window is + created.</DT> + <DD>A: Known, don't use SDL for the GUI yet.</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> + +</DL> + + +<H2><A NAME="dvd">5.5 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> of the + documentation.</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> of the documentation).</DD> + +</DL> + + +<H2><A NAME="features">5.6 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: Where is the Windows version?</DT> + <DD>A: It's not released, and won't be. Look around the Windows scene (open + source ASF parsers, open source ASF encoders, etc) and you'll know why. We + don't want to go to jail. BTW you can compile it yourself, under + <A HREF="documentation.html#cygwin">Cygwin</A>.</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.7 Encoding</A></H2> + +<DL> + + <DT>Q: How can I encode?</DT> + <DD>A: Read the MEncoder <A HREF="encoding.html">documentation</A>.</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> + +</DL> + +</BODY> +</HTML>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/formats.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,320 @@ +<!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 the <CODE>-vcd</CODE> option to play the 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>OpenDMS</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>--withxmmslibdir</CODE> + options.</P> + +</BODY> +</HTML>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/mplayer.1 Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,3524 @@ +.\" MPlayer (C) 2000-2003 Arpad Gereoffy +.\" This man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann +.\" +.\" Run this to get a html version of the man page: +.\" cat mplayer.1 | sed s/SS\ 20/SS\ 4/ | groff -man -Thtml - > manpage.html +.\" Run this to get a text version of the man page: +.\" groff -m man -Tascii mplayer.1 | col -bx > manpage.txt +.\" +. +.\" -------------------------------------------------------------------------- +.\" Macro definitions +.\" -------------------------------------------------------------------------- +. +.\" default indentation is 7, don't change! +.nr IN 7 +.\" define indentation for suboptions +.nr SS 20 +.\" add new suboption +.de IPs +.IP "\\$1" \n(SS +.. +.\" begin of first level suboptions, end with .RE +.de RSs +.RS \n(IN+3 +.. +.\" begin of 2nd level suboptions +.de RSss +.PD 0 +.RS \n(SS+3 +.. +.\" end of 2nd level suboptions +.de REss +.RE +.PD 1 +.. +. +.\" -------------------------------------------------------------------------- +.\" Title +.\" -------------------------------------------------------------------------- +. +.TH MPlayer 1 "2003-01-11" +. +.SH NAME +mplayer \- Movie Player for Linux +.br +mencoder \- Movie Encoder for Linux + +.\" -------------------------------------------------------------------------- +.\" Synopsis +.\" -------------------------------------------------------------------------- +. +.SH SYNOPSIS +.na +.nh +.B mplayer +.RI [options]\ [ \ file\ | \ URL\ | \ playlist\ | \ -\ ] +.br +.B mplayer +'in +\n[.k]u +[global options] +.I file1 +[specific options] [file2] [specific options] +.br +.in +.B mplayer +'in +\n[.k]u +[global options] +.RI { "group of files and options" } +[group specific options] +.br +.in +.B mplayer +'in +\n[.k]u +.RI [ dvd | vcd | cdda | cddb | tv ] ://title +[options] +.br +.in +.B mplayer +'in +\n[.k]u +.RI [ mms[t] | http | http_proxy | rt[s]p ] :// +[user:passwd@]\fIURL\fP[:port] [options] +.br +.in +.B mencoder +[options] +.RI [ \ file\ | \ URL\ | \ -\ ] +[\-o\ file] +.br +.B gmplayer +[options] +[\-skin\ skin] +.ad +.hy + +.\" -------------------------------------------------------------------------- +.\" Description +.\" -------------------------------------------------------------------------- +. +.SH DESCRIPTION +.B mplayer +is a movie player for LINUX (runs on many other Unices and non\-x86 CPUs, see +the documentation). +It plays most MPEG/\:VOB, AVI, ASF/\:WMA/\:WMV, RM, QT/\:MOV/\:MP4, OGG/\:OGM, +VIVO, FLI, NuppelVideo, yuv4mpeg, FILM and RoQ files, supported by many +native, XAnim, and Win32 DLL codecs. +You can watch VideoCD, SVCD, DVD, 3ivx, DivX\ 3/\:4/\:5 and even WMV movies, +too (without using the avifile library). +.PP +Another great feature of MPlayer is the wide range of supported output +drivers. +It works with X11, XV, DGA, OpenGL, SVGAlib, fbdev, AAlib, DirectFB, but you +can also use GGI, SDL (and this way all their drivers), VESA (on every VESA +compatible card, even without X11), some low level card-specific drivers (for +Matrox, 3Dfx and ATI) and some hardware MPEG decoder boards, such as the +Siemens DVB, DXR2 and DXR3/\:Hollywood+. +Most of them support software or hardware scaling, so you can enjoy movies in +fullscreen. +.PP +MPlayer has an onscreen display (OSD) for status information, nice big +antialiased shaded subtitles and visual feedback for keyboard controls. +European/\:ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic and Korean +fonts are supported along with 10 subtitle formats (MicroDVD, SubRip, +SubViewer, Sami, VPlayer, RT, SSA, AQTitle, JACOsub and our own: MPsub) and +DVD subtitles (SPU streams, VobSub and Closed Captions). +.PP +.B mencoder +(MPlayer's Movie Encoder) is a simple movie encoder, designed to encode +MPlayer-playable movies (see above) to other MPlayer-playable formats (see +below). +It encodes to DivX4, XviD, one of the libavcodec codecs and PCM/\:MP3/\:VBRMP3 +audio in 1, 2 or 3\ passes. +Furthermore it has stream copying abilities, a powerful plugin system (crop, +expand, flip, postprocess, rotate, scale, noise, rgb/\:yuv conversion) and +more. +.PP +.B gmplayer +is MPlayer with a graphical user interface. +It has the same options as MPlayer. + + +.\" -------------------------------------------------------------------------- +.\" Options +.\" -------------------------------------------------------------------------- +. +.SH "GENERAL NOTES" +.B Also see the HTML documentation! +.PP +Every 'flag' option has a 'noflag' counterpart, e.g.\& the opposite of the +\-fs option is \-nofs. +.PP +You can put all of the options in a configuration file which will be read +every time mplayer is run. +The system-wide configuration file 'mplayer.conf' is in your configuration +directory (e.g.\& /etc/\:mplayer or /usr/\:local/\:etc/\:mplayer), the user +specific one is '~/\:.mplayer/\:config'. +User specific options override system\-wide options and options given on the +command line override either. +The syntax of the configuration files is 'option=<value>', everything after a +\'#' is considered a comment. +Options that work without values can be enabled by setting them to 'yes' or +\'1' and disabled by setting them to 'no' or '0'. +Even suboptions can be specified in this way. + +.I EXAMPLE: +.br +# Use Matrox driver by default. +.br +vo=xmga +.br +# I love practicing handstands while watching videos. +.br +flip=yes +.br +# Decode/\:encode multiple files from png, start with -mf on +.br +mf= type=png:fps=25 + +You can also write file-specific configuration files. +If you wish to have a config file for a file called 'movie.avi', create a file +named 'movie.avi.conf' with the file-specific options in it and put it in +~/.mplayer or in the same directory as the file. + +.SH "PLAYER OPTIONS (MPLAYER ONLY)" +.TP +.B \-, \-use-stdin +Read data from stdin. +The \-idx option does not work in conjunction with this. +.TP +.B \-autoq <quality> (use with \-vop pp) +Dynamically changes the level of postprocessing depending on available spare +CPU time. +The number you specify will be the maximum level used. +Usually you can use some big number. +You have to use \-vop pp without parameters in order to use this. +.TP +.B \-autosync <factor> +Gradually adjusts the A/\:V sync based on audio delay measurements. +Specifying \-autosync\ 0, the default, will cause frame timing to be based +entirely on audio delay measurements. +Specifying \-autosync\ 1 will do the same, but will subtly change the A/\:V +correction algorithm used. +An uneven video frame rate in a movie which plays fine with \-nosound can +often be helped by setting this to an integer value greater than 1. +The higher the value, the closer the timing will be to -nosound. +Try \-autosync\ 30 to smooth out problems with sound drivers which do +not implement a perfect audio delay measurement. +With this value, if large A/\:V sync offsets occur, they will only take about +1 or 2\ seconds to settle out. +This delay in reaction time to sudden A/\:V offsets should be the only +side-effect of turning this option on, for all sound drivers. +.TP +.B \-benchmark +Prints some statistics on CPU usage and dropped frames at the end. +Use in combination with \-nosound and \-vo null for benchmarking only the +video codec. +.TP +.B \-edl <filename> +Enables edit decision list (EDL) actions during playback. +Video will be skipped over and audio will be muted and unmuted according to +the entries in the given file. +See DOCS/documentation.html#edl for details on how to use this. +.TP +.B \-edlout <filename> +Creates a new file and writes edit decision list (EDL) records to that file. +During playback, when the user hits 'i', an entry to skip over the last two +seconds of playback will be written to the file. +This provides a starting point from which the user can fine-tune EDL entries +later. +See DOCS/documentation.html#edl for details. +.TP +.B \-enqueue (GUI only) +Enqueue files given on the command line in the playlist instead of playing them +immediately. +.TP +.B \-fixed-vo (BETA CODE!) +Enforces a fixed video system for multiple files (one (un)initialisation for +all files). +Therefore only one window will be opened for all files. +Currently the following drivers are fixed-vo compliant: x11, xv, xvidix, xmga, +gl2, and svga. +.TP +.B \-framedrop (also see \-hardframedrop) +Skip displaying some frames to maintain A/\:V sync on slow systems. +Video filters are not applied to such frames. +For B frames even decoding is skipped completely. +.TP +.B \-h, \-help, \-\-help +Show short summary of options. +.TP +.B \-hardframedrop +More intense frame dropping (breaks decoding). +Leads to image distortion! +.TP +.B \-identify +Show file parameters in easy parsable format. +The wrapper script TOOLS/midentify suppresses the other mplayer output and +(hopefully) shellescapes the filenames. +.TP +.B \-input <commands> +This option can be used to configure certain parts of the input system. +Paths are relative to ~/\:.mplayer/. + +.I NOTE: +.br +Autorepeat is currently only supported by joysticks. +.br +Available commands are: + +.PD 0 +.RSs +.IPs conf=<file> +Read alternative input.conf. +If given without pathname, ~/\:.mplayer is assumed. +.IPs ar\-delay +Delay in msec before we start to autorepeat a key (0 to disable). +.IPs ar\-rate +How many key presses per second when we autorepeat. +.IPs keylist +Prints all keys that can be bound. +.IPs cmdlist +Prints all commands that can be bound. +.IPs js\-dev +Specifies the joystick device to use (default is /dev/\:input/\:js0). +.IPs file +Read commands from the given file. +Mostly useful with a fifo. +.RE +.PD 1 +. +.TP +.B \-lircconf <file> +Specifies a configuration file for LIRC (Linux Infrared Remote Control, see +http://www.lirc.org) if you don't like the default ~/\:.lircrc. +.TP +.B \-loop <number> +Loops movie playback <number> times. +0 means forever. +.TP +.B \-menu (BETA CODE) +Turn on OSD menu support. +.TP +.B \-menu-root <value> (BETA CODE) +Specify the main menu. +.TP +.B \-menu-cfg <file> (BETA CODE) +Use an alternative menu.conf. +.TP +.B \-nojoystick +Turns off joystick support. +Default is on, if compiled in. +.TP +.B \-nolirc +Turns off LIRC support. +.TP +.B \-nortc \ \ +Turns off usage of the Linux RTC (real-time clock \- /dev/\:rtc) as timing +mechanism. +.TP +.B \-playlist <file> +Play files according to a playlist (1 file per row or Winamp or ASX format). +.TP +.B \-quiet \ \ +Display less output and status messages. +.TP +.B \-really\-quiet \ \ +Display even less output and status messages. +.TP +.B \-sdp +Specifies that the input file is a SDP ('Session Description Protocol') +file that describes an RTP session (see http://www.live.com/mplayer/). +.TP +.B \-shuffle \ \ +Play files in random order. +.TP +.B \-skin <skin\ directory> (BETA CODE) +Load skin from the given directory (WITHOUT path name). + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-skin fittyfene" +tries Skin/fittyfene. +It first checks +/usr/local/share/mplayer/ +and afterwards ~/.mplayer/. +.RE +.PD 1 +. +.TP +.B \-slave \ \ +This option switches on slave mode. +This is intended for use of MPlayer as a backend to other programs. +Instead of intercepting keyboard events, MPlayer will read simplistic command +lines from its stdin. +The section +.B SLAVE MODE PROTOCOL +explains the syntax. +.TP +.B \-softsleep +Uses high quality software timers. +As precise as the RTC without requiring special privileges. +Comes at the price of higher CPU consumption. +.TP +.B \-speed <0.01\-100> +Set playback speed rate. +.TP +.B \-sstep <sec> +Specifies seconds between displayed frames. +Useful for slideshows. + + +.SH "DEMUXER/STREAM OPTIONS" +.TP +.B \-aid <id> (also see \-alang option) +Select audio channel [MPEG: 0\-31 AVI/\:OGM: 1\-99 ASF/\:RM: 0\-127 +VOB(AC3): 128\-159 VOB(LPCM): 160\-191] +MPlayer prints the available IDs when running in verbose (-v) mode. +.TP +.B \-alang <two letter\ country\ code> (also see \-aid option) +Works only for DVD playback. +It selects the DVD audio language and always tries to play audio streams whose +language matches the given code. +For the list of available languages, use with the \-v option and look at the +output. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-alang hu,en" +Plays Hungarian and falls back to English if Hungarian is not available. +.RE +.PD 1 +. +.TP +.B \-audio\-demuxer <number> (\-audiofile only) +Force audio demuxer type for \-audiofile. +Give the demuxer ID as defined in demuxers.h. +Use \-audio\-demuxer 17 to force .mp3 detection. +.TP +.B \-audiofile <filename> +Play audio from an external file (WAV, MP3 or Ogg Vorbis) while viewing a +movie. +.TP +.B \-bandwidth <value> +Specify the maximum bandwidth for network streaming (for servers that are +able to send content in different bitrates). +Usefull if you want to watch live streamed media behind a slow connection. +.TP +.B \-cdrom\-device <path\ to\ device> +Override default CDROM drive name /dev/\:cdrom. +.TP +.B \-cache <kbytes> +This option specifies how much memory (in kbytes) to use when precaching a +file/\:URL. +Especially useful on slow media (default is \-nocache). +.TP +.B \-cdda <option1:option2> +This option can be used to tune the CD Audio reading feature of MPlayer. +.br +Available options are: +. +.RSs +.IPs speed=<value> +set CD spin speed +.IPs paranoia=<0\-2> +set paranoia level +.RSss +0: disable checking +.br +1: overlap checking only (default) +.br +2: full data correction and verification +.REss +.IPs generic-dev=<value> +use specified generic SCSI device +.IPs sector-size=<value> +atomic read size +.IPs overlap=<value> +force minimum overlap search during verification to <value> sectors. +.IPs toc-bias +Assume that the beginning offset of track 1 as reported in the TOC will be +addressed as LBA\ 0. +Some Toshiba drives need this for getting track boundaries correct. +.IPs toc-offset=<value> +Add <value> sectors to the values reported when addressing tracks. +May be negative. +.IPs (no)skip +(never) accept imperfect data reconstruction. +.RE +. +.TP +.B \-channels <number> +Change the number of playback channels, defaults to '2' if not specified. +If the number of output channels is bigger than the number of input channels +empty channels are inserted (unless mixing from mono to stereo, then the mono +channel is repeated in both output channels). +If the number of output channels is smaller than the number of input channels, +results depend on the audio decoder (\-afm). +MPlayer asks the decoder to decode the audio into as many channels as +specified. +Now it's up to the decoder to fulfill the requirement. +If the decoder outputs more channels than requested, the exceeding channels +are truncated. +This is usually only important when playing videos with AC3 audio (like DVDs). +In that case liba52 does the decoding by default and correctly downmixes the +audio into the requested number of channels. + +.I NOTE: +.br +This option is honored by codecs (AC3 only) filters (surround) and ao drivers +(OSS at least). +.br +Available options are: + +.PD 0 +.RSs +.IPs 2 +Stereo +.IPs 4 +Surround +.IPs 6 +Full 5.1 +.RE +.PD 1 +. +.TP +.B \-chapter <chapter\ id>[-<end\ chapter\ id>] +Specify which chapter to start playing at. +Optionally specify which chapter to end playing at (default: 1). +Examples can be found below. +.TP +.B \-csslib <filename> +(old-style DVD option) This option is used to override the default location of +libcss.so. +.TP +.B \-cuefile <filename> (see \-vcd too) +Play (S)VCD from CDRwin's (bin/cue fileformat) disk image, described by the +specified file. +.TP +.B \-demuxer <number> +Force demuxer type. +Give the demuxer ID as defined in demuxers.h. +Use \-demuxer 17 to force .mp3 detection. +.TP +.B \-dumpaudio (MPLAYER only) +Dumps raw compressed audio stream to ./\:stream.dump (useful with mpeg/\:ac3). +.TP +.B \-dumpfile <filename> (MPLAYER only) +Specify which file MPlayer should dump to. +Should be used together with \-dumpaudio / \-dumpvideo / \-dumpstream. +.TP +.B \-dumpstream (MPLAYER only) +Dumps the raw stream to ./\:stream.dump. +Useful when ripping from DVD or network. +.TP +.B \-dumpvideo (MPLAYER only) +Dump raw compressed video stream to ./\:stream.dump (not very usable). +.TP +.B \-dvd <title\ id> +Tell MPlayer which movies (specified by title id) to play. +For example sometimes '1' is a trailer, and '2' is the real movie. + +.I NOTE: +.br +Sometimes deinterlacing is required for DVD playback, +see the \-vop pp=0x20000 option. +.TP +.B \-dvd\-device <path\ to\ device> +Override default DVD device name /dev/\:dvd. +.TP +.B \-dvdangle <angle\ id> +Some DVD discs contain scenes that can be viewed from multiple angles. +Here you can tell MPlayer which angles to use (default: 1). +Examples can be found below. +.TP +.B \-dvdauth <DVD\ device> +(old-style DVD option) Turns on DVD authentication using the given device. +.TP +.B \-dvdkey <CSS\ key> +(old-style DVD option) When decoding a VOB file copied undecrypted from DVD, +this option gives the CSS key needed to decrypt the VOB (the key is printed +when authenticating with the DVD drive using \-dvdauth). +.TP +.B \-dvdnav (BETA CODE!) +Force usage of libdvdnav. +.TP +.B \-forceidx +Force rebuilding of INDEX. +Useful for files with broken index (desyncs, etc). +Seeking will be possible. +You can fix the index permanently with MEncoder (see the documentation). +.TP +.B \-fps <value> +Override video framerate (if value is wrong/\:missing in the header) (float +number). +.TP +.B \-frames <number> +Play/\:convert only first <number> frames, then quit. +.TP +.B \-hr\-mp3\-seek (.MP3 only) +Hi\-res mp3 seeking. +Default is: enabled when playing from external MP3 file, as we need to seek +to the very exact position to keep A/\:V sync. It can be slow especially when +seeking backwards \- it has to rewind to the beginning to find the exact +frame. +.TP +.B \-idx (also see \-forceidx) +Rebuilds INDEX of the AVI if no INDEX was found, +thus allowing seeking. +Useful with broken/\:incomplete downloads, or badly created AVIs. +.TP +.B \-mc <seconds/frame> +Maximum A-V sync correction per frame (in seconds). +.TP +.B \-mf <option1:option2:...> +Used when decoding from multiple PNG or JPEG files. +.br +Available options are: + +.PD 0 +.RSs +.IPs on\ \ \ +turns on multifile support +.IPs w=<value> +width of the output (autodetect) +.IPs h=<value> +height of the output (autodetect) +.IPs fps=<value> +fps of the output (default: 25) +.IPs type=<value> +type of input files (available types: jpeg, png, tga) +.RE +.PD 1 +. +.TP +.B \-ni (.AVI only) +Force usage of non\-interleaved AVI parser (fixes playing +of some bad AVI files). +.TP +.B \-nobps (.AVI only) +Do not use average byte/\:sec value for A\-V sync (AVI). +Helps with some AVI files with broken header. +.TP +.B \-noextbased +Disables filename-extension based demuxer selection. +By default, when file type (demuxer) cannot be detected reliably +(the file has no header or it is not reliable enough), the filename +extension is used to select demuxer. It always falls back to content-based +demuxer selection. +.TP +.B \-passwd <password> (see \-user option too) +Specify password for http authentication. +.TP +.B \-rawaudio <option1:option2:...> +This option lets you play raw audio files. +It may also be used to play audio CDs which are not 44KHz 16Bit stereo. +.br +Available options are: + +.PD 0 +.RSs +.IPs on\ \ \ +use raw audio demuxer +.IPs channels=<value> +number of channels +.IPs rate=<value> +rate in samples per second +.IPs samplesize=<value> +sample size in byte +.IPs format=<value> +fourcc in hex +.RE +.PD 1 +. +.TP +.B \-rawvideo <option1:option2:...> +This option lets you play raw video files. +.br +Available options are: + +.PD 0 +.RSs +.IPs on\ \ \ +use raw video demuxer +.IPs fps=<value> +rate in frames per second, default 25.0 +.IPs sqcif|qcif|cif|4cif|pal|ntsc +set standard image size +.IPs w=<value> +image width in pixels +.IPs h=<value> +image height in pixels +.IPs y420|yv12|yuy2|y8 +set colorspace +.IPs format=<value> +colorspace (fourcc) in hex +.IPs size=<value> +frame size in bytes +.RE +.PD 1 +. +.TP +.B \-rtsp-stream-over-tcp +Used with 'rtsp://' URLs to specify that the resulting incoming RTP and RTCP +packets be streamed over TCP (using the same TCP connection as RTSP). +This option may be useful if you have a broken Internet connection that does +not pass incoming UDP packets (see http://www.live.com/mplayer/). +.TP +.B \-skipopening +Skip DVD opening (dvdnav only). +.TP +.B \-sb <byte\ position> (see \-ss option too) +Seek to byte position. +Useful for playback from CDROM images / .VOB files with junk at the beginning. +.TP +.B \-srate <Hz> +Forces the given audio playback rate, changing video speed to keep a-v sync. +MEncoder passes this value to lame for resampling. +.TP +.B \-ss <time> (see \-sb option too) +Seek to given time position. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-ss 56" +seeks to 56 seconds +.IPs "\-ss 01:10:00" +seeks to 1\ hour 10\ min +.RE +.PD 1 +. +.TP +.B \-tv <option1:option2:...> +This option enables the TV grabbing feature of MPlayer. + +.I NOTE: +.br +MPlayer doesn't accept colons so type dots instead in the device ID +(e.g.\& hw.0,0 instead of hw:0,0). +.br +Be advised that although you can select any samplerate when using ALSA, +the LAME audio codec is able to encode only the 'standard' samplerates. +You'll get an .avi file with no sound when you choose an odd +samplerate and use this codec. +.br +Available options are: +. +.RSs +.IPs on\ \ \ +use TV input +.IPs noaudio +no sound +.IPs driver=<value> +available: dummy, v4l, bsdbt848 +.IPs device=<value> +Specify other device than the default /dev/\:video0. +.IPs input=<value> +Specify other input than the default 0 (Television) (see output for a list) +.IPs freq=<value> +Specify the frequency to set the tuner to (e.g.\& 511.250). +Not compatible with channels parameter. +.IPs outfmt=<value> +output format of the tuner (yv12, rgb32, rgb24, rgb16, rgb15, uyvy, yuy2, +i420) +.IPs width=<value> +width of the output window +.IPs height=<value> +height of the output window +.IPs fps=<value> +framerate at which to capture video (frames per second) +.IPs buffersize=<value> +maximum size of the capture buffer in megabytes (default: dynamical) +.IPs norm=<value> +available: PAL, SECAM, NTSC +.IPs channel=<value> +Set tuner to <value> channel. +.IPs chanlist=<value> +available: europe-east, europe-west, us-bcast, us-cable, etc +.IPs channels=<channel>\-<name>,<channel>\-<name>,... +Set names for channels. +Use _ for spaces in names (or play with quoting ;-). +The channel names will then be written using OSD, and the commands tv_step_channel, +tv_set_channel and tv_last_channel will then be usable using a remote (see lirc). +Not compatible with frequency parameter. +Warning: The channel number will then be the position in the 'channels' list, +beginning with 1. +Example: use tv://1, tv://2, tv_set_channel 1, tv_set_channel 2, etc. +.IPs audiorate=<value> +set audio capture bitrate +.IPs forceaudio +capture audio even if there are no audio sources reported by v4l +.IPs alsa +capture from ALSA +.IPs amode=<0\-3> +choose an audio mode: +.RSss +0: mono +.br +1: stereo +.br +2: language 1 +.br +3: language 2 +.REss +.IPs forcechan=<1\-2> +By default, the count of recorded audio channels is determined automatically +by querying the audio mode from the tv card. +This option allows to force stereo/\:mono recording regardless of the amode +option and the values returned by v4l. +This can be used for troubleshooting when the tv card is unable to report the +current audio mode. +.IPs adevice=<value> +set an audio device +.RSss +/dev/\:...\& for OSS +.br +hardware ID for ALSA +.REss +.IPs audioid=<value> +choose an audio output of the capture card, if it has more of them +.IPs "[volume|bass|treble|balance]=<0\-65535>" +These options set parameters of the mixer on the video capture card. +They will have no effect, if your card doesn't have one. +.IPs immediatemode=<bool> +A value of 0 means capture and buffer audio and video together +(default for mencoder). +A value of 1 (default for mplayer) means to do video capture only and let the +audio go through a loopback cable from the TV card to the soundcard. +.RE +. +.TP +.B \-user <user name> (see \-passwd option too) +Specify user name for http authentication. +.TP +.B \-vcd <track> +Play video CD track from a device or image file (see \-cuefile). +.TP +.B \-vid <id> +Select video channel [MPG: 0\-15 ASF: 0\-255]. +.TP +.B \-vivo <sub\-options> (DEBUG CODE) +Force audio parameters for the .vivo demuxer (for debugging purposes). + + +.SH "OSD/SUB OPTIONS" +.I NOTE: +.br +See \-vop expand too. +.TP +.B \-dumpmicrodvdsub (MPLAYER only) +Convert the given subtitle (specified with the \-sub option) to the +MicroDVD subtitle format. +Creates a dumpsub.sub file in the current directory. +.TP +.B \-dumpmpsub (MPLAYER only) +Convert the given subtitle (specified with the \-sub option) to MPlayer's +subtitle format, MPsub. +Creates a dump.mpsub file in the current directory. +.TP +.B \-dumpsrtsub (MPLAYER only) +Convert the given subtitle (specified with the \-sub option) to the time-based +SubViewer (SRT) subtitle format. +Creates a dumpsub.srt file in the current directory. +.TP +.B \-dumpjacosub (MPLAYER only) +Convert the given subtitle (specified with the \-sub option) to the time-based +JACOsub subtitle format. +Creates a dumpsub.js file in the current directory. +.TP +.B \-dumpsami (MPLAYER only) +Convert the given subtitle (specified with the \-sub option) to the time-based +SAMI subtitle format. +Creates a dumpsub.smi file in the current directory. +.TP +.B \-dumpsub (MPLAYER only) (BETA CODE) +Dumps the subtitle substream from VOB streams. +See -dump*sub and -vobsubout* options too. +.TP +.B \-ifo <vobsub\ ifo\ file> +Indicate the file that will be used to load palette and frame size for VOBSUB +subtitles. +.TP +.B \-ffactor <number> +Resample alphamap of the font. +Can be: + +.PD 0 +.RSs +.IPs 0\ \ \ \ +plain white fonts +.IPs 0.75\ \ +very narrow black outline (default) +.IPs 1\ \ \ \ +narrow black outline +.IPs 10\ \ \ +bold black outline +.RE +.PD 1 +. +.TP +.B \-font <path\ to\ font.desc\ file> +Search for the OSD/\:SUB fonts in an alternative directory (default for normal +fonts: ~/\:.mplayer/\:font/\:font.desc, default for FreeType fonts: +~/.mplayer/\:subfont.ttf). + +.I NOTE: +.br +With FreeType, this option determines path to the text font file. +.br +The \-subfont-* options are available only with FreeType support compiled in. + +.I EXAMPLE: +.PD 0 +.RSs +\-font ~/\:.mplayer/\:arial\-14/\:font.desc +.br +\-font ~/\:.mplayer/\:arialuni.ttf +.RE +.PD 1 +. +.TP +.B \-noautosub +Turns off automatic loading of subtitle files. +.TP +.B \-overlapsub +Enables overlapping subtitles support for all subtitles formats. +.TP +.B \-nooverlapsub +Disables overlapping subtitles support for all subtitles formats (default +behaviour is to enable the support only for specific formats). +.TP +.B \-osdlevel <0\-3> (MPLAYER only) +Specifies which mode the OSD should start in. + +.PD 0 +.RSs +.IPs 0 +subtitles only +.IPs 1 +volume + seek (default) +.IPs 2 +volume + seek + timer + percentage +.IPs 3 +volume + seek + timer + percentage + total time +.RE +.PD 1 +. +.TP +.B \-sid <id> (also see \-slang option) +Turns on DVD subtitle displaying. +Also, you MUST specify a number which corresponds to a DVD subtitle language +(0\-31). +For the list of available subtitles, use with the \-v option and look at the +output. +.TP +.B \-slang <two\ letter\ country\ code> (also see \-sid option) +Works only for DVD playback. +Turns on/\:selects DVD subtitle language. +For the list of available subtitles, use with the \-v option and look at the +output. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-slang hu,en" +Selects Hungarian and falls back to English if Hungarian is not available. +.RE +.PD 1 +. +.TP +.B \-sub <subtitle\ file> +Use/\:display this subtitle file. +.TP +.B \-sub-bg-alpha <0\-255> +Specify the alpha channel value for subtitles and OSD backgrounds. +Big values mean more transparency. +The 0 value is an exception and means completly transparent. +.TP +.B \-sub-bg-color <0\-255> +Specify the color value for subtitles and OSD backgrounds. +Currently subtitles are grayscale so this value is equivalente to the +intensity of the color. +The 255 value means white and 0 black. +.TP +.B \-subcc \ +Display DVD Closed Caption (CC) subtitles. +These are NOT the VOB subtitles, these are special ASCII subtitles for the +hearing impaired encoded in the VOB userdata stream on most region 1 DVDs. +CC subtitles have not been spotted on DVDs from other regions so far. +.TP +.B \-subcp <codepage> +If your system supports iconv(3), you can use this option to +specify codepage of the subtitle. + +.I EXAMPLE: +.PD 0 +.RSs +\-subcp latin2 +.br +\-subcp cp1250 +.RE +.PD 1 +. +.TP +.B \-sub\-demuxer <number> (BETA CODE) +Force subtitle demuxer type for \-subfile. +.TP +.B \-subdelay <sec> +Delays subtitles by <sec> seconds. +Can be negative. +.TP +.B \-subfont-autoscale <0\-3> +Sets the autoscale mode. + +.I NOTE: +.br +Zero means that text-scale and osd-scale are font heights in points. +.br +The mode can be: + +.PD 0 +.RSs +.IPs 0 +no autoscale +.IPs 1 +proportional to movie height +.IPs 2 +proportional to movie width +.IPs 3 +proportional to movie diagonal (default) +.RE +.PD 1 +. +.TP +.B \-subfont-blur <0\-8> +Sets the font blur radius (default: 2). +.TP +.B \-subfont-encoding <value> +Sets the font encoding. +When set to 'unicode', all the glyphs from the font file will be rendered and +unicode will be used (default: unicode). +.TP +.B \-subfont-osd-scale <0\-100> +Sets the osd elements autoscale coefficient (default: 6). +.TP +.B \-subfont-outline <0\-8> +Sets the font outline thickness (default: 2). +.TP +.B \-subfont-text-scale <0\-100> +Sets the subtitle text autoscale coefficient (percentage of the +screen size) (default: 5). +.TP +.B \-subfps <rate> +Specify frame/\:sec rate of subtitle file (float number), +default: the same fps as the movie. + +.I NOTE: +.br +ONLY for frame\-based SUB files, i.e.\& NOT MicroDVD format. +.TP +.B \-subfile <filename> (BETA CODE) +Currently useless. +Same as \-audiofile, but for subtitle streams (OggDS?). +.TP +.B \-subpos <0\-100> (useful with \-vop expand) +Specify the position of subtitles on the screen. +The value is the vertical position of the subtitle in % of the screen height. +.TP +.B \-subalign <0\-2> +Specify how subtitles should be aligned with subpos. +0 means align at top (original/default behavior), 1 means align at center, and +2 means align at bottom. +.TP +.B \-subwidth <10\-100> +Specify the maximum width of subtitles on the screen. +Useful for TV-out. +The value is the width of the subtitle in % of the screen width. +.TP +.B \-unicode +Tells MPlayer to handle the subtitle file as UNICODE. +.TP +.B \-utf8 \ \ +Tells MPlayer to handle the subtitle file as UTF8. +.TP +.B \-sub-no-text-pp +Disables any kind of text post processing done after loading the subtitles. +Used for debug purposes. +.TP +.B \-vobsub <vobsub\ file\ without\ extension> +Specify the VobSub files that are to be used for subtitle. +This is the full pathname without extensions, i.e.\& without the '.idx', +\'.ifo' or '.sub'. +.TP +.B \-vobsubid <0-31> +Specify the VobSub subtitle id. +.TP +.B \-spualign <-1\-2> +Specify how spu (DVD/VobSub) subtitles should be aligned. +Values are the same as for -subpos, with the extra choice -1 for original +position. +.TP +.B \-spuaa <mode> +Antialiasing/scaling mode for DVD/VobSub. A value of 16 may be added +to mode in order to force scaling even when original and scaled frame +size already match, for example to smooth subtitles with the gaussian +blur. The available modes are: +.PD 0 +.RSs +.IPs 0 +none (fastest, very ugly) +.IPs 1 +approximate (broken?) +.IPs 2 +full (slow) +.IPs 3 +bilinear (default, fast and not too bad) +.IPs 4 +uses swscaler gaussian blur (looks very good) +.RE +.PD 1 +. +.TP +.B \-spugauss <0.0\-3.0> +Variance parameter of gaussian used by -spuaa 4. Higher means more +blur. The default is 1.0. + + +.SH "AUDIO OUTPUT OPTIONS (MPLAYER ONLY)" +.TP +.B \-abs <value> (OBSOLETE) +Override audio driver/\:card buffer size detection, \-ao oss only +.TP +.B \-af <plugin1,plugin2,plugin3[=options],...> +Activate a comma separated list of audio filters and their options. +.br +Available filters are: +. +.RSs +.IPs resample[=srate[:sloppy][:type]] +Changes the sample rate of the audio stream to an integer srate (Hz). +It only supports the 16 bit little endian format. +.IPs channels[=nch] +Change the number of channels to nch output channels. +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. +.IPs format[=bps,f] +Select the format f and bits per sample bps used for output from the +filter layer. +The option bps is an integer and denotes bytes per sample. +The format f is a string containing a concatenated mix of: +.br +alaw, mulaw or imaadpcm +.br +float or int +.br +unsigned or signed +.br +le or be (little or big endian) +.br +.IPs "volume[=v:sc]" +Select the output volume level. +This filter is not reentrant and can therefore only be enabled once for every +audio stream. +.RSss +v: desired gain in dB for all channels in the stream. +The gain can be set from -200dB to +40dB (where -200dB mutes the sound +completely and +40dB equals a gain of 1000). +.br +sc: enable soft clipping. +.REss +.IPs "pan[=n:l01:l02:..l10:l11:l12:...ln0:ln1:ln2:...]" +Mixes channels arbitrarily, see DOCS/sound.html for details. +.RSss +n: number of output channels (1 - 6). +.br +lij: how much of input channel j is mixed into output channel i. +.REss +.IPs "sub[=fc:ch]" +Add sub-woofer channel. +.RSss +fc: Cutoff frequency for low-pass filter (20Hz to 300Hz) default is 60Hz. +.br +ch: channel number for the sub-channel. +.REss +.IPs "surround[=d]" +Decoder for matrix encoded surround sound, works on many 2 channel files. +.RSss +d: delay time in ms for the rear speakers (0ms to 1000ms) default is 15ms. +.REss +.IPs delay[=ch1:ch2:...] +Delays the sound output. +Specify the delay separately for each channel in milliseconds (floating point +number between 0 and 1000). +.RE +. +.TP +.B \-af-adv <force=(0\-3):list=(filters)> (see -af option too) +Specify advanced audio filter options: +. +.RSs +.IPs force=<0-3> +Forces the insertion of audio filters to one of the following: +.RSss +0: Completely automatic insertion of filters (default) +.br +1: Optimize for speed +.br +2: Optimize for accuracy +.br +3: Turn off auto +.REss +.IPs list=<filters> +Same as -af (see -af option). +.RE +. +.TP +.B \-ao <driver1[:device],driver2,...[,]> +Specify a priority list of audio output drivers (optionally with device) to be +used. +\'device' is valid with SDL, too, it means subdriver then. + +.I NOTE: +.br +To get a full list of available drivers, see \-ao help. +.br +If the list has a trailing ',' it will fallback to drivers not listed. + +.I EXAMPLE +.PD 0 +.RSs +.IPs "\-ao oss:/\:dev/\:dsp2,oss:/\:dev/\:dsp1," +try to use OSS with the specified sound devices and fallback to others if it +fails +.IPs "\-ao sdl:esd" +specify the SDL subdriver +.RE +.PD 1 +. +.TP +.B \-aofile <filename> +Filename for \-ao pcm. +.TP +.B \-aop <list=plugin1,plugin2...:option1=value1:opt2=val2...> +Specify audio plugin(s) and their options (see documentation too). +.br +Available options are: +. +.RSs +.IPs list=[plugins] +comma separated list of plugins (resample, surround, format, volume, +extrastereo, volnorm) +.IPs delay=<sec> +example plugin, do not use. +.IPs format=<format> +output format (format plugin only) +.IPs fout=<Hz> +output frequency (resample plugin only) +.IPs volume=<0\-255> +volume (volume plugin only) +.IPs mul=<value> +stereo coefficient (default: 2.5) (extrastereo plugin only) +.IPs softclip +compressor / 'soft\-clipping' capabilities (volume plugin only) +.RE +. +.TP +.B \-delay <sec> +Audio delay in seconds (may be +/\:\- float value). +.TP +.B \-format <0\-8192> +Select the format used for output from the filter layer (according to the +defines in libao2/afmt.h): + +.PD 0 +.RSs +.IPs 1 +Mu-Law +.IPs 2 +A-Law +.IPs 4 +Ima-ADPCM +.IPs 8 +Signed 8-bit +.IPs 16 +Unsigned 8-bit +.IPs 32 +Unsigned 16-bit (Little-Endian) +.IPs 64 +Unsigned 16-bit (Big-Endian) +.IPs 128 +Signed 16-bit (Little-Endian) +.IPs 256 +Signed 16-bit (Big-Endian) +.IPs 512 +MPEG (2) Audio +.IPs 1024 +AC3 +.IPs 4096 +Signed 32-bit (Little-Endian) +.IPs 8192 +Signed 32-bit (Big-Endian) +.RE +.PD 1 +. +.TP +.B \-mixer <device> +This option will tell MPlayer to use a different device for mixing than +/dev/\:mixer. +.TP +.B \-nowaveheader (-ao pcm only) +Don't include wave header. +Used for RAW PCM. + + +.SH "VIDEO OUTPUT OPTIONS (MPLAYER ONLY)" +.TP +.B \-aa* (\-vo aa only) +You can get a list and an explanation of available options executing +.I mplayer \-aahelp +.TP +.B \-bpp <depth> +Use different color depth than autodetect. +Not all \-vo drivers support it (fbdev, dga2, svga, vesa). +.TP +.B \-brightness <\-100\-100> +Adjust brightness of video output (default 0). +It changes intensity of RGB components of video signal from black to white +screen. +.TP +.B \-contrast <\-100\-100> +Adjust contrast of video output (default 0). +Works in similar manner as brightness. +.TP +.B \-dfbopts <value> (\-vo directfb2 only) +Specify a parameter list for the directfb driver. +.TP +.B \-display <name> +Specify the hostname and display number of the X server you want to display +on. + +.I EXAMPLE: +.PD 0 +.RSs +\-display xtest.localdomain:0 +.RE +.PD 1 +. +.TP +.B \-double +Enables doublebuffering. +Fixes flicker by storing two frames in memory, and displaying one while +decoding another. +Can affect OSD. +Needs twice the memory of a single buffer, so it won't work on cards with +very little video memory. +.TP +.B \-dr \ \ \ +Turns on direct rendering (not supported by all codecs and video outputs) +(default is off). +Warning: may cause OSD/\:SUB corruption! +.TP +.B \-dxr2 <option1:option2:...> +This option is used to control the dxr2 driver. +Note: The lavc filter is now auto inserted if you try to play a non MPEG1/2 +format so all formats supported by MPlayer should play out of the box (if +you have the CPU power needed to encode on the fly). +The overlay chipset used on the dxr2 is of pretty bad quality but the default +settings should work for everybody. +The OSD may be usable with the overlay (not on TV) by drawing it in the +colorkey. +With the default colorkey settings you may get variable results, usually you +will see the colorkey around the characters or some other funny effect. +But if you properly adjust the colorkey settings you should be able to get +acceptable results. +. +.RSs +.IPs ar-mode=<value> +aspect ratio mode (0 = normal, 1 = pan scan, 2 = letterbox (default)) +.IPs iec958\-encoded/\:decoded +iec958 output mode +.IPs mute +mute sound output +.IPs ucode=<value> +path to the microcode +.RE +.RS + +.I TV Out +.RE +.RSs +.IPs 75ire +enable 7.5 IRE +.IPs bw\ \ \ +b/\:w TV output +.IPs color +color TV output +.IPs interlaced +interlaced TV output +.IPs macrovision=<value> +macrovision mode (0 = off (default), 1 = agc, 2 = agc 2 colorstripe, +3 = agc 4 colorstripe) +.IPs norm=<value> +TV norm (ntsc (default), pal,pal60,palm,paln,palnc) +.IPs square/\:ccir601\-pixel +TV pixel mode +.RE +.RS + +.I Overlay +.RE +.RSs +.IPs cr-[left|right|top|bot]=<\-20\-20> +adjust the overlay cropping +.IPs ck-[rgb]min=<0\-255> +minimum value for the color key +.IPs ck-[rgb]max=<0\-255> +maximum value for the color key +.IPs ck-[rgb]=<0\-255> +color key values +.IPs ignore\-cache +do not use the VGA cache +.IPs ol-osd +enable the osd hack on the overlay +.IPs ol[hwxy]\-cor=<value> +adjust the overlay size and position in case it doesn't match the window +perfectly +.IPs overlay +enable the overlay +.IPs overlay-ratio=<1\-2500> +tune the overlay (default 1000) +.IPs update\-cache +recreate the VGA cache +.RE +. +.TP +.B \-fb <device> (fbdev or DirectFB only) +Specifies the framebuffer device to use. +By default it uses /dev/\:fb0. +.TP +.B \-fbmode <modename> (fbdev only) +Change video mode to the one that is labelled as <modename> in +/etc/\:fb.modes. + +.I NOTE: +.br +VESA framebuffer doesn't support mode changing. +.TP +.B \-fbmodeconfig <filename> (fbdev only) +Use this configuration file instead of the default /etc/\:fb.modes. +Only valid for the fbdev driver. +.TP +.B \-forcexv (SDL only) +Force using XVideo. +.TP +.B \-fs \ \ \ +Fullscreen playing (centers movie, and makes black +bands around it). +Toggle it with the 'f' key (not all video outputs support it). +See also \-zoom. +.TP +.B \-fsmode-dontuse <0-31> (OBSOLETE) (use \-fs option) +Try this option if you still experience fullscreen problems. +.TP +.B \-fstype <type1,type2,...> +Specify a priority list of fullscreen layer setting modes to be +used. + +The default order is "layer,stays_on_top,above,fullscreen". It will be used +as a fallback in case of specifying incorrect or unsupported modes. +.br +If you experience problems with fullscreen window being covered by other +windows try using different order. + +.I NOTE: +.br +See \-fstype help for a full list of available modes. +.TP +.B \-geometry x[%][:y[%]] or [WxH][+x+y] +Adjust where the output is on the screen initially. +The x and y specifications are in pixels measured from the top-right of the +screen to the top-right of the image being displayed, however if a percentage +sign is given after the argument it turns the value into a percentage of the +screen size in that direction. +It also supports the standard option format to the standard X \-geometry +option. +The values given must be integers. + +Note: This option is only supported by a few vo's, including tdfxfb, fbdev and +xv. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs 50:40 +Places the window at x=50, y=40 +.IPs 50%:50% +Places the window in the middle of the screen +.IPs 100% +Places the window at the top left corner of the screen +.IPs 100%:100% +Places the window at the bottom left corner of the screen +.RE +.PD 1 +. +.TP +.B \-guiwid <window\ id> +This tells the GUI to also use an X11 window and stick itself to the bottom +of the video, which is useful to embed a mini-GUI in a browser (with the +mplayerplug-in for instance). +.TP +.B \-hue <\-100\-100> +Adjust hue of video signal (default: 0). +You can get colored negative of image with this option. +.TP +.B \-icelayer <0\-15> (icewm only) +Sets the layer of the fullscreen window of mplayer for icewm. + +.PD 0 +.RSs +.IPs 0 +Desktop +.IPs 2 +Below +.IPs 4 +Normal +.IPs 6 +OnTop +.IPs 8 +Dock +.IPs 10 +AboveDock +.IPs 12 +Menu (default) +.RE +.PD 1 +. +.TP +.B \-jpeg <option1:option2:...> (\-vo jpeg only) +Specify options for the JPEG output. +.br +Available options are: + +.PD 0 +.RSs +.IPs [no]progressive +Specify standard or progressive JPEG. +.IPs [no]baseline +Specify use of baseline or not. +.IPs optimize=<value> +Optimization factor [0-100] +.IPs smooth=<value> +Smooth factor [0-100] +.IPs quality=<value> +Quality factor [0-100] +.IPs outdir=<value> +Directory to save the JPEG files +.RE +.PD 1 +. +.TP +.B \-monitor_dotclock <dotclock\ (or\ pixelclock) range> (fbdev and vesa only) +Look into etc/\:example.conf for further information and in DOCS/\:video.html. +.TP +.B \-monitor_hfreq <horizontal frequency range> (fbdev and vesa only) +.TP +.B \-monitor_vfreq <vertical frequency range> (fbdev and vesa only) +.TP +.B \-monitoraspect <ratio> +Set aspect ratio of your monitor or TV screen. +See also \-aspect for movie aspect. + +.I EXAMPLE: +.PD 0 +.RSs +\-monitoraspect 4:3 or 1.3333 +.br +\-monitoraspect 16:9 or 1.7777 +.RE +.PD 1 +. +.TP +.B \-nograbpointer +Do not grab mouse pointer after VidMode change (\-vm), useful for multihead +setup. + +.TP +.B \-nokeepaspect +Do not keep window aspect ratio when resizing X11 windows (Works currently only +with \-vo x11, xv, xmga and xvidix and your window manager needs to understand +window aspect hints.). + +.TP +.B \-noslices +Disable drawing video by 16-pixel height slices/\:bands, instead draws the +whole frame in a single run. +May be faster or slower, depending on card/\:cache. +It has effect only with libmpeg2 and libavcodec codecs. +.TP +.B \-panscan <0.0\-1.0> +Enables Pan & Scan functionality, i.e.\& in order to display a 16:9 movie +on a 4:3 display, the sides of the movie are cropped to get a 4:3 image +which fits the screen. +This function works only with the xv, xmga, mga and xvidix video out drivers. +.br +The range controls how much of the image is cropped. +.TP +.B \-rootwin +Play movie in the root window (desktop background) instead of opening +a new one. +Works only with x11, xv, xmga and xvidix drivers. +.TP +.B \-saturation <\-100\-100> +Adjust saturation of video output (default: 0). +You can get grayscale output with this option. +.TP +.B \-screenw <pixels> \-screenh <pixels> +If you use an output driver which can't know the resolution of the screen +(fbdev/\:x11 and/\:or TVout) this is where you can specify the horizontal and +vertical resolution. +.TP +.B \-stop_xscreensaver +Turns off xscreensaver at startup and turns it on again on exit. +.TP +.B \-vm \ \ \ +Try to change to a better video mode. +dga, x11/\:xv (XF86VidMode) and sdl output drivers support it. +.TP +.B \-vo <driver1[:device],driver2,...[,]> +Specify a priority list of video output drivers (optionally with device) to be +used. +\'device' is valid with SDL and GGI, too, it means subdriver then. + +.I NOTE: +.br +See \-vo help for a full list of available drivers. +.br +If the list has a trailing ',' it will fallback to drivers not listed. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-vo xmga,xv," +Try Matrox kernel driver, then Xv driver, then others +.br +.IPs "\-vo sdl:aalib" +specify the SDL subdriver +.RE +.PD 1 +. +.TP +.B \-vsync \ \ +Enables VBI for vesa. +.TP +.B \-wid <window\ id> +This tells MPlayer to use a X11 window, which is useful to embed MPlayer in a +browser (with the plugger extension for instance). +.TP +.B \-xineramascreen <0\-...> +In Xinerama configurations (i.e.\& a single desktop that spans across multiple +displays) this option tells MPlayer which screen to display movie on. +.TP +.B \-z <0\-9> +Specifies compression level for PNG output (-vo png) + +.PD 0 +.RSs +.IPs 0 +no compression +.IPs 9 +max compression +.RE +.PD 1 +. +.TP +.B \-zrbw (\-vo zr only) +Display in black and white (for optimal performance, this option can be +combined with the 'decode only in black and white' option for codecs +belonging to the FFmpeg family). +.TP +.B \-zrcrop <[width]x[height]+[x offset]+[y offset]> (\-vo zr only) +Select a part of the input image for display, multiple occurences of this +option switch on cinerama mode. +In cinerama mode the movie is distributed over more than one TV (or beamer) to +create a larger screen. +Options appearing after the n\-th \-zrcrop apply to the n\-th MJPEG card, each +card should at least have a \-zrdev in addition to the \-zrcrop. +For examples, see the output of \-zrhelp and the Zr section of the +documentation. +.TP +.B \-zrdev <device> (\-vo zr only) +Specify the device special file that belongs to your MJPEG card, by default +this driver takes the first v4l device it can find. +.TP +.B \-zrfd (\-vo zr only) +Force decimation: Decimation, as specified by \-zrhdec and \-zrvdec, only +happens if the hardware scaler can stretch the image to its original size. +Use this option to force decimation. +.TP +.B \-zrhelp (\-vo zr only) +Display a list of all \-zr* options, their default values and an example of +cinerama mode. +.TP +.B \-zrnorm <norm> (\-vo zr only) +Specify norm PAL/\:NTSC, the default is 'no change'. +.TP +.B \-zrquality <1\-20> (\-vo zr only) +A number from 1 to 20 representing the jpeg encoding quality. +1 gives the best quality and 20 gives very bad quality. +.TP +.B \-zrvdec <1,2,4> \-zrhdec <1,2,4> (\-vo zr only) +Vertical/\:horizontal decimation: Ask the driver to send only every 2nd or 4th +line/\:pixel of the input image to the MJPEG card and use the scaler of the +MJPEG card to strech the image to its original size. +.TP +.B \-zrxdoff <x display offset>, \-zrydoff <y display offset> (\-vo zr only) +If the movie is smaller than the TV screen, these options control the position +of the movie relative to the upper left corner of the screen. +The movie is centered by default. + + +.SH "DECODING/FILTERING OPTIONS" +.TP +.B \-ac <[-]codec1,[-]codec2,...[,]> +Specify a priority list of audio codecs to be used, according to their codec +name in codecs.conf. +Use a '-' before the codec name to omit it. + +.I NOTE: +.br +See \-ac help for a full list of available codecs. +.br +If the list has a trailing ',' it will fallback to codecs not listed. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-ac mp3acm" +force l3codeca.acm MP3 codec +.IPs "\-ac mad," +try libmad first, then fallback to others +.IPs "\-ac hwac3,a52," +try hardware AC3 passthrough, then software AC3 codec, then others +.IPs "\-ac -ffmp3," +try other codecs except FFmpeg's MP3 decoder +.RE +.PD 1 +. +.TP +.B \-afm <driver1,driver2,...> +Specify a priority list of audio drivers to be used, according to their driver +name in codecs.conf. +It falls back to default if none is ok. + +.I NOTE: +.br +See \-afm help for a full list of available drivers. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-afm ffmpeg" +try FFmpeg's libavcodec (mp1/\:2/\:3) codecs first +.IPs "\-afm acm,dshow" +try Win32 codecs first +.RE +.PD 1 +. +.TP +.B \-aspect <ratio> +Override aspect ratio of movies. +It's autodetected on MPEG files, but can't be autodetected on most AVI files. + +.I EXAMPLE: +.PD 0 +.RSs +\-aspect 4:3 or \-aspect 1.3333 +.br +\-aspect 16:9 or \-aspect 1.7777 +.RE +.PD 1 +. +.TP +.B \-flip \ +Flip image upside\-down. +.TP +.B \-lavdopts <option1:option2:...> (DEBUG CODE) +If decoding with a codec from libavcodec, you can specify its parameters here. + +.I EXAMPLE: +.PD 0 +.RSs +\-lavdopts bug=1 +.RE +.PD 1 + +.RS +.I NOTE: +.br +Just add the values of the things you want to enable. +.br +Available options are: +.RE +. +.RSs +.IPs ec\ \ \ +error concealment: +.RSss +1: use strong deblock filter for damaged MBs +.br +2: iterative MV search (slow) +.br +3: all (default) +.REss +.IPs er=<value> +error resilience: +.RSss +.br +0: disabled +.br +1: careful (should work with broken encoders) +.br +2: normal (default) (works with compliant encoders) +.br +3: agressive (more checks but might cause problems even for valid bitstreams) +.br +4: very agressive +.REss +.IPs bug=<value> +manually work around encoder bugs: +.RSss +0: nothing +.br +1: autodetect bugs (default) +.br +2 (msmpeg4v3): some old lavc generated msmpeg4v3 files (no autodetect) +.br +4 (mpeg4): xvid interlacing bug (autodetected if fourcc==XVIX) +.br +8 (mpeg4): UMP4 (autodetected if fourcc==UMP4) +.br +16 (mpeg4): padding bug +.br +32 (mpeg4): illegal vlc bug (autodetected per fourcc) +.br +64 (mpeg4): XVID and DIVX qpel bug (autodetected) +.REss +.IPs idct=<0\-99> +(see lavcopts) +.IPs gray +grayscale only decoding (a bit faster than with color) +.RE +. +.TP +.B \-noaspect +Disable automatic movie aspect ratio compensation. +.TP +.B \-nosound +Do not play/\:encode sound. +.TP +.B \-pp <quality> (see \-vop pp option too!) +Set postprocess level of the DLL. +This option is NO LONGER USABLE with MPlayer's postprocess filter, but only +with Win32 DirectShow DLLs which have internal postprocessing routine. + +The valid range of \-pp value vary on codecs, mostly +0\-6, where 0=disable 6=slowest/\:best. +.TP +.B \-pphelp (see \-vop pp option too) +Show a summary about the available postprocess filters and their usage. +.TP +.B \-ssf <mode> +Specifies SwScaler parameters. + +.I EXAMPLE +.PD 0 +.RSs +\-vop scale \-ssf lgb=3.0 +.RE +.PD 1 + +.PD 0 +.RSs +.IPs lgb=<0\-100> +Gaussian blur filter (luma) +.IPs cgb=<0\-100> +Gaussian blur filter (chroma) +.IPs ls=<0\-100> +sharpen filter (luma) +.IPs cs=<0\-100> +sharpen filter (chroma) +.IPs chs=<h> +chroma horizontal shifting +.IPs cvs=<v> +chroma vertical shifting +.RE +.PD 1 +. +.TP +.B \-stereo <mode> +Select type of MP2/\:MP3 stereo output. + +.PD 0 +.RSs +.IPs 0 +Stereo +.IPs 1 +Left channel +.IPs 2 +Right channel +.RE +.PD 1 +. +.TP +.B \-sws <software\ scaler\ type> (see \-vop scale option too) +This option sets the quality (and speed, respectively) of the software scaler, +with the \-zoom option. +For example with x11 or other outputs which lack hardware acceleration. +Possible settings are: + +.I NOTE: +.br +For \-sws\ 2 and 7, the sharpness can be set with the scaling parameter (p) +of \-vop scale (0 (soft) \- 100 (sharp)), for \-sws 9, it specifies the filter +length (1 \- 10). + +.PD 0 +.RSs +.IPs 0 +fast bilinear (default) +.IPs 1 +bilinear +.IPs 2 +bicubic (good quality) +.IPs 3 +experimental +.IPs 4 +nearest neighbour (bad quality) +.IPs 5 +area +.IPs 6 +luma bicubic / chroma bilinear +.IPs 7 +gauss +.IPs 8 +sincR +.IPs 9 +lanczos +.IPs 10 +bicubic spline +.RE +.PD 1 +. +.TP +.B \-vc <[-]codec1,[-]codec2,...[,]> +Specify a priority list of video codecs to be used, according to their codec +name in codecs.conf. +Use a '-' before the codec name to omit it. + +.I NOTE: +.br +See \-vc help for a full list of available codecs. +.br +If the list has a trailing ',' it will fallback to codecs not listed. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-vc divx" +force Win32/\:VFW DivX codec, no fallback +.IPs "\-vc divx4," +try divx4linux codec first, then fallback to others +.IPs "\-vc -divxds,-divx," +try other codecs except Win32 DivX codecs +.IPs "\-vc ffmpeg12,mpeg12," +try libavcodec's MPEG1/\:2 codec, then libmpeg2, then others +.RE +.PD 1 +. +.TP +.B \-vfm <driver1,driver2,...> +Specify a priority list of video drivers to be used, according to their driver +name in codecs.conf. +It falls back to default if none is ok. + +.I NOTE: +.br +If libdivxdecore support was compiled in, then odivx and divx4 now contains +just the same DivX4 codec, but different APIs to reach it. +For difference between them and when to use which, check the DivX4 section in +the documentation. +.br +See \-vfm help for a full list of available drivers. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-vfm ffmpeg,dshow,vfw" +try the libavcodec, then Directshow, then VFW codecs and fallback to the +others, if still none is ok +.IPs "\-vfm xanim" +try XAnim codecs first +.RE +.PD 1 +. +.TP +.B \-vop <...,filter3[=options],filter2,filter1> +Activate a comma separated list of video filters and their options in reverse +order. + +.I NOTE: +.br +The parameters are optional and if omitted, some of them are set to default +values. +Use -1 to keep the default value. +Parameters w:h means width x height in pixels, x:y means x;y position counted +from the upper left corner of the bigger image. +.br +To get a full list of available plugins, see \-vop help. +.br +Available filters are: +. +.RSs +.IPs crop[=w:h:x:y] +Crops the given part of the image and discards the rest. +Useful to remove black bands from widescreen movies. +.IPs cropdetect[=0\-255] +Calculates necessary cropping parameters and prints the recommended parameters +to stdout. +The threshold can be optionally specified from nothing (0) to everything +(255). +(default: 24) +.IPs rectangle[=w:h:x:y] +Draws a rectangle of the requested width and height at the specified +coordinates over the image (used to test crop). +(default: maximum w/\:h, upper left x/\:y position) +.IPs expand[=w:h:x:y:o] +Expands (not scales) movie resolution to the given value and places the +unscaled original at coordinates x y. Negative values for w and h are +treated as offsets to the original size. For example, expand=0:-50:0:0 +adds a 50 pixel border to the bottom of the picture. +Can be used for placing subtitles/\:OSD in the resulting black bands (default: +original w/\:h, centered x/\:y). +The last parameter (de)activates OSD rendering (default: 0=disabled). +.IPs flip +Flips the image upside down. +See also option \-flip. +.IPs mirror +Flips the image on Y axis. +.IPs rotate[=<0-7>] +Rotates and flips (optional) the image +/\:\- 90 degrees. +For parameters between 4-7 rotation is only done if the movie's geometry is +portrait and not landscape. +.IPs scale[=w:h[:c[:p]]] +Scales the image with the software scaler (slow) and performs a YUV<\->RGB +colorspace conversion (see \-sws option too). +The value 0 is used for scaled (aspect) destination w/\:h. +(default: original w/\:h, destination w/\:h with \-zoom) Optionaly chroma +skipping (c from 0\-3) and scaling parameters can be specified. +(see the \-sws option for details) +.IPs yuy2 +Forces software YV12/\:I420 or 422P to YUY2 conversion. +.IPs rgb2bgr[=swap] +RGB 24/\:32 <\-> BGR 24/\:32 colorspace conversion with optional R <\-> B +swapping. +.IPs palette +RGB/\:BGR 8 \-> 15/\:16/\:24/\:32bpp colorspace conversion using palette. +.IPs format[=fourcc] +Restricts the colorspace for next filter. +It does not do any conversion. +Use together with the scale filter for a real conversion. +.IPs pp[=filter1[:option1[:option2...]]/[-]filter2...] (see \-pphelp too) +This option enables usage of MPlayer's internal postprocessing filter, +and also gives an interface where you can pass options to the named filter. +To get a list of available filters, use \-pphelp. +.br +Note that each sub-filter must be separated with a / sign. +.br +Each filter defaults to 'c' (chrominance). +.br +The keywords accept a '\-' prefix to disable the option. +.br +A ':' followed by a letter may be appended to the option to indicate its +scope: +.RSss +a: Automatically switches the filter off if the CPU is too slow. +.br +c: Do chrominance filtering, too. +.br +y: Do not do chrominance filtering (only luminance filtering). +.REss + +.RS +.I EXAMPLES: +.RE +.RSss +.br +\-vop pp=hb/vb/dr/al/lb +.br +\-vop pp=hb/vb/dr/al +.br +Default filters without brightness/\:contrast correction: +.br +\-vop pp=de/\-al +.br +Enable default filters & temporal denoiser: +.br +\-vop pp=de/tn:1:2:3 +.br +Deblock horizontal only luminance and switch vertical deblocking on or +off automatically depending on available CPU time: +.br +\-vop pp=hb:y/vb:a \-autoq 6 +.REss +.IPs lavc[=quality:fps] +Realtime MPEG1 encoder for use with DVB/\:DXR3 (libavcodec) +.IPs fame +Realtime MPEG1 encoder for use with DVB/\:DXR3 (libfame) +.IPs dvbscale[=aspect] +Set up optimal scaling for DVB cards. +(aspect = DVB_HEIGHT*ASPECTRATIO, default: 768) +.IPs "noise[=luma[u][t|a][h][p]:chroma[u][t|a][h][p]]" +Adds noise +.RSss +<0\-100>: luma noise +.br +<0\-100>: chroma noise +.br +u: uniform noise +.br +t: temporal noise +.br +a: averaged temporal noise +.br +h: high quality +.br +p: mix random noise with a (semi)regular pattern +.REss +.IPs "denoise3d[=luma:chroma:time]" +This filter aims to reduce image noise producing smooth images and making still +images really still (This should enhance compressibility.). +It can be given from 0 to 3 parameters. If you omit a parameter, a reasonable +value will be inferred. +.RSss +luma: spatial luma strength (default = 4) +.br +chroma: spatial chroma strength (default = 3) +.br +time: temporal strength (default = 6) +.REss +.IPs eq[=bright:cont] +Activates the software equalizer with interactive controls like the hardware +eq controls. +The values can be from -100 to 100. +.IPs eq2[=gamma:contrast:brightness:saturation:rg:gg:bg] +Alternative software equalizer that uses lookup tables (very slow), +allowing gamma correction in addition to simple brightness, +contrast and saturation adjustment. Note that it uses the same MMX +optimized code as -vop eq if all gamma values are 1.0! +The parameters are given as floating point values. +Defaults are gamma=1.0, contrast=1.0, brightness=0.0 and saturation=1.0. +Parameters rg, gg, bg are the independent gamma values for the Red, Green +and Blue components, all default to 1.0. +The values are 0.1\-10 for gammas, -2\-2 for contrast (negative values result +in negative image) -1\-1 for brightness and 0\-3 for saturation. +.IPs halfpack[=f] +Convert planar YUV 4:2:0 to half-height packed 4:2:2, downsampling luma but +keeping all chroma samples. +Useful for output to low-resolution display devices when hardware downscaling +is poor quality or is not available. +Can also be used as a primitive luma-only deinterlacer with very low cpu +usage. +By default, halfpack averages pairs of lines when downsampling. +The optional parameter f can be 0 to only use even lines, or 1 to only use +odd lines. +Any other value for f gives the default (averaging) behavior. +.IPs dint[=sense:level] +Detects and drops first of interlaced frames in video stream. +Values can be from 0.0 to 1.0 - first (default 0.1) is relative difference +between neighbor pixels, second (default 0.15) is what part of image have to +be detected as interlaced to drop the frame. +.IPs lavcdeint +Use libavcodec's deinterlace filter. +.IPs "unsharp=l|cWxH:amount[:l|cWxH:amount]" +Unsharp mask / gaussian blur. +.RSss +l: apply effect on luma component +.br +c: apply effect on chroma components +.br +WxH: width and height of the matrix, odd sized in both directions +(min = 3x3, max = 13x11 or 11x13, usually something between 3x3 and 7x7) +.br +amount: relative amount of sharpness / blur to add to the image +(amount < 0 = blur, amount > 0 = sharpen, usually something between -1.5 and +1.5) +.REss +.IPs swapuv +Swap U & V plane. +.IPs "il=[d|i][s][:[d|i][s]]" +(de)interleaves lines. +The goal of this filter is to add ability of processing interlaced images +pre-field without deinterlacing it. +You can filter your interlaced dvd and playback on TV without breaking the +interlacing. +While deinterlacing (with the post processing filter) removes the interlacing +permamently (by smoothing averaging etc) deinterleaving splits the frame into +2 fields (so called half pictures), so you can process (filter) them +independently and then re-interleave them. +.RSss +d: deinterleave +.br +i: interleave +.br +s: swap fields (exchange even & odd lines) +.REss +.IPs "field[=n]" +Extracts a single field from interlaced image using stride arithmetic +to avoid wasting cpu time. The optional argument n specifies whether +to extract the even or the odd field (depending on whether n is even +or odd). +.IPs "boxblur=radius:power[:radius:power]" +box blur +.RSss +radius: size of the filter +.br +power: how often the filter should be applied +.REss +.IPs "sab=rad:pfilter:cDiff[:rad:pfilter:cDiff]" +shape adaptive blur +.RSss +rad: blur filter strength (~0.1\-4.0) (slower if larger) +.br +pfilter: prefilter strength (~0.1\-2.0) +.br +cDiff: how different the pixels are allowed to be to be considered +(~0.1-100.0) +.REss +.IPs "smartblur=rad:strength:thresh[:rad:strength:thresh]" +smart blur +.RSss +rad: blur filter strength (~0.1\-5.0) (slower if larger) +.br +strength: blur (0.0\-1.0) or sharpen (-1.0\-0.0) +.br +thresh: filter all (0), filter flat areas (0\-30) or filter edges (-30\-0) +.REss +.IPs "perspective=x0:y0:x1:y1:x2:y2:x3:y3:t" +perspective correcture +.RSss +x0,y0,...: coordinates of the top left, top right, bottom left, bottom right +corners +.br +t: linear (0) or cubic resampling (1) +.REss +.IPs 2xsai +Use the 2x scale and interpolate algorithm for scaling and smoothing images. +.IPs 1bpp +1bpp bitmap to YUV/BGR 8/15/16/32 conversion +.IPs "bmovl=hidden:opaque:<fifo>" +Read bitmaps from a FIFO and display them in window. +. +.RSss +hidden: sets the default value of the 'hidden' flag (boolean) +.br +opaque: flag switching between alphablended (transparent) and opaque (fast) +mode +.br +fifo: path/filename for the FIFO (named pipe connecting mplayer -vop bmovl +to the controlling application) +.REss + +.RS +FIFO commands are: +.RE +.RSss +RGBA32 width height xpos ypos alpha clear +.br +followed by width*height*4 bytes of raw RGBA32 data. + +ABGR32 width height xpos ypos alpha clear +.br +followed by width*height*4 bytes of raw ABGR32 data. + +RGB24 width height xpos ypos alpha clear +.br +followed by width*height*3 bytes of raw RGB32 data. + +BGR24 width height xpos ypos alpha clear +.br +followed by width*height*3 bytes of raw BGR32 data. + +ALPHA width height xpos ypos alpha +.br +change alpha for area + +CLEAR width height xpos ypos +.br +clear area + +OPAQUE +.br +disable all alpha transparency. +Send "ALPHA 0 0 0 0 0" to enable it again. + +HIDE +.br +hide bitmap + +SHOW +.br +show bitmap +.REss + +.RS +Arguments are: +.RE +.RSss +width, height: size of image/area +.br +xpos, ypos: start blitting at X/Y position +.br +alpha: set alpha difference. +0 means same as original, 255 makes everything +opaque, -255 makes everything transparent. +If you set this to -255 you can then send a sequence of ALPHA-commands to set +the area to -225, -200, -175 etc for a nice fade-in-effect! ;) +.br +clear: clear the framebuffer before blitting. +1 means clear, if 0, the image will just be blitted on top of the old one, so +you don't need to send 1,8MB of RGBA32 data everytime a small part of the +screen is updated. +.REss +.RE +. +.TP +.B \-x <x> (MPLAYER only) +Scale image to x width (if sw/\:hw scaling available). +Disables aspect calculations. +.TP +.B \-xvidopts <option1:option2:...> +Specify additional parameters when decoding with XviD. + +.PD 0 +.RSs +.IPs dr2\ \ +Activate direct rendering method 2. +.IPs nodr2 +Deactivate direct rendering method 2. +.RE +.PD 1 +. +.TP +.B \-xy <x> +.PD 0 +.RSs +.IPs "x<=8" +Scale image by factor <x>. +.IPs "x>8\ " +Set width to <x> and calculate height to keep correct aspect ratio. +.RE +.PD 1 +. +.TP +.B \-y <y> (MPLAYER only) +Scale image to y height (if sw/\:hw scaling available). +Disables aspect calculations. +.TP +.B \-zoom \ +Allow software scaling, where available. +Could be used to force scaling with \-vop scale. + +.I NOTE: +.br +\-vop scale will IGNORE options \-x / \-y / \-xy / \-fs / \-aspect without +\-zoom. + + +.SH "ENCODING OPTIONS (MENCODER ONLY)" +.TP +.B \-audio-density <1\-50> +Number of audio chunks per second (default is 2 for 0.5s long audio chunks). + +.I NOTE: +.br +CBR only, VBR ignores this as it puts each packet in a new chunk. +.TP +.B \-audio-delay <0.0\-...> +Sets the audio delay field in the header. +Default is 0.0, negative values do not work. +This does not delay the audio while encoding, but the player will see the +default audio delay, sparing you the use of the \-delay option. +.TP +.B \-audio-preload <0.0\-2.0> +Sets up audio buffering time interval (default: 0.5s). +.TP +.B \-divx4opts <option1:option2:...> +If encoding to DivX4, you can specify its parameters here. +.br +Available options are: +. +.RSs +.IPs help +get help +.IPs br=<value> +specify bitrate in +.RSss +kbit <4\-16000> or +.br +bit <16001\-24000000> +.REss +.IPs key=<value> +maximum keyframe interval (in frames) +.IPs deinterlace +enable deinterlacing (avoid it, DivX4 is buggy) +.IPs q=<1\-5> +quality (1\-fastest, 5\-best) +.IPs min_quant=<1\-31> +minimum quantizer +.IPs max_quant=<1\-31> +maximum quantizer +.IPs rc_period=<value> +rate control period +.IPs rc_reaction_period=<value> +rate control reaction period +.IPs rc_reaction_ratio=<value> +rate control reaction ratio +.IPs crispness=<0\-100> +specify crispness/\:smoothness +.IPs pass=<1\-2> +With this you can encode 2pass DivX4 files. +First encode with pass=1, then with the same parameters, encode with +pass=2. +.IPs vbrpass=<0\-2> +Override the pass argument and use XviD VBR Library instead of DivX4 +VBR. +Available options are: +. +.RSss +0: one pass encoding (as in not putting pass on the command line) +.br +1: Analysis (first) pass of two pass encoding. +The resulting AVI file can be directed to /dev/null. +.br +2: Final (second) pass of two pass encoding. +.REss +.RE +. +.TP +.B \-endpos <[[hh:]mm:]ss[.ms]|size[b|kb|mb]> (see \-ss and \-sb option too) +Stop encoding at given time or byte position. +Can be specified in many ways: + +.I NOTE: +.br +Byte position won't be accurate, as it can only stop at +a frame boundary. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-endpos 56" +encode only 56 seconds +.IPs "\-endpos 01:10:00" +encode only 1 hour 10 minutes +.IPs "\-endpos 100mb" +encode only 100 MBytes +.RE +.PD 1 +. +.TP +.B \-ffourcc <fourcc> +Can be used to override the video fourcc of the output file. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "-ffourcc div3" +will have the output file contain 'div3' as video fourcc. +.RE +.PD 1 +. +.TP +.B \-include <configuration\ file> +Specify configuration file to be parsed after the default ones. +.TP +.B \-info <option1:option2:...> (.AVI only) +Specify the info header of the resulting .AVI file. +.br +Available options are: +. +.RSs +.IPs help +show this description +.IPs name=<value> +title of the subject of the file +.IPs artist=<value> +artist or author of the original subject of the file +.IPs genre=<value> +original work category +.IPs subject=<value> +contents of the file +.IPs copyright=<value> +copyright information for the file +.IPs srcform=<value> +original form of the material that was digitized +.IPs comment=<value> +general comments about the file or the subject of the file +.RE +. +.TP +.B \-lameopts <option1:option2:...> +If encoding to MP3 with libmp3lame, you can specify its parameters here. +.br +Available options are: +. +.RSs +.IPs help +get help +.IPs vbr=<0\-4> +variable bitrate method +.RSss +0: cbr +.br +1: mt +.br +2: rh(default) +.br +3: abr +.br +4: mtrh +.REss +.IPs abr\ \ +average bitrate +.IPs cbr\ \ +constant bitrate. +.br +Forces also CBR mode encoding on subsequent ABR presets modes +.IPs br=<0\-1024> +specify bitrate in kBit (CBR and ABR only) +.IPs q=<0\-9> +quality (0-highest, 9-lowest) (only for VBR) +.IPs aq=<0\-9> +algorithmic quality (0-best/\:slowest, 9-worst/\:fastest) +.IPs ratio=<1\-100> +compression ratio +.IPs vol=<0\-10> +set audio input gain +.IPs mode=<0\-3> +(default: auto) +.RSss +0: stereo +.br +1: joint-stereo +.br +2: dualchannel +.br +3: mono +.REss +.IPs padding=<0\-2> +.RSss +0: no +.br +1: all +.br +2: adjust +.REss +.IPs fast +switch on faster encoding on subsequent VBR presets modes, slightly lower +quality and higher bitrates. +.IPs preset=<value> +provide the highest possible quality settings. +.RSss +medium: VBR encoding, good quality, 150\-180 kbps bitrate range. +.br +standard: VBR encoding, high quality, 170\-210 kbps bitrate range. +.br +extreme: VBR encoding, very high quality, 200\-240 kbps bitrate range. +.br +insane: CBR encoding, highest preset quality, 320 kbps bitrate. +.br +<8-320>: ABR encoding at average given kbps bitrate. +.br +.REss +.RE + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-lameopts fast:preset=standard" +for most people on most music and already quite high in quality. +.IPs "\-lameopts cbr:preset=192" +encode with ABR presets at a 192 kbps forced constant bitrate. +.IPs "\-lameopts preset=172" +encode with ABR presets at a 172 kbps average bitrate. +.IPs "\-lameopts preset=extreme" +for people with extremely good hearing and similar equipment. +.IPs "\-lameopts preset=help" +print additional options and informations on presets settings. +.RE +.PD 1 +. +.TP +.B \-lavcopts <option1:option2:...> +If encoding with a codec from libavcodec, you can specify its parameters +here. + +.I EXAMPLE: +.PD 0 +.RSs +\-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250 +.RE +.PD 1 + +.RS +Available options are: +.RE +. +.RSs +.IPs vcodec=<value> +use the specified codec (there is no default, you must specify it): +.RSss +mjpeg: Motion JPEG +.br +h263: H263 +.br +h263p: H263 Plus +.br +mpeg4: DivX 4/\:5 +.br +msmpeg4: DivX 3 +.br +rv10: an old RealVideo codec +.br +mpeg1video: MPEG1 video :) +.REss +.IPs vqmin=<1\-31> +minimum quantizer (pass\ 1/\:2) (default: 2) +.IPs vqscale=<1\-31> +constant quantizer (selects fixed quantizer mode) (default: 0 (disabled)) +.IPs vqmax=<1\-31> +maximum quantizer (pass\ 1/\:2) (default: 31) +.IPs mbqmin=<1\-31> +minimum macroblock quantizer (pass\ 1/\:2) (default: 2) +.IPs mbqmax=<1\-31> +maximum macroblock quantizer (pass\ 1/\:2) (default: 31) +.IPs vqdiff=<1\-31> +maximum quantizer difference between I or P frames (pass\ 1/\:2) (default: 3) +.IPs vmax_b_frames=<0\-4> +maximum number of B frames between non B frames: +.RSss +0: no B frames (default) +.br +0\-2: sane range +.REss +.IPs vme=<0\-5> +motion estimation method: +.RSss +0: none (very lq) +.br +1: full (slow) +.br +2: log (lq) +.br +3: phods (lq) +.br +4: EPZS (default) +.br +5: X1 (experimental) +.REss +.IPs vhq\ \ +high quality mode, encode each macro block in all modes an choose the smallest +(slow). +(default: HQ disabled) +.IPs v4mv +4 motion vectors per macroblock (slightly better quality). +(default: disabled) +.IPs keyint=<0\-300> +interval between keyframes in frames. +Larger numbers mean slightly smaller files, but less precise seeking, 0 means +no key frames and values >300 aren't recommended. +For a strict mpeg1/\:2/\:4 compliance this would have to be <=132. +(default: 250 or one key frame every ten seconds in a 25fps movie) +.IPs vb_strategy=<0\-1> +strategy to choose between I/\:P/\:B frames (pass\ 2): +.RSss +0: always use the maximum number of B frames (default) +.br +1: avoid B frames in high motion scenes (bitrate mispredictions) +.REss +.IPs vpass=<1\-2> +Activates internal 2pass mode (default: disabled): +.RSss +1: first pass +.br +2: second pass +.REss +.IPs aspect=<x/y> +Store movie aspect internally, just like MPEG files. +Much nicer solution than rescaling, because quality isn't decreased. +Only MPlayer will play these files correctly, other players will display +them with wrong aspect. +The aspect parameter can be given as a ratio or a floating point number. +Example: +.RSss +aspect=16/9, aspect=1.78 +.REss +.IPs vbitrate=<value> +specify bitrate (pass\ 1/\:2) in +.RSss +kBit <4\-16000> or +.br +Bit <16001\-24000000> +.br +(warning: 1kBit = 1000 Bits) +.br +(default: 800) +.REss +.IPs vratetol=<value> +approximated filesize tolerance in kbit. +(warning: 1kBit = 1000 Bits) +(default: 8000) +.IPs vrc_maxrate=<value> +maximum bitrate in kbit/\:sec (pass\ 1/\:2) +.IPs vrc_minrate=<value> +minimum bitrate in kbit/\:sec (pass\ 1/\:2) +.IPs vrc_buf_size=<value> +buffer size in kbit (pass\ 1/\:2). +Note: vratetol should not be too large during the second pass or there might +be problems if vrc_(min|max)rate is used. +.IPs vb_qfactor=<-31.0\-31.0> +quantizer factor between B and non B frames (pass\ 1/\:2) (default: 1.25) +.IPs vi_qfactor=<-31.0\-31.0> +(pass\ 1/\:2) (default: 0.8) +.IPs vb_qoffset=<-31.0\-31.0> +quantizer offset between B and non B frames (pass\ 1/\:2) (default: 1.25) +.IPs vi_qoffset=<-31.0\-31.0> +(pass\ 1/\:2) (default: 0.0) +.br +if v{b|i}_qfactor > 0 +.br +I/\:B-Frame quantizer = P-Frame quantizer * v{b|i}_qfactor + v{b|i}_qoffset +.br +else +.br +do normal ratecontrol (dont lock to next P frame quantizer) and set +q= -q * v{b|i}_qfactor + v{b|i}_qoffset +.IPs vqblur=<0.0\-1.0> +quantizer blur (pass1): +.RSss +0.0: qblur disabled +.br +0.5 (default) +.br +1.0: average the quantizer over all previous frames, larger values will + average the quantizer more over time (slower change) +.REss +.IPs vqblur=<0.0\-99.0> +quantizer gaussian blur, larger values will average the quantizer more over +time (slower change) (pass2) (default: 0.5) +.IPs vqcomp=<value> +quantizer compression, depends upon vrc_eq (pass\ 1/\:2) (default: 0.5) +.IPs vrc_eq=<equation> +main ratecontrol equation (pass\ 1/\:2): + +1: constant bitrate +.br +tex: constant quality +.br +1+(tex/\:avgTex-1)*qComp: approximately the equation of the old ratecontrol +code +.br +tex^qComp: with qcomp 0.5 or something like that (default) + +infix operators: +,-,*,/,^ + +variables: +.br +tex: texture complexity +.br +iTex,pTex: intra, non intra texture complexity +.br +avgTex: average texture complexity +.br +avgIITexaverage: intra texture complexity in I frames +.br +avgPITexaverage: intra texture complexity in P frames +.br +avgPPTexaverage: non intra texture complexity in P frames +.br +avgBPTexaverage: non intra texture complexity in B frames +.br +mv: bits used for MVs +.br +fCode: maximum length of MV in log2 scale +.br +iCount: number of intra MBs / number of MBs +.br +var: spatial complexity +.br +mcVar: temporal complexity +.br +qComp: qcomp from the command line +.br +isI, isP, isB: is 1 if picture type is I/\:P/\:B else 0 +.br +Pi,E: see your favorite math book + +functions: +.br +max(a,b),min(a,b): maximum / minimum +.br +gt(a,b): is 1 if a>b, 0 otherwise +.br +lt(a,b): is 1 if a<b, 0 otherwise +.br +eq(a,b): is 1 if a==b,0 otherwise +.br +sin, cos, tan, sinh, cosh, tanh, exp, log, abs +. +.IPs vrc_override=<options> +User specified quality for specific parts (pass\ 1/\:2). +The options are <start-frame, end-frame, quality[/\:start-frame, end-frame, +quality[/...]]>: +.RSss +quality 2\-31: quantizer +.br +quality \-500\-0: quality correcture in % +.REss +.IPs vrc_init_cplx=<0\-1000> +initial complexity (pass\ 1) +.IPs vqsquish=<0\-1> +specify how to keep the quantizer between qmin and qmax (pass\ 1/\:2): +.RSss +0: use cliping +.br +1: use a nice differentiable function (default) +.REss +.IPs vlelim=<-1000\-1000> +single coefficient elimination threshold for luminance. +Negative values will also consider the dc coefficient (should be at least -4 +or lower for encoding +at quant=1): +.RSss +0: disabled (default) +.br +-4 (JVT recommendation) +.REss +.IPs vcelim=<-1000\-1000> +single coefficient elimination threshold for chrominance. +Negative values will also consider the dc coefficient (should be at least -4 +or lower for encoding at quant=1): +.RSss +0 disabled (default) +.br +7 (JVT recommendation) +.REss +.IPs vstrict=<-1\-1> +(strict) standard compliance. +.RSss +0: disabled (default) +.br +1: only recommended if you want to feed the output into the mpeg4 +reference decoder +.br +-1: allows non-standard YV12 huffyuv encoding (20% smaller files, but +can't be played back by the official huffyuv codec) +.REss +.IPs vdpart +data partitioning. +Adds 2 byte per video packet, improves error-resistance when transfering over +unreliable channels (eg.\& streaming over the internet) +.IPs vpsize=<0\-10000> +video packet size, improves error-resistance (see \-vdpart option too): +.RSss +0: disabled (default) +.br +100-1000: good choice +.REss +.IPs gray +grayscale only encoding (faster) (default: disabled) +.IPs vfdct=<0\-10> +dct algorithm: +.RSss +0: automatically select a good one (default) +.br +1: fast integer +.br +2: accurate integer +.br +3: mmx +.br +4: mlib +.REss +.IPs idct=<0\-99> +idct algorithm. +Note: all these IDCTs do pass the IEEE1180 tests afaik: +.RSss +0: automatically select a good one (default) +.br +1: jpeg reference integer +.br +2: simple +.br +3: simplemmx +.br +4: libmpeg2mmx (inaccurate, DONT USE for encoding with keyint >100) +.br +5: ps2 +.br +6: mlib +.br +7: arm +.REss +.IPs lumi_mask=<0.0\-1.0> +luminance masking. +Warning: be careful, too large values can cause disasterous things. +Warning2: large values might look good on some monitors but may look horrible +on other monitors: +.RSss +0.0: disabled (default) +.br +0.0\-0.3: sane range +.REss +.IPs dark_mask=<0.0\-1.0> +darkness masking. +Warning: be careful, too large values can cause disasterous things. +Warning2: large values might look good on some monitors but may look horrible +on other monitors / TV / TFT: +.RSss +0.0: disabled (default) +.br +0.0\-0.3: sane range +.REss +.IPs tcplx_mask=<0.0\-1.0> +temporal complexity masking (default: 0.0 (disabled)) +.IPs scplx_mask=<0.0\-1.0> +spatial complexity masking. +Larger values help against blockiness, if no deblocking filter is used for +decoding. +Crop any black borders to get better quality: +.RSss +0.0: disabled (default) +.br +0.0\-0.5: sane range +.REss +.IPs naq\ \ +Normalize adaptive quantization (experimental). +When using adaptive quantization (*_mask), the average per-MB quantizer may no +longer match the requested frame-level quantizer. +Naq will attempt to adjust the per-MB quantizers to maintain the proper +average. +.IPs ildct +use interlaced dct +.IPs format=<value> +.RSss +YV12: default +.br +422P: for huffyuv +.REss +.IPs pred +(for huffyuv) +.RSss +0: left prediction +.br +1: plane/gradient prediction +.br +2: median prediction +.REss +.IPs qpel +use quarter pel motion compensation +.IPs precmp=<0\-2000> +comparison function for motion estimation pre pass +.IPs cmp=<0\-2000> +comparison function for full pel motion estimation +.IPs subcmp=<0\-2000> +comparison function for sub pel motion estimation +.RSss +0 (SAD): sum of absolute differences, fast (default) +.br +1 (SSE): sum of squared errors +.br +2 (SATD): sum of absolute hadamard transformed differences +.br +3 (DCT): sum of absolute dct transformed differences +.br +4 (PSNR): sum of the squared quantization errors +.br +5 (BIT): number of bits needed for the block +.br +6 (RD): rate distoration optimal, slow +.br +7 (ZERO): 0 +.br ++256: use chroma too, doesnt work with b frames currently +.REss +.IPs predia=<\-99\-6> +Diamond type and size for motion estimation pre pass +.IPs dia=<\-99\-6> +Diamond type & size for motion estimation. +Note: The sizes of the normal diamonds and shape adaptive ones dont have the same meaning +.RSss +\-3: shape adaptive (fast) diamond with size 3 +.br +\-2: shape adaptive (fast) diamond with size 2 +.br +\-1: experimental +.br + 1: normal size=1 diamond (default) =EPZS type diamond +.nf +.ne + 0 + 000 + 0 +.fi +.br + 2: normal size=2 diamond +.nf +.ne + 0 + 000 + 00000 + 000 + 0 +.fi +.REss +.IPs trell +Trellis quantization. +This will find the optimal encoding for each 8x8 block. +Trellis quantization is quite simple a optimal quantization in the PSNR vs +bitrate sense (assuming that there would be no rounding errors introduced +by the IDCT, which is obviously not the case) it simply finds a block for +the minimum of error and lambda*bits. +.RSss +lambda: qp dependant constant +.br +bits: amount of bits needed to encode the block +.br +error: sum of squared errors of the quantization +.REss +.IPs last_pred=<0\-99> +Amount of motion predictors from the previous frame +.RSss +0: (default) +.br +a: will use 2a+1 x 2a+1 MB square of MV predictors from the previous frame +.REss +.IPs preme=<0\-2> +motion estimation pre-pass +.RSss +0: disabled +.br +1: only after I frames (default) +.br +2: always +.REss +.IPs subq=<1\-8> +subpel refinement quality (for qpel) (default: 8). +Note: this has a significant effect on the speed +.IPs psnr +print the psnr (peak signal to noise ratio) for the whole video after encoding +and store the per frame psnr in a file with name like 'psnr_012345.log'. +.IPs mpeg_quant +use MPEG quantizers instead of H.263. +(default: disabled) (i.e.\& use H.263 quantizers) +.RE +. +.TP +.B \-noskip +Do not skip frames. +.TP +.B \-o <filename> +Outputs to the given filename, instead of the default 'test.avi'. +.TP +.B \-oac <codec name> +Encode with the given audio codec. +Use \-ovc help to get a list of available codecs. +(no default set) + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "-oac copy" +no encoding, just streamcopy +.IPs "-oac pcm" +encode to uncompressed PCM +.IPs "-oac mp3lame" +encode to MP3 (using Lame) +.RE +.PD 1 +. +.TP +.B \-of <format> (BETA CODE!) +Encode to the specified format. +Use \-of help to get a list of available formats. + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "-of avi" +encode to avi (default) +.IPs "-of mpeg" +encode to mpeg +.RE +.PD 1 +. +.TP +.B \-ofps <fps> +The output file will have different frame/\:sec than the source. +You MUST set it for variable fps (asf, some mov) and progressive +(29.97fps telecined mpeg) files. +.TP +.B \-ovc <codec name> +Encode with the given video codec. +Use \-ovc help to get a list of available codecs. +(no default set) + +.I EXAMPLE: +.PD 0 +.RSs +.IPs "\-ovc copy" +no encoding, just streamcopy +.IPs "\-ovc divx4" +encode to DivX4/\:DivX5 +.IPs "\-ovc rawrgb" +encode to uncompressed RGB24 +.IPs "\-ovc lavc" +encode with a libavcodec codecs +.RE +.PD 1 +. +.TP +.B \-passlogfile <filename> +When encoding in 2pass mode, MEncoder dumps first pass' informations +to the given file instead of the default divx2pass.log. +.TP +.B \-skiplimit <value> +Maximal skipable frames after non-skipped one +(-noskiplimit for unlimited number). +.TP +.B \-v, \-\-verbose +Increment verbose level (more \-v means more verbosity). + +.PD 0 +.RSs +.IPs 0 +only some informal output (default) +.IPs 1 +some basic debug infos, avi header, function values (init debug) +.IPs 2 +print avi indexes, chunk inputs, more debug infos (player debug) +.IPs 3 +prints everything related to input parsers (parser debug) +.RE +.PD 1 +. +.TP +.B \-vobsubout <basename> +Specify the basename for the output .idx and .sub files. +This turns off subtitle rendering in the encoded movie and diverts it to +Vobsub subtitle files. +.TP +.B \-vobsuboutindex <index> +Specify the index of the subtitles in the output files. +(default: 0) +.TP +.B \-vobsuboutid <langid> +Specify the language two letter code for the subtitles. +This overrides what is read from the DVD or the .ifo file. +.TP +.B \-xvidencopts <option1:option2:...> +If encoding to XviD, you can specify its parameters here. +.br +There's three modes available: constant bitrate (CBR), fixed quantizer and +2pass. +.br +Available options are: +. +.RSs +.IPs pass=<1|2> +specify the pass in 2pass mode +.IPs bitrate=<value> +sets the bitrate to be used in kbits/\:second if <16000 or in bits/\:second +if >16000 +(CBR or 2pass mode, default=687 kbits/s) +.IPs fixed_quant=<1\-31> +switch to fixed quantizer mode and specify the quantizer to be used +.IPs me_quality=<0\-6> +specify the motion detection quality (default=4) +.IPs 4mv +use 4 motion vectors per macro-block, might give better compression at the +cost of a slower encoding (default=off) +.IPs rc_reaction_delay_factor=<value> +specify how fast the rate control reacts, lower values are faster +.IPs rc_averaging_period=<value> +period to reach the required average +.IPs rc_buffer=<value> +size of the rate control buffer +.IPs quant_range=<1\-31>\-<1\-31>[/<1\-31>\-<1\-31>] +min & max quantizer for all frames (default=2\-31, CBR mode) +.br +min & max quantizer for I/P frames (default=2\-31/2\-31, 2pass mode) +.IPs min_key_interval=<value> +minimum interval between key frames (default=0, 2pass only) +.IPs max_key_interval=<value> +maximum interval between key frames (default=10*fps) +.IPs mpeg_quant +use MPEG quantizers instead of H.263 (default=off) +.IPs mod_quant +decide whether to use MPEG or H.263 quantizers on a frame-by-frame basis. +(default=off, 2pass mode only) +.IPs lumi_mask +use a lumimasking algorithm (default=off, seems buggy) +.IPs hintedme +save Motion Estimation vectors to a file during the first pass and reuse this +file during the second (default=off, 2pass mode only, seems buggy) +.IPs hintfile +specify the temporary file to be used by the 'hintedme' option +(default= \./xvid_hint_me.dat, 2pass mode only) +.IPs debug +save per-frame statistics in xvid.dbg (default=off) +.br +this is *not* the 2pass control file +.IPs keyframe_boost=<0\-1000> +(default=0, 2pass mode only) +.IPs kfthreshold=<value> +(default=10, 2pass mode only) +.IPs kfreduction=<0\-100> +(default=30, 2pass mode only) +.RE + + +.\" -------------------------------------------------------------------------- +.\" Keyboard control +.\" -------------------------------------------------------------------------- +. +.SH "KEYBOARD CONTROL" +.I NOTE: +.br +MPlayer has a fully configurable, command driven, control layer +which allow you to control MPlayer using keyboard, mouse, joystick +or remote control (using lirc). +.br +The default configuration file for the input system is +~/.mplayer/\:input.conf but it can be overriden +using the \-input conf option. +.br +These keys may/\:may not work, depending on your video output driver. +.TP +.B general control +.PD 0 +.RSs +.IPs "<\- and \->" +seek backward/\:forward 10 seconds +.IPs "up and down" +seek backward/\:forward 1 minute +.IPs "pgup and pgdown" +seek backward/\:forward 10 minutes +.IPs "< and >" +backward/\:forward in playlist +.IPs "HOME and END" +go to next/\:previous playtree entry in the parent list +.IPs "INS and DEL" +go to next/\:previous alternative source (asx playlist only) +.IPs "p / SPACE" +pause movie (any key unpauses) +.IPs "q / ESC" +stop playing and quit +.IPs "+ and \-" +adjust audio delay by +/\:\- 0.1 second +.IPs "/ and *" +decrease/\:increase volume +.IPs "9 and 0" +decrease/\:increase volume +.IPs m\ \ \ \ +mute sound +.IPs f\ \ \ \ +toggle fullscreen +.IPs "w and e" +decrease/\:increase panscan range +.IPs o\ \ \ \ +toggle between OSD states: none / seek / seek+timer +.IPs d\ \ \ \ +toggle frame dropping +.IPs v\ \ \ \ +toggle subtitle visibility +.IPs j\ \ \ \ +switch subtitle language +.IPs a\ \ \ \ +toggle subtitle aligment: top/middle/bottom +.IPs "z and x" +adjust subtitle delay by +/\:\- 0.1 second +.IPs "r and t" +adjust subtitle position +.IPs "i" +set EDL mark + +.PP +(The following keys are valid only when using \-vo xv or +\-vo [vesa|fbdev]:vidix or \-vo xvidix \-vo (x)mga or \-vc divxds (slow).) + +.IPs "1 and 2" +adjust contrast +.IPs "3 and 4" +adjust brightness +.IPs "5 and 6" +adjust hue +.IPs "7 and 8" +adjust saturation +.RE +.PD 1 +. +.TP +.B GUI keyboard control +.PD 0 +.RSs +.IPs "ENTER" +start playing +.IPs s\ \ \ \ +stop playing +.IPs l\ \ \ \ +load file +.IPs c\ \ \ \ +skin browser +.IPs p\ \ \ \ +toggle playlist +.RE +.PD 1 +. +.TP +.B TV input control +.PD 0 +.RSs +.IPs "h and k" +select previous/\:next channel +.IPs n\ \ \ \ +change norm +.IPs u\ \ \ \ +change channel list +.RE +.PD 1 +. +.TP +.B DVDNAV input control +.PD 0 +.RSs +.IPs "K,J,H,L" +browse up/\:down/\:left/\:right +.IPs M\ \ \ \ +jump to main menu +.IPs S\ \ \ \ +select +.RE +.PD 1 + + +.\" -------------------------------------------------------------------------- +.\" Slave mode protocol +.\" -------------------------------------------------------------------------- +. +.SH "SLAVE MODE PROTOCOL" +If the \-slave option is given, playback is controlled by a +line\-based protocol. +Each line must contain one command otherwise one of the following tokens: +.TP +.B Commands +.RSs +.IPs "seek <value> [type=<0/\:1/\:2>]" +Seek to some place in the movie. +Type 0 is a relative seek of +/\:- <value> seconds. +Type 1 seek to <value> % in the movie. +Type 2 is a seek to an absolute position of <value> seconds. +.IPs "audio_delay <value>" +Adjust the audio delay of value seconds +.IPs quit +Quit MPlayer +.IPs pause +Pause/\:unpause the playback +.IPs grap_frames +Somebody know ? +.IPs "pt_step <value> [force=<value>]" +Go to next/\:previous entry in the playtree. +.IPs "pt_up_step <value> [force=<value>]" +Like pt_step but it jumps to next/\:previous in the parent list. +.IPs "alt_src_step <value>" +When more than one source is available it selects the next/\:previous one +(only supported by asx playlist). +.IPs "sub_delay <value> [abs=<value>]" +Adjust the subtitles delay of +/\:- <value> seconds or set it to <value> +seconds when abs is non zero. +.IPs "osd [level=<value>]" +Toggle osd mode or set it to level when level > 0. +.IPs "volume <dir>" +Increase/\:decrease volume +.IPs "[contrast|brightness|hue|saturation] <\-100\-100> [abs=<value>]" +Set/\:Adjust video parameters. +.IPs "frame_drop [type=<value>]" +Toggle/\:Set frame dropping mode. +.IPs "sub_visibility" +Toggle subtitle visibility. +.IPs "sub_pos <value>" +Adjust subtitles position. +.IPs vo_fullscreen +Switch to fullscreen mode. +.IPs "tv_step_channel <dir>" +Select next/\:previous tv channel. +.IPs "tv_step_norm" +Change TV norm. +.IPs "tv_step_chanlist" +Change channel list. +.IPs "gui_[loadsubtitle|about|play|stop]" +GUI actions +.RE + + +.\" -------------------------------------------------------------------------- +.\" Files +.\" -------------------------------------------------------------------------- +. +.SH FILES +.TP +/etc/\:mplayer/\:mplayer.conf +system\-wide settings +.TP +~/.mplayer/\:config +user settings +.TP +~/.mplayer/\:input.conf +input bindings (see '\-input keylist' for full keylist) +.TP +~/.mplayer/\:gui.conf +GUI configuration file +.TP +~/.mplayer/\:gui.pl +GUI playlist +.TP +~/.mplayer/\:font/ +font directory (There must be a font.desc file and files with .RAW extension.) +.TP +~/.mplayer/\:DVDkeys/ +cracked CSS keys +.PD 0 +.TP +Sub files +are searched for in this priority (for example /mnt/\:movie/\:movie.avi): +.RSs +/mnt/\:cdrom/\:movie.sub +.br +~/.mplayer/\:sub/\:movie.sub +.br +~/.mplayer/\:default.sub +.RE +.PD 1 + + +.\" -------------------------------------------------------------------------- +.\" Examples +.\" -------------------------------------------------------------------------- +. +.SH EXAMPLES +.TP +.B Quickstart DVD playing +mplayer \-dvd 1 +.TP +.B Play in japanese with english subtitles +mplayer \-dvd 1 \-alang ja \-slang en +.TP +.B Play only chapters 5, 6, 7 +mplayer \-dvd 1 \-chapter 5\-7 +.TP +.B Multiangle DVD playing +mplayer \-dvd 1 \-dvdangle 2 +.TP +.B Playing from a different DVD device +mplayer \-dvd 1 \-dvd\-device /dev/\:dvd2 +.TP +.B Old style DVD (VOB) playing +mplayer \-dvdauth /dev/\:dvd /mnt/\:dvd/\:VIDEO_TS/\:VTS_02_4.VOB +.TP +.B Stream from HTTP +mplayer http://mplayer.hq/\:example.avi +.TP +.B Stream using RTSP +mplayer rtsp://server.example.com/\:streamName +.TP +.B Convert subtitle to MPsub (to ./\:dump.mpsub) +mplayer dummy.avi \-sub source.sub \-dumpmpsub +.TP +.B Input from standard V4L +mplayer \-tv on:driver=v4l:width=640:height=480:outfmt=i420 \-vc rawi420 +\-vo xv +.TP +.B Encoding DVD title #2, only selected chapters +mencoder \-dvd 2 \-chapter 10-15 \-o title2.avi \-oac copy \-ovc divx4 +.TP +.B Encoding DVD title #2, resizing to 640x480 +mencoder \-dvd 2 \-vop scale=640:480 \-o title2.avi \-oac copy \-ovc divx4 +.TP +.B Encoding DVD title #2, resizing to 512xHHH (keep aspect ratio) +mencoder \-dvd 2 \-vop scale \-zoom \-xy 512 \-o title2.avi \-oac copy +\-ovc divx4 +.TP +.B The same, but with libavcodec family, MPEG4 (Divx5) compression +mencoder \-dvd 2 \-o title2.avi \-ovc lavc +\-lavcopts vcodec=mpeg4:vhq:vbitrate=1800 \-oac copy +.TP +.B The same, but with libavcodec family, MJPEG compression +mencoder \-dvd 2 \-o titel2.avi \-ovc lavc +\-lavcopts vcodec=mjpeg:vhq:vbitrate=1800 \-oac copy +.TP +.B Encoding all *.jpg files in the current dir +mencoder \\*.jpg \-mf on:fps=25 \-o output.avi \-ovc divx4 +.TP +.B Encoding from tuner +mencoder \-tv on:driver=v4l:width=640:height=480 \-o tv.avi \-ovc rawrgb +.TP +.B Encoding from a pipe +rar p test-SVCD.rar | mencoder \-ovc divx4 \-divx4opts br=800 \-ofps 24 +\-\- \- +.TP +.B Encoding multiple *.vob files +cat *.vob | mencoder <options> \- + + +.\" -------------------------------------------------------------------------- +.\" Bugs, authors, standard disclaimer +.\" -------------------------------------------------------------------------- +. +.SH BUGS +Probably. +PLEASE, double-check the documentation (especially bugreports.html), +the FAQ and the mail archive before! +.br +Send your complete bug reports to the MPlayer-users mailing list at +<mplayer-users@mplayerhq.hu>. +We love complete bug reports :) + + +.SH AUTHORS +Check documentation. +.TP +MPlayer is (C) 2000\-2003 +.B Arpad Gereoffy +.TP +This man page is written and maintained by +.B Gabucino +.br +.B Diego Biurrun +.br +.B Jonas Jermann +.PP +Please send mails about it to the MPlayer-users mailing list. + + +.SH "STANDARD DISCLAIMER" +Use only at your own risk! +There may be errors and inaccuracies that could be damaging to your system or +your eye. +Proceed with caution, and although this is highly unlikely, the authors don't +take any responsibility for that! +.\" end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/skin.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,805 @@ +<!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> +<pre> + base = main, -1, -1 +</pre> + </blockquote> + MPlayer tries to load <code>main</code>, <code>main.png</code>, + <code>main.PNG</code> files.<br> + </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><br> + <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>.<br><br> + <em class="warn"><b>Note:</b> This doesn't work for the display window, + there is no need to.</em><br> + </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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/sound.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,848 @@ +<!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>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 (which ones?)</B></TD> + <TD>not OK (hissing) (?)</TD> + <TD>OK</TD> + <TD> </TD> + <TD> </TD> + <TD>?</TD> + <TD> </TD> + <TD> </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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/users_against_developers.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,190 @@ +<!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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/en/video.html Mon Feb 10 00:00:00 2003 +0000 @@ -0,0 +1,1469 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + +<HEAD> + <TITLE>Video - 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="video">2.3.1 Video output devices</A></H3> + + +<H4><A NAME="mtrr">2.3.1.1 Setting up MTRR</A></H4> + +<P>It is VERY recommended to check if the MTRR registers are set up properly, + because they can give a big performance boost.</P> + +<P>Do a '<CODE>cat /proc/mtrr</CODE>':</P> + +<P><CODE> + --($:~)-- cat /proc/mtrr<BR> + reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR> + reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1</CODE></P> + +<P>It's right, shows my Matrox G400 with 16MB memory. I did this from + XFree 4.x.x , which sets up MTRR registers automatically.</P> + +<P>If nothing worked, you have to do it manually. First, you have to find the + base address. You have 3 ways to find it:</P> + +<UL> + <LI>from X11 startup messages, for example: + <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR> + (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI> + <LI>from /proc/pci (use lspci -v command): + <P> + <CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE> + <CODE>Memory at d8000000 (32-bit, prefetchable)</CODE> + </P></LI> + <LI>from mga_vid kernel driver messages (use <CODE>dmesg</CODE>): + <P><CODE>mga_mem_base = d8000000</CODE></P></LI> +</UL> + +<P>Then let's find the memory size. This is very easy, just convert video ram + size to hexadecimal, or use this table:</P> + +<TABLE BORDER=0> + <TR><TD> </TD><TD>1 MB</TD><TD WIDTH="10%"></TD><TD>0x100000</TD></TR> + <TR><TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD></TR> + <TR><TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD></TR> + <TR><TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD></TR> + <TR><TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD></TR> + <TR><TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD></TR> +</TABLE> + + +<P>You know base address and memory size, let's setup MTRR registers! + For example, for the Matrox card above (base=0xd8000000) with 32MB + ram (size=0x2000000) just execute:</P> + + +<P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> + + +<P>Not all CPUs support MTRRs. For example older K6-2's [around 266MHz, + stepping 0] doesn't support MTRR, but stepping 12's do ('<CODE>cat + /proc/cpuinfo</CODE>' to check it').</P> + +<H4><A NAME="normal">2.3.1.2 Video outputs for traditional video cards</A></H4> + +<H4><A NAME="xv">2.3.1.2.1 Xv</A></H4> + +<P>Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines + using the XVideo extension. This is what the option '-vo xv' uses. Also, + this is driver supports adjusting brightness/contrast/hue/etc (unless you use + the old, slow DirectShow DivX codec, which supports it everywhere), see the + man page.</P> + +<P>In order to make this work, be sure to check the following:</P> + +<UL> + <LI>You have to use XFree86 4.0.2 or newer (former versions don't have + XVideo)</LI> + <LI>Your card actually supports hardware acceleration (modern cards do)</LI> + <LI>X loads the XVideo extension, it's something like this: + + <P><CODE> (II) Loading extension XVideo</CODE></P> + + <P>in /var/log/XFree86.0.log</P> + + <P>NOTE: this loads only the XFree86's extension. In a good install, this + is always loaded, and doesn't mean that the <B>card's</B> XVideo support is + loaded!</P> + </LI> + <LI>Your card has Xv support under Linux. To check, try 'xvinfo', it is the + part of the XFree86 distribution. It should display a long text, similar + to this: + <PRE> + X-Video Extension version 2.2 + screen #0 + Adaptor #0: "Savage Streams Engine" + number of ports: 1 + port base: 43 + operations supported: PutImage + supported visuals: + depth 16, visualID 0x22 + depth 16, visualID 0x23 + number of attributes: 5 + (...) + Number of image formats: 7 + id: 0x32595559 (YUY2) + guid: 59555932-0000-0010-8000-00aa00389b71 + bits per pixel: 16 + number of planes: 1 + type: YUV (packed) + id: 0x32315659 (YV12) + guid: 59563132-0000-0010-8000-00aa00389b71 + bits per pixel: 12 + number of planes: 3 + type: YUV (planar) + (...etc...) + </PRE> + <P>It must support YUY2 packed, and YV12 planar pixel formats to be + usable with MPlayer.</P> + </LI> + <LI>And finally, check if MPlayer was compiled with 'xv' support. + ./configure prints this.</LI> +</UL> + + +<H4><A NAME="xv_3dfx">2.3.1.2.1.1 3dfx cards</A></H4> + +<P>Older 3dfx drivers were known to have problems with XVideo acceleration, it + didn't support either YUY2 or YV12, and so. Verify that you have XFree86 + version 4.2.0 or greater, it works OK with YV12 and YUY2. Previous versions, + including 4.1.0, <B>crash with YV12</B>. If you experience strange effects + using -vo xv, try SDL (it has XVideo too) and see if it helps. Check the + <A HREF="#sdl">SDL section</A> for details.</P> + +<P><B>OR</B>, try the NEW -vo tdfxfb driver! See the + <A HREF="#tdfxfb">tdfxfb</A> section.</P> + + +<H4><A NAME="xv_s3">2.3.1.2.1.2 S3 cards</A></H4> + +<P>S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 + or greater (in case of image problems, try 16bpp). As for S3 Virge.. there is + xv support, but the card itself is very slow, so you better sell it.</P> + +<P><B>NOTE</B>: it's currently unclear which Savage models lack YV12 support, + and convert by driver (slow). If you suspect your card, get a newer driver, + or ask politely on the mplayer-users mailing list for an MMX/3DNow enabled + driver.</P> + + +<H4><A NAME="xv_nvidia">2.3.1.2.1.3 nVidia cards</A></H4> + +<P>nVidia isn't a very good choice under Linux (according to nVidia, this is + <A HREF="users_against_developers.html#nvidia">not true</A>).. You'll have to + use the binary closed-source nVidia driver, available at nVidia's web site. + The standard XFree86 driver doesn't support XVideo for these cards, due to + nVidia's closed sources/specifications.</P> + +<P>As far as I know the latest XFree86 driver contains XVideo support for + GeForce 2 and 3.</P> + +<P>Riva128 cards don't have XVideo support even with the nVidia driver :( + Complain to nVidia.</P> + + +<H4><A NAME="xv_ati">2.3.1.2.1.4 ATI cards</A></H4> + +<UL> + <LI>The <A HREF="http://gatos.sourceforge.net">GATOS driver</A> (which you + should use, unless you have Rage128 or Radeon) has VSYNC enabled by + default. It means that decoding speed (!) is synced to the monitor's + refresh rate. If playing seems to be slow, try disabling VSYNC somehow, or + set refresh rate to n*(fps of the movie) Hz.</LI> + <LI>Radeon VE - currently only XFree86 CVS has driver for this card, version + 4.1.0 doesn't. And no TV out support. Of course with MPlayer you can + happily get <B>accelerated</B> display, with or without <B>TV output</B>, and + no libraries or X are needed. Read <A HREF="#vidix">VIDIX</A> section.</LI> +</UL> + + +<H4><A NAME="xv_neomagic">2.3.1.2.1.5 NeoMagic cards</A></H4> + +<P>These cards can be found in many laptops. Unfortunately, the driver in + X 4.2.0 can't do Xv, but we have a modified, Xv-capable driver for you. + <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neomagic_drv.o.4.2.0.bz2">Download from here</A>. + Driver provided by Stefan Seyfried.</P> + +<P>To allow playback of DVD sized content change your XF86Config like this:</P> + +<P>Section "Device"<BR> + <I>[...]</I><BR> + Driver "neomagic"<BR> + <B>Option "OverlayMem" "829440"</B><BR> + <I>[...]</I><BR> + EndSection</P> + + +<H4><A NAME="xv_trident">2.3.1.2.1.6 Trident cards</A></H4> + +<P>If you want to use Xv with a Trident card, provided that it doesn't work + with 4.1.0, install XFree 4.2.0. 4.2.0 adds support for fullscreen xv + support with the Cyberblade XP card.</P> + + +<H4><A NAME="xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></H4> + +<P>If you want to use Xv with a Kyro based card (for example Hercules Prophet + 4000XT), you should download the drivers from the + <A HREF="http://www.powervr.com/">PowerVR site</A>.</P> + + +<H4><A NAME="dga">2.3.1.2.2 DGA</A></H4> + + +<H4>PREAMBLE</H4> + +<P>This section tries to explain in some words what DGA is in general and what + the DGA video output driver for MPlayer can do (and what it can't).</P> + + +<H4>WHAT IS DGA</H4> + +<P>DGA is short for Direct Graphics Access and is a means for a program to + bypass the X-Server and directly modifying the framebuffer memory. + Technically spoken this happens by mapping the framebuffer memory into + the memory range of your process. This is allowed by the kernel only + if you have superuser privileges. You can get these either by logging in + as root or by setting the SUID bit on the MPlayer executable (<B>not + recommended</B>).</P> + +<P>There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was + introduced with XFree 4.0.1.</P> + +<P>DGA1 provides only direct framebuffer access as described above. For + switching the resolution of the video signal you have to rely on the + XVidMode extension.</P> + +<P>DGA2 incorporates the features of XVidMode extension and also allows + switching the depth of the display. So you may, although basically + running a 32 bit depth X server, switch to a depth of 15 bits and vice + versa. </P> + +<P>However DGA has some drawbacks. It seems it is somewhat dependent on the + graphics chip you use and on the implementation of the X server's video + driver that controls this chip. So it does not work on every system.</P> + + +<H4>INSTALLING DGA SUPPORT FOR MPLAYER</H4> + +<P>First make sure X loads the DGA extension, see in /var/log/XFree86.0.log:</P> + +<P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> + +<P>See, XFree86 4.0.x or greater is VERY RECOMMENDED! MPlayer's DGA + driver is autodetected on ./configure, or you can force it with + --enable-dga.</P> + +<P>If the driver couldn't switch to a smaller resolution, experiment with + options -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that + the movie fits in. There is no converter right now :(</P> + +<P>Become root. DGA needs root access to be able to write directly to video + memory. If you want to run it as user, then install MPlayer SUID + root:</P> + +<P><CODE> + chown root /usr/local/bin/mplayer<BR> + chmod 750 /usr/local/bin/mplayer<BR> + chmod +s /usr/local/bin/mplayer</CODE></P> + +<P>Now it works as a simple user, too.</P> + +<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 can be accessed by other people because they can gain root + privileges through SUID root MPlayer. +</BLOCKQUOTE> + +<P>Now use the <CODE>-vo dga</CODE> option, and there you go (hope so :))! + You should also try if the <CODE>-vo sdl:dga</CODE> option works for you. It's + much faster.</P> + + +<H4><A NAME="dga_modelines">RESOLUTION SWITCHING</A></H4> + +<P>The DGA driver allows for switching the resolution of the output signal. + This avoids the need for doing (slow) software scaling and at the same time + provides a fullscreen image. Ideally it would switch to the exact resolution + (except for honoring aspect ratio) of the video data, but the X server only + allows switching to resolutions predefined in + <CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> for + XFree 4.0.X respectively). Those are defined by so-called modelines and + depend on the capabilities of your video hardware. The X server scans this + config file on startup and disables the modelines not suitable for your + hardware. You can find out which modes survive with the X11 log file. It can + be found at: + <CODE>/var/log/XFree86.0.log</CODE>.</P> + +<P>These entries are known to work fine with a Riva128 chip, using the + <CODE>nv.o</CODE> X server driver module.</P> + +<PRE> + Section "Modes" + Identifier "Modes[0]" + Modeline "800x600" 40 800 840 968 1056 600 601 605 628 + Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 + Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 + Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan + Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 + Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan + Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan + EndSection +</PRE> + + +<H4>DGA & MPLAYER</H4> + +<P>DGA is used in two places with MPlayer: The SDL driver can be made to + make use of it (-vo sdl:dga) and within the DGA driver (-vo dga). The above + said is true for both; in the following sections I'll explain how the DGA + driver for MPlayer works.</P> + + +<H4>FEATURES</H4> + +<P>The DGA driver is invoked by specifying -vo dga at the command line. + The default behavior is to switch to a resolution matching the original + resolution of the video as close as possible. It deliberately ignores the + -vm and -fs options (enabling of video mode switching and fullscreen) - + it always tries to cover as much area of your screen as possible by switching + the video mode, thus refraining to use a single additional cycle of your CPU + to scale the image. + If you don't like the mode it chooses you may force it to choose the mode + matching closest the resolution you specify by -x and -y. + By providing the -v option, the DGA driver will print, among a lot of other + things, a list of all resolutions supported by your current XF86-Config + file. + Having DGA2 you may also force it to use a certain depth by using the -bpp + option. Valid depths are 15, 16, 24 and 32. It depends on your hardware + whether these depths are natively supported or if a (possibly slow) + conversion has to be done.</P> + +<P>If you should be lucky enough to have enough offscreen memory left to + put a whole image there, the DGA driver will use doublebuffering, which + results in much smoother movie replaying. It will tell you whether double- + buffering is enabled or not.</P> + +<P>Doublebuffering means that the next frame of your video is being drawn in + some offscreen memory while the current frame is being displayed. When the + next frame is ready, the graphics chip is just told the location in memory + of the new frame and simply fetches the data to be displayed from there. + In the meantime the other buffer in memory will be filled again with new + video data.</P> + +<P>Doublebuffering may be switched on by using the option -double and may be + disabled with -nodouble. Current default option is to disable + doublebuffering. When using the DGA driver, onscreen display (OSD) only + works with doublebuffering enabled. However, enabling doublebuffering may + result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of + CPU time!) depending on the implementation of DGA for your hardware.</P> + + +<H4>SPEED ISSUES</H4> + +<P>Generally spoken, DGA framebuffer access should be at least as fast as using + the X11 driver with the additional benefit of getting a fullscreen image. + The percentage speed values printed by MPlayer have to be interpreted + with some care, as for example, with the X11 driver they do not include the + time used by the X-Server needed for the actual drawing. Hook a terminal to a + serial line of your box and start top to see what is really going on in your + box.</P> + +<P>Generally spoken, the speedup done by using DGA against 'normal' use of X11 + highly depends on your graphics card and how well the X-Server module for it + is optimized.</P> + +<P>If you have a slow system, better use 15 or 16bit depth since they require + only half the memory bandwidth of a 32 bit display.</P> + +<P>Using a depth of 24bit is even a good idea if your card natively just + supports 32 bit depth since it transfers 25% less data compared to the 32/32 + mode.</P> + +<P>I've seen some AVI files already be replayed on a Pentium MMX 266. AMD K6-2 + CPUs might work at 400 MHZ and above.</P> + + +<H4>KNOWN BUGS</H4> + +<P>Well, according to some developers of XFree, DGA is quite a beast. They + tell you better not to use it. Its implementation is not always flawless + with every chipset driver for XFree out there.</P> + +<UL> + <LI>With XFree 4.0.3 and nv.o there is a bug resulting in strange + colors.</LI> + <LI>ATI driver requires to switch mode back more than once after finishing + using of DGA.</LI> + <LI>Some drivers simply fail to switch back to normal resolution (use + Ctrl-Alt-Keypad +, - to switch back manually).</LI> + <LI>Some drivers simply display strange colors.</LI> + <LI>Some drivers lie about the amount of memory they map into the process's + address space, thus vo_dga won't use doublebuffering (SIS?).</LI> + <LI>Some drivers seem to fail to report even a single valid mode. In this + case the DGA driver will crash telling you about a nonsense mode of + 100000x100000 or something like that.</LI> + <LI>OSD only works with doublebuffering enabled (else it flickers).</LI> +</UL> + + +<H4><A NAME="sdl">2.3.1.2.3 SDL</A></H4> + +<P>SDL (Simple Directmedia Layer) is basically a unified video/audio + interface. Programs that use it know only about SDL, and not about what video + or audio driver does SDL actually use. For example a Doom port using SDL can + run on svgalib, aalib, X, fbdev, and others, you only have to specify the + (for example) video driver to use with the SDL_VIDEODRIVER environment + variable. Well, in theory.</P> + +<P>With MPlayer, we used its X11 driver's software scaler ability for + cards/drivers that doesn't support XVideo, until we made our own (faster, + nicer) software scaler. Also we used its aalib output, but now we have ours + which is more comfortable. Its DGA mode was better than ours, until + recently. Get it now? :)</P> + +<P>It also helps with some buggy drivers/cards if the video is jerky + (not slow system problem), or audio is lagging.</P> + +<P>SDL video output supports displaying subtitles under the movie, on the (if + present) black bar.</P> + +<P><B>There are several command line options for SDL:</B></P> +<DL> + <DT><CODE>-vo sdl:name</CODE></DT> + <DD>specifies sdl video driver to use (i.e.. aalib, dga, x11)</DD> + + <DT><CODE>-ao sdl:name</CODE></DT> + <DD>specifies sdl audio driver to use (i.e. dsp, esd, arts)</DD> + + <DT><CODE>-noxv</CODE></DT> + <DD>disables XVideo hardware acceleration</DD> + + <DT><CODE>-forcexv</CODE></DT> + <DD>tries to force XVideo acceleration</DD> +</DL> + +<TABLE BORDER=0> + <TR><TD COLSPAN=4><P><B>SDL Keys:</B></P></TD></TR> + <TR><TD></TD><TD><CODE>F</CODE></TD><TD></TD><TD>toggles fullscreen/windowed mode</TD></TR> + <TR><TD></TD><TD><CODE>C</CODE></TD><TD></TD><TD>cycles available fullscreen modes</TD></TR> + <TR><TD></TD><TD><CODE>W/S</CODE></TD><TD></TD><TD>mappings for * and / (mixer control)</TD></TR> +</TABLE> + +<H4>KNOWN BUGS</H4> + +<UL> + <LI>Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa!) + It's bug in SDL, I can't change it (tested with SDL 1.2.1).</LI> + <LI>DO NOT USE SDL with GUI! It won't work as it should.</LI> +</UL> + + +<H4><A NAME="svgalib">2.3.1.2.4 SVGAlib</A></H4> + +<H4>INSTALLATION</H4> + +<P>You'll have to install svgalib and its development package in order for + MPlayer build its SVGAlib driver (autodetected, but can be forced), + and don't forget to edit /etc/vga/libvga.config to suit your card & + monitor.</P> + +<H4>NOTES</H4> + +<P>Be sure not to use the -fs option, since it toggles the usage of the software + scaler, and it's slow. If you really need it, use the <CODE>-sws 4</CODE> + option which will produce bad quality, but is somewhat faster.</P> + +<H4>EGA (4BPP) SUPPORT</H4> + +<P>SVGAlib incorporates EGAlib, and MPlayer has the possibility to + display any movie in 16 colors, thus usable in the following sets:</P> + +<UL> + <LI>EGA card with EGA monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp</LI> + <LI>EGA card with CGA monitor: 320x200x4bpp, 640x200x4bpp</LI> +</UL> + +<P>The bpp (bits per pixel) value must be set to 4 by hand:<BR> + <CODE>-bpp 4</CODE><BR> + The movie probably must be scaled down to fit in EGA mode:<BR> + <CODE>-vop scale=640:350</CODE> or<BR> + <CODE>-vop scale=320:200</CODE><BR> + For that we need fast but bad quality scaling routine:<BR> + <CODE>-sws 4</CODE><BR> + Maybe automatic aspect correction has to be shut off:<BR> + <CODE>-noaspect</CODE></P> + +<P><B>NOTE:</B> according to my experience the best image quality on EGA + screens can be achieved by decreasing the brightness a bit: <CODE>-vop + eq=-20:0</CODE>. I also needed to lower the audio samplerate on my box, + because the sound was broken on 44kHz: <CODE>-srate 22050</CODE>.</P> + +<P>You can turn on OSD and subtitles only with the <CODE>expand</CODE> filter, + see the man page for exact parameters.</P> + + +<H4><A NAME="fbdev">2.3.1.2.5 Framebuffer output (FBdev)</A></H4> + +<P>Whether to build the FBdev target is autodetected during ./configure . + Read the framebuffer documentation in the kernel sources + (Documentation/fb/*) for more information.</P> + +<P>If your card doesn't support VBE 2.0 standard (older ISA/PCI + cards, such as S3 Trio64), only VBE 1.2 (or older?): + Well, VESAfb is still available, but you'll have to load SciTech Display + Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or + whatever. And don't forget to register your UniVBE ;))</P> + +<P>The FBdev output takes some additional parameters above the others:</P> + +<DL> + <DT><CODE>-fb</CODE></DT> + <DD>specify the framebuffer device to use (/dev/fb0)</DD> + + <DT><CODE>-fbmode</CODE></DT> + <DD>mode name to use (according to /etc/fb.modes)</DD> + + <DT><CODE>-fbmodeconfig</CODE></DT> + <DD>config file of modes (default /etc/fb.modes)</DD> + + <DT><CODE>-monitor_hfreq</CODE></DT> + <DT><CODE>-monitor_vfreq</CODE></DT> + <DT><CODE>-monitor_dotclock</CODE></DT> + <DD><STRONG>Important</STRONG> values, see <CODE>example.conf</CODE></DD> +</DL> + +<P>If you want to change to a specific mode, then use</P> + +<P><CODE> mplayer -vm -fbmode (NameOfMode) filename</CODE></P> + +<UL> + <LI><B>-vm</B> alone will choose the most suitable mode from /etc/fb.modes. + Can be used together with -x and -y options too. The -flip option is + supported only if the movie's pixel format matches the video mode's pixel + format. Pay attention to the bpp value, fbdev driver tries to use the + current, or if you specify the -bpp option, then that.</LI> + <LI><B>-zoom</B> option isn't supported (software scaling is slow). -fs + option isn't supported. You can't use 8bpp (or less) modes.</LI> + <LI>you possibly want to turn the cursor off: <CODE>echo -e + '\033[?25l'</CODE> or <CODE>setterm -cursor off</CODE><BR> + and the screen saver: <CODE>setterm -blank 0</CODE><BR> + To turn the cursor back on: <CODE>echo -e '\033[?25h'</CODE> + or <CODE>setterm -cursor on</CODE></LI> +</UL> + +<P>NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer, + and don't ask for it, since it's not an MPlayer limitation.</P> + + +<H4><A NAME="mga_vid">2.3.1.2.6 Matrox framebuffer (mga_vid)</A></H4> + +<P>This section is about the Matrox G200/G400/G450/G550 BES (Back-End Scaler) + support, the mga_vid kernel driver. It's actively developed by A'rpi, and + it has hardware VSYNC support with triple buffering. It works on both + framebuffer console and under X.</P> + +<P><B>NOTE</B>: This is Linux only! On non-Linux (tested on FreeBSD) systems, + you can use <A HREF="#vidix">VIDIX</A> instead!</P> + +<P><B>Installation:</B></P> +<OL> + <LI>To use it, you first have to compile mga_vid.o: + <P><CODE>cd drivers<BR> + make</CODE></P></LI> + <LI>Then create the <CODE>/dev/mga_vid</CODE> device: + <P><CODE>mknod /dev/mga_vid c 178 0</CODE></P> + <P>and load the driver with</P> + <P><CODE>insmod mga_vid.o</CODE></P></LI> + <LI>You should verify the memory size detection using the <CODE>dmesg</CODE> + command. If it's bad, use the <CODE>mga_ram_size</CODE> option + (<CODE>rmmod mga_vid</CODE> first), specify card's memory size in MB: + <P><CODE>insmod mga_vid.o mga_ram_size=16</CODE></P></LI> + <LI>To make it load/unload automatically when needed, first insert the + following line at the end of <CODE>/etc/modules.conf</CODE>: + <P><CODE>alias char-major-178 mga_vid</CODE></P> + <P>Then copy the <CODE>mga_vid.o</CODE> module to the appropriate place + under <CODE>/lib/modules/<kernel version>/somewhere</CODE>.</P> + <P>Then run</P> + <P><CODE>depmod -a</CODE></P></LI> + <LI>Now you have to (re)compile MPlayer, <CODE>configure</CODE> will + detect <CODE>/dev/mga_vid</CODE> and build the 'mga' driver. Using it from + MPlayer goes by <CODE>-vo mga</CODE> if you have matroxfb console, + or <CODE>-vo xmga</CODE> under XFree86 3.x.x or 4.x.x.</LI> +</OL> + +<P>The mga_vid driver cooperates with Xv.</P> + +<P>The <CODE>/dev/mga_vid</CODE> device file can be read (for example by + <CODE>cat /dev/mga_vid</CODE>) for some info, and written for brightness + change: <CODE>echo "brightness=120" > /dev/mga_vid</CODE></P> + + +<H4><A NAME="tdfxfb">2.3.1.2.7 3dfx YUV support (tdfxfb)</A></H4> + +<P>This driver uses the kernel's tdfx framebuffer driver to play movies with + YUV acceleration. You'll need a kernel with tdfxfb support, and recompile + with <CODE>./configure --enable-tdfxfb</CODE></P> + + +<H4><A NAME="opengl">2.3.1.2.8 OpenGL output</A></H4> + +<P>MPlayer supports displaying movies using OpenGL, but if your + platform/driver supports xv as should be the case on a PC with Linux, use xv + instead, OpenGL performance is considerably worse. If you have an X11 + implementation without xv support, OpenGL is a viable alternative.</P> + +<P>Unfortunately not all drivers support this feature. The Utah-GLX drivers + (for XFree86 3.3.6) support it for all cards. See + <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> + for details about how to install it.</P> + +<P>XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards, + 4.2.0 or later supports Rage128. See + <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> + for download and installation instructions.</P> + + +<H4><A NAME="aalib">2.3.1.2.9 AAlib - text mode displaying</A></H4> + +<P><B>AAlib</B> is a library for displaying graphics in text mode, using powerful + ASCII renderer. There are LOTS of programs already supporting it, like Doom, + Quake, etc. MPlayer contains a very usable driver for it. + If ./configure detects aalib installed, the aalib libvo driver will be + built.</P> + +<TABLE BORDER=0> + <TR><TD COLSPAN=4><P><B>You can use some keys in the AA Window to change rendering options:</B></P></TD></TR> + <TR><TD> </TD><TD><CODE>1</CODE></TD><TD> </TD><TD>decrease contrast</TD></TR> + <TR><TD></TD><TD><CODE>2</CODE></TD><TD></TD><TD>increase contrast</TD></TR> + <TR><TD></TD><TD><CODE>3</CODE></TD><TD></TD><TD>decrease brightness</TD></TR> + <TR><TD></TD><TD><CODE>4</CODE></TD><TD></TD><TD>increase brightness</TD></TR> + <TR><TD></TD><TD><CODE>5</CODE></TD><TD></TD><TD>switch fast rendering on/off</TD></TR> + <TR><TD></TD><TD><CODE>6</CODE></TD><TD></TD><TD>set dithering mode (none, error distribution, Floyd Steinberg)</TD></TR> + <TR><TD></TD><TD><CODE>7</CODE></TD><TD></TD><TD>invert image</TD></TR> + <TR><TD></TD><TD><CODE>a</CODE></TD><TD></TD><TD>toggles between aa and MPlayer control)</TD></TR> +</TABLE> + +<P><B>The following command line options can be used:</B></P> +<DL> + <DT><CODE>-aaosdcolor=V</CODE></DT> + <DD>change OSD color</DD> + + <DT><CODE>-aasubcolor=V</CODE></DT> + <DD>change subtitle color + <P><I>where V can be: (0/normal, 1/dark, 2/bold, 3/bold font, 4/reverse, + 5/special)</I></P></DD> +</DL> + +<P><B>AAlib itself provides a large sum of options. + Here are some important:</B></P> +<DL> + <DT><CODE>-aadriver</CODE></DT> + <DD>set recommended aa driver (X11, curses, Linux)</DD> + + <DT><CODE>-aaextended</CODE></DT> + <DD>use all 256 characters</DD> + + <DT><CODE>-aaeight</CODE></DT> + <DD>use eight bit ASCII</DD> + + <DT><CODE>-aahelp</CODE></DT> + <DD>prints out all aalib options</DD> +</DL> + +<P>NOTE: the rendering is very CPU intensive, especially when using AA-on-X + (using aalib on X), and it's least CPU intensive on standard, + non-framebuffer console. Use SVGATextMode to set up a big textmode, + then enjoy! (secondary head Hercules cards rock :)) (but imho you can use + <CODE>-vop 1bpp</CODE> option to get graphics on hgafb:)</P> + +<P>Use the <CODE>-framedrop</CODE> option if your computer isn't fast enough to + render all frames!</P> + +<P>Playing on terminal you'll get better speed and quality using the Linux + driver, not curses (<CODE>-aadriver linux</CODE>). But therefore you need write access on + <CODE>/dev/vcsa<terminal></CODE>. That isn't autodetected by aalib, but vo_aa tries + to find the best mode. See + <A HREF="http://aa-project.sourceforge.net/tune/">http://aa-project.sourceforge.net/tune/</A> + for further tuning issues.</P> + + +<H4><A NAME="vesa">2.3.1.2.10 VESA - output to VESA BIOS</A></H4> + +<P>This driver was designed and introduced as a <B>generic driver</B> for any + video card which has VESA VBE 2.0+ compatible BIOS. Another advantage of this + driver is that it tries to force TV output on.<BR> + <B>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</B> (Page + 70) says:</P> + +<BLOCKQUOTE> + <B>Dual-Controller Designs</B><BR> + VBE 3.0 supports the dual-controller design by assuming that since both + controllers are typically provided by the same OEM, under control of a + single BIOS ROM on the same graphics card, it is possible to hide the fact + that two controllers are indeed present from the application. This has the + limitation of preventing simultaneous use of the independent controllers, + but allows applications released before VBE 3.0 to operate normally. The + VBE Function 00h (Return Controller Information) returns the combined + information of both controllers, including the combined list of available + modes. When the application selects a mode, the appropriate controller is + activated. Each of the remaining VBE functions then operates on the active + controller. +</BLOCKQUOTE> + +<P>So you have chances to get working TV-out by using this driver.<BR> + (I guess that TV-out frequently is standalone head or standalone output + at least.)</P> + +<H4>ADVANTAGES</H4> + +<UL> + <LI>You have the possibility to watch movies <B>even if Linux doesn't know</B> + your video hardware.</LI> + <LI>You don't need to have installed any graphics' related things on your Linux + (like X11 (aka XFree86), fbdev and so on). This driver can be run from + <B>text-mode</B>.</LI> + <LI>You have chances to get <B>working TV-out</B>. (It's known at least for + ATI's cards).</LI> + <LI>This driver calls <B>int 10h</B> handler thus it's not an emulator - it + calls <B>real</B> things of <B>real</B> BIOS in <B>real</B>-mode. (Finely - + in vm86 mode).</LI> + <LI>You can use VIDIX with it, thus getting accelerated video display + <B>AND</B> TV output at the same time! (recommended for ATI cards)</LI> + <LI>If you have VESA VBE 3.0+, and you had specified <CODE>monitor_hfreq</CODE>, + <CODE>monitor_vfreq</CODE>, <CODE>monitor_dotclock</CODE> somewhere (config + file, or commandline) you will get the highest possible refresh rate. (Using + General Timing Formula). To enable this feature you have to specify + <B>all</B> your monitor options.</LI> +</UL> + +<H4>DISADVANTAGES</H4> + +<UL> + <LI>It works only on <B>x86 systems</B>.</LI> + <LI>It can be used only by <B>root</B>.</LI> + <LI>Currently it's available only for <B>Linux</B>.</LI> +</UL> + +<P>Don't use this driver with <B>GCC 2.96</B>! It won't work!</P> + +<H4>COMMAND LINE OPTIONS AVAILABLE FOR VESA</H4> +<DL> + <DT><CODE>-vo vesa:opts</CODE></DT> + <DD>currently recognized: <B>dga</B> to force dga mode and <B>nodga</B> to + disable dga mode. In dga mode you can enable double buffering via the + <CODE>-double</CODE> option. Note: you may omit these parameters to enable + <B>autodetection</B> of dga mode.</DD> +</DL> + +<H4>KNOWN PROBLEMS AND WORKAROUNDS</H4> + +<UL> + <LI>If you have installed <B>NLS</B> font on your Linux box and run VESA + driver from text-mode then after terminating MPlayer you will have + <B>ROM font</B> loaded instead of national. You can load national font again + by using <B><I>setsysfont</I></B> utility from the Mandrake distribution + for example.<BR> + (<B>Hint:</B> The same utility is used for the localization of fbdev).</LI> + <LI>Some <B>Linux graphics drivers</B> don't update active <B>BIOS mode</B> in + DOS memory. So if you have such problem - always use VESA driver only from + <B>text-mode</B>. Otherwise text-mode (#03) will be activated anyway and + you will need restart your computer.</LI> + <LI>Often after terminating VESA driver you get <B>black screen</B>. To return + your screen to original state - simply switch to other console (by pressing + <B>Alt-Fx</B>) then switch to your previous console by the same way.</LI> + <LI>To get <B>working TV-out</B> you need have plugged TV-connector in before + booting your PC since video BIOS initializes itself only once during POST + procedure.</LI> +</UL> + + +<H4><A NAME="x11">2.3.1.2.11 X11</A></H4> + +<P>Avoid if possible. Outputs to X11 (uses shared memory extension), with no + hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but still + slow) software scaling, use the options <CODE>-fs -zoom</CODE>. Most cards + have hardware scaling support, use the <CODE>-vo xv</CODE> output for them, + or <CODE>-vo xmga</CODE> for Matroxes.</P> + +<P>The problem is that most cards' driver doesn't support hardware acceleration + on the second head/TV. In those cases, you see green/blue colored window + instead of the movie. This is where this driver comes in handy, but you need + powerful CPU to use software scaling. Don't use the SDL driver's software + output+scaler, it has worse image quality!</P> + +<P>Software scaling is very slow, you better try changing video modes instead. + It's very simple. See the <A HREF="#dga_modelines">DGA section's modelines</A>, + and insert them into your XF86Config.</P> + +<UL> + <LI>If you have XFree86 4.x.x - use the <CODE>-vm</CODE> option. It will + change to a resolution your movie fits in. If it doesn't:</LI> + <LI>With XFree86 3.x.x - you have to cycle through available resolutions + with the <B>CTRL-ALT-plus</B> and <B>minus</B> keys.</LI> +</UL> + +<P>If you can't find the modes you inserted, browse XFree86's output. Some + drivers can't use low pixelclocks that are needed for low resolution + video modes.</P> + + +<H4><A NAME="vidix">2.3.1.2.12 VIDIX</A></H4> + +<H4>PREAMBLE</H4> + +<P>VIDIX is the abbreviation for <B>VID</B>eo <B>I</B>nterface for *ni<B>X</B>. + It was designed and introduced as an interface for fast user-space drivers + providing such video performance as mga_vid does for Matrox cards. It's also + very portable.</P> + +<P>This interface was designed as an attempt to fit existing video acceleration + interfaces (known as mga_vid, rage128_vid, radeon_vid, pm3_vid) into a fixed scheme. It + provides highlevel interface to chips which are known as BES (BackEnd + scalers) or OV (Video Overlays). It doesn't provide lowlevel interface to + things which are known as graphics servers. (I don't want to compete with X11 + team in graphics mode switching). I.e. main goal of this interface is to + maximize the speed of video playback.</P> + +<H4>USAGE</H4> + +<UL> + <LI>You can use standalone video output driver: <CODE>-vo xvidix</CODE><BR> + This driver was developed as X11's front end to VIDIX technology. It + requires X server and can work only under X server. Note that, as it + directly accesses the hardware and circumvents the X driver, pixmaps + cached in the graphics card's memory may be corrupted. You can prevent + this by limiting the amount of video memory used by X with the XF86Config + option "VideoRam" in the device section. You should set this to the amount + of memory installed on your card minus 4MB. If you have less than 8MB of + video ram, you can use the option "XaaNoPixmapCache" in the screen section + instead.</LI> + <LI>You can use VIDIX subdevice which was applied to several video output + drivers, such as:<BR> + <CODE>-vo vesa:vidix</CODE> (<B>Linux only</B>) and <CODE>-vo fbdev:vidix</CODE></LI> +</UL> + +Indeed it doesn't matter which video output driver is used with <B>VIDIX</B>. + +<H4>REQUIREMENTS</H4> + +<UL> + <LI>video card should be in graphics mode (I write <B>should</B> simply + because I tested it in text mode - it works but has awful output ;) Use + AAlib for that).<BR> + <I>Note: Everyone can try this trick by commenting out mode switching in + vo_vesa driver.</I></LI> + <LI>MPlayer's video output driver should know active video mode and be + able to tell to VIDIX subdevice some video characteristics of server.</LI> +</UL> + +<H4>USAGE METHODS</H4> + +<P>When VIDIX is used as <B>subdevice</B> (<CODE>-vo vesa:vidix</CODE>) then + video mode configuration is performed by video output device + (<B>vo_server</B> in short). Therefore you can pass into command line of + MPlayer the same keys as for vo_server. In addition it understands + <CODE>-double</CODE> key as globally visible parameter. (I recommend using + this key with VIDIX at least for ATI cards).<BR> + As for <CODE>-vo xvidix</CODE>: currently it recognizes the following + options: <CODE>-fs -zoom -x -y -double</CODE>.</P> + +<P>Also you can specify VIDIX's driver directly as third subargument in command + line:<BR> + <BR> + <code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double + file.avi</code><BR> + or<BR> + <code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp + 32 file.avi</code><BR> + <BR> + But it's dangerous, and you shouldn't do that. In this case given driver will + be forced and result is unpredictable (it may <B>freeze</B> your + computer). You should do that ONLY if you are absolutely sure it will work, + and MPlayer doesn't do it automatically. Please tell about it to the + developers. The Right Way is to use VIDIX without arguments to enable driver + autodetection.</P> + +<P>VIDIX is a new technology and it's extremely possible that on your system + it won't work. In this case the only solution for you is porting it (mainly + libdha). But there is hope that it will work on systems where X11 does.</P> + +<P>Since VIDIX requires direct hardware access you can either run it as root or + set the SUID bit on the MPlayer binary (<B>Warning: This is a security + risk!</B>). Alternatively, you can use a special kernel module, like this:</P> + +<OL> + <LI>Download the + <A HREF="http://www.arava.co.il/matan/svgalib/">development version</A> + of svgalib (for example 1.9.17),<BR> + <B>OR</B><BR> + download a version made by Alex especially for usage with + MPlayer (it doesn't need the svgalib source to compile) from + <A HREF="http://www.mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2"> + here</A>.</LI> + <LI>Compile the module in the <CODE>svgalib_helper</CODE> directory (it can + be found inside the <CODE>svgalib-1.9.17/kernel/</CODE> directory if you've + downloaded the source from the svgalib site) and insmod it.</LI> + <LI>Move the <CODE>svgalib_helper</CODE> directory to + <CODE>mplayer/main/libdha/svgalib_helper</CODE>.</LI> + <LI>Required if you download the source from the svgalib site: Remove the + comment before the CFLAGS line containing "svgalib_helper" string from the + <CODE>libdha/Makefile</CODE>.</LI> + <LI>Recompile and install libdha.</LI> +</OL> + + +<H4><A NAME="vidix_ati">2.3.1.2.12.1 ATI cards</A></H4> + +<P>Currently most ATI cards are supported natively, from Mach64 to the newest + Radeons.</P> + +<P>There are two compiled binaries: <CODE>radeon_vid</CODE> for Radeon and + <CODE>rage128_vid</CODE> for Rage 128 cards. You may force one or let the + VIDIX system autoprobe all available drivers.</P> + + +<H4><A NAME="vidix_matrox">2.3.1.2.12.2 Matrox cards</A></H4> + +<P>Matrox G200,G400,G450 and G550 have been reported to work.</P> + +<P>The driver supports video equalizers and should be nearly as fast as the + <A HREF="#mga_vid">Matrox framebuffer</A>.</P> + + +<H4><A NAME="vidix_trident">2.3.1.12.3 Trident cards</A></H4> + +<P>There is a driver available for the Trident Cyberblade/i1 chipset, which + can be found on VIA Epia motherboards.</P> + +<P>The driver was written and is maintained by Alastair M. Robinson, who offers + the very latest driver versions for download from his + <A HREF="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">homepage</A>. + The drivers are added to MPlayer with only a short delay, so CVS should always + be up to date.</P> + + +<H4><A NAME="vidix_3dlabs">2.3.1.2.12.4 3DLabs cards</A></H4> + +<P>Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, + no one has tested it, so reports are welcome.</P> + + +<H4><A NAME="directfb">2.3.1.2.13 DirectFB</A></H4> + +<P><I>"DirectFB is a graphics library which was designed with embedded systems in + mind. It offers maximum hardware accelerated performance at a minimum of + resource usage and overhead."</I> - quoted from + <A HREF="http://www.directfb.org">http://www.directfb.org</A>.</P> + +<P>I'll exclude DirectFB features from this section.</P> + +<P>Though MPlayer is not supported as a "video provider" in DirectFB, this + output driver will enable video playback through DirectFB. It will - + of course - be accelerated, on my Matrox G400 DirectFB's speed was the + same as XVideo.</P> + +<P>Always try to use the newest version of DirectFB. You can use DirectFB + options on the command line, using the <CODE>-dfbopts</CODE> option. + Layer selection can be done by the subdevice method, e.g.: <CODE>-vo + directfb:2</CODE> (layer -1 is default: autodetect)</P> + + +<H4><A NAME="dfbmga">2.3.1.2.14 DirectFB/Matrox (dfbmga)</A></H4> + +<P>Please read the <A HREF="#directfb">main DirectFB section</A> for general + informations.</P> + +<P>This video output driver will enable CRTC2 (on the second head) on the + Matrox G400 card, displaying video <B>independently</B> of the first head.</P> + +<P>Instructions on how to make it work can be found in the + <A HREF="tech/directfb.txt">tech section</A> + or directly on Ville Syrjala's + <A HREF="http://www.sci.fi/~syrjala/directfb/readme.txt">home page</A>.</P> + +<P>Note: we haven't been able to make this work, but others did. Anyway, + porting of the CRTC2 code to <B>mga_vid</B> is underway.</P> + + +<H4><A NAME="mpegdec">2.3.1.3 MPEG decoders</A></H4> + +<H4><A NAME="dvb">2.3.1.3.1 DVB</A></H4> + +<P>MPlayer supports cards with the Siemens DVB chipset from vendors like + Siemens, Technotrend, Galaxis or Hauppauge. The latest DVB drivers are + available from the <A HREF="http://www.linuxtv.org">Linux TV site</A>. If you + want to do software transcoding you should have at least a 1GHz CPU.</P> + +<P>Configure should detect your DVB card. If it did not, force detection with</P> + +<PRE> + ./configure --enable-dvb +</PRE> + +<P>If you have ost headers at a non-standard path, set the path with</P> + +<PRE> + ./configure --with-extraincdir=<DVB source directory>/ost/include +</PRE> + +<P>Then compile and install as usual.</P> + +<H4>USAGE</H4> + +<P>Hardware decoding (playing standard MPEG1/2 files) can be done with this + command:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes file.mpg|vob +</PRE> + +<P>Software decoding or transcoding different formats to MPEG1 can be achieved + using a command like this:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc yourfile.ext + mplayer -ao mpegpes -vo mpegpes -vop fame,expand yourfile.ext +</PRE> + +<P>Note that DVB cards only support heights 288 and 576 for PAL or 240 and 480 + for NTSC. You <B>must</B> rescale for other heights by adding + <CODE>scale=width:height</CODE> with the width and height you want to the + <CODE>-vop</CODE> option. DVB cards accept various widths, like 720, 704, + 640, 512, 480, 352 etc and do hardware scaling in horizontal direction, so + you do not need to scale horizontally in most cases. For a 512x384 (aspect + 4:3) DivX try:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=512:576 +</PRE> + +<P>If you have a widescreen movie and you do not want to scale it to full height, + you can use the <CODE>expand=w:h</CODE> filter to add black bands. To view a + 640x384 DivX, try:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc,expand=640:576 file.avi +</PRE> + +<P>If your CPU is too slow for a full size 720x576 DivX, try downscaling:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:576 file.avi +</PRE> + +<P>If speed does not improve, try vertical downscaling, too:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:288 file.avi +</PRE> + +<P>For OSD and subtitles use the OSD feature of the expand filter. So, instead + of <CODE>expand=w:h</CODE> or <CODE>expand=w:h:x:y</CODE>, use + <CODE>expand=w:h:x:y:1</CODE> (the 5th parameter <CODE>:1</CODE> at the end + will enable OSD rendering). You may want to move the image up a bit to get a + bigger black zone for subtitles. You may also want to move subtitles up, if + they are outside your TV screen, use the <CODE>-subpos <0-100></CODE> option + to adjust this (<CODE>-subpos 80</CODE> is a good choice).</P> + +<P>In order to play non-25fps movies on a PAL TV or with a slow CPU, add the + <CODE>-framedrop</CODE> option.</P> + +<P>To keep the aspect ratio of DivX files and get the optimal scaling parameters + (hardware horizontal scaling and software vertical scaling while keeping the + right aspect ratio), use the new dvbscale filter:</P> + +<PRE> +for 3:4 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale +for 16:9 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024 +</PRE> + +<H4>FUTURE</H4> + +<P>If you have questions or want to hear feature announcements and take part in + discussions on this subject, join our + <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</A> + mailing list. Please remember that the list language is English.</P> + +<P>In the future you may expect the ability to display OSD and subtitles using + the native OSD feature of DVB cards, as well as more fluent playback of + non-25fps movies and realtime transcoding between MPEG2 and MPEG4 (partial + decompression).</P> + + +<H4><A NAME="dxr2">2.3.1.3.2 DXR2</A></H4> + +<P>TODO: somebody please fill this section with information.</P> + + +<H4><A NAME="dxr3">2.3.1.3.3 DXR3/Hollywood+</A></H4> + +<P>MPlayer supports hardware accelerated playback with the Creative DXR3 + and Sigma Designs Hollywood Plus cards. These cards both use the em8300 MPEG + decoder chip from Sigma Designs.</P> + +<P>First of all you will need properly installed DXR3/H+ drivers, version + 0.12.0 or later. You can find the drivers and installation instructions at + the <A HREF="http://dxr3.sourceforge.net/">DXR3 & Hollywood Plus for + Linux</A> site. Configure should detect your card automatically, compilation + should go without problems.</P> + +<H4>USAGE</H4> +<DL> + <DT><CODE>-vo dxr3:prebuf:sync:norm=x:<device></CODE></DT> + <DD><CODE>overlay</CODE> activates the overlay instead of TVOut. It requires + that you have a properly configured overlay setup to work right. The easiest + way to configure the overlay is to first run autocal. Then run mplayer with + dxr3 output and without overlay turned on, run dxr3view. In dxr3view you can + tweak the overlay settings and see the effects in realtime, perhaps this + feature will be supported by the MPlayer GUI in the future. When overlay is + properly set up you will no longer need to use dxr3view.<BR> + <CODE>prebuf</CODE> turns on prebuffering. Prebuffering is a feature + of the em8300 chip that enables it to hold more than one frame of video at + a time. This means that when you are running with prebuffering + MPlayer will try to keep the video buffer filled with data at all + times. If you are on a slow machine MPlayer will probably use close + to, or precisely 100% of CPU. This is especially common if you play pure MPEG + streams (like DVDs, SVCDs a.s.o.) since MPlayer will not have to + reencode it to MPEG it will fill the buffer very fast.<BR> + With prebuffering video playback is <B>much</B> less sensitive to other + programs hogging the CPU, it will not drop frames unless applications hog + the CPU for a long time.<BR> + When running without prebuffering the em8300 is much more sensitive to CPU + load, so it is highly suggested that you turn on MPlayer's + <CODE>-framedrop</CODE> option to avoid further loss of sync.<BR> + <CODE>sync</CODE> will turn on the new sync-engine. This is currently an + experimental feature. With the sync feature turned on the em8300's internal + clock will be monitored at all times, if it starts to deviate from MPlayer's + clock it will be reset causing the em8300 to drop any frames that are lagging + behind.<BR> + <CODE>norm=x</CODE> will set the TV norm of the DXR3 card without the need + for external tools like em8300setup. Valid norms are 5 = NTSC, 4 = PAL-60, + 3 = PAL. Special norms are 2 (auto-adjust using PAL/PAL-60) and 1 + (auto-adjust using PAL/NTSC) because they decide which norm to use by + looking at the frame rate of the movie. norm = 0 (default) does not + change the current norm.<BR> + <CODE><device></CODE> = device number to use if you have more than one + em8300 card. + <BR> + Any of these options may be left out.<BR> + <CODE>:prebuf:sync</CODE> seems to work great when playing DivX movies. + People have reported problems using the <CODE>prebuf</CODE> option when playing + MPEG1/2 files. You might want to try running without any options first, if you + have sync problems, or DVD subtitle problems, give <CODE>:sync</CODE> a + try.</DD> + + <DT><CODE>-ao oss:/dev/em8300_ma-X</CODE></DT> + <DD>For audio output, where <CODE>X</CODE> is the device number + (0 if one card).</DD> + + <DT><CODE>-aop list=resample:fout=xxxxx</CODE></DT> + <DD>The em8300 cannot play back samplerates lower than 44100Hz. If the sample + rate is below 44100Hz select either 44100Hz or 48000Hz depending on which + one matches closest. I.e. if the movie uses 22050Hz use 44100Hz as + 44100 / 2 = 22050, if it is 24000Hz use 48000Hz as 48000 / 2 = 24000 and so + on. This does not work with digital audio output (<CODE>-ac hwac3</CODE>).</DD> + + <DT><CODE>-vop lavc/fame</CODE></DT> + <DD>To watch non-MPEG content on the em8300 (i.e. DivX or RealVideo) you have + to specify an MPEG1 video filter such as libavcodec (lavc) or libfame + (fame). At the moment lavc is both faster and gives better image quality, it + is suggested that you use that unless you have problems with it. See the man + page for further info about <CODE>-vop lavc/fame</CODE>.<BR> + Using lavc is highly recommended. Currently there is no way of setting the + fps of the em8300 which means that it is fixed to 29.97fps. Because of this + it is highly recommended that you use <CODE>-vop lavc=<quality>:25</CODE>, + especially if you are using prebuffering. Then why 25 and not 29.97? Well, + the thing is that when you use 29.97 the picture becomes a bit jumpy. The + reason for this is unknown to us. If you set it to somewhere between 25 and + 27 the picture becomes stable. For now all we can do is accept this for a + fact.</DD> + + <DT><CODE>-vop lavc,expand=-1:-1:-1:-1:1</CODE></DT> + <DD>Altough the DXR3 driver can put some OSD onto the MPEG1/2/4 video, + it has much lower quality than MPlayer's traditional OSD, and has several + refresh problems as well. The command line above will firstly convert the + input video to MPEG4 (this is mandatory, sorry), then apply an expand + filter which won't expand anything (-1: default), but apply the normal OSD + onto the picture (that's what the "1" at the end does).</DD> + + <DT><CODE>-ac hwac3</CODE></DT> + <DD>The em8300 supports playing back AC3 audio (surround sound) through the + digital audio output of the card. See the <CODE>-ao oss</CODE> option + above, it must be used to specify the DXR3's output instead of + a soundcard.</DD> +</DL> + + +<H4><A NAME="other">2.3.1.4 Other visualization hardware</A></H4> + +<H4><A NAME="zr">2.3.1.4.1 Zr</A></H4> + +<P>This is a display-driver (<CODE>-vo zr</CODE>) for a number of MJPEG + capture/playback cards (tested for DC10+ and Buz, and it should work for the + LML33 and the original DC10). The driver works by encoding the frame to jpeg + and then sending it to the card. For the jpeg encoding <B>libavcodec</B> is + used, and required. With the special <I>cinerama</I> mode, you can watch + movies in true wide screen provided that you have two beamers and two + MJPEG cards. Depending on resolution and quality settings, this driver + may require a lot of CPU power, remember to specify <CODE>-framedrop</CODE> + if your machine is too slow. Note: My AMD K6-2 350MHz is (with <CODE> + -framedrop</CODE>) quite adequate for watching VCD sized material and + downscaled movies.</P> + +<P>This driver talks to the kernel driver available at + <A HREF="http://mjpeg.sourceforge.net">http://mjpeg.sourceforge.net</A>, so + you must get it working first. The presence of an MJPEG card is autodetected + by the configure script, if autodetection fails, force detection with</P> + +<PRE> + ./configure --enable-zr +</PRE> + +<P>The output can be controlled by several options, a long description of the + options can be found in the man page, a short list of options can be + viewed by running</P> + +<PRE> + mplayer -zrhelp +</PRE> + +<P>Things like scaling and the OSD (on screen display) are not handled by + this driver but can be done using the video filters. For example, + suppose that you have a movie with a resolution of <CODE>512x272</CODE> and + you want to view it fullscreen on your DC10+. There are three main + possibilities, you may scale the movie to a width of <CODE>768</CODE>, + <CODE>384</CODE> or <CODE>192</CODE>. For performance and quality reasons, + I would choose to scale the movie to <CODE>384x204</CODE> using the fast + bilinear software scaler. The commandline is</P> + +<PRE> + mplayer -vo zr -sws 0 -vop scale=384:204 movie.avi +</PRE> + +<P>Cropping can be done by the <CODE>crop</CODE> filter and by + this driver itself. Suppose that a movie is too wide for display on your + Buz and that you want to use <CODE>-zrcrop</CODE> to make the movie less + wide, the you would issue the following command</P> + +<PRE> + mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi +</PRE> + +<P>if you want to use the <CODE>crop</CODE> filter, you would do</P> + +<PRE> + mplayer -vo zr -vop crop=720:320:80:0 benhur.avi +</PRE> + +<P>Extra occurances of <CODE>-zrcrop</CODE> invoke <I>cinerama</I> mode, i.e. + you can distribute the movie over several TV's or beamers to create a larger + screen. Suppose you have two beamers. The left one is connected to your Buz + at <CODE>/dev/video1</CODE> and the right one is connected to your DC10+ at + <CODE>/dev/video0</CODE>. The movie has a resolution of <CODE>704x288</CODE>. + Suppose also that you want the right beamer in black and white and that + the right beamer should have jpeg frames at quality <CODE>10</CODE>, + then you would issue the following command</P> + +<PRE> + mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ + -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi +</PRE> + +<P>You see that the options appearing before the second <CODE>-zrcrop</CODE> + only apply to the DC10+ and that the options after the second + <CODE>-zrcrop</CODE> apply to the Buz. The maximum number of MJPEG cards + participating in <I>cinerama</I> is four, so you can buid a <CODE>2x2</CODE> + vidiwall.</P> + +<P>Finally an important remark: Do not start or stop XawTV on the playback + device during playback, it will crash your computer. It is, however, fine to + <B>FIRST</B> start XawTV, <B>THEN</B> start MPlayer, wait for + MPlayer to finish and <B>THEN</B> stop XawTV.</P> + + +<H4><A NAME="blinken">2.3.1.4.2 Blinkenlights</A></H4> + +<P>This driver is capable of playback using the Blinkenlights UDP protocol. + If you don't know what <A HREF="http://www.blinkenlights.de/">Blinkenlights</A> + is, you don't need this driver.</P> + + +<H4><A NAME="tv-out">2.3.1.5 TV-out support</A></H4> + + +<H4><A NAME="tv-out_matrox">2.3.1.5.1 Matrox G400 cards</A></H4> + +<P>Under Linux you have 2 methods to get G400 TV out working:</P> + +<P><B>IMPORTANT:</B> for Matrox G450/G550 TV-out instructions, please see the + next section!</P> + +<UL> + <LI><B>XFree86</B>: using the driver and the HAL module, available from + <A HREF="http://www.matrox.com">Matrox's site</A>. This will give you X on + the TV.<BR> <B>This method doesn't give you accelerated playback</B> as + under Windoze! The second head has only YUV framebuffer, the <I>BES</I> + (Back End Scaler, the YUV scaler on G200/G400/G450/G550 cards) doesn't work + on it! The Windows driver somehow works around this, probably by using the + 3D engine to zoom, and the YUV framebuffer to display the zoomed + image. If you really want to use X, use the <CODE>-vo x11 -fs -zoom</CODE> + options, but it will be <B>SLOW</B>, and has <B>Macrovision</B> copy protection + enabled (you can "workaround" Macrovision using + <A HREF="http://avifile.sourceforge.net/mgamacro.pl">this</A> perl + script.</LI> + <LI><B>Framebuffer</B>: using the <B>matroxfb modules</B> in the 2.4 kernels. + 2.2 kernels don't have the TVout feature in them, thus unusable for this. + You have to enable ALL matroxfb-specific feature during compilation (except + MultiHead), and compile them into <B>modules</B>! You'll also need I2C + enabled. + <OL> + <LI> + Enter <CODE>TVout/matroxset</CODE> and type <CODE>make</CODE>. Install + <CODE>matroxset</CODE> into somewhere in your PATH.</LI> + <LI> + If you don't have <CODE>fbset</CODE> installed, enter + <CODE>TVout/fbset</CODE> and type <CODE>make</CODE>. Install + <CODE>fbset</CODE> into somewhere in your PATH.</LI> + <LI> + Then enter into the <CODE>TVout/</CODE> directory in the MPlayer + source, and execute <CODE>./modules</CODE> as root. Your text-mode console + will enter into framebuffer mode (no way back!).</LI> + <LI>Next, EDIT and run the <CODE>./matroxtv</CODE> script. This will present you + to a very simple menu. Press <B>2</B> and <B>ENTER</B>. Now you should + have the same picture on your monitor, and TV. If + the TV (PAL by default) picture has some weird stripes on it, the script wasn't able to + set the resolution correctly (to 640x512 by default). Try other + resolutions from the menu and/or experiment with fbset.</LI> + </OL> + + <P>Yoh. Next task is to make the cursor on tty1 (or whatever) to disappear, + and turn off screen blanking. Execute the following commands:</P> + + <P><CODE>echo -e '\033[?25l'</CODE> or <CODE>setterm -cursor off<BR> + setterm -blank 0</CODE></P> + + <P>You possibly want to put the above into a script, and also clear + the screen.. To turn the cursor back:<BR><CODE>echo -e '\033[?25h'</CODE> + or <CODE>setterm -cursor on</CODE></P> + + <P>Yeah kewl. Start movie playing with <CODE>mplayer -vo mga -fs -screenw 640 + -screenh 512 <filename></CODE><BR> + (if you use X, now change to matroxfb with for example CTRL-ALT-F1!)<BR> + Change 640x512 if you set the resolution to other.<BR> + <B>Enjoy the ultra-fast ultra-featured Matrox TV output (better than Xv)!</B></P> + </LI> +</UL> + +<H4>Building a Matrox TV-out cable</H4> + +<P>No one takes any responsibility, nor guarantee for any damage caused by this + documentation.</P> + +<P><B>Cable for G400</B>: The CRTC2 connector's fourth pin is the composite video signal. The ground + are the sixth, seventh and eighth pins. (info contributed from Balázs + Rácz)</P> + +<P><B>Cable for G450</B>: The CRTC2 connector's first pin is the composite video + signal. The ground are the fifth, sixth, seventh, and fifteenth + (5, 6, 7, 15) pins. (info contributed from Balázs Kerekes)</P> + +<H4><A NAME="tv-out_matrox_g450">2.3.1.5.2 Matrox G450/G550 cards</A></H4> + +<P>TV output support for these cards has only been recently introduced, and is + not yet in the mainstream kernel. Currently the <B>mga_vid</B> module + can't be used AFAIK, because the G450/G550 driver works only in one + configuration: the first CRTC chip (with much more features) on the first + display (on monitor), and the second CRTC (no <B>BES</B> - for explanation + on BES, please see the G400 section above) on TV. So you can only use + MPlayer's <I>fbdev</I> output driver at the present.</P> + +<P>The first CRTC can't be routed to the second head currently. + The author of the kernel matroxfb driver - Petr Vandrovec - will maybe make + support for this, by displaying the first CRTC's output onto both of the + heads at once, as currently recommended for G400, see the section above.</P> + +<P>The necessary kernel patch and the detailed howto is downloadable from + <A HREF="http://www3.sympatico.ca/dan.eriksen/matrox_tvout/">http://www3.sympatico.ca/dan.eriksen/matrox_tvout/</A></P> + + +<H4><A NAME="tv-out_ati">2.3.1.5.3 ATI cards</A></H4> + +<H4>PREAMBLE</H4> + +<P>Currently ATI doesn't want to support any of its TV-out chips under Linux, + because of their licensed Macrovision technology.</P> + +<H4>ATI CARDS TV-OUT STATUS ON LINUX</H4> + +<UL> + <LI><B>ATI Mach64</B>: Supported by + <A HREF="http://gatos.sf.net">gatos</A>.</LI> + <LI><B>ASIC Radeon VIVO</B>: Supported by + <A HREF="http://gatos.sf.net">gatos</A>.</LI> + <LI><B>Radeon</B> and <B>Rage128</B>: Supported by MPlayer! + Check <a href="#vesa">VESA driver</a> and <A HREF="#vidix">VIDIX</A> + sections.</LI> + <LI><B>Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</B>: Supported by + <A HREF="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/"> + atitvout</A>. +</UL> + +<P>On other cards, just use the <a href="#vesa">VESA driver</a>, without + VIDIX. Powerful CPU is needed, though.</P> + +<P>Only thing you need to do - <B>have TV connector plugged in before + booting your PC</B> since video BIOS initializes itself only once during + POST procedure.</P> + + +<H4><A NAME="tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></H4> + +<P>Check <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">this URL</A>.</P> + + +<H4><A NAME="tv-out_nvidia">2.3.1.5.5 nVidia</A></H4> + +<P>First, you MUST download the closed-source drivers from + <A HREF="http://nvidia.com">http://nvidia.com</A>. I will not describe the + installation and configuration process because it does not cover the + scope of this documentation.</P> + +<P>After XFree86, XVideo, and 3D acceleration is properly working, + edit your card's Device section in the <CODE>XF86Config</CODE> file, + according to the following example (adapt for your card/TV):</P> + +<PRE> +Section "Device" + Identifier "GeForce" + VendorName "ASUS" + BoardName "nVidia GeForce2/MX 400" + Driver "nvidia" + #Option "NvAGP" "1" + Option "NoLogo" + Option "CursorShadow" "on" + + Option "TwinView" + Option "TwinViewOrientation" "Clone" + Option "MetaModes" "1024x768,640x480" + Option "ConnectedMonitor" "CRT, TV" + Option "TVStandard" "PAL-B" + Option "TVOutFormat" "Composite" + +EndSection +</PRE> + +<P>Of course the important thing is the TwinView part.</P> + +</BODY> +</HTML>
--- a/DOCS/encoding.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,320 +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 libavcodec'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>-vop scale=widht: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 -vop 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, Vorbis) 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:</P> - -<UL> - <LI>mjpeg - Motion 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>rv10 - an old RealVideo codec</LI> - <LI>mpeg1video - MPEG1 video :)</LI> - <LI>huffyuv - lossless compression</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 should the player 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 - must be a better feature!</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 files (DVD, SVCD). - Regretfully, there are <U>no</U> video players outside which support this - attribute. Except MPlayer.</P> - -<P>This feature can be used only with <B>libavcodec</B>'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 manpage about 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:aspect=16.0/9.0 -vop crop=714:548:0:14 -oac copy -o output.avi</CODE></P> - -</BODY> -</HTML>
--- a/DOCS/faq.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,803 +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="#compilation">5.1 Compilation</A></LI> - <LI><A HREF="#general">5.2 General questions</A></LI> - <LI><A HREF="#playback">5.3 Playback problems</A></LI> - <LI><A HREF="#driver">5.4 Video/audio driver problems (vo/ao)</A></LI> - <LI><A HREF="#dvd">5.5 DVD playback</A></LI> - <LI><A HREF="#features">5.6 Feature requests</A></LI> - <LI><A HREF="#encoding">5.7 Encoding</A></LI> -</UL> - - -<H2><A NAME="compilation">5.1 Compilation</A></H2> - -<DL> - - <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 does "No such file or directory" mean?</DT> - <DD>A: Probably there is no such file or directory.</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 G200/G400, how do I compile/use the mga_vid driver?</DT> - <DD>A: Read the <A HREF="video.html#mga_vid">mga_vid documentation</A>.</DD> - <DD> </DD> - - <DT>Q: Are there rpm/deb/... packages of MPlayer?</DT> - <DD>A: You can make a .deb package for yourself, check the - <A HREF="documentation.html#debian">Debian packaging</A> section. - There are links to official Red Hat RPM packages available on our - <A HREF="http://www.mplayerhq.hu/homepage/dload.html">download page</A>.</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: 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: 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> - -</DL> - - -<H2><A NAME="general">5.2 General questions</A></H2> - -<DL> - - <DT>Q: How do I create a proper patch for MPlayer?</DT> - <DD>A: We made a <A HREF="tech/patches.txt">short document</A> describing - all the necessary details. Please follow the 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: 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: 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> option and read 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/lib/win32/</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: Are there any mailing lists on MPlayer?</DT> - <DD>A: Yes. See the bottom of the info page on - <A HREF="http://www.mplayerhq.hu/homepage/info.html">our homepage</A> to - subscribe.</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: 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>-vop 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> - -</DL> - - -<H2><A NAME="playback">5.3 Playback problems</A></H2> - -<DL> - - <DT>Q: I can play certain AVIs but I get no sound and this kind of error: - <PRE> - Detected audio codec: [divx] afm:4 (DivX audio (WMA)) - Requested audio codec family [divx] (afm=4) not available (enable it at - compile time!) - </PRE> - </DT> - <DD>A: Probably the audio uses a codec not natively supported by - MPlayer. Install the Win32 codec package as described in the README - or in the <A HREF="documentation.html#installation">Installation</A> section.</DD> - <DD> </DD> - - <DT>Q: ... works with avifile/aviplay but doesn't with MPlayer.</DT> - <DD>A: MPlayer is not avifile. - The only common thing between these players is the Win32 DLL loader. - The codecs (DLL) set, synchronization, demultiplexing etc is totally - different and shouldn't be compared. - If something works with aviplay it doesn't mean that MPlayer will - work and vice versa.</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 <A HREF="bugreports.html">this</A> and upload the file to FTP.</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: I got this playing MPEG files: Can't find codec for video format - 0x10000001!</DT> - <DD>A: You have an old version of codecs.conf at <CODE>~/.mplayer/</CODE>. - Upgrade it from <CODE>/etc/</CODE>.<BR> - <B>OR</B> you have the <CODE>vc=</CODE> option or something similar in your - config file(s).</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: I have an AVI that produces a gray screen when played with - <CODE>-vc odivx</CODE> and a green one with <CODE>-vc divx4</CODE>.</DT> - <DD>A: It's not a DivX file, but an M$ MPEG4v3. Update your codecs.conf.</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: Disable the Windows DLL in <CODE>codecs.conf</CODE>, or use the - <CODE>-vc ffmjpeg</CODE> option (compile MPlayer with libavcodec for this - to work).</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 input - documentation</A>).</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: 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: All the WMV (or other..) files I play create a green/gray window and - there is only sound! MPlayer prints:<BR> - <CODE>Detected video codec: [null] drv:0 (NULL codec (no decoding))</CODE></DT> - <DD>A: Update your <CODE>codecs.conf</CODE>.</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> - -</DL> - - -<H2><A NAME="driver">5.4 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">documentation</A>. 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: When I use the GUI with SDL video output, a second video window is - created.</DT> - <DD>A: Known, don't use SDL for the GUI yet.</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> - -</DL> - - -<H2><A NAME="dvd">5.5 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> of the - documentation.</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> of the documentation).</DD> - -</DL> - - -<H2><A NAME="features">5.6 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: Where is the Windows version?</DT> - <DD>A: It's not released, and won't be. Look around the Windows scene (open - source ASF parsers, open source ASF encoders, etc) and you'll know why. We - don't want to go to jail. BTW you can compile it yourself, under - <A HREF="documentation.html#cygwin">Cygwin</A>.</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.7 Encoding</A></H2> - -<DL> - - <DT>Q: How can I encode?</DT> - <DD>A: Read the MEncoder <A HREF="encoding.html">documentation</A>.</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> - -</DL> - -</BODY> -</HTML>
--- a/DOCS/formats.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 the <CODE>-vcd</CODE> option to play the 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>OpenDMS</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>--withxmmslibdir</CODE> - options.</P> - -</BODY> -</HTML>
--- a/DOCS/mplayer.1 Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3524 +0,0 @@ -.\" MPlayer (C) 2000-2003 Arpad Gereoffy -.\" This man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann -.\" -.\" Run this to get a html version of the man page: -.\" cat mplayer.1 | sed s/SS\ 20/SS\ 4/ | groff -man -Thtml - > manpage.html -.\" Run this to get a text version of the man page: -.\" groff -m man -Tascii mplayer.1 | col -bx > manpage.txt -.\" -. -.\" -------------------------------------------------------------------------- -.\" Macro definitions -.\" -------------------------------------------------------------------------- -. -.\" default indentation is 7, don't change! -.nr IN 7 -.\" define indentation for suboptions -.nr SS 20 -.\" add new suboption -.de IPs -.IP "\\$1" \n(SS -.. -.\" begin of first level suboptions, end with .RE -.de RSs -.RS \n(IN+3 -.. -.\" begin of 2nd level suboptions -.de RSss -.PD 0 -.RS \n(SS+3 -.. -.\" end of 2nd level suboptions -.de REss -.RE -.PD 1 -.. -. -.\" -------------------------------------------------------------------------- -.\" Title -.\" -------------------------------------------------------------------------- -. -.TH MPlayer 1 "2003-01-11" -. -.SH NAME -mplayer \- Movie Player for Linux -.br -mencoder \- Movie Encoder for Linux - -.\" -------------------------------------------------------------------------- -.\" Synopsis -.\" -------------------------------------------------------------------------- -. -.SH SYNOPSIS -.na -.nh -.B mplayer -.RI [options]\ [ \ file\ | \ URL\ | \ playlist\ | \ -\ ] -.br -.B mplayer -'in +\n[.k]u -[global options] -.I file1 -[specific options] [file2] [specific options] -.br -.in -.B mplayer -'in +\n[.k]u -[global options] -.RI { "group of files and options" } -[group specific options] -.br -.in -.B mplayer -'in +\n[.k]u -.RI [ dvd | vcd | cdda | cddb | tv ] ://title -[options] -.br -.in -.B mplayer -'in +\n[.k]u -.RI [ mms[t] | http | http_proxy | rt[s]p ] :// -[user:passwd@]\fIURL\fP[:port] [options] -.br -.in -.B mencoder -[options] -.RI [ \ file\ | \ URL\ | \ -\ ] -[\-o\ file] -.br -.B gmplayer -[options] -[\-skin\ skin] -.ad -.hy - -.\" -------------------------------------------------------------------------- -.\" Description -.\" -------------------------------------------------------------------------- -. -.SH DESCRIPTION -.B mplayer -is a movie player for LINUX (runs on many other Unices and non\-x86 CPUs, see -the documentation). -It plays most MPEG/\:VOB, AVI, ASF/\:WMA/\:WMV, RM, QT/\:MOV/\:MP4, OGG/\:OGM, -VIVO, FLI, NuppelVideo, yuv4mpeg, FILM and RoQ files, supported by many -native, XAnim, and Win32 DLL codecs. -You can watch VideoCD, SVCD, DVD, 3ivx, DivX\ 3/\:4/\:5 and even WMV movies, -too (without using the avifile library). -.PP -Another great feature of MPlayer is the wide range of supported output -drivers. -It works with X11, XV, DGA, OpenGL, SVGAlib, fbdev, AAlib, DirectFB, but you -can also use GGI, SDL (and this way all their drivers), VESA (on every VESA -compatible card, even without X11), some low level card-specific drivers (for -Matrox, 3Dfx and ATI) and some hardware MPEG decoder boards, such as the -Siemens DVB, DXR2 and DXR3/\:Hollywood+. -Most of them support software or hardware scaling, so you can enjoy movies in -fullscreen. -.PP -MPlayer has an onscreen display (OSD) for status information, nice big -antialiased shaded subtitles and visual feedback for keyboard controls. -European/\:ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic and Korean -fonts are supported along with 10 subtitle formats (MicroDVD, SubRip, -SubViewer, Sami, VPlayer, RT, SSA, AQTitle, JACOsub and our own: MPsub) and -DVD subtitles (SPU streams, VobSub and Closed Captions). -.PP -.B mencoder -(MPlayer's Movie Encoder) is a simple movie encoder, designed to encode -MPlayer-playable movies (see above) to other MPlayer-playable formats (see -below). -It encodes to DivX4, XviD, one of the libavcodec codecs and PCM/\:MP3/\:VBRMP3 -audio in 1, 2 or 3\ passes. -Furthermore it has stream copying abilities, a powerful plugin system (crop, -expand, flip, postprocess, rotate, scale, noise, rgb/\:yuv conversion) and -more. -.PP -.B gmplayer -is MPlayer with a graphical user interface. -It has the same options as MPlayer. - - -.\" -------------------------------------------------------------------------- -.\" Options -.\" -------------------------------------------------------------------------- -. -.SH "GENERAL NOTES" -.B Also see the HTML documentation! -.PP -Every 'flag' option has a 'noflag' counterpart, e.g.\& the opposite of the -\-fs option is \-nofs. -.PP -You can put all of the options in a configuration file which will be read -every time mplayer is run. -The system-wide configuration file 'mplayer.conf' is in your configuration -directory (e.g.\& /etc/\:mplayer or /usr/\:local/\:etc/\:mplayer), the user -specific one is '~/\:.mplayer/\:config'. -User specific options override system\-wide options and options given on the -command line override either. -The syntax of the configuration files is 'option=<value>', everything after a -\'#' is considered a comment. -Options that work without values can be enabled by setting them to 'yes' or -\'1' and disabled by setting them to 'no' or '0'. -Even suboptions can be specified in this way. - -.I EXAMPLE: -.br -# Use Matrox driver by default. -.br -vo=xmga -.br -# I love practicing handstands while watching videos. -.br -flip=yes -.br -# Decode/\:encode multiple files from png, start with -mf on -.br -mf= type=png:fps=25 - -You can also write file-specific configuration files. -If you wish to have a config file for a file called 'movie.avi', create a file -named 'movie.avi.conf' with the file-specific options in it and put it in -~/.mplayer or in the same directory as the file. - -.SH "PLAYER OPTIONS (MPLAYER ONLY)" -.TP -.B \-, \-use-stdin -Read data from stdin. -The \-idx option does not work in conjunction with this. -.TP -.B \-autoq <quality> (use with \-vop pp) -Dynamically changes the level of postprocessing depending on available spare -CPU time. -The number you specify will be the maximum level used. -Usually you can use some big number. -You have to use \-vop pp without parameters in order to use this. -.TP -.B \-autosync <factor> -Gradually adjusts the A/\:V sync based on audio delay measurements. -Specifying \-autosync\ 0, the default, will cause frame timing to be based -entirely on audio delay measurements. -Specifying \-autosync\ 1 will do the same, but will subtly change the A/\:V -correction algorithm used. -An uneven video frame rate in a movie which plays fine with \-nosound can -often be helped by setting this to an integer value greater than 1. -The higher the value, the closer the timing will be to -nosound. -Try \-autosync\ 30 to smooth out problems with sound drivers which do -not implement a perfect audio delay measurement. -With this value, if large A/\:V sync offsets occur, they will only take about -1 or 2\ seconds to settle out. -This delay in reaction time to sudden A/\:V offsets should be the only -side-effect of turning this option on, for all sound drivers. -.TP -.B \-benchmark -Prints some statistics on CPU usage and dropped frames at the end. -Use in combination with \-nosound and \-vo null for benchmarking only the -video codec. -.TP -.B \-edl <filename> -Enables edit decision list (EDL) actions during playback. -Video will be skipped over and audio will be muted and unmuted according to -the entries in the given file. -See DOCS/documentation.html#edl for details on how to use this. -.TP -.B \-edlout <filename> -Creates a new file and writes edit decision list (EDL) records to that file. -During playback, when the user hits 'i', an entry to skip over the last two -seconds of playback will be written to the file. -This provides a starting point from which the user can fine-tune EDL entries -later. -See DOCS/documentation.html#edl for details. -.TP -.B \-enqueue (GUI only) -Enqueue files given on the command line in the playlist instead of playing them -immediately. -.TP -.B \-fixed-vo (BETA CODE!) -Enforces a fixed video system for multiple files (one (un)initialisation for -all files). -Therefore only one window will be opened for all files. -Currently the following drivers are fixed-vo compliant: x11, xv, xvidix, xmga, -gl2, and svga. -.TP -.B \-framedrop (also see \-hardframedrop) -Skip displaying some frames to maintain A/\:V sync on slow systems. -Video filters are not applied to such frames. -For B frames even decoding is skipped completely. -.TP -.B \-h, \-help, \-\-help -Show short summary of options. -.TP -.B \-hardframedrop -More intense frame dropping (breaks decoding). -Leads to image distortion! -.TP -.B \-identify -Show file parameters in easy parsable format. -The wrapper script TOOLS/midentify suppresses the other mplayer output and -(hopefully) shellescapes the filenames. -.TP -.B \-input <commands> -This option can be used to configure certain parts of the input system. -Paths are relative to ~/\:.mplayer/. - -.I NOTE: -.br -Autorepeat is currently only supported by joysticks. -.br -Available commands are: - -.PD 0 -.RSs -.IPs conf=<file> -Read alternative input.conf. -If given without pathname, ~/\:.mplayer is assumed. -.IPs ar\-delay -Delay in msec before we start to autorepeat a key (0 to disable). -.IPs ar\-rate -How many key presses per second when we autorepeat. -.IPs keylist -Prints all keys that can be bound. -.IPs cmdlist -Prints all commands that can be bound. -.IPs js\-dev -Specifies the joystick device to use (default is /dev/\:input/\:js0). -.IPs file -Read commands from the given file. -Mostly useful with a fifo. -.RE -.PD 1 -. -.TP -.B \-lircconf <file> -Specifies a configuration file for LIRC (Linux Infrared Remote Control, see -http://www.lirc.org) if you don't like the default ~/\:.lircrc. -.TP -.B \-loop <number> -Loops movie playback <number> times. -0 means forever. -.TP -.B \-menu (BETA CODE) -Turn on OSD menu support. -.TP -.B \-menu-root <value> (BETA CODE) -Specify the main menu. -.TP -.B \-menu-cfg <file> (BETA CODE) -Use an alternative menu.conf. -.TP -.B \-nojoystick -Turns off joystick support. -Default is on, if compiled in. -.TP -.B \-nolirc -Turns off LIRC support. -.TP -.B \-nortc \ \ -Turns off usage of the Linux RTC (real-time clock \- /dev/\:rtc) as timing -mechanism. -.TP -.B \-playlist <file> -Play files according to a playlist (1 file per row or Winamp or ASX format). -.TP -.B \-quiet \ \ -Display less output and status messages. -.TP -.B \-really\-quiet \ \ -Display even less output and status messages. -.TP -.B \-sdp -Specifies that the input file is a SDP ('Session Description Protocol') -file that describes an RTP session (see http://www.live.com/mplayer/). -.TP -.B \-shuffle \ \ -Play files in random order. -.TP -.B \-skin <skin\ directory> (BETA CODE) -Load skin from the given directory (WITHOUT path name). - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-skin fittyfene" -tries Skin/fittyfene. -It first checks -/usr/local/share/mplayer/ -and afterwards ~/.mplayer/. -.RE -.PD 1 -. -.TP -.B \-slave \ \ -This option switches on slave mode. -This is intended for use of MPlayer as a backend to other programs. -Instead of intercepting keyboard events, MPlayer will read simplistic command -lines from its stdin. -The section -.B SLAVE MODE PROTOCOL -explains the syntax. -.TP -.B \-softsleep -Uses high quality software timers. -As precise as the RTC without requiring special privileges. -Comes at the price of higher CPU consumption. -.TP -.B \-speed <0.01\-100> -Set playback speed rate. -.TP -.B \-sstep <sec> -Specifies seconds between displayed frames. -Useful for slideshows. - - -.SH "DEMUXER/STREAM OPTIONS" -.TP -.B \-aid <id> (also see \-alang option) -Select audio channel [MPEG: 0\-31 AVI/\:OGM: 1\-99 ASF/\:RM: 0\-127 -VOB(AC3): 128\-159 VOB(LPCM): 160\-191] -MPlayer prints the available IDs when running in verbose (-v) mode. -.TP -.B \-alang <two letter\ country\ code> (also see \-aid option) -Works only for DVD playback. -It selects the DVD audio language and always tries to play audio streams whose -language matches the given code. -For the list of available languages, use with the \-v option and look at the -output. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-alang hu,en" -Plays Hungarian and falls back to English if Hungarian is not available. -.RE -.PD 1 -. -.TP -.B \-audio\-demuxer <number> (\-audiofile only) -Force audio demuxer type for \-audiofile. -Give the demuxer ID as defined in demuxers.h. -Use \-audio\-demuxer 17 to force .mp3 detection. -.TP -.B \-audiofile <filename> -Play audio from an external file (WAV, MP3 or Ogg Vorbis) while viewing a -movie. -.TP -.B \-bandwidth <value> -Specify the maximum bandwidth for network streaming (for servers that are -able to send content in different bitrates). -Usefull if you want to watch live streamed media behind a slow connection. -.TP -.B \-cdrom\-device <path\ to\ device> -Override default CDROM drive name /dev/\:cdrom. -.TP -.B \-cache <kbytes> -This option specifies how much memory (in kbytes) to use when precaching a -file/\:URL. -Especially useful on slow media (default is \-nocache). -.TP -.B \-cdda <option1:option2> -This option can be used to tune the CD Audio reading feature of MPlayer. -.br -Available options are: -. -.RSs -.IPs speed=<value> -set CD spin speed -.IPs paranoia=<0\-2> -set paranoia level -.RSss -0: disable checking -.br -1: overlap checking only (default) -.br -2: full data correction and verification -.REss -.IPs generic-dev=<value> -use specified generic SCSI device -.IPs sector-size=<value> -atomic read size -.IPs overlap=<value> -force minimum overlap search during verification to <value> sectors. -.IPs toc-bias -Assume that the beginning offset of track 1 as reported in the TOC will be -addressed as LBA\ 0. -Some Toshiba drives need this for getting track boundaries correct. -.IPs toc-offset=<value> -Add <value> sectors to the values reported when addressing tracks. -May be negative. -.IPs (no)skip -(never) accept imperfect data reconstruction. -.RE -. -.TP -.B \-channels <number> -Change the number of playback channels, defaults to '2' if not specified. -If the number of output channels is bigger than the number of input channels -empty channels are inserted (unless mixing from mono to stereo, then the mono -channel is repeated in both output channels). -If the number of output channels is smaller than the number of input channels, -results depend on the audio decoder (\-afm). -MPlayer asks the decoder to decode the audio into as many channels as -specified. -Now it's up to the decoder to fulfill the requirement. -If the decoder outputs more channels than requested, the exceeding channels -are truncated. -This is usually only important when playing videos with AC3 audio (like DVDs). -In that case liba52 does the decoding by default and correctly downmixes the -audio into the requested number of channels. - -.I NOTE: -.br -This option is honored by codecs (AC3 only) filters (surround) and ao drivers -(OSS at least). -.br -Available options are: - -.PD 0 -.RSs -.IPs 2 -Stereo -.IPs 4 -Surround -.IPs 6 -Full 5.1 -.RE -.PD 1 -. -.TP -.B \-chapter <chapter\ id>[-<end\ chapter\ id>] -Specify which chapter to start playing at. -Optionally specify which chapter to end playing at (default: 1). -Examples can be found below. -.TP -.B \-csslib <filename> -(old-style DVD option) This option is used to override the default location of -libcss.so. -.TP -.B \-cuefile <filename> (see \-vcd too) -Play (S)VCD from CDRwin's (bin/cue fileformat) disk image, described by the -specified file. -.TP -.B \-demuxer <number> -Force demuxer type. -Give the demuxer ID as defined in demuxers.h. -Use \-demuxer 17 to force .mp3 detection. -.TP -.B \-dumpaudio (MPLAYER only) -Dumps raw compressed audio stream to ./\:stream.dump (useful with mpeg/\:ac3). -.TP -.B \-dumpfile <filename> (MPLAYER only) -Specify which file MPlayer should dump to. -Should be used together with \-dumpaudio / \-dumpvideo / \-dumpstream. -.TP -.B \-dumpstream (MPLAYER only) -Dumps the raw stream to ./\:stream.dump. -Useful when ripping from DVD or network. -.TP -.B \-dumpvideo (MPLAYER only) -Dump raw compressed video stream to ./\:stream.dump (not very usable). -.TP -.B \-dvd <title\ id> -Tell MPlayer which movies (specified by title id) to play. -For example sometimes '1' is a trailer, and '2' is the real movie. - -.I NOTE: -.br -Sometimes deinterlacing is required for DVD playback, -see the \-vop pp=0x20000 option. -.TP -.B \-dvd\-device <path\ to\ device> -Override default DVD device name /dev/\:dvd. -.TP -.B \-dvdangle <angle\ id> -Some DVD discs contain scenes that can be viewed from multiple angles. -Here you can tell MPlayer which angles to use (default: 1). -Examples can be found below. -.TP -.B \-dvdauth <DVD\ device> -(old-style DVD option) Turns on DVD authentication using the given device. -.TP -.B \-dvdkey <CSS\ key> -(old-style DVD option) When decoding a VOB file copied undecrypted from DVD, -this option gives the CSS key needed to decrypt the VOB (the key is printed -when authenticating with the DVD drive using \-dvdauth). -.TP -.B \-dvdnav (BETA CODE!) -Force usage of libdvdnav. -.TP -.B \-forceidx -Force rebuilding of INDEX. -Useful for files with broken index (desyncs, etc). -Seeking will be possible. -You can fix the index permanently with MEncoder (see the documentation). -.TP -.B \-fps <value> -Override video framerate (if value is wrong/\:missing in the header) (float -number). -.TP -.B \-frames <number> -Play/\:convert only first <number> frames, then quit. -.TP -.B \-hr\-mp3\-seek (.MP3 only) -Hi\-res mp3 seeking. -Default is: enabled when playing from external MP3 file, as we need to seek -to the very exact position to keep A/\:V sync. It can be slow especially when -seeking backwards \- it has to rewind to the beginning to find the exact -frame. -.TP -.B \-idx (also see \-forceidx) -Rebuilds INDEX of the AVI if no INDEX was found, -thus allowing seeking. -Useful with broken/\:incomplete downloads, or badly created AVIs. -.TP -.B \-mc <seconds/frame> -Maximum A-V sync correction per frame (in seconds). -.TP -.B \-mf <option1:option2:...> -Used when decoding from multiple PNG or JPEG files. -.br -Available options are: - -.PD 0 -.RSs -.IPs on\ \ \ -turns on multifile support -.IPs w=<value> -width of the output (autodetect) -.IPs h=<value> -height of the output (autodetect) -.IPs fps=<value> -fps of the output (default: 25) -.IPs type=<value> -type of input files (available types: jpeg, png, tga) -.RE -.PD 1 -. -.TP -.B \-ni (.AVI only) -Force usage of non\-interleaved AVI parser (fixes playing -of some bad AVI files). -.TP -.B \-nobps (.AVI only) -Do not use average byte/\:sec value for A\-V sync (AVI). -Helps with some AVI files with broken header. -.TP -.B \-noextbased -Disables filename-extension based demuxer selection. -By default, when file type (demuxer) cannot be detected reliably -(the file has no header or it is not reliable enough), the filename -extension is used to select demuxer. It always falls back to content-based -demuxer selection. -.TP -.B \-passwd <password> (see \-user option too) -Specify password for http authentication. -.TP -.B \-rawaudio <option1:option2:...> -This option lets you play raw audio files. -It may also be used to play audio CDs which are not 44KHz 16Bit stereo. -.br -Available options are: - -.PD 0 -.RSs -.IPs on\ \ \ -use raw audio demuxer -.IPs channels=<value> -number of channels -.IPs rate=<value> -rate in samples per second -.IPs samplesize=<value> -sample size in byte -.IPs format=<value> -fourcc in hex -.RE -.PD 1 -. -.TP -.B \-rawvideo <option1:option2:...> -This option lets you play raw video files. -.br -Available options are: - -.PD 0 -.RSs -.IPs on\ \ \ -use raw video demuxer -.IPs fps=<value> -rate in frames per second, default 25.0 -.IPs sqcif|qcif|cif|4cif|pal|ntsc -set standard image size -.IPs w=<value> -image width in pixels -.IPs h=<value> -image height in pixels -.IPs y420|yv12|yuy2|y8 -set colorspace -.IPs format=<value> -colorspace (fourcc) in hex -.IPs size=<value> -frame size in bytes -.RE -.PD 1 -. -.TP -.B \-rtsp-stream-over-tcp -Used with 'rtsp://' URLs to specify that the resulting incoming RTP and RTCP -packets be streamed over TCP (using the same TCP connection as RTSP). -This option may be useful if you have a broken Internet connection that does -not pass incoming UDP packets (see http://www.live.com/mplayer/). -.TP -.B \-skipopening -Skip DVD opening (dvdnav only). -.TP -.B \-sb <byte\ position> (see \-ss option too) -Seek to byte position. -Useful for playback from CDROM images / .VOB files with junk at the beginning. -.TP -.B \-srate <Hz> -Forces the given audio playback rate, changing video speed to keep a-v sync. -MEncoder passes this value to lame for resampling. -.TP -.B \-ss <time> (see \-sb option too) -Seek to given time position. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-ss 56" -seeks to 56 seconds -.IPs "\-ss 01:10:00" -seeks to 1\ hour 10\ min -.RE -.PD 1 -. -.TP -.B \-tv <option1:option2:...> -This option enables the TV grabbing feature of MPlayer. - -.I NOTE: -.br -MPlayer doesn't accept colons so type dots instead in the device ID -(e.g.\& hw.0,0 instead of hw:0,0). -.br -Be advised that although you can select any samplerate when using ALSA, -the LAME audio codec is able to encode only the 'standard' samplerates. -You'll get an .avi file with no sound when you choose an odd -samplerate and use this codec. -.br -Available options are: -. -.RSs -.IPs on\ \ \ -use TV input -.IPs noaudio -no sound -.IPs driver=<value> -available: dummy, v4l, bsdbt848 -.IPs device=<value> -Specify other device than the default /dev/\:video0. -.IPs input=<value> -Specify other input than the default 0 (Television) (see output for a list) -.IPs freq=<value> -Specify the frequency to set the tuner to (e.g.\& 511.250). -Not compatible with channels parameter. -.IPs outfmt=<value> -output format of the tuner (yv12, rgb32, rgb24, rgb16, rgb15, uyvy, yuy2, -i420) -.IPs width=<value> -width of the output window -.IPs height=<value> -height of the output window -.IPs fps=<value> -framerate at which to capture video (frames per second) -.IPs buffersize=<value> -maximum size of the capture buffer in megabytes (default: dynamical) -.IPs norm=<value> -available: PAL, SECAM, NTSC -.IPs channel=<value> -Set tuner to <value> channel. -.IPs chanlist=<value> -available: europe-east, europe-west, us-bcast, us-cable, etc -.IPs channels=<channel>\-<name>,<channel>\-<name>,... -Set names for channels. -Use _ for spaces in names (or play with quoting ;-). -The channel names will then be written using OSD, and the commands tv_step_channel, -tv_set_channel and tv_last_channel will then be usable using a remote (see lirc). -Not compatible with frequency parameter. -Warning: The channel number will then be the position in the 'channels' list, -beginning with 1. -Example: use tv://1, tv://2, tv_set_channel 1, tv_set_channel 2, etc. -.IPs audiorate=<value> -set audio capture bitrate -.IPs forceaudio -capture audio even if there are no audio sources reported by v4l -.IPs alsa -capture from ALSA -.IPs amode=<0\-3> -choose an audio mode: -.RSss -0: mono -.br -1: stereo -.br -2: language 1 -.br -3: language 2 -.REss -.IPs forcechan=<1\-2> -By default, the count of recorded audio channels is determined automatically -by querying the audio mode from the tv card. -This option allows to force stereo/\:mono recording regardless of the amode -option and the values returned by v4l. -This can be used for troubleshooting when the tv card is unable to report the -current audio mode. -.IPs adevice=<value> -set an audio device -.RSss -/dev/\:...\& for OSS -.br -hardware ID for ALSA -.REss -.IPs audioid=<value> -choose an audio output of the capture card, if it has more of them -.IPs "[volume|bass|treble|balance]=<0\-65535>" -These options set parameters of the mixer on the video capture card. -They will have no effect, if your card doesn't have one. -.IPs immediatemode=<bool> -A value of 0 means capture and buffer audio and video together -(default for mencoder). -A value of 1 (default for mplayer) means to do video capture only and let the -audio go through a loopback cable from the TV card to the soundcard. -.RE -. -.TP -.B \-user <user name> (see \-passwd option too) -Specify user name for http authentication. -.TP -.B \-vcd <track> -Play video CD track from a device or image file (see \-cuefile). -.TP -.B \-vid <id> -Select video channel [MPG: 0\-15 ASF: 0\-255]. -.TP -.B \-vivo <sub\-options> (DEBUG CODE) -Force audio parameters for the .vivo demuxer (for debugging purposes). - - -.SH "OSD/SUB OPTIONS" -.I NOTE: -.br -See \-vop expand too. -.TP -.B \-dumpmicrodvdsub (MPLAYER only) -Convert the given subtitle (specified with the \-sub option) to the -MicroDVD subtitle format. -Creates a dumpsub.sub file in the current directory. -.TP -.B \-dumpmpsub (MPLAYER only) -Convert the given subtitle (specified with the \-sub option) to MPlayer's -subtitle format, MPsub. -Creates a dump.mpsub file in the current directory. -.TP -.B \-dumpsrtsub (MPLAYER only) -Convert the given subtitle (specified with the \-sub option) to the time-based -SubViewer (SRT) subtitle format. -Creates a dumpsub.srt file in the current directory. -.TP -.B \-dumpjacosub (MPLAYER only) -Convert the given subtitle (specified with the \-sub option) to the time-based -JACOsub subtitle format. -Creates a dumpsub.js file in the current directory. -.TP -.B \-dumpsami (MPLAYER only) -Convert the given subtitle (specified with the \-sub option) to the time-based -SAMI subtitle format. -Creates a dumpsub.smi file in the current directory. -.TP -.B \-dumpsub (MPLAYER only) (BETA CODE) -Dumps the subtitle substream from VOB streams. -See -dump*sub and -vobsubout* options too. -.TP -.B \-ifo <vobsub\ ifo\ file> -Indicate the file that will be used to load palette and frame size for VOBSUB -subtitles. -.TP -.B \-ffactor <number> -Resample alphamap of the font. -Can be: - -.PD 0 -.RSs -.IPs 0\ \ \ \ -plain white fonts -.IPs 0.75\ \ -very narrow black outline (default) -.IPs 1\ \ \ \ -narrow black outline -.IPs 10\ \ \ -bold black outline -.RE -.PD 1 -. -.TP -.B \-font <path\ to\ font.desc\ file> -Search for the OSD/\:SUB fonts in an alternative directory (default for normal -fonts: ~/\:.mplayer/\:font/\:font.desc, default for FreeType fonts: -~/.mplayer/\:subfont.ttf). - -.I NOTE: -.br -With FreeType, this option determines path to the text font file. -.br -The \-subfont-* options are available only with FreeType support compiled in. - -.I EXAMPLE: -.PD 0 -.RSs -\-font ~/\:.mplayer/\:arial\-14/\:font.desc -.br -\-font ~/\:.mplayer/\:arialuni.ttf -.RE -.PD 1 -. -.TP -.B \-noautosub -Turns off automatic loading of subtitle files. -.TP -.B \-overlapsub -Enables overlapping subtitles support for all subtitles formats. -.TP -.B \-nooverlapsub -Disables overlapping subtitles support for all subtitles formats (default -behaviour is to enable the support only for specific formats). -.TP -.B \-osdlevel <0\-3> (MPLAYER only) -Specifies which mode the OSD should start in. - -.PD 0 -.RSs -.IPs 0 -subtitles only -.IPs 1 -volume + seek (default) -.IPs 2 -volume + seek + timer + percentage -.IPs 3 -volume + seek + timer + percentage + total time -.RE -.PD 1 -. -.TP -.B \-sid <id> (also see \-slang option) -Turns on DVD subtitle displaying. -Also, you MUST specify a number which corresponds to a DVD subtitle language -(0\-31). -For the list of available subtitles, use with the \-v option and look at the -output. -.TP -.B \-slang <two\ letter\ country\ code> (also see \-sid option) -Works only for DVD playback. -Turns on/\:selects DVD subtitle language. -For the list of available subtitles, use with the \-v option and look at the -output. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-slang hu,en" -Selects Hungarian and falls back to English if Hungarian is not available. -.RE -.PD 1 -. -.TP -.B \-sub <subtitle\ file> -Use/\:display this subtitle file. -.TP -.B \-sub-bg-alpha <0\-255> -Specify the alpha channel value for subtitles and OSD backgrounds. -Big values mean more transparency. -The 0 value is an exception and means completly transparent. -.TP -.B \-sub-bg-color <0\-255> -Specify the color value for subtitles and OSD backgrounds. -Currently subtitles are grayscale so this value is equivalente to the -intensity of the color. -The 255 value means white and 0 black. -.TP -.B \-subcc \ -Display DVD Closed Caption (CC) subtitles. -These are NOT the VOB subtitles, these are special ASCII subtitles for the -hearing impaired encoded in the VOB userdata stream on most region 1 DVDs. -CC subtitles have not been spotted on DVDs from other regions so far. -.TP -.B \-subcp <codepage> -If your system supports iconv(3), you can use this option to -specify codepage of the subtitle. - -.I EXAMPLE: -.PD 0 -.RSs -\-subcp latin2 -.br -\-subcp cp1250 -.RE -.PD 1 -. -.TP -.B \-sub\-demuxer <number> (BETA CODE) -Force subtitle demuxer type for \-subfile. -.TP -.B \-subdelay <sec> -Delays subtitles by <sec> seconds. -Can be negative. -.TP -.B \-subfont-autoscale <0\-3> -Sets the autoscale mode. - -.I NOTE: -.br -Zero means that text-scale and osd-scale are font heights in points. -.br -The mode can be: - -.PD 0 -.RSs -.IPs 0 -no autoscale -.IPs 1 -proportional to movie height -.IPs 2 -proportional to movie width -.IPs 3 -proportional to movie diagonal (default) -.RE -.PD 1 -. -.TP -.B \-subfont-blur <0\-8> -Sets the font blur radius (default: 2). -.TP -.B \-subfont-encoding <value> -Sets the font encoding. -When set to 'unicode', all the glyphs from the font file will be rendered and -unicode will be used (default: unicode). -.TP -.B \-subfont-osd-scale <0\-100> -Sets the osd elements autoscale coefficient (default: 6). -.TP -.B \-subfont-outline <0\-8> -Sets the font outline thickness (default: 2). -.TP -.B \-subfont-text-scale <0\-100> -Sets the subtitle text autoscale coefficient (percentage of the -screen size) (default: 5). -.TP -.B \-subfps <rate> -Specify frame/\:sec rate of subtitle file (float number), -default: the same fps as the movie. - -.I NOTE: -.br -ONLY for frame\-based SUB files, i.e.\& NOT MicroDVD format. -.TP -.B \-subfile <filename> (BETA CODE) -Currently useless. -Same as \-audiofile, but for subtitle streams (OggDS?). -.TP -.B \-subpos <0\-100> (useful with \-vop expand) -Specify the position of subtitles on the screen. -The value is the vertical position of the subtitle in % of the screen height. -.TP -.B \-subalign <0\-2> -Specify how subtitles should be aligned with subpos. -0 means align at top (original/default behavior), 1 means align at center, and -2 means align at bottom. -.TP -.B \-subwidth <10\-100> -Specify the maximum width of subtitles on the screen. -Useful for TV-out. -The value is the width of the subtitle in % of the screen width. -.TP -.B \-unicode -Tells MPlayer to handle the subtitle file as UNICODE. -.TP -.B \-utf8 \ \ -Tells MPlayer to handle the subtitle file as UTF8. -.TP -.B \-sub-no-text-pp -Disables any kind of text post processing done after loading the subtitles. -Used for debug purposes. -.TP -.B \-vobsub <vobsub\ file\ without\ extension> -Specify the VobSub files that are to be used for subtitle. -This is the full pathname without extensions, i.e.\& without the '.idx', -\'.ifo' or '.sub'. -.TP -.B \-vobsubid <0-31> -Specify the VobSub subtitle id. -.TP -.B \-spualign <-1\-2> -Specify how spu (DVD/VobSub) subtitles should be aligned. -Values are the same as for -subpos, with the extra choice -1 for original -position. -.TP -.B \-spuaa <mode> -Antialiasing/scaling mode for DVD/VobSub. A value of 16 may be added -to mode in order to force scaling even when original and scaled frame -size already match, for example to smooth subtitles with the gaussian -blur. The available modes are: -.PD 0 -.RSs -.IPs 0 -none (fastest, very ugly) -.IPs 1 -approximate (broken?) -.IPs 2 -full (slow) -.IPs 3 -bilinear (default, fast and not too bad) -.IPs 4 -uses swscaler gaussian blur (looks very good) -.RE -.PD 1 -. -.TP -.B \-spugauss <0.0\-3.0> -Variance parameter of gaussian used by -spuaa 4. Higher means more -blur. The default is 1.0. - - -.SH "AUDIO OUTPUT OPTIONS (MPLAYER ONLY)" -.TP -.B \-abs <value> (OBSOLETE) -Override audio driver/\:card buffer size detection, \-ao oss only -.TP -.B \-af <plugin1,plugin2,plugin3[=options],...> -Activate a comma separated list of audio filters and their options. -.br -Available filters are: -. -.RSs -.IPs resample[=srate[:sloppy][:type]] -Changes the sample rate of the audio stream to an integer srate (Hz). -It only supports the 16 bit little endian format. -.IPs channels[=nch] -Change the number of channels to nch output channels. -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. -.IPs format[=bps,f] -Select the format f and bits per sample bps used for output from the -filter layer. -The option bps is an integer and denotes bytes per sample. -The format f is a string containing a concatenated mix of: -.br -alaw, mulaw or imaadpcm -.br -float or int -.br -unsigned or signed -.br -le or be (little or big endian) -.br -.IPs "volume[=v:sc]" -Select the output volume level. -This filter is not reentrant and can therefore only be enabled once for every -audio stream. -.RSss -v: desired gain in dB for all channels in the stream. -The gain can be set from -200dB to +40dB (where -200dB mutes the sound -completely and +40dB equals a gain of 1000). -.br -sc: enable soft clipping. -.REss -.IPs "pan[=n:l01:l02:..l10:l11:l12:...ln0:ln1:ln2:...]" -Mixes channels arbitrarily, see DOCS/sound.html for details. -.RSss -n: number of output channels (1 - 6). -.br -lij: how much of input channel j is mixed into output channel i. -.REss -.IPs "sub[=fc:ch]" -Add sub-woofer channel. -.RSss -fc: Cutoff frequency for low-pass filter (20Hz to 300Hz) default is 60Hz. -.br -ch: channel number for the sub-channel. -.REss -.IPs "surround[=d]" -Decoder for matrix encoded surround sound, works on many 2 channel files. -.RSss -d: delay time in ms for the rear speakers (0ms to 1000ms) default is 15ms. -.REss -.IPs delay[=ch1:ch2:...] -Delays the sound output. -Specify the delay separately for each channel in milliseconds (floating point -number between 0 and 1000). -.RE -. -.TP -.B \-af-adv <force=(0\-3):list=(filters)> (see -af option too) -Specify advanced audio filter options: -. -.RSs -.IPs force=<0-3> -Forces the insertion of audio filters to one of the following: -.RSss -0: Completely automatic insertion of filters (default) -.br -1: Optimize for speed -.br -2: Optimize for accuracy -.br -3: Turn off auto -.REss -.IPs list=<filters> -Same as -af (see -af option). -.RE -. -.TP -.B \-ao <driver1[:device],driver2,...[,]> -Specify a priority list of audio output drivers (optionally with device) to be -used. -\'device' is valid with SDL, too, it means subdriver then. - -.I NOTE: -.br -To get a full list of available drivers, see \-ao help. -.br -If the list has a trailing ',' it will fallback to drivers not listed. - -.I EXAMPLE -.PD 0 -.RSs -.IPs "\-ao oss:/\:dev/\:dsp2,oss:/\:dev/\:dsp1," -try to use OSS with the specified sound devices and fallback to others if it -fails -.IPs "\-ao sdl:esd" -specify the SDL subdriver -.RE -.PD 1 -. -.TP -.B \-aofile <filename> -Filename for \-ao pcm. -.TP -.B \-aop <list=plugin1,plugin2...:option1=value1:opt2=val2...> -Specify audio plugin(s) and their options (see documentation too). -.br -Available options are: -. -.RSs -.IPs list=[plugins] -comma separated list of plugins (resample, surround, format, volume, -extrastereo, volnorm) -.IPs delay=<sec> -example plugin, do not use. -.IPs format=<format> -output format (format plugin only) -.IPs fout=<Hz> -output frequency (resample plugin only) -.IPs volume=<0\-255> -volume (volume plugin only) -.IPs mul=<value> -stereo coefficient (default: 2.5) (extrastereo plugin only) -.IPs softclip -compressor / 'soft\-clipping' capabilities (volume plugin only) -.RE -. -.TP -.B \-delay <sec> -Audio delay in seconds (may be +/\:\- float value). -.TP -.B \-format <0\-8192> -Select the format used for output from the filter layer (according to the -defines in libao2/afmt.h): - -.PD 0 -.RSs -.IPs 1 -Mu-Law -.IPs 2 -A-Law -.IPs 4 -Ima-ADPCM -.IPs 8 -Signed 8-bit -.IPs 16 -Unsigned 8-bit -.IPs 32 -Unsigned 16-bit (Little-Endian) -.IPs 64 -Unsigned 16-bit (Big-Endian) -.IPs 128 -Signed 16-bit (Little-Endian) -.IPs 256 -Signed 16-bit (Big-Endian) -.IPs 512 -MPEG (2) Audio -.IPs 1024 -AC3 -.IPs 4096 -Signed 32-bit (Little-Endian) -.IPs 8192 -Signed 32-bit (Big-Endian) -.RE -.PD 1 -. -.TP -.B \-mixer <device> -This option will tell MPlayer to use a different device for mixing than -/dev/\:mixer. -.TP -.B \-nowaveheader (-ao pcm only) -Don't include wave header. -Used for RAW PCM. - - -.SH "VIDEO OUTPUT OPTIONS (MPLAYER ONLY)" -.TP -.B \-aa* (\-vo aa only) -You can get a list and an explanation of available options executing -.I mplayer \-aahelp -.TP -.B \-bpp <depth> -Use different color depth than autodetect. -Not all \-vo drivers support it (fbdev, dga2, svga, vesa). -.TP -.B \-brightness <\-100\-100> -Adjust brightness of video output (default 0). -It changes intensity of RGB components of video signal from black to white -screen. -.TP -.B \-contrast <\-100\-100> -Adjust contrast of video output (default 0). -Works in similar manner as brightness. -.TP -.B \-dfbopts <value> (\-vo directfb2 only) -Specify a parameter list for the directfb driver. -.TP -.B \-display <name> -Specify the hostname and display number of the X server you want to display -on. - -.I EXAMPLE: -.PD 0 -.RSs -\-display xtest.localdomain:0 -.RE -.PD 1 -. -.TP -.B \-double -Enables doublebuffering. -Fixes flicker by storing two frames in memory, and displaying one while -decoding another. -Can affect OSD. -Needs twice the memory of a single buffer, so it won't work on cards with -very little video memory. -.TP -.B \-dr \ \ \ -Turns on direct rendering (not supported by all codecs and video outputs) -(default is off). -Warning: may cause OSD/\:SUB corruption! -.TP -.B \-dxr2 <option1:option2:...> -This option is used to control the dxr2 driver. -Note: The lavc filter is now auto inserted if you try to play a non MPEG1/2 -format so all formats supported by MPlayer should play out of the box (if -you have the CPU power needed to encode on the fly). -The overlay chipset used on the dxr2 is of pretty bad quality but the default -settings should work for everybody. -The OSD may be usable with the overlay (not on TV) by drawing it in the -colorkey. -With the default colorkey settings you may get variable results, usually you -will see the colorkey around the characters or some other funny effect. -But if you properly adjust the colorkey settings you should be able to get -acceptable results. -. -.RSs -.IPs ar-mode=<value> -aspect ratio mode (0 = normal, 1 = pan scan, 2 = letterbox (default)) -.IPs iec958\-encoded/\:decoded -iec958 output mode -.IPs mute -mute sound output -.IPs ucode=<value> -path to the microcode -.RE -.RS - -.I TV Out -.RE -.RSs -.IPs 75ire -enable 7.5 IRE -.IPs bw\ \ \ -b/\:w TV output -.IPs color -color TV output -.IPs interlaced -interlaced TV output -.IPs macrovision=<value> -macrovision mode (0 = off (default), 1 = agc, 2 = agc 2 colorstripe, -3 = agc 4 colorstripe) -.IPs norm=<value> -TV norm (ntsc (default), pal,pal60,palm,paln,palnc) -.IPs square/\:ccir601\-pixel -TV pixel mode -.RE -.RS - -.I Overlay -.RE -.RSs -.IPs cr-[left|right|top|bot]=<\-20\-20> -adjust the overlay cropping -.IPs ck-[rgb]min=<0\-255> -minimum value for the color key -.IPs ck-[rgb]max=<0\-255> -maximum value for the color key -.IPs ck-[rgb]=<0\-255> -color key values -.IPs ignore\-cache -do not use the VGA cache -.IPs ol-osd -enable the osd hack on the overlay -.IPs ol[hwxy]\-cor=<value> -adjust the overlay size and position in case it doesn't match the window -perfectly -.IPs overlay -enable the overlay -.IPs overlay-ratio=<1\-2500> -tune the overlay (default 1000) -.IPs update\-cache -recreate the VGA cache -.RE -. -.TP -.B \-fb <device> (fbdev or DirectFB only) -Specifies the framebuffer device to use. -By default it uses /dev/\:fb0. -.TP -.B \-fbmode <modename> (fbdev only) -Change video mode to the one that is labelled as <modename> in -/etc/\:fb.modes. - -.I NOTE: -.br -VESA framebuffer doesn't support mode changing. -.TP -.B \-fbmodeconfig <filename> (fbdev only) -Use this configuration file instead of the default /etc/\:fb.modes. -Only valid for the fbdev driver. -.TP -.B \-forcexv (SDL only) -Force using XVideo. -.TP -.B \-fs \ \ \ -Fullscreen playing (centers movie, and makes black -bands around it). -Toggle it with the 'f' key (not all video outputs support it). -See also \-zoom. -.TP -.B \-fsmode-dontuse <0-31> (OBSOLETE) (use \-fs option) -Try this option if you still experience fullscreen problems. -.TP -.B \-fstype <type1,type2,...> -Specify a priority list of fullscreen layer setting modes to be -used. - -The default order is "layer,stays_on_top,above,fullscreen". It will be used -as a fallback in case of specifying incorrect or unsupported modes. -.br -If you experience problems with fullscreen window being covered by other -windows try using different order. - -.I NOTE: -.br -See \-fstype help for a full list of available modes. -.TP -.B \-geometry x[%][:y[%]] or [WxH][+x+y] -Adjust where the output is on the screen initially. -The x and y specifications are in pixels measured from the top-right of the -screen to the top-right of the image being displayed, however if a percentage -sign is given after the argument it turns the value into a percentage of the -screen size in that direction. -It also supports the standard option format to the standard X \-geometry -option. -The values given must be integers. - -Note: This option is only supported by a few vo's, including tdfxfb, fbdev and -xv. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs 50:40 -Places the window at x=50, y=40 -.IPs 50%:50% -Places the window in the middle of the screen -.IPs 100% -Places the window at the top left corner of the screen -.IPs 100%:100% -Places the window at the bottom left corner of the screen -.RE -.PD 1 -. -.TP -.B \-guiwid <window\ id> -This tells the GUI to also use an X11 window and stick itself to the bottom -of the video, which is useful to embed a mini-GUI in a browser (with the -mplayerplug-in for instance). -.TP -.B \-hue <\-100\-100> -Adjust hue of video signal (default: 0). -You can get colored negative of image with this option. -.TP -.B \-icelayer <0\-15> (icewm only) -Sets the layer of the fullscreen window of mplayer for icewm. - -.PD 0 -.RSs -.IPs 0 -Desktop -.IPs 2 -Below -.IPs 4 -Normal -.IPs 6 -OnTop -.IPs 8 -Dock -.IPs 10 -AboveDock -.IPs 12 -Menu (default) -.RE -.PD 1 -. -.TP -.B \-jpeg <option1:option2:...> (\-vo jpeg only) -Specify options for the JPEG output. -.br -Available options are: - -.PD 0 -.RSs -.IPs [no]progressive -Specify standard or progressive JPEG. -.IPs [no]baseline -Specify use of baseline or not. -.IPs optimize=<value> -Optimization factor [0-100] -.IPs smooth=<value> -Smooth factor [0-100] -.IPs quality=<value> -Quality factor [0-100] -.IPs outdir=<value> -Directory to save the JPEG files -.RE -.PD 1 -. -.TP -.B \-monitor_dotclock <dotclock\ (or\ pixelclock) range> (fbdev and vesa only) -Look into etc/\:example.conf for further information and in DOCS/\:video.html. -.TP -.B \-monitor_hfreq <horizontal frequency range> (fbdev and vesa only) -.TP -.B \-monitor_vfreq <vertical frequency range> (fbdev and vesa only) -.TP -.B \-monitoraspect <ratio> -Set aspect ratio of your monitor or TV screen. -See also \-aspect for movie aspect. - -.I EXAMPLE: -.PD 0 -.RSs -\-monitoraspect 4:3 or 1.3333 -.br -\-monitoraspect 16:9 or 1.7777 -.RE -.PD 1 -. -.TP -.B \-nograbpointer -Do not grab mouse pointer after VidMode change (\-vm), useful for multihead -setup. - -.TP -.B \-nokeepaspect -Do not keep window aspect ratio when resizing X11 windows (Works currently only -with \-vo x11, xv, xmga and xvidix and your window manager needs to understand -window aspect hints.). - -.TP -.B \-noslices -Disable drawing video by 16-pixel height slices/\:bands, instead draws the -whole frame in a single run. -May be faster or slower, depending on card/\:cache. -It has effect only with libmpeg2 and libavcodec codecs. -.TP -.B \-panscan <0.0\-1.0> -Enables Pan & Scan functionality, i.e.\& in order to display a 16:9 movie -on a 4:3 display, the sides of the movie are cropped to get a 4:3 image -which fits the screen. -This function works only with the xv, xmga, mga and xvidix video out drivers. -.br -The range controls how much of the image is cropped. -.TP -.B \-rootwin -Play movie in the root window (desktop background) instead of opening -a new one. -Works only with x11, xv, xmga and xvidix drivers. -.TP -.B \-saturation <\-100\-100> -Adjust saturation of video output (default: 0). -You can get grayscale output with this option. -.TP -.B \-screenw <pixels> \-screenh <pixels> -If you use an output driver which can't know the resolution of the screen -(fbdev/\:x11 and/\:or TVout) this is where you can specify the horizontal and -vertical resolution. -.TP -.B \-stop_xscreensaver -Turns off xscreensaver at startup and turns it on again on exit. -.TP -.B \-vm \ \ \ -Try to change to a better video mode. -dga, x11/\:xv (XF86VidMode) and sdl output drivers support it. -.TP -.B \-vo <driver1[:device],driver2,...[,]> -Specify a priority list of video output drivers (optionally with device) to be -used. -\'device' is valid with SDL and GGI, too, it means subdriver then. - -.I NOTE: -.br -See \-vo help for a full list of available drivers. -.br -If the list has a trailing ',' it will fallback to drivers not listed. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-vo xmga,xv," -Try Matrox kernel driver, then Xv driver, then others -.br -.IPs "\-vo sdl:aalib" -specify the SDL subdriver -.RE -.PD 1 -. -.TP -.B \-vsync \ \ -Enables VBI for vesa. -.TP -.B \-wid <window\ id> -This tells MPlayer to use a X11 window, which is useful to embed MPlayer in a -browser (with the plugger extension for instance). -.TP -.B \-xineramascreen <0\-...> -In Xinerama configurations (i.e.\& a single desktop that spans across multiple -displays) this option tells MPlayer which screen to display movie on. -.TP -.B \-z <0\-9> -Specifies compression level for PNG output (-vo png) - -.PD 0 -.RSs -.IPs 0 -no compression -.IPs 9 -max compression -.RE -.PD 1 -. -.TP -.B \-zrbw (\-vo zr only) -Display in black and white (for optimal performance, this option can be -combined with the 'decode only in black and white' option for codecs -belonging to the FFmpeg family). -.TP -.B \-zrcrop <[width]x[height]+[x offset]+[y offset]> (\-vo zr only) -Select a part of the input image for display, multiple occurences of this -option switch on cinerama mode. -In cinerama mode the movie is distributed over more than one TV (or beamer) to -create a larger screen. -Options appearing after the n\-th \-zrcrop apply to the n\-th MJPEG card, each -card should at least have a \-zrdev in addition to the \-zrcrop. -For examples, see the output of \-zrhelp and the Zr section of the -documentation. -.TP -.B \-zrdev <device> (\-vo zr only) -Specify the device special file that belongs to your MJPEG card, by default -this driver takes the first v4l device it can find. -.TP -.B \-zrfd (\-vo zr only) -Force decimation: Decimation, as specified by \-zrhdec and \-zrvdec, only -happens if the hardware scaler can stretch the image to its original size. -Use this option to force decimation. -.TP -.B \-zrhelp (\-vo zr only) -Display a list of all \-zr* options, their default values and an example of -cinerama mode. -.TP -.B \-zrnorm <norm> (\-vo zr only) -Specify norm PAL/\:NTSC, the default is 'no change'. -.TP -.B \-zrquality <1\-20> (\-vo zr only) -A number from 1 to 20 representing the jpeg encoding quality. -1 gives the best quality and 20 gives very bad quality. -.TP -.B \-zrvdec <1,2,4> \-zrhdec <1,2,4> (\-vo zr only) -Vertical/\:horizontal decimation: Ask the driver to send only every 2nd or 4th -line/\:pixel of the input image to the MJPEG card and use the scaler of the -MJPEG card to strech the image to its original size. -.TP -.B \-zrxdoff <x display offset>, \-zrydoff <y display offset> (\-vo zr only) -If the movie is smaller than the TV screen, these options control the position -of the movie relative to the upper left corner of the screen. -The movie is centered by default. - - -.SH "DECODING/FILTERING OPTIONS" -.TP -.B \-ac <[-]codec1,[-]codec2,...[,]> -Specify a priority list of audio codecs to be used, according to their codec -name in codecs.conf. -Use a '-' before the codec name to omit it. - -.I NOTE: -.br -See \-ac help for a full list of available codecs. -.br -If the list has a trailing ',' it will fallback to codecs not listed. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-ac mp3acm" -force l3codeca.acm MP3 codec -.IPs "\-ac mad," -try libmad first, then fallback to others -.IPs "\-ac hwac3,a52," -try hardware AC3 passthrough, then software AC3 codec, then others -.IPs "\-ac -ffmp3," -try other codecs except FFmpeg's MP3 decoder -.RE -.PD 1 -. -.TP -.B \-afm <driver1,driver2,...> -Specify a priority list of audio drivers to be used, according to their driver -name in codecs.conf. -It falls back to default if none is ok. - -.I NOTE: -.br -See \-afm help for a full list of available drivers. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-afm ffmpeg" -try FFmpeg's libavcodec (mp1/\:2/\:3) codecs first -.IPs "\-afm acm,dshow" -try Win32 codecs first -.RE -.PD 1 -. -.TP -.B \-aspect <ratio> -Override aspect ratio of movies. -It's autodetected on MPEG files, but can't be autodetected on most AVI files. - -.I EXAMPLE: -.PD 0 -.RSs -\-aspect 4:3 or \-aspect 1.3333 -.br -\-aspect 16:9 or \-aspect 1.7777 -.RE -.PD 1 -. -.TP -.B \-flip \ -Flip image upside\-down. -.TP -.B \-lavdopts <option1:option2:...> (DEBUG CODE) -If decoding with a codec from libavcodec, you can specify its parameters here. - -.I EXAMPLE: -.PD 0 -.RSs -\-lavdopts bug=1 -.RE -.PD 1 - -.RS -.I NOTE: -.br -Just add the values of the things you want to enable. -.br -Available options are: -.RE -. -.RSs -.IPs ec\ \ \ -error concealment: -.RSss -1: use strong deblock filter for damaged MBs -.br -2: iterative MV search (slow) -.br -3: all (default) -.REss -.IPs er=<value> -error resilience: -.RSss -.br -0: disabled -.br -1: careful (should work with broken encoders) -.br -2: normal (default) (works with compliant encoders) -.br -3: agressive (more checks but might cause problems even for valid bitstreams) -.br -4: very agressive -.REss -.IPs bug=<value> -manually work around encoder bugs: -.RSss -0: nothing -.br -1: autodetect bugs (default) -.br -2 (msmpeg4v3): some old lavc generated msmpeg4v3 files (no autodetect) -.br -4 (mpeg4): xvid interlacing bug (autodetected if fourcc==XVIX) -.br -8 (mpeg4): UMP4 (autodetected if fourcc==UMP4) -.br -16 (mpeg4): padding bug -.br -32 (mpeg4): illegal vlc bug (autodetected per fourcc) -.br -64 (mpeg4): XVID and DIVX qpel bug (autodetected) -.REss -.IPs idct=<0\-99> -(see lavcopts) -.IPs gray -grayscale only decoding (a bit faster than with color) -.RE -. -.TP -.B \-noaspect -Disable automatic movie aspect ratio compensation. -.TP -.B \-nosound -Do not play/\:encode sound. -.TP -.B \-pp <quality> (see \-vop pp option too!) -Set postprocess level of the DLL. -This option is NO LONGER USABLE with MPlayer's postprocess filter, but only -with Win32 DirectShow DLLs which have internal postprocessing routine. - -The valid range of \-pp value vary on codecs, mostly -0\-6, where 0=disable 6=slowest/\:best. -.TP -.B \-pphelp (see \-vop pp option too) -Show a summary about the available postprocess filters and their usage. -.TP -.B \-ssf <mode> -Specifies SwScaler parameters. - -.I EXAMPLE -.PD 0 -.RSs -\-vop scale \-ssf lgb=3.0 -.RE -.PD 1 - -.PD 0 -.RSs -.IPs lgb=<0\-100> -Gaussian blur filter (luma) -.IPs cgb=<0\-100> -Gaussian blur filter (chroma) -.IPs ls=<0\-100> -sharpen filter (luma) -.IPs cs=<0\-100> -sharpen filter (chroma) -.IPs chs=<h> -chroma horizontal shifting -.IPs cvs=<v> -chroma vertical shifting -.RE -.PD 1 -. -.TP -.B \-stereo <mode> -Select type of MP2/\:MP3 stereo output. - -.PD 0 -.RSs -.IPs 0 -Stereo -.IPs 1 -Left channel -.IPs 2 -Right channel -.RE -.PD 1 -. -.TP -.B \-sws <software\ scaler\ type> (see \-vop scale option too) -This option sets the quality (and speed, respectively) of the software scaler, -with the \-zoom option. -For example with x11 or other outputs which lack hardware acceleration. -Possible settings are: - -.I NOTE: -.br -For \-sws\ 2 and 7, the sharpness can be set with the scaling parameter (p) -of \-vop scale (0 (soft) \- 100 (sharp)), for \-sws 9, it specifies the filter -length (1 \- 10). - -.PD 0 -.RSs -.IPs 0 -fast bilinear (default) -.IPs 1 -bilinear -.IPs 2 -bicubic (good quality) -.IPs 3 -experimental -.IPs 4 -nearest neighbour (bad quality) -.IPs 5 -area -.IPs 6 -luma bicubic / chroma bilinear -.IPs 7 -gauss -.IPs 8 -sincR -.IPs 9 -lanczos -.IPs 10 -bicubic spline -.RE -.PD 1 -. -.TP -.B \-vc <[-]codec1,[-]codec2,...[,]> -Specify a priority list of video codecs to be used, according to their codec -name in codecs.conf. -Use a '-' before the codec name to omit it. - -.I NOTE: -.br -See \-vc help for a full list of available codecs. -.br -If the list has a trailing ',' it will fallback to codecs not listed. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-vc divx" -force Win32/\:VFW DivX codec, no fallback -.IPs "\-vc divx4," -try divx4linux codec first, then fallback to others -.IPs "\-vc -divxds,-divx," -try other codecs except Win32 DivX codecs -.IPs "\-vc ffmpeg12,mpeg12," -try libavcodec's MPEG1/\:2 codec, then libmpeg2, then others -.RE -.PD 1 -. -.TP -.B \-vfm <driver1,driver2,...> -Specify a priority list of video drivers to be used, according to their driver -name in codecs.conf. -It falls back to default if none is ok. - -.I NOTE: -.br -If libdivxdecore support was compiled in, then odivx and divx4 now contains -just the same DivX4 codec, but different APIs to reach it. -For difference between them and when to use which, check the DivX4 section in -the documentation. -.br -See \-vfm help for a full list of available drivers. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-vfm ffmpeg,dshow,vfw" -try the libavcodec, then Directshow, then VFW codecs and fallback to the -others, if still none is ok -.IPs "\-vfm xanim" -try XAnim codecs first -.RE -.PD 1 -. -.TP -.B \-vop <...,filter3[=options],filter2,filter1> -Activate a comma separated list of video filters and their options in reverse -order. - -.I NOTE: -.br -The parameters are optional and if omitted, some of them are set to default -values. -Use -1 to keep the default value. -Parameters w:h means width x height in pixels, x:y means x;y position counted -from the upper left corner of the bigger image. -.br -To get a full list of available plugins, see \-vop help. -.br -Available filters are: -. -.RSs -.IPs crop[=w:h:x:y] -Crops the given part of the image and discards the rest. -Useful to remove black bands from widescreen movies. -.IPs cropdetect[=0\-255] -Calculates necessary cropping parameters and prints the recommended parameters -to stdout. -The threshold can be optionally specified from nothing (0) to everything -(255). -(default: 24) -.IPs rectangle[=w:h:x:y] -Draws a rectangle of the requested width and height at the specified -coordinates over the image (used to test crop). -(default: maximum w/\:h, upper left x/\:y position) -.IPs expand[=w:h:x:y:o] -Expands (not scales) movie resolution to the given value and places the -unscaled original at coordinates x y. Negative values for w and h are -treated as offsets to the original size. For example, expand=0:-50:0:0 -adds a 50 pixel border to the bottom of the picture. -Can be used for placing subtitles/\:OSD in the resulting black bands (default: -original w/\:h, centered x/\:y). -The last parameter (de)activates OSD rendering (default: 0=disabled). -.IPs flip -Flips the image upside down. -See also option \-flip. -.IPs mirror -Flips the image on Y axis. -.IPs rotate[=<0-7>] -Rotates and flips (optional) the image +/\:\- 90 degrees. -For parameters between 4-7 rotation is only done if the movie's geometry is -portrait and not landscape. -.IPs scale[=w:h[:c[:p]]] -Scales the image with the software scaler (slow) and performs a YUV<\->RGB -colorspace conversion (see \-sws option too). -The value 0 is used for scaled (aspect) destination w/\:h. -(default: original w/\:h, destination w/\:h with \-zoom) Optionaly chroma -skipping (c from 0\-3) and scaling parameters can be specified. -(see the \-sws option for details) -.IPs yuy2 -Forces software YV12/\:I420 or 422P to YUY2 conversion. -.IPs rgb2bgr[=swap] -RGB 24/\:32 <\-> BGR 24/\:32 colorspace conversion with optional R <\-> B -swapping. -.IPs palette -RGB/\:BGR 8 \-> 15/\:16/\:24/\:32bpp colorspace conversion using palette. -.IPs format[=fourcc] -Restricts the colorspace for next filter. -It does not do any conversion. -Use together with the scale filter for a real conversion. -.IPs pp[=filter1[:option1[:option2...]]/[-]filter2...] (see \-pphelp too) -This option enables usage of MPlayer's internal postprocessing filter, -and also gives an interface where you can pass options to the named filter. -To get a list of available filters, use \-pphelp. -.br -Note that each sub-filter must be separated with a / sign. -.br -Each filter defaults to 'c' (chrominance). -.br -The keywords accept a '\-' prefix to disable the option. -.br -A ':' followed by a letter may be appended to the option to indicate its -scope: -.RSss -a: Automatically switches the filter off if the CPU is too slow. -.br -c: Do chrominance filtering, too. -.br -y: Do not do chrominance filtering (only luminance filtering). -.REss - -.RS -.I EXAMPLES: -.RE -.RSss -.br -\-vop pp=hb/vb/dr/al/lb -.br -\-vop pp=hb/vb/dr/al -.br -Default filters without brightness/\:contrast correction: -.br -\-vop pp=de/\-al -.br -Enable default filters & temporal denoiser: -.br -\-vop pp=de/tn:1:2:3 -.br -Deblock horizontal only luminance and switch vertical deblocking on or -off automatically depending on available CPU time: -.br -\-vop pp=hb:y/vb:a \-autoq 6 -.REss -.IPs lavc[=quality:fps] -Realtime MPEG1 encoder for use with DVB/\:DXR3 (libavcodec) -.IPs fame -Realtime MPEG1 encoder for use with DVB/\:DXR3 (libfame) -.IPs dvbscale[=aspect] -Set up optimal scaling for DVB cards. -(aspect = DVB_HEIGHT*ASPECTRATIO, default: 768) -.IPs "noise[=luma[u][t|a][h][p]:chroma[u][t|a][h][p]]" -Adds noise -.RSss -<0\-100>: luma noise -.br -<0\-100>: chroma noise -.br -u: uniform noise -.br -t: temporal noise -.br -a: averaged temporal noise -.br -h: high quality -.br -p: mix random noise with a (semi)regular pattern -.REss -.IPs "denoise3d[=luma:chroma:time]" -This filter aims to reduce image noise producing smooth images and making still -images really still (This should enhance compressibility.). -It can be given from 0 to 3 parameters. If you omit a parameter, a reasonable -value will be inferred. -.RSss -luma: spatial luma strength (default = 4) -.br -chroma: spatial chroma strength (default = 3) -.br -time: temporal strength (default = 6) -.REss -.IPs eq[=bright:cont] -Activates the software equalizer with interactive controls like the hardware -eq controls. -The values can be from -100 to 100. -.IPs eq2[=gamma:contrast:brightness:saturation:rg:gg:bg] -Alternative software equalizer that uses lookup tables (very slow), -allowing gamma correction in addition to simple brightness, -contrast and saturation adjustment. Note that it uses the same MMX -optimized code as -vop eq if all gamma values are 1.0! -The parameters are given as floating point values. -Defaults are gamma=1.0, contrast=1.0, brightness=0.0 and saturation=1.0. -Parameters rg, gg, bg are the independent gamma values for the Red, Green -and Blue components, all default to 1.0. -The values are 0.1\-10 for gammas, -2\-2 for contrast (negative values result -in negative image) -1\-1 for brightness and 0\-3 for saturation. -.IPs halfpack[=f] -Convert planar YUV 4:2:0 to half-height packed 4:2:2, downsampling luma but -keeping all chroma samples. -Useful for output to low-resolution display devices when hardware downscaling -is poor quality or is not available. -Can also be used as a primitive luma-only deinterlacer with very low cpu -usage. -By default, halfpack averages pairs of lines when downsampling. -The optional parameter f can be 0 to only use even lines, or 1 to only use -odd lines. -Any other value for f gives the default (averaging) behavior. -.IPs dint[=sense:level] -Detects and drops first of interlaced frames in video stream. -Values can be from 0.0 to 1.0 - first (default 0.1) is relative difference -between neighbor pixels, second (default 0.15) is what part of image have to -be detected as interlaced to drop the frame. -.IPs lavcdeint -Use libavcodec's deinterlace filter. -.IPs "unsharp=l|cWxH:amount[:l|cWxH:amount]" -Unsharp mask / gaussian blur. -.RSss -l: apply effect on luma component -.br -c: apply effect on chroma components -.br -WxH: width and height of the matrix, odd sized in both directions -(min = 3x3, max = 13x11 or 11x13, usually something between 3x3 and 7x7) -.br -amount: relative amount of sharpness / blur to add to the image -(amount < 0 = blur, amount > 0 = sharpen, usually something between -1.5 and -1.5) -.REss -.IPs swapuv -Swap U & V plane. -.IPs "il=[d|i][s][:[d|i][s]]" -(de)interleaves lines. -The goal of this filter is to add ability of processing interlaced images -pre-field without deinterlacing it. -You can filter your interlaced dvd and playback on TV without breaking the -interlacing. -While deinterlacing (with the post processing filter) removes the interlacing -permamently (by smoothing averaging etc) deinterleaving splits the frame into -2 fields (so called half pictures), so you can process (filter) them -independently and then re-interleave them. -.RSss -d: deinterleave -.br -i: interleave -.br -s: swap fields (exchange even & odd lines) -.REss -.IPs "field[=n]" -Extracts a single field from interlaced image using stride arithmetic -to avoid wasting cpu time. The optional argument n specifies whether -to extract the even or the odd field (depending on whether n is even -or odd). -.IPs "boxblur=radius:power[:radius:power]" -box blur -.RSss -radius: size of the filter -.br -power: how often the filter should be applied -.REss -.IPs "sab=rad:pfilter:cDiff[:rad:pfilter:cDiff]" -shape adaptive blur -.RSss -rad: blur filter strength (~0.1\-4.0) (slower if larger) -.br -pfilter: prefilter strength (~0.1\-2.0) -.br -cDiff: how different the pixels are allowed to be to be considered -(~0.1-100.0) -.REss -.IPs "smartblur=rad:strength:thresh[:rad:strength:thresh]" -smart blur -.RSss -rad: blur filter strength (~0.1\-5.0) (slower if larger) -.br -strength: blur (0.0\-1.0) or sharpen (-1.0\-0.0) -.br -thresh: filter all (0), filter flat areas (0\-30) or filter edges (-30\-0) -.REss -.IPs "perspective=x0:y0:x1:y1:x2:y2:x3:y3:t" -perspective correcture -.RSss -x0,y0,...: coordinates of the top left, top right, bottom left, bottom right -corners -.br -t: linear (0) or cubic resampling (1) -.REss -.IPs 2xsai -Use the 2x scale and interpolate algorithm for scaling and smoothing images. -.IPs 1bpp -1bpp bitmap to YUV/BGR 8/15/16/32 conversion -.IPs "bmovl=hidden:opaque:<fifo>" -Read bitmaps from a FIFO and display them in window. -. -.RSss -hidden: sets the default value of the 'hidden' flag (boolean) -.br -opaque: flag switching between alphablended (transparent) and opaque (fast) -mode -.br -fifo: path/filename for the FIFO (named pipe connecting mplayer -vop bmovl -to the controlling application) -.REss - -.RS -FIFO commands are: -.RE -.RSss -RGBA32 width height xpos ypos alpha clear -.br -followed by width*height*4 bytes of raw RGBA32 data. - -ABGR32 width height xpos ypos alpha clear -.br -followed by width*height*4 bytes of raw ABGR32 data. - -RGB24 width height xpos ypos alpha clear -.br -followed by width*height*3 bytes of raw RGB32 data. - -BGR24 width height xpos ypos alpha clear -.br -followed by width*height*3 bytes of raw BGR32 data. - -ALPHA width height xpos ypos alpha -.br -change alpha for area - -CLEAR width height xpos ypos -.br -clear area - -OPAQUE -.br -disable all alpha transparency. -Send "ALPHA 0 0 0 0 0" to enable it again. - -HIDE -.br -hide bitmap - -SHOW -.br -show bitmap -.REss - -.RS -Arguments are: -.RE -.RSss -width, height: size of image/area -.br -xpos, ypos: start blitting at X/Y position -.br -alpha: set alpha difference. -0 means same as original, 255 makes everything -opaque, -255 makes everything transparent. -If you set this to -255 you can then send a sequence of ALPHA-commands to set -the area to -225, -200, -175 etc for a nice fade-in-effect! ;) -.br -clear: clear the framebuffer before blitting. -1 means clear, if 0, the image will just be blitted on top of the old one, so -you don't need to send 1,8MB of RGBA32 data everytime a small part of the -screen is updated. -.REss -.RE -. -.TP -.B \-x <x> (MPLAYER only) -Scale image to x width (if sw/\:hw scaling available). -Disables aspect calculations. -.TP -.B \-xvidopts <option1:option2:...> -Specify additional parameters when decoding with XviD. - -.PD 0 -.RSs -.IPs dr2\ \ -Activate direct rendering method 2. -.IPs nodr2 -Deactivate direct rendering method 2. -.RE -.PD 1 -. -.TP -.B \-xy <x> -.PD 0 -.RSs -.IPs "x<=8" -Scale image by factor <x>. -.IPs "x>8\ " -Set width to <x> and calculate height to keep correct aspect ratio. -.RE -.PD 1 -. -.TP -.B \-y <y> (MPLAYER only) -Scale image to y height (if sw/\:hw scaling available). -Disables aspect calculations. -.TP -.B \-zoom \ -Allow software scaling, where available. -Could be used to force scaling with \-vop scale. - -.I NOTE: -.br -\-vop scale will IGNORE options \-x / \-y / \-xy / \-fs / \-aspect without -\-zoom. - - -.SH "ENCODING OPTIONS (MENCODER ONLY)" -.TP -.B \-audio-density <1\-50> -Number of audio chunks per second (default is 2 for 0.5s long audio chunks). - -.I NOTE: -.br -CBR only, VBR ignores this as it puts each packet in a new chunk. -.TP -.B \-audio-delay <0.0\-...> -Sets the audio delay field in the header. -Default is 0.0, negative values do not work. -This does not delay the audio while encoding, but the player will see the -default audio delay, sparing you the use of the \-delay option. -.TP -.B \-audio-preload <0.0\-2.0> -Sets up audio buffering time interval (default: 0.5s). -.TP -.B \-divx4opts <option1:option2:...> -If encoding to DivX4, you can specify its parameters here. -.br -Available options are: -. -.RSs -.IPs help -get help -.IPs br=<value> -specify bitrate in -.RSss -kbit <4\-16000> or -.br -bit <16001\-24000000> -.REss -.IPs key=<value> -maximum keyframe interval (in frames) -.IPs deinterlace -enable deinterlacing (avoid it, DivX4 is buggy) -.IPs q=<1\-5> -quality (1\-fastest, 5\-best) -.IPs min_quant=<1\-31> -minimum quantizer -.IPs max_quant=<1\-31> -maximum quantizer -.IPs rc_period=<value> -rate control period -.IPs rc_reaction_period=<value> -rate control reaction period -.IPs rc_reaction_ratio=<value> -rate control reaction ratio -.IPs crispness=<0\-100> -specify crispness/\:smoothness -.IPs pass=<1\-2> -With this you can encode 2pass DivX4 files. -First encode with pass=1, then with the same parameters, encode with -pass=2. -.IPs vbrpass=<0\-2> -Override the pass argument and use XviD VBR Library instead of DivX4 -VBR. -Available options are: -. -.RSss -0: one pass encoding (as in not putting pass on the command line) -.br -1: Analysis (first) pass of two pass encoding. -The resulting AVI file can be directed to /dev/null. -.br -2: Final (second) pass of two pass encoding. -.REss -.RE -. -.TP -.B \-endpos <[[hh:]mm:]ss[.ms]|size[b|kb|mb]> (see \-ss and \-sb option too) -Stop encoding at given time or byte position. -Can be specified in many ways: - -.I NOTE: -.br -Byte position won't be accurate, as it can only stop at -a frame boundary. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-endpos 56" -encode only 56 seconds -.IPs "\-endpos 01:10:00" -encode only 1 hour 10 minutes -.IPs "\-endpos 100mb" -encode only 100 MBytes -.RE -.PD 1 -. -.TP -.B \-ffourcc <fourcc> -Can be used to override the video fourcc of the output file. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "-ffourcc div3" -will have the output file contain 'div3' as video fourcc. -.RE -.PD 1 -. -.TP -.B \-include <configuration\ file> -Specify configuration file to be parsed after the default ones. -.TP -.B \-info <option1:option2:...> (.AVI only) -Specify the info header of the resulting .AVI file. -.br -Available options are: -. -.RSs -.IPs help -show this description -.IPs name=<value> -title of the subject of the file -.IPs artist=<value> -artist or author of the original subject of the file -.IPs genre=<value> -original work category -.IPs subject=<value> -contents of the file -.IPs copyright=<value> -copyright information for the file -.IPs srcform=<value> -original form of the material that was digitized -.IPs comment=<value> -general comments about the file or the subject of the file -.RE -. -.TP -.B \-lameopts <option1:option2:...> -If encoding to MP3 with libmp3lame, you can specify its parameters here. -.br -Available options are: -. -.RSs -.IPs help -get help -.IPs vbr=<0\-4> -variable bitrate method -.RSss -0: cbr -.br -1: mt -.br -2: rh(default) -.br -3: abr -.br -4: mtrh -.REss -.IPs abr\ \ -average bitrate -.IPs cbr\ \ -constant bitrate. -.br -Forces also CBR mode encoding on subsequent ABR presets modes -.IPs br=<0\-1024> -specify bitrate in kBit (CBR and ABR only) -.IPs q=<0\-9> -quality (0-highest, 9-lowest) (only for VBR) -.IPs aq=<0\-9> -algorithmic quality (0-best/\:slowest, 9-worst/\:fastest) -.IPs ratio=<1\-100> -compression ratio -.IPs vol=<0\-10> -set audio input gain -.IPs mode=<0\-3> -(default: auto) -.RSss -0: stereo -.br -1: joint-stereo -.br -2: dualchannel -.br -3: mono -.REss -.IPs padding=<0\-2> -.RSss -0: no -.br -1: all -.br -2: adjust -.REss -.IPs fast -switch on faster encoding on subsequent VBR presets modes, slightly lower -quality and higher bitrates. -.IPs preset=<value> -provide the highest possible quality settings. -.RSss -medium: VBR encoding, good quality, 150\-180 kbps bitrate range. -.br -standard: VBR encoding, high quality, 170\-210 kbps bitrate range. -.br -extreme: VBR encoding, very high quality, 200\-240 kbps bitrate range. -.br -insane: CBR encoding, highest preset quality, 320 kbps bitrate. -.br -<8-320>: ABR encoding at average given kbps bitrate. -.br -.REss -.RE - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-lameopts fast:preset=standard" -for most people on most music and already quite high in quality. -.IPs "\-lameopts cbr:preset=192" -encode with ABR presets at a 192 kbps forced constant bitrate. -.IPs "\-lameopts preset=172" -encode with ABR presets at a 172 kbps average bitrate. -.IPs "\-lameopts preset=extreme" -for people with extremely good hearing and similar equipment. -.IPs "\-lameopts preset=help" -print additional options and informations on presets settings. -.RE -.PD 1 -. -.TP -.B \-lavcopts <option1:option2:...> -If encoding with a codec from libavcodec, you can specify its parameters -here. - -.I EXAMPLE: -.PD 0 -.RSs -\-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250 -.RE -.PD 1 - -.RS -Available options are: -.RE -. -.RSs -.IPs vcodec=<value> -use the specified codec (there is no default, you must specify it): -.RSss -mjpeg: Motion JPEG -.br -h263: H263 -.br -h263p: H263 Plus -.br -mpeg4: DivX 4/\:5 -.br -msmpeg4: DivX 3 -.br -rv10: an old RealVideo codec -.br -mpeg1video: MPEG1 video :) -.REss -.IPs vqmin=<1\-31> -minimum quantizer (pass\ 1/\:2) (default: 2) -.IPs vqscale=<1\-31> -constant quantizer (selects fixed quantizer mode) (default: 0 (disabled)) -.IPs vqmax=<1\-31> -maximum quantizer (pass\ 1/\:2) (default: 31) -.IPs mbqmin=<1\-31> -minimum macroblock quantizer (pass\ 1/\:2) (default: 2) -.IPs mbqmax=<1\-31> -maximum macroblock quantizer (pass\ 1/\:2) (default: 31) -.IPs vqdiff=<1\-31> -maximum quantizer difference between I or P frames (pass\ 1/\:2) (default: 3) -.IPs vmax_b_frames=<0\-4> -maximum number of B frames between non B frames: -.RSss -0: no B frames (default) -.br -0\-2: sane range -.REss -.IPs vme=<0\-5> -motion estimation method: -.RSss -0: none (very lq) -.br -1: full (slow) -.br -2: log (lq) -.br -3: phods (lq) -.br -4: EPZS (default) -.br -5: X1 (experimental) -.REss -.IPs vhq\ \ -high quality mode, encode each macro block in all modes an choose the smallest -(slow). -(default: HQ disabled) -.IPs v4mv -4 motion vectors per macroblock (slightly better quality). -(default: disabled) -.IPs keyint=<0\-300> -interval between keyframes in frames. -Larger numbers mean slightly smaller files, but less precise seeking, 0 means -no key frames and values >300 aren't recommended. -For a strict mpeg1/\:2/\:4 compliance this would have to be <=132. -(default: 250 or one key frame every ten seconds in a 25fps movie) -.IPs vb_strategy=<0\-1> -strategy to choose between I/\:P/\:B frames (pass\ 2): -.RSss -0: always use the maximum number of B frames (default) -.br -1: avoid B frames in high motion scenes (bitrate mispredictions) -.REss -.IPs vpass=<1\-2> -Activates internal 2pass mode (default: disabled): -.RSss -1: first pass -.br -2: second pass -.REss -.IPs aspect=<x/y> -Store movie aspect internally, just like MPEG files. -Much nicer solution than rescaling, because quality isn't decreased. -Only MPlayer will play these files correctly, other players will display -them with wrong aspect. -The aspect parameter can be given as a ratio or a floating point number. -Example: -.RSss -aspect=16/9, aspect=1.78 -.REss -.IPs vbitrate=<value> -specify bitrate (pass\ 1/\:2) in -.RSss -kBit <4\-16000> or -.br -Bit <16001\-24000000> -.br -(warning: 1kBit = 1000 Bits) -.br -(default: 800) -.REss -.IPs vratetol=<value> -approximated filesize tolerance in kbit. -(warning: 1kBit = 1000 Bits) -(default: 8000) -.IPs vrc_maxrate=<value> -maximum bitrate in kbit/\:sec (pass\ 1/\:2) -.IPs vrc_minrate=<value> -minimum bitrate in kbit/\:sec (pass\ 1/\:2) -.IPs vrc_buf_size=<value> -buffer size in kbit (pass\ 1/\:2). -Note: vratetol should not be too large during the second pass or there might -be problems if vrc_(min|max)rate is used. -.IPs vb_qfactor=<-31.0\-31.0> -quantizer factor between B and non B frames (pass\ 1/\:2) (default: 1.25) -.IPs vi_qfactor=<-31.0\-31.0> -(pass\ 1/\:2) (default: 0.8) -.IPs vb_qoffset=<-31.0\-31.0> -quantizer offset between B and non B frames (pass\ 1/\:2) (default: 1.25) -.IPs vi_qoffset=<-31.0\-31.0> -(pass\ 1/\:2) (default: 0.0) -.br -if v{b|i}_qfactor > 0 -.br -I/\:B-Frame quantizer = P-Frame quantizer * v{b|i}_qfactor + v{b|i}_qoffset -.br -else -.br -do normal ratecontrol (dont lock to next P frame quantizer) and set -q= -q * v{b|i}_qfactor + v{b|i}_qoffset -.IPs vqblur=<0.0\-1.0> -quantizer blur (pass1): -.RSss -0.0: qblur disabled -.br -0.5 (default) -.br -1.0: average the quantizer over all previous frames, larger values will - average the quantizer more over time (slower change) -.REss -.IPs vqblur=<0.0\-99.0> -quantizer gaussian blur, larger values will average the quantizer more over -time (slower change) (pass2) (default: 0.5) -.IPs vqcomp=<value> -quantizer compression, depends upon vrc_eq (pass\ 1/\:2) (default: 0.5) -.IPs vrc_eq=<equation> -main ratecontrol equation (pass\ 1/\:2): - -1: constant bitrate -.br -tex: constant quality -.br -1+(tex/\:avgTex-1)*qComp: approximately the equation of the old ratecontrol -code -.br -tex^qComp: with qcomp 0.5 or something like that (default) - -infix operators: +,-,*,/,^ - -variables: -.br -tex: texture complexity -.br -iTex,pTex: intra, non intra texture complexity -.br -avgTex: average texture complexity -.br -avgIITexaverage: intra texture complexity in I frames -.br -avgPITexaverage: intra texture complexity in P frames -.br -avgPPTexaverage: non intra texture complexity in P frames -.br -avgBPTexaverage: non intra texture complexity in B frames -.br -mv: bits used for MVs -.br -fCode: maximum length of MV in log2 scale -.br -iCount: number of intra MBs / number of MBs -.br -var: spatial complexity -.br -mcVar: temporal complexity -.br -qComp: qcomp from the command line -.br -isI, isP, isB: is 1 if picture type is I/\:P/\:B else 0 -.br -Pi,E: see your favorite math book - -functions: -.br -max(a,b),min(a,b): maximum / minimum -.br -gt(a,b): is 1 if a>b, 0 otherwise -.br -lt(a,b): is 1 if a<b, 0 otherwise -.br -eq(a,b): is 1 if a==b,0 otherwise -.br -sin, cos, tan, sinh, cosh, tanh, exp, log, abs -. -.IPs vrc_override=<options> -User specified quality for specific parts (pass\ 1/\:2). -The options are <start-frame, end-frame, quality[/\:start-frame, end-frame, -quality[/...]]>: -.RSss -quality 2\-31: quantizer -.br -quality \-500\-0: quality correcture in % -.REss -.IPs vrc_init_cplx=<0\-1000> -initial complexity (pass\ 1) -.IPs vqsquish=<0\-1> -specify how to keep the quantizer between qmin and qmax (pass\ 1/\:2): -.RSss -0: use cliping -.br -1: use a nice differentiable function (default) -.REss -.IPs vlelim=<-1000\-1000> -single coefficient elimination threshold for luminance. -Negative values will also consider the dc coefficient (should be at least -4 -or lower for encoding -at quant=1): -.RSss -0: disabled (default) -.br --4 (JVT recommendation) -.REss -.IPs vcelim=<-1000\-1000> -single coefficient elimination threshold for chrominance. -Negative values will also consider the dc coefficient (should be at least -4 -or lower for encoding at quant=1): -.RSss -0 disabled (default) -.br -7 (JVT recommendation) -.REss -.IPs vstrict=<-1\-1> -(strict) standard compliance. -.RSss -0: disabled (default) -.br -1: only recommended if you want to feed the output into the mpeg4 -reference decoder -.br --1: allows non-standard YV12 huffyuv encoding (20% smaller files, but -can't be played back by the official huffyuv codec) -.REss -.IPs vdpart -data partitioning. -Adds 2 byte per video packet, improves error-resistance when transfering over -unreliable channels (eg.\& streaming over the internet) -.IPs vpsize=<0\-10000> -video packet size, improves error-resistance (see \-vdpart option too): -.RSss -0: disabled (default) -.br -100-1000: good choice -.REss -.IPs gray -grayscale only encoding (faster) (default: disabled) -.IPs vfdct=<0\-10> -dct algorithm: -.RSss -0: automatically select a good one (default) -.br -1: fast integer -.br -2: accurate integer -.br -3: mmx -.br -4: mlib -.REss -.IPs idct=<0\-99> -idct algorithm. -Note: all these IDCTs do pass the IEEE1180 tests afaik: -.RSss -0: automatically select a good one (default) -.br -1: jpeg reference integer -.br -2: simple -.br -3: simplemmx -.br -4: libmpeg2mmx (inaccurate, DONT USE for encoding with keyint >100) -.br -5: ps2 -.br -6: mlib -.br -7: arm -.REss -.IPs lumi_mask=<0.0\-1.0> -luminance masking. -Warning: be careful, too large values can cause disasterous things. -Warning2: large values might look good on some monitors but may look horrible -on other monitors: -.RSss -0.0: disabled (default) -.br -0.0\-0.3: sane range -.REss -.IPs dark_mask=<0.0\-1.0> -darkness masking. -Warning: be careful, too large values can cause disasterous things. -Warning2: large values might look good on some monitors but may look horrible -on other monitors / TV / TFT: -.RSss -0.0: disabled (default) -.br -0.0\-0.3: sane range -.REss -.IPs tcplx_mask=<0.0\-1.0> -temporal complexity masking (default: 0.0 (disabled)) -.IPs scplx_mask=<0.0\-1.0> -spatial complexity masking. -Larger values help against blockiness, if no deblocking filter is used for -decoding. -Crop any black borders to get better quality: -.RSss -0.0: disabled (default) -.br -0.0\-0.5: sane range -.REss -.IPs naq\ \ -Normalize adaptive quantization (experimental). -When using adaptive quantization (*_mask), the average per-MB quantizer may no -longer match the requested frame-level quantizer. -Naq will attempt to adjust the per-MB quantizers to maintain the proper -average. -.IPs ildct -use interlaced dct -.IPs format=<value> -.RSss -YV12: default -.br -422P: for huffyuv -.REss -.IPs pred -(for huffyuv) -.RSss -0: left prediction -.br -1: plane/gradient prediction -.br -2: median prediction -.REss -.IPs qpel -use quarter pel motion compensation -.IPs precmp=<0\-2000> -comparison function for motion estimation pre pass -.IPs cmp=<0\-2000> -comparison function for full pel motion estimation -.IPs subcmp=<0\-2000> -comparison function for sub pel motion estimation -.RSss -0 (SAD): sum of absolute differences, fast (default) -.br -1 (SSE): sum of squared errors -.br -2 (SATD): sum of absolute hadamard transformed differences -.br -3 (DCT): sum of absolute dct transformed differences -.br -4 (PSNR): sum of the squared quantization errors -.br -5 (BIT): number of bits needed for the block -.br -6 (RD): rate distoration optimal, slow -.br -7 (ZERO): 0 -.br -+256: use chroma too, doesnt work with b frames currently -.REss -.IPs predia=<\-99\-6> -Diamond type and size for motion estimation pre pass -.IPs dia=<\-99\-6> -Diamond type & size for motion estimation. -Note: The sizes of the normal diamonds and shape adaptive ones dont have the same meaning -.RSss -\-3: shape adaptive (fast) diamond with size 3 -.br -\-2: shape adaptive (fast) diamond with size 2 -.br -\-1: experimental -.br - 1: normal size=1 diamond (default) =EPZS type diamond -.nf -.ne - 0 - 000 - 0 -.fi -.br - 2: normal size=2 diamond -.nf -.ne - 0 - 000 - 00000 - 000 - 0 -.fi -.REss -.IPs trell -Trellis quantization. -This will find the optimal encoding for each 8x8 block. -Trellis quantization is quite simple a optimal quantization in the PSNR vs -bitrate sense (assuming that there would be no rounding errors introduced -by the IDCT, which is obviously not the case) it simply finds a block for -the minimum of error and lambda*bits. -.RSss -lambda: qp dependant constant -.br -bits: amount of bits needed to encode the block -.br -error: sum of squared errors of the quantization -.REss -.IPs last_pred=<0\-99> -Amount of motion predictors from the previous frame -.RSss -0: (default) -.br -a: will use 2a+1 x 2a+1 MB square of MV predictors from the previous frame -.REss -.IPs preme=<0\-2> -motion estimation pre-pass -.RSss -0: disabled -.br -1: only after I frames (default) -.br -2: always -.REss -.IPs subq=<1\-8> -subpel refinement quality (for qpel) (default: 8). -Note: this has a significant effect on the speed -.IPs psnr -print the psnr (peak signal to noise ratio) for the whole video after encoding -and store the per frame psnr in a file with name like 'psnr_012345.log'. -.IPs mpeg_quant -use MPEG quantizers instead of H.263. -(default: disabled) (i.e.\& use H.263 quantizers) -.RE -. -.TP -.B \-noskip -Do not skip frames. -.TP -.B \-o <filename> -Outputs to the given filename, instead of the default 'test.avi'. -.TP -.B \-oac <codec name> -Encode with the given audio codec. -Use \-ovc help to get a list of available codecs. -(no default set) - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "-oac copy" -no encoding, just streamcopy -.IPs "-oac pcm" -encode to uncompressed PCM -.IPs "-oac mp3lame" -encode to MP3 (using Lame) -.RE -.PD 1 -. -.TP -.B \-of <format> (BETA CODE!) -Encode to the specified format. -Use \-of help to get a list of available formats. - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "-of avi" -encode to avi (default) -.IPs "-of mpeg" -encode to mpeg -.RE -.PD 1 -. -.TP -.B \-ofps <fps> -The output file will have different frame/\:sec than the source. -You MUST set it for variable fps (asf, some mov) and progressive -(29.97fps telecined mpeg) files. -.TP -.B \-ovc <codec name> -Encode with the given video codec. -Use \-ovc help to get a list of available codecs. -(no default set) - -.I EXAMPLE: -.PD 0 -.RSs -.IPs "\-ovc copy" -no encoding, just streamcopy -.IPs "\-ovc divx4" -encode to DivX4/\:DivX5 -.IPs "\-ovc rawrgb" -encode to uncompressed RGB24 -.IPs "\-ovc lavc" -encode with a libavcodec codecs -.RE -.PD 1 -. -.TP -.B \-passlogfile <filename> -When encoding in 2pass mode, MEncoder dumps first pass' informations -to the given file instead of the default divx2pass.log. -.TP -.B \-skiplimit <value> -Maximal skipable frames after non-skipped one -(-noskiplimit for unlimited number). -.TP -.B \-v, \-\-verbose -Increment verbose level (more \-v means more verbosity). - -.PD 0 -.RSs -.IPs 0 -only some informal output (default) -.IPs 1 -some basic debug infos, avi header, function values (init debug) -.IPs 2 -print avi indexes, chunk inputs, more debug infos (player debug) -.IPs 3 -prints everything related to input parsers (parser debug) -.RE -.PD 1 -. -.TP -.B \-vobsubout <basename> -Specify the basename for the output .idx and .sub files. -This turns off subtitle rendering in the encoded movie and diverts it to -Vobsub subtitle files. -.TP -.B \-vobsuboutindex <index> -Specify the index of the subtitles in the output files. -(default: 0) -.TP -.B \-vobsuboutid <langid> -Specify the language two letter code for the subtitles. -This overrides what is read from the DVD or the .ifo file. -.TP -.B \-xvidencopts <option1:option2:...> -If encoding to XviD, you can specify its parameters here. -.br -There's three modes available: constant bitrate (CBR), fixed quantizer and -2pass. -.br -Available options are: -. -.RSs -.IPs pass=<1|2> -specify the pass in 2pass mode -.IPs bitrate=<value> -sets the bitrate to be used in kbits/\:second if <16000 or in bits/\:second -if >16000 -(CBR or 2pass mode, default=687 kbits/s) -.IPs fixed_quant=<1\-31> -switch to fixed quantizer mode and specify the quantizer to be used -.IPs me_quality=<0\-6> -specify the motion detection quality (default=4) -.IPs 4mv -use 4 motion vectors per macro-block, might give better compression at the -cost of a slower encoding (default=off) -.IPs rc_reaction_delay_factor=<value> -specify how fast the rate control reacts, lower values are faster -.IPs rc_averaging_period=<value> -period to reach the required average -.IPs rc_buffer=<value> -size of the rate control buffer -.IPs quant_range=<1\-31>\-<1\-31>[/<1\-31>\-<1\-31>] -min & max quantizer for all frames (default=2\-31, CBR mode) -.br -min & max quantizer for I/P frames (default=2\-31/2\-31, 2pass mode) -.IPs min_key_interval=<value> -minimum interval between key frames (default=0, 2pass only) -.IPs max_key_interval=<value> -maximum interval between key frames (default=10*fps) -.IPs mpeg_quant -use MPEG quantizers instead of H.263 (default=off) -.IPs mod_quant -decide whether to use MPEG or H.263 quantizers on a frame-by-frame basis. -(default=off, 2pass mode only) -.IPs lumi_mask -use a lumimasking algorithm (default=off, seems buggy) -.IPs hintedme -save Motion Estimation vectors to a file during the first pass and reuse this -file during the second (default=off, 2pass mode only, seems buggy) -.IPs hintfile -specify the temporary file to be used by the 'hintedme' option -(default= \./xvid_hint_me.dat, 2pass mode only) -.IPs debug -save per-frame statistics in xvid.dbg (default=off) -.br -this is *not* the 2pass control file -.IPs keyframe_boost=<0\-1000> -(default=0, 2pass mode only) -.IPs kfthreshold=<value> -(default=10, 2pass mode only) -.IPs kfreduction=<0\-100> -(default=30, 2pass mode only) -.RE - - -.\" -------------------------------------------------------------------------- -.\" Keyboard control -.\" -------------------------------------------------------------------------- -. -.SH "KEYBOARD CONTROL" -.I NOTE: -.br -MPlayer has a fully configurable, command driven, control layer -which allow you to control MPlayer using keyboard, mouse, joystick -or remote control (using lirc). -.br -The default configuration file for the input system is -~/.mplayer/\:input.conf but it can be overriden -using the \-input conf option. -.br -These keys may/\:may not work, depending on your video output driver. -.TP -.B general control -.PD 0 -.RSs -.IPs "<\- and \->" -seek backward/\:forward 10 seconds -.IPs "up and down" -seek backward/\:forward 1 minute -.IPs "pgup and pgdown" -seek backward/\:forward 10 minutes -.IPs "< and >" -backward/\:forward in playlist -.IPs "HOME and END" -go to next/\:previous playtree entry in the parent list -.IPs "INS and DEL" -go to next/\:previous alternative source (asx playlist only) -.IPs "p / SPACE" -pause movie (any key unpauses) -.IPs "q / ESC" -stop playing and quit -.IPs "+ and \-" -adjust audio delay by +/\:\- 0.1 second -.IPs "/ and *" -decrease/\:increase volume -.IPs "9 and 0" -decrease/\:increase volume -.IPs m\ \ \ \ -mute sound -.IPs f\ \ \ \ -toggle fullscreen -.IPs "w and e" -decrease/\:increase panscan range -.IPs o\ \ \ \ -toggle between OSD states: none / seek / seek+timer -.IPs d\ \ \ \ -toggle frame dropping -.IPs v\ \ \ \ -toggle subtitle visibility -.IPs j\ \ \ \ -switch subtitle language -.IPs a\ \ \ \ -toggle subtitle aligment: top/middle/bottom -.IPs "z and x" -adjust subtitle delay by +/\:\- 0.1 second -.IPs "r and t" -adjust subtitle position -.IPs "i" -set EDL mark - -.PP -(The following keys are valid only when using \-vo xv or -\-vo [vesa|fbdev]:vidix or \-vo xvidix \-vo (x)mga or \-vc divxds (slow).) - -.IPs "1 and 2" -adjust contrast -.IPs "3 and 4" -adjust brightness -.IPs "5 and 6" -adjust hue -.IPs "7 and 8" -adjust saturation -.RE -.PD 1 -. -.TP -.B GUI keyboard control -.PD 0 -.RSs -.IPs "ENTER" -start playing -.IPs s\ \ \ \ -stop playing -.IPs l\ \ \ \ -load file -.IPs c\ \ \ \ -skin browser -.IPs p\ \ \ \ -toggle playlist -.RE -.PD 1 -. -.TP -.B TV input control -.PD 0 -.RSs -.IPs "h and k" -select previous/\:next channel -.IPs n\ \ \ \ -change norm -.IPs u\ \ \ \ -change channel list -.RE -.PD 1 -. -.TP -.B DVDNAV input control -.PD 0 -.RSs -.IPs "K,J,H,L" -browse up/\:down/\:left/\:right -.IPs M\ \ \ \ -jump to main menu -.IPs S\ \ \ \ -select -.RE -.PD 1 - - -.\" -------------------------------------------------------------------------- -.\" Slave mode protocol -.\" -------------------------------------------------------------------------- -. -.SH "SLAVE MODE PROTOCOL" -If the \-slave option is given, playback is controlled by a -line\-based protocol. -Each line must contain one command otherwise one of the following tokens: -.TP -.B Commands -.RSs -.IPs "seek <value> [type=<0/\:1/\:2>]" -Seek to some place in the movie. -Type 0 is a relative seek of +/\:- <value> seconds. -Type 1 seek to <value> % in the movie. -Type 2 is a seek to an absolute position of <value> seconds. -.IPs "audio_delay <value>" -Adjust the audio delay of value seconds -.IPs quit -Quit MPlayer -.IPs pause -Pause/\:unpause the playback -.IPs grap_frames -Somebody know ? -.IPs "pt_step <value> [force=<value>]" -Go to next/\:previous entry in the playtree. -.IPs "pt_up_step <value> [force=<value>]" -Like pt_step but it jumps to next/\:previous in the parent list. -.IPs "alt_src_step <value>" -When more than one source is available it selects the next/\:previous one -(only supported by asx playlist). -.IPs "sub_delay <value> [abs=<value>]" -Adjust the subtitles delay of +/\:- <value> seconds or set it to <value> -seconds when abs is non zero. -.IPs "osd [level=<value>]" -Toggle osd mode or set it to level when level > 0. -.IPs "volume <dir>" -Increase/\:decrease volume -.IPs "[contrast|brightness|hue|saturation] <\-100\-100> [abs=<value>]" -Set/\:Adjust video parameters. -.IPs "frame_drop [type=<value>]" -Toggle/\:Set frame dropping mode. -.IPs "sub_visibility" -Toggle subtitle visibility. -.IPs "sub_pos <value>" -Adjust subtitles position. -.IPs vo_fullscreen -Switch to fullscreen mode. -.IPs "tv_step_channel <dir>" -Select next/\:previous tv channel. -.IPs "tv_step_norm" -Change TV norm. -.IPs "tv_step_chanlist" -Change channel list. -.IPs "gui_[loadsubtitle|about|play|stop]" -GUI actions -.RE - - -.\" -------------------------------------------------------------------------- -.\" Files -.\" -------------------------------------------------------------------------- -. -.SH FILES -.TP -/etc/\:mplayer/\:mplayer.conf -system\-wide settings -.TP -~/.mplayer/\:config -user settings -.TP -~/.mplayer/\:input.conf -input bindings (see '\-input keylist' for full keylist) -.TP -~/.mplayer/\:gui.conf -GUI configuration file -.TP -~/.mplayer/\:gui.pl -GUI playlist -.TP -~/.mplayer/\:font/ -font directory (There must be a font.desc file and files with .RAW extension.) -.TP -~/.mplayer/\:DVDkeys/ -cracked CSS keys -.PD 0 -.TP -Sub files -are searched for in this priority (for example /mnt/\:movie/\:movie.avi): -.RSs -/mnt/\:cdrom/\:movie.sub -.br -~/.mplayer/\:sub/\:movie.sub -.br -~/.mplayer/\:default.sub -.RE -.PD 1 - - -.\" -------------------------------------------------------------------------- -.\" Examples -.\" -------------------------------------------------------------------------- -. -.SH EXAMPLES -.TP -.B Quickstart DVD playing -mplayer \-dvd 1 -.TP -.B Play in japanese with english subtitles -mplayer \-dvd 1 \-alang ja \-slang en -.TP -.B Play only chapters 5, 6, 7 -mplayer \-dvd 1 \-chapter 5\-7 -.TP -.B Multiangle DVD playing -mplayer \-dvd 1 \-dvdangle 2 -.TP -.B Playing from a different DVD device -mplayer \-dvd 1 \-dvd\-device /dev/\:dvd2 -.TP -.B Old style DVD (VOB) playing -mplayer \-dvdauth /dev/\:dvd /mnt/\:dvd/\:VIDEO_TS/\:VTS_02_4.VOB -.TP -.B Stream from HTTP -mplayer http://mplayer.hq/\:example.avi -.TP -.B Stream using RTSP -mplayer rtsp://server.example.com/\:streamName -.TP -.B Convert subtitle to MPsub (to ./\:dump.mpsub) -mplayer dummy.avi \-sub source.sub \-dumpmpsub -.TP -.B Input from standard V4L -mplayer \-tv on:driver=v4l:width=640:height=480:outfmt=i420 \-vc rawi420 -\-vo xv -.TP -.B Encoding DVD title #2, only selected chapters -mencoder \-dvd 2 \-chapter 10-15 \-o title2.avi \-oac copy \-ovc divx4 -.TP -.B Encoding DVD title #2, resizing to 640x480 -mencoder \-dvd 2 \-vop scale=640:480 \-o title2.avi \-oac copy \-ovc divx4 -.TP -.B Encoding DVD title #2, resizing to 512xHHH (keep aspect ratio) -mencoder \-dvd 2 \-vop scale \-zoom \-xy 512 \-o title2.avi \-oac copy -\-ovc divx4 -.TP -.B The same, but with libavcodec family, MPEG4 (Divx5) compression -mencoder \-dvd 2 \-o title2.avi \-ovc lavc -\-lavcopts vcodec=mpeg4:vhq:vbitrate=1800 \-oac copy -.TP -.B The same, but with libavcodec family, MJPEG compression -mencoder \-dvd 2 \-o titel2.avi \-ovc lavc -\-lavcopts vcodec=mjpeg:vhq:vbitrate=1800 \-oac copy -.TP -.B Encoding all *.jpg files in the current dir -mencoder \\*.jpg \-mf on:fps=25 \-o output.avi \-ovc divx4 -.TP -.B Encoding from tuner -mencoder \-tv on:driver=v4l:width=640:height=480 \-o tv.avi \-ovc rawrgb -.TP -.B Encoding from a pipe -rar p test-SVCD.rar | mencoder \-ovc divx4 \-divx4opts br=800 \-ofps 24 -\-\- \- -.TP -.B Encoding multiple *.vob files -cat *.vob | mencoder <options> \- - - -.\" -------------------------------------------------------------------------- -.\" Bugs, authors, standard disclaimer -.\" -------------------------------------------------------------------------- -. -.SH BUGS -Probably. -PLEASE, double-check the documentation (especially bugreports.html), -the FAQ and the mail archive before! -.br -Send your complete bug reports to the MPlayer-users mailing list at -<mplayer-users@mplayerhq.hu>. -We love complete bug reports :) - - -.SH AUTHORS -Check documentation. -.TP -MPlayer is (C) 2000\-2003 -.B Arpad Gereoffy -.TP -This man page is written and maintained by -.B Gabucino -.br -.B Diego Biurrun -.br -.B Jonas Jermann -.PP -Please send mails about it to the MPlayer-users mailing list. - - -.SH "STANDARD DISCLAIMER" -Use only at your own risk! -There may be errors and inaccuracies that could be damaging to your system or -your eye. -Proceed with caution, and although this is highly unlikely, the authors don't -take any responsibility for that! -.\" end of file
--- a/DOCS/skin.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,805 +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> -<pre> - base = main, -1, -1 -</pre> - </blockquote> - MPlayer tries to load <code>main</code>, <code>main.png</code>, - <code>main.PNG</code> files.<br> - </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><br> - <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>.<br><br> - <em class="warn"><b>Note:</b> This doesn't work for the display window, - there is no need to.</em><br> - </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>
--- a/DOCS/sound.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,848 +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>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 (which ones?)</B></TD> - <TD>not OK (hissing) (?)</TD> - <TD>OK</TD> - <TD> </TD> - <TD> </TD> - <TD>?</TD> - <TD> </TD> - <TD> </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>
--- a/DOCS/users_against_developers.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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>
--- a/DOCS/video.html Sun Feb 09 21:35:27 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1469 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML> - -<HEAD> - <TITLE>Video - 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="video">2.3.1 Video output devices</A></H3> - - -<H4><A NAME="mtrr">2.3.1.1 Setting up MTRR</A></H4> - -<P>It is VERY recommended to check if the MTRR registers are set up properly, - because they can give a big performance boost.</P> - -<P>Do a '<CODE>cat /proc/mtrr</CODE>':</P> - -<P><CODE> - --($:~)-- cat /proc/mtrr<BR> - reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR> - reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1</CODE></P> - -<P>It's right, shows my Matrox G400 with 16MB memory. I did this from - XFree 4.x.x , which sets up MTRR registers automatically.</P> - -<P>If nothing worked, you have to do it manually. First, you have to find the - base address. You have 3 ways to find it:</P> - -<UL> - <LI>from X11 startup messages, for example: - <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR> - (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI> - <LI>from /proc/pci (use lspci -v command): - <P> - <CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE> - <CODE>Memory at d8000000 (32-bit, prefetchable)</CODE> - </P></LI> - <LI>from mga_vid kernel driver messages (use <CODE>dmesg</CODE>): - <P><CODE>mga_mem_base = d8000000</CODE></P></LI> -</UL> - -<P>Then let's find the memory size. This is very easy, just convert video ram - size to hexadecimal, or use this table:</P> - -<TABLE BORDER=0> - <TR><TD> </TD><TD>1 MB</TD><TD WIDTH="10%"></TD><TD>0x100000</TD></TR> - <TR><TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD></TR> - <TR><TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD></TR> - <TR><TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD></TR> - <TR><TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD></TR> - <TR><TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD></TR> -</TABLE> - - -<P>You know base address and memory size, let's setup MTRR registers! - For example, for the Matrox card above (base=0xd8000000) with 32MB - ram (size=0x2000000) just execute:</P> - - -<P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> - - -<P>Not all CPUs support MTRRs. For example older K6-2's [around 266MHz, - stepping 0] doesn't support MTRR, but stepping 12's do ('<CODE>cat - /proc/cpuinfo</CODE>' to check it').</P> - -<H4><A NAME="normal">2.3.1.2 Video outputs for traditional video cards</A></H4> - -<H4><A NAME="xv">2.3.1.2.1 Xv</A></H4> - -<P>Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines - using the XVideo extension. This is what the option '-vo xv' uses. Also, - this is driver supports adjusting brightness/contrast/hue/etc (unless you use - the old, slow DirectShow DivX codec, which supports it everywhere), see the - man page.</P> - -<P>In order to make this work, be sure to check the following:</P> - -<UL> - <LI>You have to use XFree86 4.0.2 or newer (former versions don't have - XVideo)</LI> - <LI>Your card actually supports hardware acceleration (modern cards do)</LI> - <LI>X loads the XVideo extension, it's something like this: - - <P><CODE> (II) Loading extension XVideo</CODE></P> - - <P>in /var/log/XFree86.0.log</P> - - <P>NOTE: this loads only the XFree86's extension. In a good install, this - is always loaded, and doesn't mean that the <B>card's</B> XVideo support is - loaded!</P> - </LI> - <LI>Your card has Xv support under Linux. To check, try 'xvinfo', it is the - part of the XFree86 distribution. It should display a long text, similar - to this: - <PRE> - X-Video Extension version 2.2 - screen #0 - Adaptor #0: "Savage Streams Engine" - number of ports: 1 - port base: 43 - operations supported: PutImage - supported visuals: - depth 16, visualID 0x22 - depth 16, visualID 0x23 - number of attributes: 5 - (...) - Number of image formats: 7 - id: 0x32595559 (YUY2) - guid: 59555932-0000-0010-8000-00aa00389b71 - bits per pixel: 16 - number of planes: 1 - type: YUV (packed) - id: 0x32315659 (YV12) - guid: 59563132-0000-0010-8000-00aa00389b71 - bits per pixel: 12 - number of planes: 3 - type: YUV (planar) - (...etc...) - </PRE> - <P>It must support YUY2 packed, and YV12 planar pixel formats to be - usable with MPlayer.</P> - </LI> - <LI>And finally, check if MPlayer was compiled with 'xv' support. - ./configure prints this.</LI> -</UL> - - -<H4><A NAME="xv_3dfx">2.3.1.2.1.1 3dfx cards</A></H4> - -<P>Older 3dfx drivers were known to have problems with XVideo acceleration, it - didn't support either YUY2 or YV12, and so. Verify that you have XFree86 - version 4.2.0 or greater, it works OK with YV12 and YUY2. Previous versions, - including 4.1.0, <B>crash with YV12</B>. If you experience strange effects - using -vo xv, try SDL (it has XVideo too) and see if it helps. Check the - <A HREF="#sdl">SDL section</A> for details.</P> - -<P><B>OR</B>, try the NEW -vo tdfxfb driver! See the - <A HREF="#tdfxfb">tdfxfb</A> section.</P> - - -<H4><A NAME="xv_s3">2.3.1.2.1.2 S3 cards</A></H4> - -<P>S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 - or greater (in case of image problems, try 16bpp). As for S3 Virge.. there is - xv support, but the card itself is very slow, so you better sell it.</P> - -<P><B>NOTE</B>: it's currently unclear which Savage models lack YV12 support, - and convert by driver (slow). If you suspect your card, get a newer driver, - or ask politely on the mplayer-users mailing list for an MMX/3DNow enabled - driver.</P> - - -<H4><A NAME="xv_nvidia">2.3.1.2.1.3 nVidia cards</A></H4> - -<P>nVidia isn't a very good choice under Linux (according to nVidia, this is - <A HREF="users_against_developers.html#nvidia">not true</A>).. You'll have to - use the binary closed-source nVidia driver, available at nVidia's web site. - The standard XFree86 driver doesn't support XVideo for these cards, due to - nVidia's closed sources/specifications.</P> - -<P>As far as I know the latest XFree86 driver contains XVideo support for - GeForce 2 and 3.</P> - -<P>Riva128 cards don't have XVideo support even with the nVidia driver :( - Complain to nVidia.</P> - - -<H4><A NAME="xv_ati">2.3.1.2.1.4 ATI cards</A></H4> - -<UL> - <LI>The <A HREF="http://gatos.sourceforge.net">GATOS driver</A> (which you - should use, unless you have Rage128 or Radeon) has VSYNC enabled by - default. It means that decoding speed (!) is synced to the monitor's - refresh rate. If playing seems to be slow, try disabling VSYNC somehow, or - set refresh rate to n*(fps of the movie) Hz.</LI> - <LI>Radeon VE - currently only XFree86 CVS has driver for this card, version - 4.1.0 doesn't. And no TV out support. Of course with MPlayer you can - happily get <B>accelerated</B> display, with or without <B>TV output</B>, and - no libraries or X are needed. Read <A HREF="#vidix">VIDIX</A> section.</LI> -</UL> - - -<H4><A NAME="xv_neomagic">2.3.1.2.1.5 NeoMagic cards</A></H4> - -<P>These cards can be found in many laptops. Unfortunately, the driver in - X 4.2.0 can't do Xv, but we have a modified, Xv-capable driver for you. - <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neomagic_drv.o.4.2.0.bz2">Download from here</A>. - Driver provided by Stefan Seyfried.</P> - -<P>To allow playback of DVD sized content change your XF86Config like this:</P> - -<P>Section "Device"<BR> - <I>[...]</I><BR> - Driver "neomagic"<BR> - <B>Option "OverlayMem" "829440"</B><BR> - <I>[...]</I><BR> - EndSection</P> - - -<H4><A NAME="xv_trident">2.3.1.2.1.6 Trident cards</A></H4> - -<P>If you want to use Xv with a Trident card, provided that it doesn't work - with 4.1.0, install XFree 4.2.0. 4.2.0 adds support for fullscreen xv - support with the Cyberblade XP card.</P> - - -<H4><A NAME="xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></H4> - -<P>If you want to use Xv with a Kyro based card (for example Hercules Prophet - 4000XT), you should download the drivers from the - <A HREF="http://www.powervr.com/">PowerVR site</A>.</P> - - -<H4><A NAME="dga">2.3.1.2.2 DGA</A></H4> - - -<H4>PREAMBLE</H4> - -<P>This section tries to explain in some words what DGA is in general and what - the DGA video output driver for MPlayer can do (and what it can't).</P> - - -<H4>WHAT IS DGA</H4> - -<P>DGA is short for Direct Graphics Access and is a means for a program to - bypass the X-Server and directly modifying the framebuffer memory. - Technically spoken this happens by mapping the framebuffer memory into - the memory range of your process. This is allowed by the kernel only - if you have superuser privileges. You can get these either by logging in - as root or by setting the SUID bit on the MPlayer executable (<B>not - recommended</B>).</P> - -<P>There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was - introduced with XFree 4.0.1.</P> - -<P>DGA1 provides only direct framebuffer access as described above. For - switching the resolution of the video signal you have to rely on the - XVidMode extension.</P> - -<P>DGA2 incorporates the features of XVidMode extension and also allows - switching the depth of the display. So you may, although basically - running a 32 bit depth X server, switch to a depth of 15 bits and vice - versa. </P> - -<P>However DGA has some drawbacks. It seems it is somewhat dependent on the - graphics chip you use and on the implementation of the X server's video - driver that controls this chip. So it does not work on every system.</P> - - -<H4>INSTALLING DGA SUPPORT FOR MPLAYER</H4> - -<P>First make sure X loads the DGA extension, see in /var/log/XFree86.0.log:</P> - -<P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> - -<P>See, XFree86 4.0.x or greater is VERY RECOMMENDED! MPlayer's DGA - driver is autodetected on ./configure, or you can force it with - --enable-dga.</P> - -<P>If the driver couldn't switch to a smaller resolution, experiment with - options -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that - the movie fits in. There is no converter right now :(</P> - -<P>Become root. DGA needs root access to be able to write directly to video - memory. If you want to run it as user, then install MPlayer SUID - root:</P> - -<P><CODE> - chown root /usr/local/bin/mplayer<BR> - chmod 750 /usr/local/bin/mplayer<BR> - chmod +s /usr/local/bin/mplayer</CODE></P> - -<P>Now it works as a simple user, too.</P> - -<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 can be accessed by other people because they can gain root - privileges through SUID root MPlayer. -</BLOCKQUOTE> - -<P>Now use the <CODE>-vo dga</CODE> option, and there you go (hope so :))! - You should also try if the <CODE>-vo sdl:dga</CODE> option works for you. It's - much faster.</P> - - -<H4><A NAME="dga_modelines">RESOLUTION SWITCHING</A></H4> - -<P>The DGA driver allows for switching the resolution of the output signal. - This avoids the need for doing (slow) software scaling and at the same time - provides a fullscreen image. Ideally it would switch to the exact resolution - (except for honoring aspect ratio) of the video data, but the X server only - allows switching to resolutions predefined in - <CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> for - XFree 4.0.X respectively). Those are defined by so-called modelines and - depend on the capabilities of your video hardware. The X server scans this - config file on startup and disables the modelines not suitable for your - hardware. You can find out which modes survive with the X11 log file. It can - be found at: - <CODE>/var/log/XFree86.0.log</CODE>.</P> - -<P>These entries are known to work fine with a Riva128 chip, using the - <CODE>nv.o</CODE> X server driver module.</P> - -<PRE> - Section "Modes" - Identifier "Modes[0]" - Modeline "800x600" 40 800 840 968 1056 600 601 605 628 - Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 - Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 - Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan - Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 - Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan - Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan - EndSection -</PRE> - - -<H4>DGA & MPLAYER</H4> - -<P>DGA is used in two places with MPlayer: The SDL driver can be made to - make use of it (-vo sdl:dga) and within the DGA driver (-vo dga). The above - said is true for both; in the following sections I'll explain how the DGA - driver for MPlayer works.</P> - - -<H4>FEATURES</H4> - -<P>The DGA driver is invoked by specifying -vo dga at the command line. - The default behavior is to switch to a resolution matching the original - resolution of the video as close as possible. It deliberately ignores the - -vm and -fs options (enabling of video mode switching and fullscreen) - - it always tries to cover as much area of your screen as possible by switching - the video mode, thus refraining to use a single additional cycle of your CPU - to scale the image. - If you don't like the mode it chooses you may force it to choose the mode - matching closest the resolution you specify by -x and -y. - By providing the -v option, the DGA driver will print, among a lot of other - things, a list of all resolutions supported by your current XF86-Config - file. - Having DGA2 you may also force it to use a certain depth by using the -bpp - option. Valid depths are 15, 16, 24 and 32. It depends on your hardware - whether these depths are natively supported or if a (possibly slow) - conversion has to be done.</P> - -<P>If you should be lucky enough to have enough offscreen memory left to - put a whole image there, the DGA driver will use doublebuffering, which - results in much smoother movie replaying. It will tell you whether double- - buffering is enabled or not.</P> - -<P>Doublebuffering means that the next frame of your video is being drawn in - some offscreen memory while the current frame is being displayed. When the - next frame is ready, the graphics chip is just told the location in memory - of the new frame and simply fetches the data to be displayed from there. - In the meantime the other buffer in memory will be filled again with new - video data.</P> - -<P>Doublebuffering may be switched on by using the option -double and may be - disabled with -nodouble. Current default option is to disable - doublebuffering. When using the DGA driver, onscreen display (OSD) only - works with doublebuffering enabled. However, enabling doublebuffering may - result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of - CPU time!) depending on the implementation of DGA for your hardware.</P> - - -<H4>SPEED ISSUES</H4> - -<P>Generally spoken, DGA framebuffer access should be at least as fast as using - the X11 driver with the additional benefit of getting a fullscreen image. - The percentage speed values printed by MPlayer have to be interpreted - with some care, as for example, with the X11 driver they do not include the - time used by the X-Server needed for the actual drawing. Hook a terminal to a - serial line of your box and start top to see what is really going on in your - box.</P> - -<P>Generally spoken, the speedup done by using DGA against 'normal' use of X11 - highly depends on your graphics card and how well the X-Server module for it - is optimized.</P> - -<P>If you have a slow system, better use 15 or 16bit depth since they require - only half the memory bandwidth of a 32 bit display.</P> - -<P>Using a depth of 24bit is even a good idea if your card natively just - supports 32 bit depth since it transfers 25% less data compared to the 32/32 - mode.</P> - -<P>I've seen some AVI files already be replayed on a Pentium MMX 266. AMD K6-2 - CPUs might work at 400 MHZ and above.</P> - - -<H4>KNOWN BUGS</H4> - -<P>Well, according to some developers of XFree, DGA is quite a beast. They - tell you better not to use it. Its implementation is not always flawless - with every chipset driver for XFree out there.</P> - -<UL> - <LI>With XFree 4.0.3 and nv.o there is a bug resulting in strange - colors.</LI> - <LI>ATI driver requires to switch mode back more than once after finishing - using of DGA.</LI> - <LI>Some drivers simply fail to switch back to normal resolution (use - Ctrl-Alt-Keypad +, - to switch back manually).</LI> - <LI>Some drivers simply display strange colors.</LI> - <LI>Some drivers lie about the amount of memory they map into the process's - address space, thus vo_dga won't use doublebuffering (SIS?).</LI> - <LI>Some drivers seem to fail to report even a single valid mode. In this - case the DGA driver will crash telling you about a nonsense mode of - 100000x100000 or something like that.</LI> - <LI>OSD only works with doublebuffering enabled (else it flickers).</LI> -</UL> - - -<H4><A NAME="sdl">2.3.1.2.3 SDL</A></H4> - -<P>SDL (Simple Directmedia Layer) is basically a unified video/audio - interface. Programs that use it know only about SDL, and not about what video - or audio driver does SDL actually use. For example a Doom port using SDL can - run on svgalib, aalib, X, fbdev, and others, you only have to specify the - (for example) video driver to use with the SDL_VIDEODRIVER environment - variable. Well, in theory.</P> - -<P>With MPlayer, we used its X11 driver's software scaler ability for - cards/drivers that doesn't support XVideo, until we made our own (faster, - nicer) software scaler. Also we used its aalib output, but now we have ours - which is more comfortable. Its DGA mode was better than ours, until - recently. Get it now? :)</P> - -<P>It also helps with some buggy drivers/cards if the video is jerky - (not slow system problem), or audio is lagging.</P> - -<P>SDL video output supports displaying subtitles under the movie, on the (if - present) black bar.</P> - -<P><B>There are several command line options for SDL:</B></P> -<DL> - <DT><CODE>-vo sdl:name</CODE></DT> - <DD>specifies sdl video driver to use (i.e.. aalib, dga, x11)</DD> - - <DT><CODE>-ao sdl:name</CODE></DT> - <DD>specifies sdl audio driver to use (i.e. dsp, esd, arts)</DD> - - <DT><CODE>-noxv</CODE></DT> - <DD>disables XVideo hardware acceleration</DD> - - <DT><CODE>-forcexv</CODE></DT> - <DD>tries to force XVideo acceleration</DD> -</DL> - -<TABLE BORDER=0> - <TR><TD COLSPAN=4><P><B>SDL Keys:</B></P></TD></TR> - <TR><TD></TD><TD><CODE>F</CODE></TD><TD></TD><TD>toggles fullscreen/windowed mode</TD></TR> - <TR><TD></TD><TD><CODE>C</CODE></TD><TD></TD><TD>cycles available fullscreen modes</TD></TR> - <TR><TD></TD><TD><CODE>W/S</CODE></TD><TD></TD><TD>mappings for * and / (mixer control)</TD></TR> -</TABLE> - -<H4>KNOWN BUGS</H4> - -<UL> - <LI>Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa!) - It's bug in SDL, I can't change it (tested with SDL 1.2.1).</LI> - <LI>DO NOT USE SDL with GUI! It won't work as it should.</LI> -</UL> - - -<H4><A NAME="svgalib">2.3.1.2.4 SVGAlib</A></H4> - -<H4>INSTALLATION</H4> - -<P>You'll have to install svgalib and its development package in order for - MPlayer build its SVGAlib driver (autodetected, but can be forced), - and don't forget to edit /etc/vga/libvga.config to suit your card & - monitor.</P> - -<H4>NOTES</H4> - -<P>Be sure not to use the -fs option, since it toggles the usage of the software - scaler, and it's slow. If you really need it, use the <CODE>-sws 4</CODE> - option which will produce bad quality, but is somewhat faster.</P> - -<H4>EGA (4BPP) SUPPORT</H4> - -<P>SVGAlib incorporates EGAlib, and MPlayer has the possibility to - display any movie in 16 colors, thus usable in the following sets:</P> - -<UL> - <LI>EGA card with EGA monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp</LI> - <LI>EGA card with CGA monitor: 320x200x4bpp, 640x200x4bpp</LI> -</UL> - -<P>The bpp (bits per pixel) value must be set to 4 by hand:<BR> - <CODE>-bpp 4</CODE><BR> - The movie probably must be scaled down to fit in EGA mode:<BR> - <CODE>-vop scale=640:350</CODE> or<BR> - <CODE>-vop scale=320:200</CODE><BR> - For that we need fast but bad quality scaling routine:<BR> - <CODE>-sws 4</CODE><BR> - Maybe automatic aspect correction has to be shut off:<BR> - <CODE>-noaspect</CODE></P> - -<P><B>NOTE:</B> according to my experience the best image quality on EGA - screens can be achieved by decreasing the brightness a bit: <CODE>-vop - eq=-20:0</CODE>. I also needed to lower the audio samplerate on my box, - because the sound was broken on 44kHz: <CODE>-srate 22050</CODE>.</P> - -<P>You can turn on OSD and subtitles only with the <CODE>expand</CODE> filter, - see the man page for exact parameters.</P> - - -<H4><A NAME="fbdev">2.3.1.2.5 Framebuffer output (FBdev)</A></H4> - -<P>Whether to build the FBdev target is autodetected during ./configure . - Read the framebuffer documentation in the kernel sources - (Documentation/fb/*) for more information.</P> - -<P>If your card doesn't support VBE 2.0 standard (older ISA/PCI - cards, such as S3 Trio64), only VBE 1.2 (or older?): - Well, VESAfb is still available, but you'll have to load SciTech Display - Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or - whatever. And don't forget to register your UniVBE ;))</P> - -<P>The FBdev output takes some additional parameters above the others:</P> - -<DL> - <DT><CODE>-fb</CODE></DT> - <DD>specify the framebuffer device to use (/dev/fb0)</DD> - - <DT><CODE>-fbmode</CODE></DT> - <DD>mode name to use (according to /etc/fb.modes)</DD> - - <DT><CODE>-fbmodeconfig</CODE></DT> - <DD>config file of modes (default /etc/fb.modes)</DD> - - <DT><CODE>-monitor_hfreq</CODE></DT> - <DT><CODE>-monitor_vfreq</CODE></DT> - <DT><CODE>-monitor_dotclock</CODE></DT> - <DD><STRONG>Important</STRONG> values, see <CODE>example.conf</CODE></DD> -</DL> - -<P>If you want to change to a specific mode, then use</P> - -<P><CODE> mplayer -vm -fbmode (NameOfMode) filename</CODE></P> - -<UL> - <LI><B>-vm</B> alone will choose the most suitable mode from /etc/fb.modes. - Can be used together with -x and -y options too. The -flip option is - supported only if the movie's pixel format matches the video mode's pixel - format. Pay attention to the bpp value, fbdev driver tries to use the - current, or if you specify the -bpp option, then that.</LI> - <LI><B>-zoom</B> option isn't supported (software scaling is slow). -fs - option isn't supported. You can't use 8bpp (or less) modes.</LI> - <LI>you possibly want to turn the cursor off: <CODE>echo -e - '\033[?25l'</CODE> or <CODE>setterm -cursor off</CODE><BR> - and the screen saver: <CODE>setterm -blank 0</CODE><BR> - To turn the cursor back on: <CODE>echo -e '\033[?25h'</CODE> - or <CODE>setterm -cursor on</CODE></LI> -</UL> - -<P>NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer, - and don't ask for it, since it's not an MPlayer limitation.</P> - - -<H4><A NAME="mga_vid">2.3.1.2.6 Matrox framebuffer (mga_vid)</A></H4> - -<P>This section is about the Matrox G200/G400/G450/G550 BES (Back-End Scaler) - support, the mga_vid kernel driver. It's actively developed by A'rpi, and - it has hardware VSYNC support with triple buffering. It works on both - framebuffer console and under X.</P> - -<P><B>NOTE</B>: This is Linux only! On non-Linux (tested on FreeBSD) systems, - you can use <A HREF="#vidix">VIDIX</A> instead!</P> - -<P><B>Installation:</B></P> -<OL> - <LI>To use it, you first have to compile mga_vid.o: - <P><CODE>cd drivers<BR> - make</CODE></P></LI> - <LI>Then create the <CODE>/dev/mga_vid</CODE> device: - <P><CODE>mknod /dev/mga_vid c 178 0</CODE></P> - <P>and load the driver with</P> - <P><CODE>insmod mga_vid.o</CODE></P></LI> - <LI>You should verify the memory size detection using the <CODE>dmesg</CODE> - command. If it's bad, use the <CODE>mga_ram_size</CODE> option - (<CODE>rmmod mga_vid</CODE> first), specify card's memory size in MB: - <P><CODE>insmod mga_vid.o mga_ram_size=16</CODE></P></LI> - <LI>To make it load/unload automatically when needed, first insert the - following line at the end of <CODE>/etc/modules.conf</CODE>: - <P><CODE>alias char-major-178 mga_vid</CODE></P> - <P>Then copy the <CODE>mga_vid.o</CODE> module to the appropriate place - under <CODE>/lib/modules/<kernel version>/somewhere</CODE>.</P> - <P>Then run</P> - <P><CODE>depmod -a</CODE></P></LI> - <LI>Now you have to (re)compile MPlayer, <CODE>configure</CODE> will - detect <CODE>/dev/mga_vid</CODE> and build the 'mga' driver. Using it from - MPlayer goes by <CODE>-vo mga</CODE> if you have matroxfb console, - or <CODE>-vo xmga</CODE> under XFree86 3.x.x or 4.x.x.</LI> -</OL> - -<P>The mga_vid driver cooperates with Xv.</P> - -<P>The <CODE>/dev/mga_vid</CODE> device file can be read (for example by - <CODE>cat /dev/mga_vid</CODE>) for some info, and written for brightness - change: <CODE>echo "brightness=120" > /dev/mga_vid</CODE></P> - - -<H4><A NAME="tdfxfb">2.3.1.2.7 3dfx YUV support (tdfxfb)</A></H4> - -<P>This driver uses the kernel's tdfx framebuffer driver to play movies with - YUV acceleration. You'll need a kernel with tdfxfb support, and recompile - with <CODE>./configure --enable-tdfxfb</CODE></P> - - -<H4><A NAME="opengl">2.3.1.2.8 OpenGL output</A></H4> - -<P>MPlayer supports displaying movies using OpenGL, but if your - platform/driver supports xv as should be the case on a PC with Linux, use xv - instead, OpenGL performance is considerably worse. If you have an X11 - implementation without xv support, OpenGL is a viable alternative.</P> - -<P>Unfortunately not all drivers support this feature. The Utah-GLX drivers - (for XFree86 3.3.6) support it for all cards. See - <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> - for details about how to install it.</P> - -<P>XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards, - 4.2.0 or later supports Rage128. See - <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> - for download and installation instructions.</P> - - -<H4><A NAME="aalib">2.3.1.2.9 AAlib - text mode displaying</A></H4> - -<P><B>AAlib</B> is a library for displaying graphics in text mode, using powerful - ASCII renderer. There are LOTS of programs already supporting it, like Doom, - Quake, etc. MPlayer contains a very usable driver for it. - If ./configure detects aalib installed, the aalib libvo driver will be - built.</P> - -<TABLE BORDER=0> - <TR><TD COLSPAN=4><P><B>You can use some keys in the AA Window to change rendering options:</B></P></TD></TR> - <TR><TD> </TD><TD><CODE>1</CODE></TD><TD> </TD><TD>decrease contrast</TD></TR> - <TR><TD></TD><TD><CODE>2</CODE></TD><TD></TD><TD>increase contrast</TD></TR> - <TR><TD></TD><TD><CODE>3</CODE></TD><TD></TD><TD>decrease brightness</TD></TR> - <TR><TD></TD><TD><CODE>4</CODE></TD><TD></TD><TD>increase brightness</TD></TR> - <TR><TD></TD><TD><CODE>5</CODE></TD><TD></TD><TD>switch fast rendering on/off</TD></TR> - <TR><TD></TD><TD><CODE>6</CODE></TD><TD></TD><TD>set dithering mode (none, error distribution, Floyd Steinberg)</TD></TR> - <TR><TD></TD><TD><CODE>7</CODE></TD><TD></TD><TD>invert image</TD></TR> - <TR><TD></TD><TD><CODE>a</CODE></TD><TD></TD><TD>toggles between aa and MPlayer control)</TD></TR> -</TABLE> - -<P><B>The following command line options can be used:</B></P> -<DL> - <DT><CODE>-aaosdcolor=V</CODE></DT> - <DD>change OSD color</DD> - - <DT><CODE>-aasubcolor=V</CODE></DT> - <DD>change subtitle color - <P><I>where V can be: (0/normal, 1/dark, 2/bold, 3/bold font, 4/reverse, - 5/special)</I></P></DD> -</DL> - -<P><B>AAlib itself provides a large sum of options. - Here are some important:</B></P> -<DL> - <DT><CODE>-aadriver</CODE></DT> - <DD>set recommended aa driver (X11, curses, Linux)</DD> - - <DT><CODE>-aaextended</CODE></DT> - <DD>use all 256 characters</DD> - - <DT><CODE>-aaeight</CODE></DT> - <DD>use eight bit ASCII</DD> - - <DT><CODE>-aahelp</CODE></DT> - <DD>prints out all aalib options</DD> -</DL> - -<P>NOTE: the rendering is very CPU intensive, especially when using AA-on-X - (using aalib on X), and it's least CPU intensive on standard, - non-framebuffer console. Use SVGATextMode to set up a big textmode, - then enjoy! (secondary head Hercules cards rock :)) (but imho you can use - <CODE>-vop 1bpp</CODE> option to get graphics on hgafb:)</P> - -<P>Use the <CODE>-framedrop</CODE> option if your computer isn't fast enough to - render all frames!</P> - -<P>Playing on terminal you'll get better speed and quality using the Linux - driver, not curses (<CODE>-aadriver linux</CODE>). But therefore you need write access on - <CODE>/dev/vcsa<terminal></CODE>. That isn't autodetected by aalib, but vo_aa tries - to find the best mode. See - <A HREF="http://aa-project.sourceforge.net/tune/">http://aa-project.sourceforge.net/tune/</A> - for further tuning issues.</P> - - -<H4><A NAME="vesa">2.3.1.2.10 VESA - output to VESA BIOS</A></H4> - -<P>This driver was designed and introduced as a <B>generic driver</B> for any - video card which has VESA VBE 2.0+ compatible BIOS. Another advantage of this - driver is that it tries to force TV output on.<BR> - <B>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</B> (Page - 70) says:</P> - -<BLOCKQUOTE> - <B>Dual-Controller Designs</B><BR> - VBE 3.0 supports the dual-controller design by assuming that since both - controllers are typically provided by the same OEM, under control of a - single BIOS ROM on the same graphics card, it is possible to hide the fact - that two controllers are indeed present from the application. This has the - limitation of preventing simultaneous use of the independent controllers, - but allows applications released before VBE 3.0 to operate normally. The - VBE Function 00h (Return Controller Information) returns the combined - information of both controllers, including the combined list of available - modes. When the application selects a mode, the appropriate controller is - activated. Each of the remaining VBE functions then operates on the active - controller. -</BLOCKQUOTE> - -<P>So you have chances to get working TV-out by using this driver.<BR> - (I guess that TV-out frequently is standalone head or standalone output - at least.)</P> - -<H4>ADVANTAGES</H4> - -<UL> - <LI>You have the possibility to watch movies <B>even if Linux doesn't know</B> - your video hardware.</LI> - <LI>You don't need to have installed any graphics' related things on your Linux - (like X11 (aka XFree86), fbdev and so on). This driver can be run from - <B>text-mode</B>.</LI> - <LI>You have chances to get <B>working TV-out</B>. (It's known at least for - ATI's cards).</LI> - <LI>This driver calls <B>int 10h</B> handler thus it's not an emulator - it - calls <B>real</B> things of <B>real</B> BIOS in <B>real</B>-mode. (Finely - - in vm86 mode).</LI> - <LI>You can use VIDIX with it, thus getting accelerated video display - <B>AND</B> TV output at the same time! (recommended for ATI cards)</LI> - <LI>If you have VESA VBE 3.0+, and you had specified <CODE>monitor_hfreq</CODE>, - <CODE>monitor_vfreq</CODE>, <CODE>monitor_dotclock</CODE> somewhere (config - file, or commandline) you will get the highest possible refresh rate. (Using - General Timing Formula). To enable this feature you have to specify - <B>all</B> your monitor options.</LI> -</UL> - -<H4>DISADVANTAGES</H4> - -<UL> - <LI>It works only on <B>x86 systems</B>.</LI> - <LI>It can be used only by <B>root</B>.</LI> - <LI>Currently it's available only for <B>Linux</B>.</LI> -</UL> - -<P>Don't use this driver with <B>GCC 2.96</B>! It won't work!</P> - -<H4>COMMAND LINE OPTIONS AVAILABLE FOR VESA</H4> -<DL> - <DT><CODE>-vo vesa:opts</CODE></DT> - <DD>currently recognized: <B>dga</B> to force dga mode and <B>nodga</B> to - disable dga mode. In dga mode you can enable double buffering via the - <CODE>-double</CODE> option. Note: you may omit these parameters to enable - <B>autodetection</B> of dga mode.</DD> -</DL> - -<H4>KNOWN PROBLEMS AND WORKAROUNDS</H4> - -<UL> - <LI>If you have installed <B>NLS</B> font on your Linux box and run VESA - driver from text-mode then after terminating MPlayer you will have - <B>ROM font</B> loaded instead of national. You can load national font again - by using <B><I>setsysfont</I></B> utility from the Mandrake distribution - for example.<BR> - (<B>Hint:</B> The same utility is used for the localization of fbdev).</LI> - <LI>Some <B>Linux graphics drivers</B> don't update active <B>BIOS mode</B> in - DOS memory. So if you have such problem - always use VESA driver only from - <B>text-mode</B>. Otherwise text-mode (#03) will be activated anyway and - you will need restart your computer.</LI> - <LI>Often after terminating VESA driver you get <B>black screen</B>. To return - your screen to original state - simply switch to other console (by pressing - <B>Alt-Fx</B>) then switch to your previous console by the same way.</LI> - <LI>To get <B>working TV-out</B> you need have plugged TV-connector in before - booting your PC since video BIOS initializes itself only once during POST - procedure.</LI> -</UL> - - -<H4><A NAME="x11">2.3.1.2.11 X11</A></H4> - -<P>Avoid if possible. Outputs to X11 (uses shared memory extension), with no - hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but still - slow) software scaling, use the options <CODE>-fs -zoom</CODE>. Most cards - have hardware scaling support, use the <CODE>-vo xv</CODE> output for them, - or <CODE>-vo xmga</CODE> for Matroxes.</P> - -<P>The problem is that most cards' driver doesn't support hardware acceleration - on the second head/TV. In those cases, you see green/blue colored window - instead of the movie. This is where this driver comes in handy, but you need - powerful CPU to use software scaling. Don't use the SDL driver's software - output+scaler, it has worse image quality!</P> - -<P>Software scaling is very slow, you better try changing video modes instead. - It's very simple. See the <A HREF="#dga_modelines">DGA section's modelines</A>, - and insert them into your XF86Config.</P> - -<UL> - <LI>If you have XFree86 4.x.x - use the <CODE>-vm</CODE> option. It will - change to a resolution your movie fits in. If it doesn't:</LI> - <LI>With XFree86 3.x.x - you have to cycle through available resolutions - with the <B>CTRL-ALT-plus</B> and <B>minus</B> keys.</LI> -</UL> - -<P>If you can't find the modes you inserted, browse XFree86's output. Some - drivers can't use low pixelclocks that are needed for low resolution - video modes.</P> - - -<H4><A NAME="vidix">2.3.1.2.12 VIDIX</A></H4> - -<H4>PREAMBLE</H4> - -<P>VIDIX is the abbreviation for <B>VID</B>eo <B>I</B>nterface for *ni<B>X</B>. - It was designed and introduced as an interface for fast user-space drivers - providing such video performance as mga_vid does for Matrox cards. It's also - very portable.</P> - -<P>This interface was designed as an attempt to fit existing video acceleration - interfaces (known as mga_vid, rage128_vid, radeon_vid, pm3_vid) into a fixed scheme. It - provides highlevel interface to chips which are known as BES (BackEnd - scalers) or OV (Video Overlays). It doesn't provide lowlevel interface to - things which are known as graphics servers. (I don't want to compete with X11 - team in graphics mode switching). I.e. main goal of this interface is to - maximize the speed of video playback.</P> - -<H4>USAGE</H4> - -<UL> - <LI>You can use standalone video output driver: <CODE>-vo xvidix</CODE><BR> - This driver was developed as X11's front end to VIDIX technology. It - requires X server and can work only under X server. Note that, as it - directly accesses the hardware and circumvents the X driver, pixmaps - cached in the graphics card's memory may be corrupted. You can prevent - this by limiting the amount of video memory used by X with the XF86Config - option "VideoRam" in the device section. You should set this to the amount - of memory installed on your card minus 4MB. If you have less than 8MB of - video ram, you can use the option "XaaNoPixmapCache" in the screen section - instead.</LI> - <LI>You can use VIDIX subdevice which was applied to several video output - drivers, such as:<BR> - <CODE>-vo vesa:vidix</CODE> (<B>Linux only</B>) and <CODE>-vo fbdev:vidix</CODE></LI> -</UL> - -Indeed it doesn't matter which video output driver is used with <B>VIDIX</B>. - -<H4>REQUIREMENTS</H4> - -<UL> - <LI>video card should be in graphics mode (I write <B>should</B> simply - because I tested it in text mode - it works but has awful output ;) Use - AAlib for that).<BR> - <I>Note: Everyone can try this trick by commenting out mode switching in - vo_vesa driver.</I></LI> - <LI>MPlayer's video output driver should know active video mode and be - able to tell to VIDIX subdevice some video characteristics of server.</LI> -</UL> - -<H4>USAGE METHODS</H4> - -<P>When VIDIX is used as <B>subdevice</B> (<CODE>-vo vesa:vidix</CODE>) then - video mode configuration is performed by video output device - (<B>vo_server</B> in short). Therefore you can pass into command line of - MPlayer the same keys as for vo_server. In addition it understands - <CODE>-double</CODE> key as globally visible parameter. (I recommend using - this key with VIDIX at least for ATI cards).<BR> - As for <CODE>-vo xvidix</CODE>: currently it recognizes the following - options: <CODE>-fs -zoom -x -y -double</CODE>.</P> - -<P>Also you can specify VIDIX's driver directly as third subargument in command - line:<BR> - <BR> - <code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double - file.avi</code><BR> - or<BR> - <code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp - 32 file.avi</code><BR> - <BR> - But it's dangerous, and you shouldn't do that. In this case given driver will - be forced and result is unpredictable (it may <B>freeze</B> your - computer). You should do that ONLY if you are absolutely sure it will work, - and MPlayer doesn't do it automatically. Please tell about it to the - developers. The Right Way is to use VIDIX without arguments to enable driver - autodetection.</P> - -<P>VIDIX is a new technology and it's extremely possible that on your system - it won't work. In this case the only solution for you is porting it (mainly - libdha). But there is hope that it will work on systems where X11 does.</P> - -<P>Since VIDIX requires direct hardware access you can either run it as root or - set the SUID bit on the MPlayer binary (<B>Warning: This is a security - risk!</B>). Alternatively, you can use a special kernel module, like this:</P> - -<OL> - <LI>Download the - <A HREF="http://www.arava.co.il/matan/svgalib/">development version</A> - of svgalib (for example 1.9.17),<BR> - <B>OR</B><BR> - download a version made by Alex especially for usage with - MPlayer (it doesn't need the svgalib source to compile) from - <A HREF="http://www.mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2"> - here</A>.</LI> - <LI>Compile the module in the <CODE>svgalib_helper</CODE> directory (it can - be found inside the <CODE>svgalib-1.9.17/kernel/</CODE> directory if you've - downloaded the source from the svgalib site) and insmod it.</LI> - <LI>Move the <CODE>svgalib_helper</CODE> directory to - <CODE>mplayer/main/libdha/svgalib_helper</CODE>.</LI> - <LI>Required if you download the source from the svgalib site: Remove the - comment before the CFLAGS line containing "svgalib_helper" string from the - <CODE>libdha/Makefile</CODE>.</LI> - <LI>Recompile and install libdha.</LI> -</OL> - - -<H4><A NAME="vidix_ati">2.3.1.2.12.1 ATI cards</A></H4> - -<P>Currently most ATI cards are supported natively, from Mach64 to the newest - Radeons.</P> - -<P>There are two compiled binaries: <CODE>radeon_vid</CODE> for Radeon and - <CODE>rage128_vid</CODE> for Rage 128 cards. You may force one or let the - VIDIX system autoprobe all available drivers.</P> - - -<H4><A NAME="vidix_matrox">2.3.1.2.12.2 Matrox cards</A></H4> - -<P>Matrox G200,G400,G450 and G550 have been reported to work.</P> - -<P>The driver supports video equalizers and should be nearly as fast as the - <A HREF="#mga_vid">Matrox framebuffer</A>.</P> - - -<H4><A NAME="vidix_trident">2.3.1.12.3 Trident cards</A></H4> - -<P>There is a driver available for the Trident Cyberblade/i1 chipset, which - can be found on VIA Epia motherboards.</P> - -<P>The driver was written and is maintained by Alastair M. Robinson, who offers - the very latest driver versions for download from his - <A HREF="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">homepage</A>. - The drivers are added to MPlayer with only a short delay, so CVS should always - be up to date.</P> - - -<H4><A NAME="vidix_3dlabs">2.3.1.2.12.4 3DLabs cards</A></H4> - -<P>Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, - no one has tested it, so reports are welcome.</P> - - -<H4><A NAME="directfb">2.3.1.2.13 DirectFB</A></H4> - -<P><I>"DirectFB is a graphics library which was designed with embedded systems in - mind. It offers maximum hardware accelerated performance at a minimum of - resource usage and overhead."</I> - quoted from - <A HREF="http://www.directfb.org">http://www.directfb.org</A>.</P> - -<P>I'll exclude DirectFB features from this section.</P> - -<P>Though MPlayer is not supported as a "video provider" in DirectFB, this - output driver will enable video playback through DirectFB. It will - - of course - be accelerated, on my Matrox G400 DirectFB's speed was the - same as XVideo.</P> - -<P>Always try to use the newest version of DirectFB. You can use DirectFB - options on the command line, using the <CODE>-dfbopts</CODE> option. - Layer selection can be done by the subdevice method, e.g.: <CODE>-vo - directfb:2</CODE> (layer -1 is default: autodetect)</P> - - -<H4><A NAME="dfbmga">2.3.1.2.14 DirectFB/Matrox (dfbmga)</A></H4> - -<P>Please read the <A HREF="#directfb">main DirectFB section</A> for general - informations.</P> - -<P>This video output driver will enable CRTC2 (on the second head) on the - Matrox G400 card, displaying video <B>independently</B> of the first head.</P> - -<P>Instructions on how to make it work can be found in the - <A HREF="tech/directfb.txt">tech section</A> - or directly on Ville Syrjala's - <A HREF="http://www.sci.fi/~syrjala/directfb/readme.txt">home page</A>.</P> - -<P>Note: we haven't been able to make this work, but others did. Anyway, - porting of the CRTC2 code to <B>mga_vid</B> is underway.</P> - - -<H4><A NAME="mpegdec">2.3.1.3 MPEG decoders</A></H4> - -<H4><A NAME="dvb">2.3.1.3.1 DVB</A></H4> - -<P>MPlayer supports cards with the Siemens DVB chipset from vendors like - Siemens, Technotrend, Galaxis or Hauppauge. The latest DVB drivers are - available from the <A HREF="http://www.linuxtv.org">Linux TV site</A>. If you - want to do software transcoding you should have at least a 1GHz CPU.</P> - -<P>Configure should detect your DVB card. If it did not, force detection with</P> - -<PRE> - ./configure --enable-dvb -</PRE> - -<P>If you have ost headers at a non-standard path, set the path with</P> - -<PRE> - ./configure --with-extraincdir=<DVB source directory>/ost/include -</PRE> - -<P>Then compile and install as usual.</P> - -<H4>USAGE</H4> - -<P>Hardware decoding (playing standard MPEG1/2 files) can be done with this - command:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes file.mpg|vob -</PRE> - -<P>Software decoding or transcoding different formats to MPEG1 can be achieved - using a command like this:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vop lavc yourfile.ext - mplayer -ao mpegpes -vo mpegpes -vop fame,expand yourfile.ext -</PRE> - -<P>Note that DVB cards only support heights 288 and 576 for PAL or 240 and 480 - for NTSC. You <B>must</B> rescale for other heights by adding - <CODE>scale=width:height</CODE> with the width and height you want to the - <CODE>-vop</CODE> option. DVB cards accept various widths, like 720, 704, - 640, 512, 480, 352 etc and do hardware scaling in horizontal direction, so - you do not need to scale horizontally in most cases. For a 512x384 (aspect - 4:3) DivX try:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=512:576 -</PRE> - -<P>If you have a widescreen movie and you do not want to scale it to full height, - you can use the <CODE>expand=w:h</CODE> filter to add black bands. To view a - 640x384 DivX, try:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vop lavc,expand=640:576 file.avi -</PRE> - -<P>If your CPU is too slow for a full size 720x576 DivX, try downscaling:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:576 file.avi -</PRE> - -<P>If speed does not improve, try vertical downscaling, too:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:288 file.avi -</PRE> - -<P>For OSD and subtitles use the OSD feature of the expand filter. So, instead - of <CODE>expand=w:h</CODE> or <CODE>expand=w:h:x:y</CODE>, use - <CODE>expand=w:h:x:y:1</CODE> (the 5th parameter <CODE>:1</CODE> at the end - will enable OSD rendering). You may want to move the image up a bit to get a - bigger black zone for subtitles. You may also want to move subtitles up, if - they are outside your TV screen, use the <CODE>-subpos <0-100></CODE> option - to adjust this (<CODE>-subpos 80</CODE> is a good choice).</P> - -<P>In order to play non-25fps movies on a PAL TV or with a slow CPU, add the - <CODE>-framedrop</CODE> option.</P> - -<P>To keep the aspect ratio of DivX files and get the optimal scaling parameters - (hardware horizontal scaling and software vertical scaling while keeping the - right aspect ratio), use the new dvbscale filter:</P> - -<PRE> -for 3:4 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale -for 16:9 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024 -</PRE> - -<H4>FUTURE</H4> - -<P>If you have questions or want to hear feature announcements and take part in - discussions on this subject, join our - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</A> - mailing list. Please remember that the list language is English.</P> - -<P>In the future you may expect the ability to display OSD and subtitles using - the native OSD feature of DVB cards, as well as more fluent playback of - non-25fps movies and realtime transcoding between MPEG2 and MPEG4 (partial - decompression).</P> - - -<H4><A NAME="dxr2">2.3.1.3.2 DXR2</A></H4> - -<P>TODO: somebody please fill this section with information.</P> - - -<H4><A NAME="dxr3">2.3.1.3.3 DXR3/Hollywood+</A></H4> - -<P>MPlayer supports hardware accelerated playback with the Creative DXR3 - and Sigma Designs Hollywood Plus cards. These cards both use the em8300 MPEG - decoder chip from Sigma Designs.</P> - -<P>First of all you will need properly installed DXR3/H+ drivers, version - 0.12.0 or later. You can find the drivers and installation instructions at - the <A HREF="http://dxr3.sourceforge.net/">DXR3 & Hollywood Plus for - Linux</A> site. Configure should detect your card automatically, compilation - should go without problems.</P> - -<H4>USAGE</H4> -<DL> - <DT><CODE>-vo dxr3:prebuf:sync:norm=x:<device></CODE></DT> - <DD><CODE>overlay</CODE> activates the overlay instead of TVOut. It requires - that you have a properly configured overlay setup to work right. The easiest - way to configure the overlay is to first run autocal. Then run mplayer with - dxr3 output and without overlay turned on, run dxr3view. In dxr3view you can - tweak the overlay settings and see the effects in realtime, perhaps this - feature will be supported by the MPlayer GUI in the future. When overlay is - properly set up you will no longer need to use dxr3view.<BR> - <CODE>prebuf</CODE> turns on prebuffering. Prebuffering is a feature - of the em8300 chip that enables it to hold more than one frame of video at - a time. This means that when you are running with prebuffering - MPlayer will try to keep the video buffer filled with data at all - times. If you are on a slow machine MPlayer will probably use close - to, or precisely 100% of CPU. This is especially common if you play pure MPEG - streams (like DVDs, SVCDs a.s.o.) since MPlayer will not have to - reencode it to MPEG it will fill the buffer very fast.<BR> - With prebuffering video playback is <B>much</B> less sensitive to other - programs hogging the CPU, it will not drop frames unless applications hog - the CPU for a long time.<BR> - When running without prebuffering the em8300 is much more sensitive to CPU - load, so it is highly suggested that you turn on MPlayer's - <CODE>-framedrop</CODE> option to avoid further loss of sync.<BR> - <CODE>sync</CODE> will turn on the new sync-engine. This is currently an - experimental feature. With the sync feature turned on the em8300's internal - clock will be monitored at all times, if it starts to deviate from MPlayer's - clock it will be reset causing the em8300 to drop any frames that are lagging - behind.<BR> - <CODE>norm=x</CODE> will set the TV norm of the DXR3 card without the need - for external tools like em8300setup. Valid norms are 5 = NTSC, 4 = PAL-60, - 3 = PAL. Special norms are 2 (auto-adjust using PAL/PAL-60) and 1 - (auto-adjust using PAL/NTSC) because they decide which norm to use by - looking at the frame rate of the movie. norm = 0 (default) does not - change the current norm.<BR> - <CODE><device></CODE> = device number to use if you have more than one - em8300 card. - <BR> - Any of these options may be left out.<BR> - <CODE>:prebuf:sync</CODE> seems to work great when playing DivX movies. - People have reported problems using the <CODE>prebuf</CODE> option when playing - MPEG1/2 files. You might want to try running without any options first, if you - have sync problems, or DVD subtitle problems, give <CODE>:sync</CODE> a - try.</DD> - - <DT><CODE>-ao oss:/dev/em8300_ma-X</CODE></DT> - <DD>For audio output, where <CODE>X</CODE> is the device number - (0 if one card).</DD> - - <DT><CODE>-aop list=resample:fout=xxxxx</CODE></DT> - <DD>The em8300 cannot play back samplerates lower than 44100Hz. If the sample - rate is below 44100Hz select either 44100Hz or 48000Hz depending on which - one matches closest. I.e. if the movie uses 22050Hz use 44100Hz as - 44100 / 2 = 22050, if it is 24000Hz use 48000Hz as 48000 / 2 = 24000 and so - on. This does not work with digital audio output (<CODE>-ac hwac3</CODE>).</DD> - - <DT><CODE>-vop lavc/fame</CODE></DT> - <DD>To watch non-MPEG content on the em8300 (i.e. DivX or RealVideo) you have - to specify an MPEG1 video filter such as libavcodec (lavc) or libfame - (fame). At the moment lavc is both faster and gives better image quality, it - is suggested that you use that unless you have problems with it. See the man - page for further info about <CODE>-vop lavc/fame</CODE>.<BR> - Using lavc is highly recommended. Currently there is no way of setting the - fps of the em8300 which means that it is fixed to 29.97fps. Because of this - it is highly recommended that you use <CODE>-vop lavc=<quality>:25</CODE>, - especially if you are using prebuffering. Then why 25 and not 29.97? Well, - the thing is that when you use 29.97 the picture becomes a bit jumpy. The - reason for this is unknown to us. If you set it to somewhere between 25 and - 27 the picture becomes stable. For now all we can do is accept this for a - fact.</DD> - - <DT><CODE>-vop lavc,expand=-1:-1:-1:-1:1</CODE></DT> - <DD>Altough the DXR3 driver can put some OSD onto the MPEG1/2/4 video, - it has much lower quality than MPlayer's traditional OSD, and has several - refresh problems as well. The command line above will firstly convert the - input video to MPEG4 (this is mandatory, sorry), then apply an expand - filter which won't expand anything (-1: default), but apply the normal OSD - onto the picture (that's what the "1" at the end does).</DD> - - <DT><CODE>-ac hwac3</CODE></DT> - <DD>The em8300 supports playing back AC3 audio (surround sound) through the - digital audio output of the card. See the <CODE>-ao oss</CODE> option - above, it must be used to specify the DXR3's output instead of - a soundcard.</DD> -</DL> - - -<H4><A NAME="other">2.3.1.4 Other visualization hardware</A></H4> - -<H4><A NAME="zr">2.3.1.4.1 Zr</A></H4> - -<P>This is a display-driver (<CODE>-vo zr</CODE>) for a number of MJPEG - capture/playback cards (tested for DC10+ and Buz, and it should work for the - LML33 and the original DC10). The driver works by encoding the frame to jpeg - and then sending it to the card. For the jpeg encoding <B>libavcodec</B> is - used, and required. With the special <I>cinerama</I> mode, you can watch - movies in true wide screen provided that you have two beamers and two - MJPEG cards. Depending on resolution and quality settings, this driver - may require a lot of CPU power, remember to specify <CODE>-framedrop</CODE> - if your machine is too slow. Note: My AMD K6-2 350MHz is (with <CODE> - -framedrop</CODE>) quite adequate for watching VCD sized material and - downscaled movies.</P> - -<P>This driver talks to the kernel driver available at - <A HREF="http://mjpeg.sourceforge.net">http://mjpeg.sourceforge.net</A>, so - you must get it working first. The presence of an MJPEG card is autodetected - by the configure script, if autodetection fails, force detection with</P> - -<PRE> - ./configure --enable-zr -</PRE> - -<P>The output can be controlled by several options, a long description of the - options can be found in the man page, a short list of options can be - viewed by running</P> - -<PRE> - mplayer -zrhelp -</PRE> - -<P>Things like scaling and the OSD (on screen display) are not handled by - this driver but can be done using the video filters. For example, - suppose that you have a movie with a resolution of <CODE>512x272</CODE> and - you want to view it fullscreen on your DC10+. There are three main - possibilities, you may scale the movie to a width of <CODE>768</CODE>, - <CODE>384</CODE> or <CODE>192</CODE>. For performance and quality reasons, - I would choose to scale the movie to <CODE>384x204</CODE> using the fast - bilinear software scaler. The commandline is</P> - -<PRE> - mplayer -vo zr -sws 0 -vop scale=384:204 movie.avi -</PRE> - -<P>Cropping can be done by the <CODE>crop</CODE> filter and by - this driver itself. Suppose that a movie is too wide for display on your - Buz and that you want to use <CODE>-zrcrop</CODE> to make the movie less - wide, the you would issue the following command</P> - -<PRE> - mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi -</PRE> - -<P>if you want to use the <CODE>crop</CODE> filter, you would do</P> - -<PRE> - mplayer -vo zr -vop crop=720:320:80:0 benhur.avi -</PRE> - -<P>Extra occurances of <CODE>-zrcrop</CODE> invoke <I>cinerama</I> mode, i.e. - you can distribute the movie over several TV's or beamers to create a larger - screen. Suppose you have two beamers. The left one is connected to your Buz - at <CODE>/dev/video1</CODE> and the right one is connected to your DC10+ at - <CODE>/dev/video0</CODE>. The movie has a resolution of <CODE>704x288</CODE>. - Suppose also that you want the right beamer in black and white and that - the right beamer should have jpeg frames at quality <CODE>10</CODE>, - then you would issue the following command</P> - -<PRE> - mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ - -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi -</PRE> - -<P>You see that the options appearing before the second <CODE>-zrcrop</CODE> - only apply to the DC10+ and that the options after the second - <CODE>-zrcrop</CODE> apply to the Buz. The maximum number of MJPEG cards - participating in <I>cinerama</I> is four, so you can buid a <CODE>2x2</CODE> - vidiwall.</P> - -<P>Finally an important remark: Do not start or stop XawTV on the playback - device during playback, it will crash your computer. It is, however, fine to - <B>FIRST</B> start XawTV, <B>THEN</B> start MPlayer, wait for - MPlayer to finish and <B>THEN</B> stop XawTV.</P> - - -<H4><A NAME="blinken">2.3.1.4.2 Blinkenlights</A></H4> - -<P>This driver is capable of playback using the Blinkenlights UDP protocol. - If you don't know what <A HREF="http://www.blinkenlights.de/">Blinkenlights</A> - is, you don't need this driver.</P> - - -<H4><A NAME="tv-out">2.3.1.5 TV-out support</A></H4> - - -<H4><A NAME="tv-out_matrox">2.3.1.5.1 Matrox G400 cards</A></H4> - -<P>Under Linux you have 2 methods to get G400 TV out working:</P> - -<P><B>IMPORTANT:</B> for Matrox G450/G550 TV-out instructions, please see the - next section!</P> - -<UL> - <LI><B>XFree86</B>: using the driver and the HAL module, available from - <A HREF="http://www.matrox.com">Matrox's site</A>. This will give you X on - the TV.<BR> <B>This method doesn't give you accelerated playback</B> as - under Windoze! The second head has only YUV framebuffer, the <I>BES</I> - (Back End Scaler, the YUV scaler on G200/G400/G450/G550 cards) doesn't work - on it! The Windows driver somehow works around this, probably by using the - 3D engine to zoom, and the YUV framebuffer to display the zoomed - image. If you really want to use X, use the <CODE>-vo x11 -fs -zoom</CODE> - options, but it will be <B>SLOW</B>, and has <B>Macrovision</B> copy protection - enabled (you can "workaround" Macrovision using - <A HREF="http://avifile.sourceforge.net/mgamacro.pl">this</A> perl - script.</LI> - <LI><B>Framebuffer</B>: using the <B>matroxfb modules</B> in the 2.4 kernels. - 2.2 kernels don't have the TVout feature in them, thus unusable for this. - You have to enable ALL matroxfb-specific feature during compilation (except - MultiHead), and compile them into <B>modules</B>! You'll also need I2C - enabled. - <OL> - <LI> - Enter <CODE>TVout/matroxset</CODE> and type <CODE>make</CODE>. Install - <CODE>matroxset</CODE> into somewhere in your PATH.</LI> - <LI> - If you don't have <CODE>fbset</CODE> installed, enter - <CODE>TVout/fbset</CODE> and type <CODE>make</CODE>. Install - <CODE>fbset</CODE> into somewhere in your PATH.</LI> - <LI> - Then enter into the <CODE>TVout/</CODE> directory in the MPlayer - source, and execute <CODE>./modules</CODE> as root. Your text-mode console - will enter into framebuffer mode (no way back!).</LI> - <LI>Next, EDIT and run the <CODE>./matroxtv</CODE> script. This will present you - to a very simple menu. Press <B>2</B> and <B>ENTER</B>. Now you should - have the same picture on your monitor, and TV. If - the TV (PAL by default) picture has some weird stripes on it, the script wasn't able to - set the resolution correctly (to 640x512 by default). Try other - resolutions from the menu and/or experiment with fbset.</LI> - </OL> - - <P>Yoh. Next task is to make the cursor on tty1 (or whatever) to disappear, - and turn off screen blanking. Execute the following commands:</P> - - <P><CODE>echo -e '\033[?25l'</CODE> or <CODE>setterm -cursor off<BR> - setterm -blank 0</CODE></P> - - <P>You possibly want to put the above into a script, and also clear - the screen.. To turn the cursor back:<BR><CODE>echo -e '\033[?25h'</CODE> - or <CODE>setterm -cursor on</CODE></P> - - <P>Yeah kewl. Start movie playing with <CODE>mplayer -vo mga -fs -screenw 640 - -screenh 512 <filename></CODE><BR> - (if you use X, now change to matroxfb with for example CTRL-ALT-F1!)<BR> - Change 640x512 if you set the resolution to other.<BR> - <B>Enjoy the ultra-fast ultra-featured Matrox TV output (better than Xv)!</B></P> - </LI> -</UL> - -<H4>Building a Matrox TV-out cable</H4> - -<P>No one takes any responsibility, nor guarantee for any damage caused by this - documentation.</P> - -<P><B>Cable for G400</B>: The CRTC2 connector's fourth pin is the composite video signal. The ground - are the sixth, seventh and eighth pins. (info contributed from Balázs - Rácz)</P> - -<P><B>Cable for G450</B>: The CRTC2 connector's first pin is the composite video - signal. The ground are the fifth, sixth, seventh, and fifteenth - (5, 6, 7, 15) pins. (info contributed from Balázs Kerekes)</P> - -<H4><A NAME="tv-out_matrox_g450">2.3.1.5.2 Matrox G450/G550 cards</A></H4> - -<P>TV output support for these cards has only been recently introduced, and is - not yet in the mainstream kernel. Currently the <B>mga_vid</B> module - can't be used AFAIK, because the G450/G550 driver works only in one - configuration: the first CRTC chip (with much more features) on the first - display (on monitor), and the second CRTC (no <B>BES</B> - for explanation - on BES, please see the G400 section above) on TV. So you can only use - MPlayer's <I>fbdev</I> output driver at the present.</P> - -<P>The first CRTC can't be routed to the second head currently. - The author of the kernel matroxfb driver - Petr Vandrovec - will maybe make - support for this, by displaying the first CRTC's output onto both of the - heads at once, as currently recommended for G400, see the section above.</P> - -<P>The necessary kernel patch and the detailed howto is downloadable from - <A HREF="http://www3.sympatico.ca/dan.eriksen/matrox_tvout/">http://www3.sympatico.ca/dan.eriksen/matrox_tvout/</A></P> - - -<H4><A NAME="tv-out_ati">2.3.1.5.3 ATI cards</A></H4> - -<H4>PREAMBLE</H4> - -<P>Currently ATI doesn't want to support any of its TV-out chips under Linux, - because of their licensed Macrovision technology.</P> - -<H4>ATI CARDS TV-OUT STATUS ON LINUX</H4> - -<UL> - <LI><B>ATI Mach64</B>: Supported by - <A HREF="http://gatos.sf.net">gatos</A>.</LI> - <LI><B>ASIC Radeon VIVO</B>: Supported by - <A HREF="http://gatos.sf.net">gatos</A>.</LI> - <LI><B>Radeon</B> and <B>Rage128</B>: Supported by MPlayer! - Check <a href="#vesa">VESA driver</a> and <A HREF="#vidix">VIDIX</A> - sections.</LI> - <LI><B>Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</B>: Supported by - <A HREF="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/"> - atitvout</A>. -</UL> - -<P>On other cards, just use the <a href="#vesa">VESA driver</a>, without - VIDIX. Powerful CPU is needed, though.</P> - -<P>Only thing you need to do - <B>have TV connector plugged in before - booting your PC</B> since video BIOS initializes itself only once during - POST procedure.</P> - - -<H4><A NAME="tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></H4> - -<P>Check <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">this URL</A>.</P> - - -<H4><A NAME="tv-out_nvidia">2.3.1.5.5 nVidia</A></H4> - -<P>First, you MUST download the closed-source drivers from - <A HREF="http://nvidia.com">http://nvidia.com</A>. I will not describe the - installation and configuration process because it does not cover the - scope of this documentation.</P> - -<P>After XFree86, XVideo, and 3D acceleration is properly working, - edit your card's Device section in the <CODE>XF86Config</CODE> file, - according to the following example (adapt for your card/TV):</P> - -<PRE> -Section "Device" - Identifier "GeForce" - VendorName "ASUS" - BoardName "nVidia GeForce2/MX 400" - Driver "nvidia" - #Option "NvAGP" "1" - Option "NoLogo" - Option "CursorShadow" "on" - - Option "TwinView" - Option "TwinViewOrientation" "Clone" - Option "MetaModes" "1024x768,640x480" - Option "ConnectedMonitor" "CRT, TV" - Option "TVStandard" "PAL-B" - Option "TVOutFormat" "Composite" - -EndSection -</PRE> - -<P>Of course the important thing is the TwinView part.</P> - -</BODY> -</HTML>