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