# HG changeset patch # User gabucino # Date 1065859135 0 # Node ID e66868a440678af0fdbb9ed00c256a71c1b8d374 # Parent 85f0917f80cbadae8d6e10c7ab23643b76b76046 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. diff -r 85f0917f80cb -r e66868a44067 DOCS/en/bugreports.html --- 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 @@ - - - -
-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 all of the information we request and follow the - instructions in this document closely.
- - -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 - this short document to find out how to get - your code included in MPlayer. The people on the - mplayer-dev-eng - mailing list will assist you if you have questions.
- - -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 - only CVS 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 - this page or in the - README. If this did not help please refer to the - list of known bugs and the - rest of the documentation. If your problem is not known or not solvable by our - instructions, then please report the bug.
- -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.
- -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.
- -An excellent and well written guide to asking questions in public forums is - How To Ask Questions The Smart Way - by Eric S. Raymond. There is another - called - How to Report Bugs Effectively - by Simon Tatham. 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.
- - -Subscribe to the mplayer-users mailing list:
- http://mplayerhq.hu/mailman/listinfo/mplayer-users
- and send your bug report to:
- mplayer-users@mplayerhq.hu
The language of this list is English. Please follow the standard - Netiquette Guidelines and - do not send HTML mail 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 fine document. 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.
- - -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 - FTP server 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.
- - -uname -a
ls -l /lib/libc[.-]*
X -version
gcc -v
- ld -v
as --version
xdpyinfo | grep "depth of root"
cat /proc/cpuinfo
lspci -vv
output on Linux systems.If you get errors while running ./configure
, or autodetection
- of something fails, read configure.log
. 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 configure.log
in your bug
- report.
config.h
config.mak
Gui/config.mak
libvo/config.mak
libao2/config.mak
Please include the output of MPlayer at verbosity level 1, but - remember to not truncate the output 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:
- - mplayer -v [options] [filename] > mplayer.log 2>&1
If your problem is specific to one or more files, then please upload the - offender(s) to:
- -ftp://mplayerhq.hu/MPlayer/incoming/
- -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:
- - dd if=yourfile of=smallfile bs=1024k count=5
It will take the first five megabytes of 'your-file' and - write it to 'small-file'. Then try again on this small file - and if the bug still shows up your sample is sufficient for us. Please - do not ever 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 exact URL is - sufficient.
- - -You have to run MPlayer inside gdb
and send us the complete
- output or if you have a core dump of the crash you can extract useful
- information from the Core
file. Here's how:
./configure --enable-debug=3
- make
gdb ./mplayer
run -v [options-to-mplayer] filename
bt
- disass $pc-32 $pc+32
- info all-registers
Create the following command file:
- -bt
- disass $pc-32 $pc+32
- info all-registers
Then simply execute this command:
- - gdb mplayer --core=core -batch --command=command_file > mplayer.bug
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.
- 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.
- 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...
Linux documentation excerpt:
- -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:
- -You can reduce the speed of IDE CD-ROM drives with hdparm
or a
- program called setcd
. It works like this:
hdparm -E [speed] [cdrom device]
setcd -x [speed] [cdrom device]
If you have root privileges the following command may also help:
- - echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings
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
- hdparm
:
hdparm -d1 -a8 -u1 (cdrom device)
This enables DMA access, read-ahead, and IRQ unmasking (read the
- hdparm
man page for a detailed explanation).
Please refer to "/proc/ide/[cdrom device]/settings
" for
- fine-tuning your CD-ROM.
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 - Plextor SCSI drives.
- -FreeBSD:
- - Speed: cdcontrol [-f device] speed [speed]
DMA: sysctl hw.ata.atapi_dma=1
For the complete list of available options, please read the man page. - The Syntax for a standard Digital Versatile Disc (DVD) is as follows:
- -mplayer dvd://<track> [-dvd-device <device>]
Example: mplayer dvd://1 -dvd-device /dev/hdc
The default DVD device is /dev/dvd
. If your setup differs,
- make a symlink or specify the correct device on the command line with the
- -dvd-device
option.
MPlayer uses libdvdread
and libdvdcss
for
- DVD decryption and playback. These two libraries are contained in the
- libmpdvdkit2/
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 libdvdread
bug and apply a patch which adds
- cracked CSS keys caching support to libdvdcss
. This results
- in a large speed increase because the keys do not have to be cracked every time
- before playing.
MPlayer can also use system-wide libdvdread
and
- libdvdcss
libraries, but this solution is not recommended,
- as it can result in bugs, library incompatibilities and slower speed.
Useful if you want to play encoded VOBs from hard disk. Compile and
- install libcss 0.0.1 (not newer) for this (If MPlayer fails to
- detect it, use the -csslib /path/to/libcss.so
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.
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.
- -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 sectors - everywhere, so you need to use raw addressing of sectors of the disc to - implement DVD navigation or decrypt the content.
- -The whole old-style DVD support with libcss
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:
libcss
).libdvdread
0.9.x and libmpdvdkit
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.Sometimes /dev/dvd
cannot be read by users, so the libdvdread
- 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.
libdvdread
even accepts the mountpoint instead of the device name for raw
- access and checks /proc/mounts
to get the device name. It was
- developed for Solaris, where device names are dynamically allocated.
The default DVD device is /dev/dvd
. If your setup differs,
- make a symlink, or specify the correct device on the command line with the
- -dvd-device
option.
The authentication and decryption method of the new-style DVD support is done
- using a patched libdvdcss
(see above). The method can be specified through the
- environment variable DVDCSS_METHOD
, which can be set to
- key
, disk
or title
.
If nothing is specified it tries the following methods - (default: key, title request):
- -~/.mplayer/DVDKeys
directory
- (fast ;).ioctl()
.
- 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.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 - firmware page. If there is - no firmware upgrade available for your device, use the - regionset - tool to set the region code of your DVD drive (under Linux). - Warning: You can only set the region 5 times.
- - -For the complete list of available options, please read the man page. - The Syntax for a standard Video CD (VCD) is as follows:
- -mplayer vcd://<track> [-cdrom-device <device>]
Example: mplayer vcd://2 -cdrom-device /dev/hdc
The default VCD device is /dev/cdrom
. If your setup differs,
- make a symlink or specify the correct device on the command line with the
- -cdrom-device
option.
Note: 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 help us implement generic - SCSI support for VCDs.
- -In the meantime you can extract data from VCDs with - readvcd - and play the resulting file with MPlayer.
- -VCD disks consist of one or more tracks:
- -vcd://2
first.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 (vcdfs/isofs-2.4.X.o
) 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
- will not work with the standard iso9660 driver of the Linux kernel!
- Use vcd://
instead. Alternatives for VCD copying are
- the new cdfs kernel
- driver (not part of the official kernel) that shows CD sessions
- as image files and cdrdao, a
- bit-by-bit CD grabbing/copying application.
See the - codec status table - for the complete, daily generated list. Quite a few codecs are available for - download from our homepage. Grab them from our - codecs page.
- -The most important ones above all:
-If you have a Win32 codec not listed here which is not supported yet, please - read the codec importing HOWTO and help us add support - for it.
- - -This section contains information about the DivX4 and DivX5 codecs of - Project Mayo. 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.
- -The new generation of this codec is called DivX4 and can even decode - movies made with the infamous DivX codec! In addition it is much faster than - the native Win32 DivX DLLs but slower than libavcodec. Hence its usage - as a decoder is DISCOURAGED. However, it is useful for encoding. One - disadvantage of this codec is that it is not available under an Open Source - license.
- -DivX4Linux works in two modes:
- --vc odivx
-vc divx4
The -vc odivx
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
- -vc divx4
method. For RGB modes the speed is the same, differing
- at best according to your current color depth.
Note: If your -vo
driver supports direct rendering, then
- -vc divx4
may be faster or even the fastest solution.
The Divx4/5 binary codec library can be downloaded from
- avifile or
- divx.com.
- Unpack it, run ./install.sh
as root and do not forget adding
- /usr/local/lib
to your /etc/ld.so.conf
and running
- ldconfig
.
Get the CVS version of the OLD OpenDivx core library like this:
- -cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login
cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore
- 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 --
- 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 --
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.
- - -FFmpeg contains an - open source 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!
- -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.
- -The most recent codec deserving credit is the Sorenson 3 (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!
- -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 don't - work with MPlayer. In order to achieve this do:
- -cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
libavcodec
directory from the FFmpeg sources to the
- root of the MPlayer CVS tree. It should look like this:
- main/libavcodec
Note: MPlayer from CVS does contain a libavcodec - subdirectory, but it does not contain the source for libavcodec! - You must follow the steps above to obtain the source for this library.
- -With FFmpeg and my Matrox G400, I can view even the highest resolution DivX - movies without dropped frames on my K6/2 500.
- - -- 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. -
- -MPlayer is capable of employing the XAnim codecs for decoding. Follow - the instructions to enable them:
- ---with-xanimlibdir
option to tell configure where
- to find the XAnim codecs. By default, it looks for them at
- /usr/local/lib/codecs, /usr/local/lib/xanim/mods, /usr/lib/xanim/mods and /usr/lib/xanim
.
- Alternatively you can set the environment variable XANIM_MOD_DIR to
- the directory of the XAnim codecs.vid_cvid.xa, vid_h263.xa, vid_iv50.xa
.XAnim is video codec family xanim
, so you may want to use the -vfm xanim
- option to tell MPlayer to use them if possible.
Tested codecs include: Indeo 3.2, 4.1, 5.0, CVID, - 3ivX, h263.
- - -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 -vc
- ffh263
option. For 2.0 files, use the Win32 DLL through the
- -vc vivo
option. If you do not supply command line options
- MPlayer selects the best codec automatically.
MPEG1 and MPEG2 are decoded by the multiplatform native libmpeg2
- library, whose source code is included in MPlayer. We handle buggy
- MPEG 1/2 video files by catching Signal 11 (Segmentation fault)
,
- and quickly reinitializing the codec, continuing exactly from where the
- failure occurred. This recovery technique has no measurable speed penalty.
This is a very old and very bad codec from Microsoft. In the past it was
- decoded with the msvidc32.dll
Win32 codec, now we have our own
- open source implementation (by Mike
- Melanson).
MPlayer uses its own open source, multiplatform Cinepak decoder (by - Dr. Tim Ferguson), by default. - It supports YUV outputs, so that hardware scaling is possible if the video - output driver permits it.
- - -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
- --with-reallibdir
option.
As a second chance you can download the codecs from
- http://www.mplayerhq.hu/MPlayer/releases/codecs/.
- After downloading the Real codecs package, extract it to the /usr/local/lib/codecs
- directory, or you can specify a unique path with the --with-reallibdir
option.
Note: RealPlayer libraries currently only work with Linux, FreeBSD, - NetBSD and Cygwin on the x86, Alpha and PowerPC (Linux/Alpha and Linux/PowerPC - have been tested) platforms.
- - -XviD 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.
- -XviD is currently available only from CVS. Here are download and installation - instructions (you need at least autoconf 2.50, automake and libtool):
- -cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login
cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore
cd xvidcore/build/generic
./bootstrap.sh
./configure
./configure --help
).make && make install
--enable-divxcompat
,
- copy the divx4.h
header file from
- xvidcore/src/
to /usr/local/include/
.--with-xvidcore=/path/to/libxvidcore.a
.Sorenson 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:
- -NOTE: currently only 32bit Intel platforms are supported.
- -/usr/local/lib/codecs/
)The most important audio codecs above all:
This is the default decoder used for files with AC3 audio.
- -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.
- -Use the -channels
option to select the number of output
- channels. Use -channels 2
for a stereo downmix. For a 4
- channel downmix (Left Front, Right Front, Left Surround and Right Surround
- outputs), use -channels 4
. In this case, any center channel will
- be mixed equally to the front channels. -channels 6
will output
- all the AC3 channels as they are encoded - in the order Left, Right, Left
- Surround, Right Surround, Center and LFE.
The default number of output channels is 2.
- -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).
- - -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 -ac hwac3
- 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.
libmad is a multiplatform MPEG - audio decoding library. It does not handle broken files well, and it - sometimes has problems with seeking.
- -To enable support, compile with the --enable-mad
configure
- option.
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 g.723 audio, and VIVO/2.0 files - have Vivo Siren audio. Both are supported.
- -On how to install RealPlayer libraries, see the - RealVideo section.
- - -QDesign audio streams (fourcc: QDMC, QDM2) are found in MOV/QT - files. Both versions of this codec can be decoded with QuickTime libraries. - For installation instructions please see the Sorenson - video codec section.
- - -Qualcomm audio stream (fourcc: Qclp) is found in MOV/QT files. - It can be decoded with QuickTime libraries. For installation instructions - please see the Sorenson video codec section.
- - -AAC (Advanced Audio Coding) is an audio codec sometimes found in MOV and MP4 - files. An open source decoder called FAAD is available from - AudioCoding.com. - MPlayer includes libfaad 2.0RC1, so you do not need to get it separately.
- - - -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:
- - UNKNOWN video codec: HFYU (0x55594648)
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 system.ini
contains this information in a line that
- reads:
VIDC.HFYU=huffyuv.dll
So you need the huffyuv.dll
file. Note that the audio codecs are
- specified by the MSACM prefix:
msacm.l3acm=L3codeca.acm
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:
- - ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/
Note: 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.
- -DirectShow is the newer Video API, which is even worse than its predecessor. - Things are harder with DirectShow, since
- -system.ini
does not contain the needed information, instead it
- is stored in the registry andNew Method: Using Microsoft GraphEdit (fast)
- -graphedit.exe
.DirectShow Filters
.DisplayName
look at the text in winged brackets
- after the backslash and write it down (five dash-delimited blocks, the
- GUID).Filename
- entry.Note: If there is no Filename
entry and DisplayName
- contains something like device:dmo
, then it is a DMO-Codec.
Old Method: Take a deep breath and start searching the registry...
- -regedit
.Ctrl-f
, disable the first two checkboxes, and enable
- the third. Type in the fourcc of the codec (e.g. TM20).C:\WINDOWS\SYSTEM\TM20DEC.AX
).Note: If searching fails, try enabling all the checkboxes. You may have - false hits, but you may get lucky...
- -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:
- - ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/
[ English ] - [ Hungarian ] - [ German ] - [ French ] - [ Polish ] - [ Italian ] - [ Chinese ]
- -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 FAQ, or try grepping - through the files. Most questions should be answered somewhere here and the - rest has probably already been asked on our - mailing lists. Check the - archives, there is a - lot of valuable information to be found there. And for another good advice, - let me quote Chris Phillips from the - mplayer-users - mailing list:
- -- 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. -- - -
MPlayer is a movie player for LINUX (runs on many other Unices, and - non-x86 CPUs, see the ports section). 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 VideoCD, SVCD, DVD, - 3ivx, RealMedia, Sorenson, Theora and DivX - 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 DVB and - DXR3/Hollywood+. And what about the nice big antialiased - shaded subtitles (10 supported types) with European/ISO 8859-1,2 - (Hungarian, English, Czech, etc), Cyrillic, Korean fonts, and the onscreen - display (OSD)?
- -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 -idx
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.
MEncoder (MPlayer's Movie Encoder) is a simple movie encoder, - designed to encode MPlayer-playable movies - (AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA) to other - MPlayer-playable formats (see below). It can encode with various codecs, like - DivX4 (1 or 2 passes), libavcodec, - PCM/MP3/VBR MP3 audio. Also has powerful plugin system - for video manipulation.
- --ofps
option (useful when encoding
- 29.97fps VOB to 24fps AVI)MPlayer and MEncoder can be distributed under the terms of the GNU General - Public License Version 2.
- - -"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..." A'rpi, 2001
- -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.
- -You need a fairly recent system. On Linux, 2.4.x kernels are recommended.
- -/usr/local/lib/codecs/
BEFORE compiling
- MPlayer, otherwise no Win32 support will be compiled!libvorbis
properly. Use deb/rpm packages if available, or
- compile from
- source
- (this is a nightly updated tarball of Vorbis CVS).There are generally two kind of video cards. One kind (the newer cards) has - hardware scaling and YUV acceleration support, the other cards don't.
- -They can display and scale (zoom) the picture to any size that fits in - their memory, with small CPU usage (even when zooming), thus - fullscreen playing is nice and very fast.
- -Fullscreen playing can be achieved by either enabling software scaling
- (use the -zoom
or -vf scale
- 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 -vm
option and it works with the following drivers:
clgenfb
- 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.-bpp 8
.Then build MPlayer:
- -- ./configure - make - make install -- -
At this point, MPlayer is ready to use. The
- $PREFIX/etc/mplayer/codecs.conf
file is needed only when you
- want to change its properties, as the main binary contains an internal copy
- of it.
Check if you have codecs.conf
in your home directory
- (~/.mplayer/codecs.conf
) left from old MPlayer versions, and
- remove it.
Note that if you have a codecs.conf
in ~/.mplayer/
,
- the builtin and system codecs.conf
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 -vc
, -ac
, -vfm
, or -afm
- options either on the command line or in your config file (see the manual
- page).
Debian users can build a .deb
package for themselves,
- it's very simple. Just exec fakeroot debian/rules binary
in
- MPlayer's root directory. See
- Debian packaging for detailed
- instructions.
Always browse the output of ./configure
, and the
- configure.log
file, they contain information about what will be
- built, and what will not. You may also want to view config.h
and
- config.mak
files.
- If you have some libraries installed, but not detected by
- ./configure
, then check if you also have the proper header files
- (usually the -dev packages) and their version matches. The
- configure.log
file usually tells you what is missing.
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 - Subtitles and OSD section for details.
- - - -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 --enable-gui
during
- ./configure
. Then, to turn on GUI mode, you have to
gmplayer
binary.
-
-
-Currently you can't use the -gui
option on the command line,
- due to technical reasons.
As MPlayer doesn't have a skin included, you have to download them if
- you want to use the GUI. See the
- download page.
- They should be extracted to the usual system-wide directory
- ($PREFIX/share/mplayer/Skin
), or to
- $HOME/.mplayer/Skin
. MPlayer by default looks in these
- directories for a directory named default, but you can use the
- -skin newskin
option, or the skin=newskin
config
- file directive to use the skin in */Skin/newskin
directory.
- MPlayer can display subtitles along with movie files. Currently the following - formats are supported:
-MPlayer can dump the previously listed subtitle formats (except - the three first) into the following destination formats, with the given - options:
- --dumpmpsub
-dumpsrtsub
-dumpmicrodvdsub
-dumpjacosub
-dumpsami
MEncoder can dump DVD subtitles into - VobSub format.
- -The command line options differ slightly for the different formats:
- -VobSub subtitles consist of a big (some megabytes) .SUB file, and optional
- .IDX and/or .IFO files.
- Usage: If you have files like sample.sub
,
- sample.ifo
(optional), sample.idx
- you have to pass
- MPlayer the -vobsub sample [-vobsubid <id>]
options (full
- path optional). The -vobsubid
option is like -sid
- for DVDs, you can choose between subtitle tracks (languages) with it. In case
- that -vobsubid
is omitted, MPlayer will try to use the languages
- given by the -slang
option and fall back to the
- langidx
item in the .IDX file to set the subtitle language. If
- that fails, there will be no subtitles.
The other formats consist of a single text file containing timing,
- placement and text information.
- Usage: If you have a file like sample.txt
, you have to pass the
- option -sub sample.txt
(full path optional).
-subdelay <sec>
-subfps <rate>
-subpos <0 - 100>
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.
Please note that the MicroDVD subtitle
- format uses absolute frame numbers for its timing, and therefore the
- -subfps
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
- contrib
directory of the MPlayer FTP site to do this conversion
- for you.
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.
- -About DVD subtitles, read the DVD section.
- - -MPlayer introduces a new subtitle format called MPsub. It was - designed by Gabucino. Basically its main feature is being - dynamically time-based (although it has frame-based mode too). Example - (from - DOCS/tech/mpsub.sub):
- -
- FORMAT=TIME
- # first number : wait this much after previous subtitle disappeared
- # second number : display the current subtitle for this many seconds
-
- 15 3
- A long long, time ago...
-
- 0 3
- in a galaxy far away...
-
- 0 3
- Naboo was under an attack.
So you see, the main goal was to make subtitle
- editing/timing/joining/cutting easy. And, if you - say - get an SSA
- subtitle but it's badly timed/delayed to your version of the movie, you
- simply do a mplayer dummy.avi -sub source.ssa -dumpmpsub
.
- A dump.mpsub
file will be created in the current directory,
- which will contain the source subtitle's text, but in MPsub format.
- Then you can freely add/subtract seconds to/from the subtitle.
Subtitles are displayed with a technique called 'OSD', On Screen - Display. OSD is used to display current time, volume bar, seek bar - etc.
- -You need an MPlayer font package to be able to use OSD/SUB feature. - There are many ways to get it:
- --font /path/to/arial.ttf
option to specify
- a TrueType font file on every occasionln -s /path/to/arial.ttf ~/.mplayer/subfont.ttf
-utf8
- 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.If you chose non-TTF fonts, UNZIP the file you downloaded to ~/.mplayer
or
- $PREFIX/share/mplayer
. Then rename or symlink one of the extracted directories to
- font
(like: ln -s ~/.mplayer/arial-24
- ~/.mplayer/font
). Now you have to see a timer at the upper left corner
- of the movie (switch it off with the "o" key).
OSD has 4 states: (switch with 'o')
- -(subtitles are always enabled, for disabling them please read the man - page)
- -You can change default behaviour by setting osdlevel=
variable
- in config file, or the -osdlevel
command line option.
MPlayer has a completely user definiable OSD Menu interface.
- -NOTE: the Preferences menu is currently UNIMPLEMENTED!
- ---enable-menu
parameters to
- ./configure
etc/menu.conf
to your .mplayer
- directoryetc/input.conf
to your .mplayer
- directory, or to the system-wide MPlayer config dir (default:
- /usr/local/etc/mplayer
)input.conf
to enable menu movement
- keys (it is described there).$ mplayer -menu file.avi
usleep()
to tune A/V sync, with +/- 10ms accuracy. However
- sometimes the sync has to be tuned even finer./proc
filesystem.
- Use this command to enable RTC for normal users:
-
- echo 1024 > /proc/sys/dev/rtc/max-user-freq
-
drivers/char/rtc.c
and recompile your kernel. Find the
- section that reads
- - * 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))) -- and change the 64 to 1024. You should really know what you are doing, though. -
-nortc
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.-softsleep
- option. It has the efficiency of the RTC, but it doesn't use RTC. On the other
- hand, it requires more CPU.This section is about how to enable watching/grabbing from V4L compatible -TV tuner. See the man page for a description of TV options and keyboard -controls.
- -./configure
will autodetect
- kernel headers of v4l stuff and the existence of /dev/video*
- entries. If they exist, TV support will be built (see the output of
- ./configure
).channels
option. An example:-tv channels=26-MTV1,23-TV2
-vf pp=DEINT_TYPE
. Usually
- pp=lb
does a good job, but it can be matter of personal
- preference. See other deinterlacing algorithms in the manual and give it a
- try.crop
option so that all the crap
- at the margins is cropped out. Again, don't forget to keep the resulting
- dimensions sane.outfmt
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
- outfmt
isn't required anymore, and the default suits the most
- purposes. For example, if you are capturing into DivX using libavcodec and
- specify outfmt=RGB24
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.
- outfmt=i420
), you have to
- add an option -vc rawi420
due to a fourcc conflict with an
- Intel Indeo video codec.linux/Documentation/sound/btaudio
file (in the kernel tree,
- not MPlayer's) for some instructions on using this driver.Dummy output, to AAlib :)
- mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://
-
- Input from standard V4L
- mplayer -tv driver=v4l:width=640:height=480 -vo xv tv://
-
-
- 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.
mencoder -tv
- driver=v4l:width=768:height=576 \
- -ovc lavc -lavcopts
- vcodec=mpeg4:vbitrate=900 \
-oac
- mp3lame -lameopts cbr:br=64 \
-vf
- crop=720:544:24:16,pp=lb -o output.avi tv://
-
-
- 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.
-
- mencoder -tv driver=v4l:width=768:height=576 \
- -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
- -oac mp3lame -lameopts cbr:br=48 \
- -vf crop=720:540:24:18,pp=tn/lb,scale=384:288 -sws 1 -o output.avi tv://
-
-
- It's also possible to specify smaller image dimensions in the
- -tv
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.
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.
- -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.
- -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).
- -The maximum number of EDL entries for the current incarnation of EDL is 1000.
- If you happen to need more, change the #define MAX_EDL_ENTRIES
- in the edl.h
file.
Include the -edl <filename>
flag when you run MPlayer,
- with the name of the EDL file you want applied to the video.
The current EDL file format is:
- -[begin second] [end second] [action]
-
-Where the seconds are floating-point numbers and the action is either
- 0
for skip or 1
for mute. Example:
-5.3 7.1 0 -15 16.7 1 -420 422 0 -- -
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.
- -To create an EDL file to work from, use the
- -edlout <filename>
flag. During playback, when you want to
- mark the previous two seconds to skip over, hit i
. A
- corresponding entry will be written to the file for that time. You can then go
- back and fine-tune the generated EDL file.
MPlayer utilizes a complex playtree. It consists of global options
- written as first (for example mplayer -vfm 5
), and options
- written after filenames, that apply only to the given filename/URL/whatever
- (for example mplayer -vfm 5 movie1.avi movie2.avi -vfm 4
).
- You can group filenames/URLs together using { and }. It's useful with
- option -loop: mplayer { 1.avi -loop 2 2.avi } -loop 3
- will play files in this order: 1 1 2 1 1 2 1 1 2
-
file | mplayer [options] [path/]filename | ||
files | mplayer [default options] [path/]filename1 [options for filename1] filename2 [options for filename2] ... | ||
VCD | mplayer [options] vcd:// trackno [-cdrom-device /dev/cdrom] | ||
DVD | mplayer [options] dvd:// titleno [-dvd-device /dev/dvd] | ||
WWW | mplayer [options] http://site.com/file.asf (playlists can be used, too) | ||
RTSP | mplayer [options] rtsp://server.example.com/streamName |
- 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 -- - -
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.
- - -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
- $HOME/.mplayer/input.conf
but it can be overridden using the
- -input
conf option (relative path are relative to
- $HOME/.mplayer
).
-
-
Example:
- --## -## 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 -- - -
You can have a full list by running mplayer -input keylist
You can have a full list of known commands by running "mplayer -input cmdlist"
- -Seek to some place in the movie.
- Type 0 is a relative seek of +/- val seconds.
- Type 1 seek to val % in the movie.
Adjust the audio delay of val seconds
Quit MPlayer
Pause/unpause the playback
Somebody know ?
Go to next/previous entry in playtree. Val sign tell the direction.
- If no other entry is available in the given direction it won't do anything
- unless force is non 0.
Like pt_step but it jump to next/previous in the parent list. It's useful - to break inner loop in the playtree.
When more than one source is available it select the next/previous one - (only supported by asx playlist).
Adjust the subtitles delay of +/- val seconds or set it to val seconds - when abs is non zero.
Toggle osd mode or set it to level when level > 0.
Increase/decrease volume
Set/Adjust video parameters. Val range from -100 to 100.
Toggle/Set frame dropping mode.
Toggle subtitle visibility.
Adjust subtitles position.
Change the language of VobSub subtitles.
Switch fullscreen mode.
Select next/previous tv channel.
Change TV norm.
Change channel list.
GUI actions
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 www.lirc.org.
- -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 :-)
- -The application name for MPlayer is - oh wonder - mplayer
.
- 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:
-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 -- -
If you don't like the standard location for the lirc-config file (~/.lircrc) - use the -lircconf <filename> option to specify another file.
- - -The slave mode allow you to build simple frontend to MPlayer. When
- enabled (with the -slave
option) MPlayer will read
- commands separated by new line (\n) from stdin.
MPlayer can play files from network, using the HTTP, FTP, MMS or RTSP/RTP - protocol.
- -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:
- -mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf
MPlayer can read from stdin (NOT named pipes). This can be for example - used to play from FTP:
- - wget ftp://micorsops.com/something.avi -O - | mplayer -
Note: it's also recommended to enable CACHE when playback from network:
- - wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -
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, none of these packages are supported. Report problems - to the authors, not to us.
- - -To build a Debian package, run the following command in the MPlayer source - directory:
- -- fakeroot debian/rules binary -- -
As root you can then install the .deb
package as usual:
- dpkg -i ../mplayer_<version>.deb -- -
Christian Marillat has been making unofficial Debian MPlayer, MEncoder and - font packages for a while, you can (apt-)get them from his - homepage.
- - -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 - homepage.
- -Mandrake RPM packages are available from the - P.L.F. SuSE includes a crippled version of - MPlayer in their distribution. You can get working SuSE RPMs from - links2linux.de.
- - -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
- OpenZaurus package feeds.
- If you want to compile it yourself, you should look at the
- mplayer
- and the
- libavcodec
- directory in the OpenZaurus distribution buildroot. These always have the
- latest Makefile and patches used for building a CVS MPlayer with libavcodec.
-
If you need a GUI frontend, you can use xmms-embedded.
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.
- -To build MPlayer you will need GNU make (gmake - native BSD make will not - work) and a recent version of binutils.
- -If MPlayer complains about not finding /dev/cdrom
or
- /dev/dvd
, create an appropiate symbolic link:
- ln -s /dev/(your_cdrom_device) /dev/cdrom
.
To use Win32 DLLs with MPlayer you will need to re-compile the kernel with
- "option USER_LDT
" (unless you run FreeBSD -CURRENT, where this
- is the default).
If your CPU has SSE, recompile your kernel with "options CPU_ENABLE_SSE" to - use it (FreeBSD-STABLE or kernel patches required).
- -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 $PATH
and do a gmake -k
, then make sure that
- the native version is used and do gmake
.
MPlayer should work on Solaris 2.6 or newer.
- -On UltraSPARCs, MPlayer takes advantage of their VIS - extensions (equivalent to MMX), currently only in libmpeg2, - libvo and libavcodec, but not in mp3lib. You can watch a VOB - file on a 400MHz CPU. You'll need - mLib installed.
- -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:
- -- % /usr/ccs/bin/make - make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen -- -
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.
- -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 /usr/ccs/bin/as
.
The configure script tries to find out, which assembler program is used by
- your "gcc" command (in case the autodetection fails, use the
- --as=/whereever/you/have/installed/gnu-as
option to tell the
- configure script where it can find GNU "as" on your system).
Error message from configure on a Solaris x86 system using GCC - without GNU assembler:
- -- % configure - ... - Checking assembler (/usr/ccs/bin/as) ... , failed - Please upgrade(downgrade) binutils to 2.10.1... -- -
(Solution: Install and use a gcc configured with "--with-as=gas")
- -Typical error you get when building with a GNU C compiler that does - not use GNU as:
- -- % 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 ... -- -
Due to bugs in Solaris 8, you may not be able to play DVD discs larger - than 4 GB:
- -- This problem does not exist in the SPARC version of Solaris 8. -
-- The hsfs problem can be fixed by installing patch 109764-04 (sparc) / - 109765-04 (x86). -
-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 - mediaLib.
- -VIS accelerated operations from mediaLib are used for mpeg2 video - decoding and for color space conversion in the video output drivers.
- - -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:
- -- ./configure --install-path=PATH -- -
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:
- -- $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 -- -
to:
- -- $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ -- -
And then do (from within the MPlayer source dir):
- -- cp DOCS/mplayer.1 . -- -
and then go on with building and installing.
- - -Works. You'll need to download SDL for QNX, and install it. Then run
- MPlayer with -vo sdl:photon
and -ao sdl:nto
- options, and it should be fast.
The -vo x11
output will be even slower than on Linux, since
- QNX has only X emulation which is VERY slow. Use SDL.
Yes, MPlayer runs on Windows under - Cygwin and - MinGW. - It does not have a GUI yet, but the command line version is almost completely - functional. Patches are always welcome. - You should check out the - mplayer-cygwin - mailing list for help and latest information.
- -Best results are achieved with the native DirectX video output driver
- (-vo directx
) and the native Windows waveout audio driver
- (-ao win32
) 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 -vo directx:ontop
. If the image is
- distorted, try turning off hardware acceleration with
- -vo directx:noaccel
. Download
- DirectX 7 header files
- to compile the DirectX video output driver.
Win32 codecs, QuickTime DLLs and Real Win32 codecs (not Real Linux codecs)
- also work. Put the codecs somewhere in your path or pass
- --with-codecsdir=c:/path/to/your/codecs
(alternatively
- --with-codecsdir=/path/to/your/codecs
only on Cygwin) to
- configure
. 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.
The Cygwin/MinGW console is rather slow. Redirecting output or using the
- -quiet
option has been reported to improve performance on some
- systems. Direct rendering (-dr
) may also help. You can prevent
- OSD flicker through double buffering with the -double
option.
- If playback is jerky, try -autosync 100
. If some of
- these options help you, you may want to put them in your config file.
There are precompiled binary versions made by Sascha Sommer available for - download from - our homepage. - Joey Parrish has been making - unofficial Windows packages - complete with installer.
- - -Cygwin versions prior to 1.5.0 do not include inttypes.h
. You
- will have to copy or symlink etc/cygwin_inttypes.h
from the
- MPlayer source directory to /usr/include/inttypes.h
in order to
- make MPlayer compile.
DirectX header files need to be extracted to /usr/include/
or
- /usr/local/include/
.
Instructions and files for making SDL run under Cygwin can be found on the - libsdl site.
- -You can play VCDs by playing the .DAT
or .MPG
files
- that Windows exposes on VCDs. It works like this (adjust for the drive letter
- of your CD-ROM):
mplayer d:/mpegav/avseq01.dat
mplayer /cygdrive/d/MPEG2/AVSEQ01.MPG
DVDs also work, adjust -dvd-device
for the drive letter of
- your DVD-ROM:
mplayer dvd://<title> -dvd-device '\\.\d:'
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.
- -If you use a version of MinGW before 3.1.0, you need to replace
- /mingw/include/sys/types.h
with this
- types.h
.
-
-
Extract DirectX header files to /mingw/include/
.
VCDs and DVDs work almost like Cygwin (adjust for the drive letter of your - CD-ROM/DVD-ROM):
- -mplayer d:/mpegav/avseq01.dat
mplayer /d/MPEG2/AVSEQ01.MPG
mplayer dvd://<title> -dvd-device /d/
There are some public mailing lists on MPlayer. Unless explicitly - stated otherwise the language of these lists is English. 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 HOWTO edit messages or - (if you are in a hurry) - - Quoting HOWTO.
- -Note: You can reach the searchable mailing list archives at - http://www.mplayerhq.hu/cgi-bin/htsearch. - - - -
Special system/CPU-specific bugs/problems:
-./configure --disable-sse
./configure --disable-sse
etc. options-ac ffmpeg
)Various A-V sync and other audio problems:
- -General audio delay or jerky sound (exists with all or many files): -Video-out problems:
- -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.
- -OSD/sub flickering:
- - x11 driver: sorry, it can't be fixed now
- - xv driver: use -double option
Green image using mga_vid (-vo mga / -vo xmga):
- - mga_vid misdetected your card's RAM amount, reload it using mga_ram_size option
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 - encoding-tips that were collected from - several mailing list threads on - mplayer-users. - Search the archives - for a wealth of discussions about all aspects of and problems related to - encoding with MEncoder.
- - -2-pass encoding: the name comes from the fact that this method - encodes the file twice. The first encoding (dubbed pass) - 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.
- -This example shows how to encode a DVD to a 2-pass MPEG-4 ("DIVX") AVI. Just
- two commands are needed:
- rm frameno.avi
- remove this file, which
- can come from a previous 3-pass encoding (it interferes with current
- one)
- mencoder dvd://2 -ovc lavc -lavcopts
- vcodec=mpeg4:vpass=1 -oac copy -o movie.avi
- mencoder dvd://2 -ovc lavc -lavcopts
- vcodec=mpeg4:vpass=2 -oac copy -o movie.avi
3-pass encoding: 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:
- -rm frameno.avi
mencoder <file/DVD> -ovc frameno -oac mp3lame -lameopts vbr=3 -o frameno.avi
An audio-only avi file will be created, containing
- only the requested audio stream. Don't forget -lameopts
,
- 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.
mencoder <file/DVD> -oac copy
- -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=<bitrate>
This is the first pass of video encoding. - Optionally specify the video bitrate MEncoder printed at the end of - the previous pass.
mencoder <file/DVD> -oac copy
- -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=<bitrate>
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 frameno.avi
- will be inserted into the destination file.. and it's all ready!
rm frameno.avi
- remove this file,
- which can come from a previous 3-pass encoding (it interferes with current
- one)
- mencoder dvd://2 -ovc frameno
- -o frameno.avi -oac mp3lame -lameopts vbr=3
- mencoder dvd://2 -ovc lavc
- -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi
- mencoder dvd://2 -ovc lavc
- -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi
MEncoder can create MPEG (MPEG-PS) format output files. It's probably - useful only with libavcodec's - mpeg1video codec, because players - except MPlayer - expect MPEG1 - video, and MPEG1 layer 2 (MP2) audio streams in MPEG files.
- -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.
- -To change MEncoder's output file format, use the -of mpeg
- option.
Example:
- mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video
- -oac copy <other options> media.avi -o output.mpg
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. This is bad. - Instead of even you doing so, read the Preserving - aspect ratio section.
- -The scaling process is handled by the 'scale' video filter:
- -vf scale=width:height
. Its quality can be set with the
- -sws
option. If it's not specified, MEncoder will use 0:
- fast bilinear.
mencoder input.mpg -ovc lavc -lavcopts
- vcodec=mpeg4 -vf scale=640:480 -oac copy -o
- output.avi
MEncoder can handle input streams in two ways: encode or - copy them. This section is about copying.
- --ovc copy
): nice stuff can be
- done :)-oac copy
): straightforward.
- It is possible to take an external audio file (MP3, WAV) and mux it
- into the output stream. Use the -audiofile <filename>
- option for this.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 -ni
option won't be needed for them
- anymore.
Command: mencoder -idx input.avi -ovc copy -oac copy -o output.avi
As a side-effect, the broken AVI fixer function enables MEncoder to append - 2 (or more) AVI files:
- -Command: cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi -
Note: This expects 1.avi
and 2.avi
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 above.
libavcodec 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):
- -The first column contains the codec names that should be passed after the
- vcodec
config, like: -lavcopts vcodec=msmpeg4
An example, with MJPEG compression:
- mencoder dvd://2 -o title2.avi -ovc lavc
- -lavcopts vcodec=mjpeg -oac copy
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.
- -Explanation of the process: - -libjpeg
(when decoding PNGs, it will use libpng).The explanation of the -mf
option can be found below in the
- man page.
Creating a DivX4 file from all the JPEG files in the current dir:
- mencoder -mf on:w=800:h=600:fps=25 -ovc divx4
- -o output.avi \*.jpg
Creating a DivX4 file from some JPEG files in the current dir:
- mencoder -mf on:w=800:h=600:fps=25
- -ovc divx4 -o output.avi frame001.jpg,frame002.jpg
Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current dir:
- mencoder -mf on:w=800:h=600:fps=25 -ovc copy
- -o output.avi \*.jpg
Creating an uncompressed file from all the PNG files in the current dir:
- mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb
- -o output.avi \*.png
Note: Width must be integer multiple of 4, it's a limitation of the - RAW RGB AVI format.
- -Creating a Motion PNG (MPNG) file from all the PNG files in the current dir:
- mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy
- -o output.avi \*.png
Creating a Motion TGA (MTGA) file from all the TGA files in the current dir:
- mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy
- -o output.avi \*.tga
MEncoder is capable of extracting subtitles from a DVD into
- Vobsub fomat files. They consist of a pair of files ending in
- .idx
and .sub
and are usually packaged in a single
- .rar
archive. MPlayer can play these with the
- -vobsub
and -vobsubid
options.
You specify the basename (i.e without the .idx
or
- .sub
extension) of the output files with -vobsubout
- and the index for this subtitle in the resulting files with
- -vobsuboutindex
.
If the input is not from a DVD you should use -ifo
to
- indicate the .ifo
file needed to construct the resulting
- .idx
file.
If the input is not from a DVD and you do not have the .ifo
- file you will need to use the -vobsubid
option to let it know
- what language id to put in the .idx
file.
Each run will append the running subtitle if the .idx
and
- .sub
files already exist. So you should remove any before
- starting.
Copying two subtitles from a DVD while doing 3-pass encoding
- rm subtitles.idx subtitles.sub
- mencoder dvd://1 -vobsubout subtitles -vobsuboutindex 0
- -sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3
- mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=1
- mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=2 -vobsubout
- subtitles -vobsuboutindex 1 -sid 5
Copying a french subtitle from an MPEG file
- rm subtitles.idx subtitles.sub
- mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles
- -vobsuboutindex 0 -vobsuboutid fr -sid 1
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!
- -There is.
- -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 no video players outside which support this - attribute of MPEG4. Except MPlayer.
- -This feature can be used only with
- libavcodec's mpeg4
codec. Keep in mind: although MPlayer
- will correctly play the created file, other players will use the wrong
- aspect ratio.
You seriously should crop the black bands over and below the movie image.
- See the man page for the usage of the cropdetect
and
- crop
filters.
$ mencoder sample-svcd.mpg -ovc lavc -lavcopts
- vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o output.avi
With this feature of libavcodec 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: mpeg1video
- and mpeg2video
are reported as working.
A typical usage of this feature is to set the matrices preferred by the
- KVCD specifications.
- The KVCD "Notch" Quantization Matrix:
- Intra:
-
- 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 -- Inter: -
- 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 -- - -
$ mencoder input.avi -o output.avi -oac copy -ovc lavc -lavcopts
- inter_matrix=...:intra_matrix=...
$ 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,
- 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
- :inter_matrix=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 -oac copy -o svcd.mpg
diff -u
) of your changes
- against the CVS version of MPlayer to the
- mplayer-dev-eng
- mailing list. We wrote a short document
- that has more details. Please follow those instructions.- 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. --
"Your gcc does not support even i386 for '-march' and '-mcpu'."
- config.log
- file for details.--disable-gcc-checking
option to
- configure. Remember that you are on your own from this point. Do not
- report bugs, do not ask for help on the mailing lists. We will
- not provide any support in case you run into problems.- 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 --
--And we have idegs. And our idegcounter overflowed again and again.
- -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.
- -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.
- -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.
- -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.
- -Conclusion: We can't be good. Half the people will always say we are bad.
- -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.
-
cp etc/inttypes.h .
) and try again ..../configure
- doesn't detect SSE ...Warning: loading mga_vid.o will taint the kernel: no license
/usr/X11
and /usr/include/X11
- symlinks exist (this can be a problem on Mandrake systems). They can be
- created with these commands:$ ln -sf /usr/X11R6 /usr/X11
$ ln -sf /usr/X11R6/include/X11 /usr/include/X11
BACKGROUND = y
out.> error while loading shared libraries: lib*.so.0: cannot load
- shared object file: No such file or directory
/usr/local/lib
.../usr/local/lib
to /etc/ld.so.conf
and run
- ldconfig
.Linux RTC init: ioctl (rtc_pie_on): Permission denied
o
and try the -osdlevel
option.-xy
or -fs
option doesn't work with the
- x11 driver (-vo x11
) ...-zoom
option. You better use XF86VidMode
- support: You must specify the -vm
and the -fs
- option, and you're done. Make sure you have the right modelines in your
- XF86Config file, and try to make the DGA driver
- and SDL's DGA driver work for you.
- It's much faster. If SDL's DGA works, use that, it'll be even faster.A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49%
- -autoq
)-quiet
or -really-quiet
option as
- described in the man page.-vo null
and then -vo ...
and check the
- difference to see the video_out speed./usr/local/lib/codecs/...
mplayer
instead of
- mplayer_lirc
? Note that it was mplayer_lirc
for a
- long time, including the 0.60 release, but it was recently changed back to
- mplayer
../configure
, edit config.h
and
- replace #undef FAST_OSD
with #define FAST_OSD
.
- Then recompile.-double
option. Also try -vf expand
.-fstype layer
option and report it to the
- mplayer-users
- mailing list.mplayer <options> <filename> < /dev/null &
codecs.conf
file in
- ~/.mplayer/
, /etc/
, /usr/local/etc/
- or a similar location? Remove it, outdated codecs.conf
files
- can cause obscure problems. MPlayer will use its builtin one instead.-bps
or -nobps
option. If it does not
- improve, read the bug reporting guidelines and
- upload the file to our FTP server.ldd /usr/local/bin/mplayer
output. If it containslibc.so.6 => /lib/libc.so.6 (0x4???????)
libc.so.6 => /lib/libc.so.6 (0x00??????)
-afm 1
option to disable using
- l3codeca.acm../configure --enable-runtime-cpudetection
). Don't
- use MPlayer on a CPU different from the one it was compiled on,
- without using the feature mentioned just now.-ao arts
). If it fails or isn't compiled in, try SDL
- (-ao sdl
) and make sure your SDL can handle arts sound. Yet
- another option is to start MPlayer with artsdsp.DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
-ni
option.-ao oss
.
- See the sound card section.-nobps
option, and/or
- -mc 0
.-vc ffmjpeg
.-nortc
option.Badly interleaved AVI file detected - switching to -ni
- mode...
- -cache
don't work well
- together. Try -nocache
.- 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... --
-ao arts
or
- -ao esd
option to make MPlayer use ARTS or ESD../configure
autodetects your DGA driver. If
- -vo help
doesn't show DGA, then there's a problem with your X
- installation. Try ./configure --enable-dga
and read the
- DGA section. Alternatively, try SDL's DGA
- driver with the -vo sdl:dga
option.-vo help
shows DGA driver, but it complains about
- permissions. Help me!su -
), and try again.
- Another solution is making MPlayer SUID root, but it's
- not recommended!chown root /usr/local/bin/mplayer
chmod 755 /usr/local/bin/mplayer
chmod +s /usr/local/bin/mplayer
- Warning: security risk-
- This is a big security risk! Never 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. You have been - warned. -
X Error of failed request: BadAccess (attempt to access private
- resource denied)
- Major opcode of failed request: 147 (MIT-SHM)
- Minor opcode of failed request: 1 (X_ShmAttach)
- Serial number of failed request: 26
- Current serial number in output stream:27
-vo gl
) output doesn't work (hang/black window/X11
- errors/...).x11
target, but
- not xv
!x11
target again. Now try
- -vo x11 -fs -zoom
. See the difference? No?! OK, here comes the
- enlightenment: SDL's x11
target uses xv when available, you
- don't have to worry about it ... Note: you can force/disable Xv via SDL
- using -forcexv
and -noxv
mplayer: ifo_read.c:1143: ifoRead_C_ADT_internal: Assertion
- nfo_length / sizeof(cell_adr_t) >= c_adt->nr_of_vobs' failed.
/dev/
).-chapter
option.-cache
option (described in the man page)
- and try enabling DMA for the DVD drive with the hdparm tool (described in
- the CD chapter).movie.avi.conf
with the
- file-specific options in it and put it in ~/.mplayer
or in
- the same directory as the file.mencvcd
script from the TOOLS
- subdirectory. With it you can encode DVDs or other movies to VCD or SVCD
- format and even burn them directly to CD.cat file1 file2 > file3
mencoder -ovc copy -oac copy -o out.avi -forceidx file3.avi
-sid
option correctly!-chapter
option correctly, like:
- -chapter 5-7
-ofps
.-sub <filename> option
(or
- -sid
, -vobsub
, respectively) to MEncoder.It is important to clarify a common mistake. When people see a file with a - .AVI 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 can contain MPEG1 video.
- -You see, a codec is not the same as a file format.
- Examples of video codecs are: MPEG1, MPEG2, DivX, Indeo5, 3ivx.
- Examples of file formats are: MPG, AVI, ASF.
In theory, you can put an OpenDivX video and MP3 audio into an MPG - format file. However, most players will not play it, since they expect MPEG1 - video and MP2 audio (unlike AVI, MPG does not have the - necessary fields to describe its video and audio streams). Or you might put - MPEG1 video into an AVI file. - FFmpeg and - MEncoder can create these files.
- - - -MPEG files come in different guises:
- -vcd://
to play a Video CD.Series of frames form independent groups in MPEG files. This means that you
- can cut/join an MPEG file with standard file tools (like dd
,
- cut
), and it remains completely functional.
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 -aspect
option.
Designed by Microsoft, AVI (Audio Video Interleaved) 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 - OpenDML. Microsoft currently strongly discourages its use and - encourages ASF/WMV. Not that anybody cares.
- -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.
- -Note: 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.
- -There are two kinds of AVI files:
--ni
- option).MPlayer supports two kinds of timings for AVI files:
-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 MEncoder.
- - -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.
- - -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
- -dumpvideo
and -dumpaudio
options.).
Note: Most new QuickTime files use Sorenson video and QDesign - Music audio. See our Sorenson codec - section.
- - -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!
- -The video codec of VIVO/1.0 files is standard h.263. The video codec - of VIVO/2.0 files is a modified, nonstandard h.263v2. The audio is the - same, it may be g.723 (standard), or Vivo Siren.
- -See the VIVO video codec and - VIVO audio codec sections for installation - instructions.
- - -FLI 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 -loop
option). FLI files do not have keyframes,
- so the picture will be messy for a short time after seeking.
Yes, MPlayer can read (demux) RealMedia (.rm) files. Seeking works,
- but you have to explicitly specify the -forceidx
option
- (the format supports keyframes). Here are the lists of the supported
- RealVideo
- and RealAudio codecs.
NuppelVideo - 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 encodes them with - MEncoder to DivX/etc!). Seeking works.
- - -yuv4mpeg / yuv4mpeg2 is a file - format used by the mjpegtools programs. - 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.
- - -This format is used on old Sega Saturn CD-Rom games.
- - -RoQ files are multimedia files used in some ID games such as Quake III and - Return to Castle Wolfenstein.
- - -This is a new file format from Xiphophorus.
- It can contain any video or audio codec, CBR or VBR. You will need to
- have libogg
and libvorbis
installed
- before compiling MPlayer to be able to play it.
SDP - is an IETF standard format for describing video and/or audio RTP streams. - (The "LIVE.COM Streaming Media" - libraries are required.)
- - -PVA is an MPEG-like format used by DVB TV boards' software (e.g.: MultiDec, - WinTV) under Windows.
- -The PVA specifications can be downloaded from the following address: - http://www.technotrend.de/download/av_format_v1.pdf
- - -The GIF 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 -loop
and
- -fixed-vo
options to display these longer.)
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.
- -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.
- -If your distribution does not come with libungif, download a copy from the - libungif homepage. - For detailed technical information, have a look at the - GIF89a specification.
- - -MPlayer is a Movie and not a Media 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 - xmms.
- - -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 -demuxer
flag
- described in the man page may help you in these cases.
Requires properly installed libogg
and
- libvorbis
.
MPlayer can use cdparanoia (lib) to play CDDA (Audio CD). - The scope of this section does not contain enumerating cdparanoia's - features.
- -See the man page's -cdda
option which can be used to
- pass options to cdparanoia.
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 - XMMS input plugin page.
- -For this feature you need to have XMMS and compile MPlayer with
- ./configure --enable-xmms
. If that does not work, you might need
- to set the XMMS plugin and library path explicitly by way of the
- --with-xmmsplugindir
and --with-xmmslibdir
- options.
The purpose of this document is to describe the MPlayer skin format. - The information contained here might be wrong, for
- -So do not be surprised if something does not work as described here.
- -Thanks to Zoltán Ponekker for his help.
- -András Mohari <mayday@freemail.hu>
- - -It does not really have anything to do with the skin format, but you should - know that MPlayer has no builtin skin, so at least one skin - must be installed in order to be able to use the GUI.
- - -The directories searched for skins are (in order):
- -- $(DATADIR)/Skin/ - $(PREFIX)/share/mplayer/Skin/ - ~/.mplayer/Skin/ -- -
Note that the first path may vary according to the way MPlayer was configured
- (see the --prefix
and --datadir
arguments of the
- configure
script).
Every skin is installed into its own directory under one of the directories - listed above, for example:
- -- $(PREFIX)/share/mplayer/Skin/default/ -- - -
Images must be truecolor (24 or 32 bpp) PNGs.
- -In the main window and in the playbar (see below) you can use images with - `transparency': Regions filled with the color #FF00FF - (magenta) are fully transparent when viewed by - MPlayer. This means that you can even have shaped windows if your X server - has the XShape extension.
- - -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.
- -Currently there are three windows to be decorated: the - main window, the subwindow, - the playbar, and the skin menu - (which can be activated by a right click).
- -The main window and/or the playbar is where you can - control MPlayer. The background of the window is an image. Various items - can (and must) be placed in the window: buttons, potmeters - (sliders) and labels. For every item, you must specify its position - and size.
- -A button has three states (pressed, released, disabled), thus its - image must be divided into three parts vertically. See the - button item for details.
- -A potmeter (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 - hpotmeter and - potmeter for details.
- -Labels 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 font description file. 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 - together). See dlabel and - slabel for details.
- -Note: all images can have full transparency as - described in the section about image formats. 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.
-The skin menu 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).
- -A menu entry is defined by its position and size in the image (see the - section about the skin menu for details).
-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 messages (events). For these items you must - define the messages to be generated when they are clicked.
- - -You need the following files to build a skin:
- -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 .fnt
extension).
As mentioned above, this is the skin configuration file. It is line oriented;
- comment lines start with a ';
' character at the beginning of the
- line (only spaces and tabs are allowed before the ';
').
The file is made up of sections. Each section describes the skin for an - application and has the following form:
- -
--section = section name -. -. -. -end -- |
-
Currently there is only one application, so you need only one section: its - name is movieplayer.
- -Within this section each window is described by a block of the following - form:
- -
--window = window name -. -. -. -end -- |
-
where window name can be one of these strings:
- -(The sub and menu blocks are optional - you do not need to create a menu or - decorate the subwindow.)
- -Within a window block, you can define each item for the window by a line in - this form:
- -item = parameter
item
is a string that identifies the type of the GUI
- item, parameter
is a numeric or textual value (or a list of
- values separated by commas).Putting the above together, the whole file looks something like this:
- -
--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 -- |
-
The name of an image file must be given without leading directories - images
- are searched for in the Skin
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 <filename>.<ext>
, where
- png
and PNG
are tried for <ext>
- (in this order). The first matching file will be used.
Finally some words about positioning. The main window and the subwindow can
- be placed in the different corners of the screen by giving X
and
- Y
coordinates. 0
is top or left, -1
is
- center and -2
is right or bottom, as shown in this
- illustration:
- -(0, 0)----(-1, 0)----(-2, 0) - | | | - | | | -(0,-1)----(-1,-1)----(-2,-1) - | | | - | | | -(0,-2)----(-1,-2)----(-2,-2) - -- -
Here is an example to make this clear. Suppose that you have an image
- called main.png that you use for the main window:
-
-
- MPlayer tries to load main , main.png ,
- main.PNG files.
- |
-
Below is the list of entries that can be used in the
- 'window = main
' . . . 'end
', and the
- 'window = playbar
' . . 'end
' blocks.
base = image, X, Y
X,Y
position on the screen
- The window will have the size of the image.
- button = image, X, Y, width, height,
- message
width
* height
size at
- position X
,Y
. The specified message
- is generated when the button is clicked. The image given by
- image
must have three parts below each other (according to the
- possible states of the button), like this:
--+------------+ -| pressed | -+------------+ -| released | -+------------+ -| disabled | -+------------+ --
decoration = enable|disable
- hpotmeter = button, bwidth, bheight,
- phases, numphases, default, X, Y, width, height, message
vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y,
- width, height, message
width
* height
- size at position X
,Y
. 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.). hpotmeter
can
- have a button that can be dragged horizontally.
-
- button
- the image to be used for the button (must have
- three parts below each other, like in case of
- button)bwidth
, bheight
- size of the buttonphases
- The image to be used for the different phases of
- the hpotmeter. A special value of NULL
can be used if you
- want no such image. The image must be divided into
- numphases
parts vertically like this:
--+------------+ -| phase #1 | -+------------+ -| phase #2 | -+------------+ - ... -+------------+ -| phase #n | -+------------+ --
numphases
- number of phases stored in the
- phases
imagedefault
- default value for hpotmeter (in the range 0 to
- 100)X
, Y
- position for the hpotmeterwidth
, height
- width and height of the
- hpotmeter
message
- the message to be generated when the value of
- hpotmeter
is changedpotmeter = phases, numphases, default, X,
- Y, width, height, message
hpotmeter
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 hpotmeter.
- phases
can be NULL
, but it is quite useless, since
- you cannot see where the potmeter
is set.font = fontfile, fontid
fontfile
is the name of a font description
- file with a .fnt
extension (do not specify the extension
- here). fontid
is used to refer to the font (see
- dlabel and slabel).
- Up to 25 fonts can be defined.slabel = X, Y, fontid, "text"
- X
,Y
.
- text
is displayed using the font identified by fontid
.
- The text is just a raw string ($x
variables do not work) that must
- be enclosed between double quotes (but the "
character cannot be
- part of the text). The label is displayed using the font identified by
- fontid
.dlabel = X, Y, length, align, fontid,
- "text"
X
,Y
. The
- label is called dynamic because its text is refreshed periodically. The
- maximum length of the label is given by length
(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 align
parameter: 0
is for right,
- 1
is for center, 2
is for left.text
: It must be written
- between double quotes (but the "
character cannot be part of
- the text). The label is displayed using the font identified by
- fontid
. You can use the following variables in the text:
-
- Variable | Meaning |
---|---|
$1 | -play time in hh:mm:ss format |
$2 | -play time in mmmm:ss format |
$3 | -play time in hh format (hours) |
$4 | -play time in mm format (minutes) |
$5 | -play time in ss format (seconds) |
$6 | -movie length in hh:mm:ss format |
$7 | -movie length in mmmm:ss format |
$8 | -play time in h:mm:ss format |
$v | -volume in xxx.xx% format |
$V | -volume in xxx.x format |
$b | -balance in xxx.xx% format |
$B | -balance in xxx.x format |
$$ | -the $ character |
$a | -a character according to the audio type (none: n ,
- mono: m , stereo: t ) |
$t | -track number (in playlist) |
$o | -filename |
$f | -filename in lower case |
$F | -filename in upper case |
$T | -a character according to the stream type (file: f ,
- Video CD: v , DVD: d , URL: u )
- |
$p | -the "p" character (if a movie is playing and the font has the "p" - character) |
$s | -the "s" character (if the movie is stopped and the font has the "s" - character) |
$e | -the "e" character (if playback is paused and the font has the "e" - character) |
$x | -movie width |
$y | -movie height |
$C | -name of the codec used |
||
). You
- should have a font for normal characters and a different font for symbols.
- See the section about symbols for more
- information.
- The following entries can be used in the 'window = sub
'
- . . . 'end
' block.
base = image, X, Y, width, height
- X
,Y
position on the screen (0,0
- is the top left corner). You can specify -1
for center and
- -2
for right (X
) and bottom (Y
). The
- window will be as large as the image. width
and
- height
denote the size of the window; they are optional (if
- they are missing, the window is the same size as the image).background = R, G, B
R
, G
and B
specifies
- the red, green and blue component of the color (each of them is a decimal
- number from 0 to 255).As mentioned earlier, the menu is displayed using two images. Normal menu
- entries are taken from the image specified by the base
item,
- while the currently selected entry is taken from the image specified by the
- selected
item. You must define the position and size of each menu
- entry through the menu
item.
These are the entries that can be used in the 'window = menu
'
- . . . 'end
' block.
base = image
selected = image
menu = X, Y, width, height, message
- X,Y
position and the size of a menu entry in the
- image. message
is the message to be generated when the mouse
- button is released over the entry.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.
- -The font description file (with .fnt
extension) can have comment
- lines starting with ';
'. The file must have a line in the
- form
image = image
image
is the name of the image file to be used for the
- font (you do not have to specify the extension)."char" = X, Y, width, height
- X
and Y
specify the position of the
- char
character in the image (0,0
is the upper left
- corner). width
and height
are the dimensions of
- the character in pixels.This example defines the A, B, C characters using font.png
.
--; 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 -- |
-
Some characters have special meanings when returned by some of the variables - used in dlabel. 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.
- -The following table lists all the characters that can be used to display - symbols (and thus require a different font).
- -Character | Symbol |
---|---|
p | -play |
s | -stop |
e | -pause |
n | -no sound |
m | -mono sound |
t | -stereo sound |
f | -stream is a file |
v | -stream is a Video CD |
d | -stream is a DVD |
u | -stream is a URL |
These are the messages that can be generated by buttons, potmeters and menu - entries.
- -Note: Some of the messages might not work as expected - (or not work at all). As you know, the GUI is under development.
- - --- - --
-- evNext
-- Jump to next track in the playlist.
- -- evPause
-- Pause playing.
- -- evPauseSwitchToPlay
-- Forms a switch together with
- -evPlaySwitchToPause
. 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 -evPlaySwitchToPause
button is displayed (to indicate that the - button can be pressed to continue playing).- evPlay
-- Start playing.
- -- evPlaySwitchToPause
-- The opposite of
- -evPauseSwitchToPlay
. This message starts - playing and the image for theevPauseSwitchToPlay
button is - displayed (to indicate that the button can be pressed to pause - playing).- evPrev
-- Jump to previous track in the playlist.
- -- evStop
-- Stop playing.
-
-- - --
-- evBackward10sec
-- evBackward1min
-- evBackward10min
-- Seek backward 10 seconds / 1 minute / 10 minutes.
- -- evForward10sec
-- evForward1min
-- evForward10min
-- Seek forward 10 seconds / 1 minute / 10 minutes.
- -- evSetMoviePosition
-- Seek to position (can be used by a potmeter; the relative value (0-100%) - of the potmeter is used).
-
-- - --
-- evDoubleSize
-- Set the movie window to double size.
- -- evFullScreen
-- Switch fullscreen mode on/off.
- -- evNormalSize
-- Set the movie window to its normal size.
-
-- - --
-- evDecAudioBufDelay
-- Decrease audio buffer delay.
- -- evDecBalance
-- Decrease balance.
- -- evDecVolume
-- Decrease volume.
- -- evIncAudioBufDelay
-- Increase audio buffer delay.
- -- evIncBalance
-- Increase balance.
- -- evIncVolume
-- Increase volume.
- -- evMute
-- Mute/unmute the sound.
- -- evSetBalance
-- Set balance (can be used by a potmeter; the relative value (0-100%) of - the potmeter is used).
- -- evSetVolume
-- Set volume (can be used by a potmeter; the relative value (0-100%) of - the potmeter is used).
-
-- - - diff -r 85f0917f80cb -r e66868a44067 DOCS/en/sound.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 @@ - - - - --
-- evAbout
-- Open the about window.
- -- evDropSubtitle
-- Disables the currently used subtitle.
- -- evEqualizer
-- Turn the equalizer on/off.
- -- evExit
-- Quit the program.
- -- evIconify
-- Iconify the window.
- -- evLoad
-- Load a file (by opening a file browser window, where you can choose a - file).
- -- evLoadPlay
-- Does the same as
- -evLoad
, but it automatically starts - playing after the file is loaded.- evLoadSubtitle
-- Loads a subtitle file (with the fileselector)
- -- evLoadAudioFile
-- Loads an audio file (with the fileselector)
- -- evNone
-- Empty message, it has no effect (except maybe in CVS versions :-)).
- -- evPlayList
-- Open/close the playlist window.
- -- evPlayDVD
-- Tries to open the disc in the given DVD-ROM drive.
- -- evPlayVCD
-- Tries to open the disc in the given CD-ROM drive.
- -- evPreferences
-- Open the preferences window.
- -- evSetAspect
-- Sets displayed image aspect.
- -- evSetURL
-- Displays the URL dialog window.
- -- evSkinBrowser
-- Open the skin browser window.
-
MPlayer's audio interface is called libao2. It currently - contains these drivers:
- -/dev/audio
) for BSD and Solaris8 usersLinux sound card drivers have compatibility problems. This is because MPlayer - relies on an in-built feature of properly 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.
- -Other media players like aviplay - or xine 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.
- -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).
- -If you happen to have a bad audio driver, try the -autosync
- option, it should sort out your problems. See the man page for detailed
- information.
Some notes:
- --ao oss
(this is the
- default). If you experience glitches, halts or anything out of the
- ordinary, try -ao sdl
(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).-ao alsa5
, since ALSA 0.5 has buggy OSS emulation code, and
- will crash MPlayer with a message like this:DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
-ao sun
option,
- otherwise neither video nor audio will work.hdparm -u1 /dev/cdrom
(man hdparm
). This is
- generally beneficial and described in more detail in the
- CD-ROM section.On Linux, a 2.4.x kernel is highly recommended. Kernel 2.2 is not tested.
- -Linux sound drivers are primarily provided by the free version of OSS. These - drivers have been superceded by ALSA - (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 - 4Front Technologies. They also support - several non-Linux systems.
- -SOUND CARD | -DRIVER | -Max kHz | -Max Channels | -Max Opens[1] | -|||
---|---|---|---|---|---|---|---|
OSS/Free | -ALSA | -OSS/Pro | -other | -||||
VIA onboard (686/A/B, 8233, 8235) | -via82cxxx_audio | -snd-via82xx | -- | - | 4-48 kHz or 48 kHz only, depending on the chipset | -- | - |
Aureal Vortex 2 | -none | -none | -OK | -Linux Aureal Drivers - buffer size increased to 32k |
- 48 | -4.1 | -5+ | -
SB Live! | -Analog OK, SP/DIF not working | -Both OK | -Both OK | -Creative's OSS driver (SP/DIF support) | -192 | -4.0/5.1 | -32 | -
SB 128 PCI (es1371) | -OK | -? | -- | - | 48 | -stereo | -2 | -
SB AWE 64 | -max 44kHz | -48kHz sounds bad | -- | - | 48 | -- | - |
GUS PnP | -none | -OK | -OK | -- | 48 | -- | - |
Gravis UltraSound ACE | -not OK | -OK | -- | - | 44 | -- | - |
Gravis UltraSound MAX | -OK | -OK (?) | -- | - | 48 | -- | - |
ESS 688 | -OK | -OK (?) | -- | - | 48 | -- | - |
C-Media cards (CMI8338/8738) | -OK | -OK SP/DIF is supported with ALSA 0.9.x | -? | -- | 44 | -stereo | -1 | -
Yamaha cards (*ymf*) | -not OK (?) (maybe -ao sdl ) |
- OK only with ALSA 0.5 with OSS emulation AND
- -ao sdl (!) (?) |
- - | - | ? | -- | - |
Cards with envy24 chips (like Terratec EWS88MT) | -? | -? | -OK | -- | ? | -- | - |
PC Speaker or DAC | -OK | -none | -- | Linux PC speaker OSS driver | -The driver emulates 44.1, maybe more. | -mono | -1 | -
[1]: the number of applications that are able to use the - device at the same time.
- -Feedback to this document is welcome. Please tell us how MPlayer - and your sound card(s) worked together.
- - -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 -af filter1,filter2,...
- 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.
Example:
- mplayer -af resample,pan movie.avi
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.
- -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:
- - mplayer -af resample=11025,pan=1:0.5:0.5 -channels 1
- -srate 11025 media.avi
would set the output frequency of the resample filter to 11025Hz and downmix - the audio to 1 channel using the pan filter.
- -The overall execution of the filter layer is controlled using the
- -af-adv
option. This option has two suboptions:
force
0
1
2
3
4
5
6
7
list
The filter layer is also affected by the following generic options: - -
-v
-channels
-srate
-format
MPlayer fully supports sound up/down-sampling through the
- resample
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:
srate <8000-192000>
sloppy
srate
. This option can be
- used if the startup of the playback is extremely slow. It is enabled by
- default.type <0-2>
0
and 2
that
- selects which resampling method to use. Here 0
represents
- linear interpolation as resampling method, 1
represents
- resampling using a poly-phase filter-bank and integer processing and
- 2
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 2
but this method also suffers from
- the highest CPU load.Example:
- mplayer -af resample=44100:0:0
would set the output frequency of the resample filter to 44100Hz using exact - output frequency scaling and linear interpolation.
- - -The channels
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:
nch <1-6>
1
and 6
that is used for
- setting the number of output channels. This option is required, leaving it
- empty results in a runtime error.nr <1-6>
1
and 6
that is used for
- specifying the number of routes. This parameter is optional. If it is
- omitted the default routing is used.from1:to1:from2:to2:from3:to3...
0
and 5
that define
- where each channel should be routed.If only nch
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.
Example 1:
- mplayer -af channels=4:4:0:1:1:0:2:2:3:3 media.avi
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.
- -Example 2:
- mplayer -af channels=6:4:0:0:0:1:0:2:0:3 media.avi
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.
- - -The format
filter converts between different sample formats. It
- is automatically enabled when needed by the sound card or another filter.
bps <number>
1
, 2
or 4
and denotes the
- number of bytes per sample. This option is required, leaving it empty
- results in a runtime error.f <format>
alaw
, mulaw
or
- imaadpcm
, float
or int
,
- unsigned
or signed
, le
or
- be
(little or big endian). This option is required, leaving it
- empty results in a runtime error.Example:
- mplayer -af format=4:float media.avi
would set the output format to 4 bytes per sample floating point - data.
- - -The delay
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:
d1:d2:d3...
To calculate the required delay for the different channels do as follows:
- -Example:
- mplayer -af delay=10.5:10.5:0:0:7:0 media.avi
would delay front left and right by 10.5ms, the two rear channels and the sub - by 0ms and the center channel by 7ms.
- - -Software volume control is implemented by the volume
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:
v <-200 - +60>
-200
and +60
- which represents the volume level in dB. The default level is 0dB.c
Example:
- mplayer -af volume=10.1:0 media.avi
would amplify the sound by 10.1dB and hard-clip if the sound level is too - high.
- -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.
- - -The equalizer
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:
Band No. | Center frequency |
0 | 31.25 Hz |
1 | 62.50 Hz |
2 | 125.0 Hz |
3 | 250.0 Hz |
4 | 500.0 Hz |
5 | 1.000 kHz |
6 | 2.000 kHz |
7 | 4.000 kHz |
8 | 8.000 kHz |
9 | 16.00 kHz |
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.
- -This filter has 10 parameters:
- -g1:g2:g3...g10
-12
and +12
- representing the gain in dB for each frequency band.Example:
- mplayer -af equalizer=11:11:10:5:0:-12:0:5:12:12 media.avi
would amplify the sound in the upper and lower frequency region while - canceling it almost completely around 1kHz.
- - -Use the pan
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:
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:
- -nch <1-6>
1
and 6
and is used for
- setting the number of output channels. This option is required, leaving it
- empty results in a runtime error.l00:l01:l02:..l10:l11:l12:...ln0:ln1:ln2:...
0
and 1
.
- l[i][j]
determines how much of input channel j is mixed into
- output channel i.Example 1:
- mplayer -af pan=1:0.5:0.5 -channels 1 media.avi
would down-mix from stereo to mono.
- -Example 2:
- mplayer -af pan=3:1:0:1:0.5:0.5 -channels 3 media.avi
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).
- - -The sub
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:
fc <20-300>
ch <0-5>
0
and 5
which
- determines the channel number in which to insert the sub-channel audio.
- The default is channel number 5
. Observe that the number of
- channels will automatically be increased to ch
if
- necessary.Example:
- mplayer -af sub=100:4 -channels 5 media.avi
would add a sub-woofer channel with a cutoff frequency of 100Hz to output - channel 4.
- -Matrix encoded surround sound can be decoded by the surround
- 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:
d <0-1000>
0
and
- 1000
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 d
- should be set to 15ms if d1 <= d2 and to 15 + 5*(d1-d2) if d1 > d2.
- The default value for d
is 20ms.Example:
- mplayer -af surround=15 -channels 4 media.avi
would add surround sound decoding with 15ms delay for the sound to the rear - speakers.
- - -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 -aop
option which takes a
- list=plugin1,plugin2,...
argument. The list
argument
- is required and determines which plugins should be used and in which order they
- should be executed. Example:
mplayer media.avi -aop list=resample,format
would run the sound through the resampling plugin followed by the format - plugin.
- -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:
- - mplayer media.avi -aop
- list=resample,format:fout=44100:format=0x8
would set the output frequency of the resample plugin to 44100Hz and the - output format of the format plugin to AFMT_U8.
- -Currently audio plugins cannot be used in MEncoder.
- - -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 autodetects whether or not usage of this plugin is necessary.
- This plugin has one option, fout
, which is used for setting the
- desired output sample frequency. The value is given in Hz, and defaults to
- 48kHz.
Usage:
- mplayer media.avi -aop list=resample:fout=<required
- frequency in Hz, like 44100>
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.
- - -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.
- -Usage:
- mplayer media.avi -aop list=surround
If your sound card driver does not support signed 16bit int
data type,
- this plugin can
- be used to change the format to one which your sound card can understand. It
- has one option, format
, which can be set to one of the numbers
- found in libao2/afmt.h
. 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.
Usage:
- mplayer media.avi -aop
- list=format:format=<required output format>
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.
- -If you have a file with a consistent A/V sync fault, use the +/-
- keys to adjust timings on-the-fly instead. Usage of the OSD is recommended
- to make this easier.
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 volume
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.
Usage:
- mplayer media.avi -aop
- list=volume:volume=<0-255>
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.
- -Usage:
- mplayer media.avi -aop
- list=volume:softclip
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.
- -Usage:
- mplayer media.avi -aop list=extrastereo
- mplayer media.avi -aop list=extrastereo:mul=3.45
The default coefficient (mul
) 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.
This plugin maximizes the volume without distorting the sound.
- -Usage:
- mplayer media.avi -aop list=volnorm
-
-
-
-
diff -r 85f0917f80cb -r e66868a44067 DOCS/en/users_against_developers.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 @@
-
-
-
-
There are two major topics which always cause huge dispute and flame on the - mplayer-users - mailing list. Number one is the topic of the
- - -The background: The GCC 2.95 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, Red Hat included a heavily - patched CVS version of GCC in their distribution and named it 2.96. 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 - Mandrake also followed Red Hat's example and started shipping GCC 2.96 - with their Linux-Mandrake 8.0 series.
- -The statements: The GCC team disclaimed any link with GCC 2.96 and - issued an official response to - GCC 2.96. Many developers around the world began having problems with GCC 2.96, - and started recommending other compilers. Examples are - MySQL, - avifile and - Wine. - Other interesting links are - - Linux kernel news flash about kernel 2.4.17 and - Voy Forum. - 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.
- -You can read about the other side of the story - at this site. - 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 silently ignores the - whole assembler block. This is supposedly fixed now, GCC prints a warning instead - of skipping the block.
- -The present: 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 --disable-gcc-checking
- flag to configure. Remember that you are on your own and do not report any
- bugs. 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.
If you have problems with GCC 2.96, you can get 2.96-85 packages from the - Red Hat ftp server, or just go for the - 3.0.4 packages offered for version 7.2 and later. You can also get - gcc-3.2-10 packages - (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:
- -gcc-core-XXX.tar.gz
where XXX
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 gcc-XXX.tar.gz
may better suit your needs.tar -xvzf gcc-core-XXX.tar.gz
mkdir gcc-build
cd gcc-build
- ../gcc-XXX/configure
make bootstrap
make install
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 divx_vbr.c
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.
Another impediment to binary redistribution were compiletime optimizations
- for CPU architecture. MPlayer now supports runtime CPU detection (specify
- the --enable-runtime-cpudetection
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.
We dislike the fact that nVidia - only provides binary drivers (for use with XFree86), which are often buggy. - We have had many reports on - mplayer-users - 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 - - nVidia Linux Forum. - 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.
- - -Joe Barr became infamous by writing a less than favorable - - MPlayer review. He found MPlayer hard to install, but then - again he is not very fond of - reading documentation. - 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 - 10 Linux predictions for 2002 - In a followup - review of xine - 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:
- -- 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." -- -
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:
- -Marc Rassbach has something to say - about the man.
- -- 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. -- -
A quote - from Robert Munro on the - mplayer-users - mailing list:
- --- - - diff -r 85f0917f80cb -r e66868a44067 DOCS/en/video.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 @@ - - - - -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).
- -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.
-
It is VERY recommended to check if the MTRR registers are set up properly, - because they can give a big performance boost.
- -Do a 'cat /proc/mtrr
':
- --($:~)-- cat /proc/mtrr
- reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
- reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1
It's right, shows my Matrox G400 with 16MB memory. I did this from - XFree 4.x.x , which sets up MTRR registers automatically.
- -If nothing worked, you have to do it manually. First, you have to find the - base address. You have 3 ways to find it:
- -(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
- (--) SVGA: Linear framebuffer at 0xD8000000
- 01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
- Memory at d8000000 (32-bit, prefetchable)
-
dmesg
):
- mga_mem_base = d8000000
Then let's find the memory size. This is very easy, just convert video ram - size to hexadecimal, or use this table:
- -1 MB | 0x100000 | ||
2 MB | 0x200000 | ||
4 MB | 0x400000 | ||
8 MB | 0x800000 | ||
16 MB | 0x1000000 | ||
32 MB | 0x2000000 |
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:
- - - echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr
Not all CPUs support MTRRs. For example older K6-2's [around 266MHz,
- stepping 0] doesn't support MTRR, but stepping 12's do ('cat
- /proc/cpuinfo
' to check it').
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.
- -In order to make this work, be sure to check the following:
- - (II) Loading extension XVideo
in /var/log/XFree86.0.log
- -NOTE: this loads only the XFree86's extension. In a good install, this - is always loaded, and doesn't mean that the card's XVideo support is - loaded!
-- 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...) --
It must support YUY2 packed, and YV12 planar pixel formats to be - usable with MPlayer.
-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, crash with YV12. If you experience strange effects - using -vo xv, try SDL (it has XVideo too) and see if it helps. Check the - SDL section for details.
- -OR, try the NEW -vo tdfxfb driver! See the - tdfxfb section.
- - -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.
- -NOTE: 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.
- - -nVidia isn't a very good choice under Linux (according to nVidia, this is - not true).. 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.
- -As far as I know the latest XFree86 driver contains XVideo support for - GeForce 2 and 3.
- -Riva128 cards don't have XVideo support even with the nVidia driver :( - Complain to nVidia.
- - -These cards can be found in many laptops. You must use XFree86 4.3.0 or - above, or else use Stefan Seyfried's - Xv-capable drivers. - Just choose the one that applies to your version of XFree86.
- -XFree86 4.3.0 includes Xv support, yet Bohdan Horst sent a small - patch - 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.
- -To allow playback of DVD sized content change your XF86Config like this:
- -Section "Device"
- [...]
- Driver "neomagic"
- Option "OverlayMem" "829440"
- [...]
- EndSection
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.
- - -If you want to use Xv with a Kyro based card (for example Hercules Prophet - 4000XT), you should download the drivers from the - PowerVR site.
- - -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).
- - -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 (not - recommended).
- -There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was - introduced with XFree 4.0.1.
- -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.
- -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.
- -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.
- - -First make sure X loads the DGA extension, see in /var/log/XFree86.0.log:
- - (II) Loading extension XFree86-DGA
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.
- -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 :(
- -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:
- -
- chown root /usr/local/bin/mplayer
- chmod 750 /usr/local/bin/mplayer
- chmod +s /usr/local/bin/mplayer
Now it works as a simple user, too.
- -- Warning: security risk- -
- This is a big security risk! Never 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. -
Now use the -vo dga
option, and there you go (hope so :))!
- You should also try if the -vo sdl:dga
option works for you. It's
- much faster.
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
- /etc/X11/XF86Config
(/etc/X11/XF86Config-4
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:
- /var/log/XFree86.0.log
.
These entries are known to work fine with a Riva128 chip, using the
- nv.o
X server driver module.
- 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 -- - -
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.
- - -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.
- -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.
- -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.
- -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.
- - -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.
- -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.
- -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.
- -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.
- -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.
- - -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.
- -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.
- -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? :)
- -It also helps with some buggy drivers/cards if the video is jerky - (not slow system problem), or audio is lagging.
- -SDL video output supports displaying subtitles under the movie, on the (if - present) black bar.
- -There are several command line options for SDL:
--vo sdl:name
-ao sdl:name
-noxv
-forcexv
SDL only keys: | |||
c | cycles available fullscreen modes | ||
n | changes back to normal mode |
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.
- -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 -sws 4
- option which will produce bad quality, but is somewhat faster.
SVGAlib incorporates EGAlib, and MPlayer has the possibility to - display any movie in 16 colors, thus usable in the following sets:
- -The bpp (bits per pixel) value must be set to 4 by hand:
- -bpp 4
- The movie probably must be scaled down to fit in EGA mode:
- -vf scale=640:350
or
- -vf scale=320:200
- For that we need fast but bad quality scaling routine:
- -sws 4
- Maybe automatic aspect correction has to be shut off:
- -noaspect
NOTE: according to my experience the best image quality on EGA
- screens can be achieved by decreasing the brightness a bit: -vf
- eq=-20:0
. I also needed to lower the audio samplerate on my box,
- because the sound was broken on 44kHz: -srate 22050
.
You can turn on OSD and subtitles only with the expand
filter,
- see the man page for exact parameters.
Whether to build the FBdev target is autodetected during ./configure . - Read the framebuffer documentation in the kernel sources - (Documentation/fb/*) for more information.
- -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 ;))
- -The FBdev output takes some additional parameters above the others:
- --fb
-fbmode
-fbmodeconfig
-monitor_hfreq
-monitor_vfreq
-monitor_dotclock
example.conf
If you want to change to a specific mode, then use
- - mplayer -vm -fbmode (NameOfMode) filename
-vf scale
).
- You can't use 8bpp (or less) modes.echo -e
- '\033[?25l'
or setterm -cursor off
setterm -blank 0
echo -e '\033[?25h'
- or setterm -cursor on
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.
- - -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.
- -NOTE: This is Linux only! On non-Linux (tested on FreeBSD) systems, - you can use VIDIX instead!
- -Installation:
-cd drivers
- make
/dev/mga_vid
device:
- mknod /dev/mga_vid c 178 0
and load the driver with
-insmod mga_vid.o
dmesg
- command. If it's bad, use the mga_ram_size
option
- (rmmod mga_vid
first), specify card's memory size in MB:
- insmod mga_vid.o mga_ram_size=16
/etc/modules.conf
:
- alias char-major-178 mga_vid
Then copy the mga_vid.o
module to the appropriate place
- under /lib/modules/<kernel version>/somewhere
.
Then run
-depmod -a
configure
will
- detect /dev/mga_vid
and build the 'mga' driver. Using it from
- MPlayer goes by -vo mga
if you have matroxfb console,
- or -vo xmga
under XFree86 3.x.x or 4.x.x.The mga_vid driver cooperates with Xv.
- -The /dev/mga_vid
device file can be read (for example by
- cat /dev/mga_vid
) for some info, and written for brightness
- change: echo "brightness=120" > /dev/mga_vid
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 ./configure --enable-tdfxfb
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.
- -Unfortunately not all drivers support this feature. The Utah-GLX drivers - (for XFree86 3.3.6) support it for all cards. See - http://utah-glx.sourceforge.net - for details about how to install it.
- -XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards, - 4.2.0 or later supports Rage128. See - http://dri.sourceforge.net - for download and installation instructions.
- -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):
- -
- export $__GL_SYNC_TO_VBLANK=1
-
AAlib 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.
- -You can use some keys in the AA Window to change rendering options: | |||
1 | decrease contrast | ||
2 | increase contrast | ||
3 | decrease brightness | ||
4 | increase brightness | ||
5 | switch fast rendering on/off | ||
6 | set dithering mode (none, error distribution, Floyd Steinberg) | ||
7 | invert image | ||
a | toggles between aa and MPlayer control) |
The following command line options can be used:
--aaosdcolor=V
-aasubcolor=V
where V can be: (0/normal, 1/dark, 2/bold, 3/bold font, 4/reverse, - 5/special)
AAlib itself provides a large sum of options. - Here are some important:
--aadriver
-aaextended
-aaeight
-aahelp
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
- -vf 1bpp
option to get graphics on hgafb:)
Use the -framedrop
option if your computer isn't fast enough to
- render all frames!
Playing on terminal you'll get better speed and quality using the Linux
- driver, not curses (-aadriver linux
). But therefore you need write access on
- /dev/vcsa<terminal>
. That isn't autodetected by aalib, but vo_aa tries
- to find the best mode. See
- http://aa-project.sourceforge.net/tune/
- for further tuning issues.
This driver was designed and introduced as a generic driver 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.
- VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998 (Page
- 70) says:
- Dual-Controller Designs- -
- 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. -
So you have chances to get working TV-out by using this driver.
- (I guess that TV-out frequently is standalone head or standalone output
- at least.)
monitor_hfreq
,
- monitor_vfreq
, monitor_dotclock
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
- all your monitor options.Don't use this driver with GCC 2.96! It won't work!
- --vo vesa:opts
-double
option. Note: you may omit these parameters to enable
- autodetection of dga mode.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 -fs -zoom
. Most cards
- have hardware scaling support, use the -vo xv
output for them,
- or -vo xmga
for Matroxes.
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!
- -Software scaling is very slow, you better try changing video modes instead. - It's very simple. See the DGA section's modelines, - and insert them into your XF86Config.
- --vm
option. It will
- change to a resolution your movie fits in. If it doesn't: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.
- - -VIDIX is the abbreviation for VIDeo Interface for *niX. - 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.
- -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.
- --vo xvidix
-vo vesa:vidix
(Linux only) and -vo fbdev:vidix
When VIDIX is used as subdevice (-vo vesa:vidix
) then
- video mode configuration is performed by video output device
- (vo_server in short). Therefore you can pass into command line of
- MPlayer the same keys as for vo_server. In addition it understands
- -double
key as globally visible parameter. (I recommend using
- this key with VIDIX at least for ATI cards).
- As for -vo xvidix
: currently it recognizes the following
- options: -fs -zoom -x -y -double
.
Also you can specify VIDIX's driver directly as third subargument in command
- line:
-
- mplayer -vo xvidix:mga_vid.so -fs -zoom -double
- file.avi
- or
- mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp
- 32 file.avi
-
- But it's dangerous, and you shouldn't do that. In this case given driver will
- be forced and result is unpredictable (it may freeze 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.
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.
- -Since VIDIX requires direct hardware access you can either run it as root or - set the SUID bit on the MPlayer binary (Warning: This is a security - risk!). Alternatively, you can use a special kernel module, like this:
- -svgalib_helper
directory (it can
- be found inside the svgalib-1.9.17/kernel/
directory if you've
- downloaded the source from the svgalib site) and insmod it.svgalib_helper
directory to
- mplayer/main/libdha/svgalib_helper
.libdha/Makefile
.Currently most ATI cards are supported natively, from Mach64 to the newest - Radeons.
- -There are two compiled binaries: radeon_vid
for Radeon and
- rage128_vid
for Rage 128 cards. You may force one or let the
- VIDIX system autoprobe all available drivers.
Matrox G200,G400,G450 and G550 have been reported to work.
- -The driver supports video equalizers and should be nearly as fast as the - Matrox framebuffer.
- - -There is a driver available for the Trident Cyberblade/i1 chipset, which - can be found on VIA Epia motherboards.
- -The driver was written and is maintained by Alastair M. Robinson, who offers - the very latest driver versions for download from his - homepage. - The drivers are added to MPlayer with only a short delay, so CVS should always - be up to date.
- - -Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, - no one has tested it, so reports are welcome.
- - -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.
- -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.
- -Reports awaited!
- -This is a very experimental code too, as the nvidia_vid.
- -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)
- -Reports awaited!
- - -"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." - quoted from - http://www.directfb.org.
- -I'll exclude DirectFB features from this section.
- -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.
- -Always try to use the newest version of DirectFB. You can use DirectFB
- options on the command line, using the -dfbopts
option.
- Layer selection can be done by the subdevice method, e.g.: -vo
- directfb:2
(layer -1 is default: autodetect)
Please read the main DirectFB section for general - informations.
- -This video output driver will enable CRTC2 (on the second head) on the - Matrox G400/G450/G550 cards, displaying video independently of the - first head.
- -Instructions on how to make it work can be found in the - tech section - or directly on Ville Syrjala's - home page.
- -Note: the first DirectFB version with which we could kick this working was
- 0.9.17 (it's buggy, needs that surfacemanager
patch from
- the URL above). Anyway, porting of the CRTC2 code to mga_vid is
- underway.
MPlayer supports cards with the Siemens DVB chipset from vendors like - Siemens, Technotrend, Galaxis or Hauppauge. The latest DVB drivers are - available from the Linux TV site. If you - want to do software transcoding you should have at least a 1GHz CPU.
- -Configure should detect your DVB card. If it did not, force detection with
- -- ./configure --enable-dvb -- -
If you have ost headers at a non-standard path, set the path with
- -- ./configure --with-extraincdir=<DVB source directory>/ost/include -- -
Then compile and install as usual.
- -Hardware decoding (playing standard MPEG1/2 files) can be done with this - command:
- -- mplayer -ao mpegpes -vo mpegpes file.mpg|vob -- -
Software decoding or transcoding different formats to MPEG1 can be achieved - using a command like this:
- -- mplayer -ao mpegpes -vo mpegpes yourfile.ext - mplayer -ao mpegpes -vo mpegpes -vf expand yourfile.ext -- -
Note that DVB cards only support heights 288 and 576 for PAL or 240 and 480
- for NTSC. You must rescale for other heights by adding
- scale=width:height
with the width and height you want to the
- -vf
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:
- mplayer -ao mpegpes -vo mpegpes -vf scale=512:576 -- -
If you have a widescreen movie and you do not want to scale it to full height,
- you can use the expand=w:h
filter to add black bands. To view a
- 640x384 DivX, try:
- mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 file.avi -- -
If your CPU is too slow for a full size 720x576 DivX, try downscaling:
- -- mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 file.avi -- -
If speed does not improve, try vertical downscaling, too:
- -- mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 file.avi -- -
For OSD and subtitles use the OSD feature of the expand filter. So, instead
- of expand=w:h
or expand=w:h:x:y
, use
- expand=w:h:x:y:1
(the 5th parameter :1
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 -subpos <0-100>
option
- to adjust this (-subpos 80
is a good choice).
In order to play non-25fps movies on a PAL TV or with a slow CPU, add the
- -framedrop
option.
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:
- --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 -- -
First you need to pass the dvb_shutdown_timeout=0
parameter
- to the kernel module dvb-core
, or MPlayer will die after 10
- seconds.
You should also have the programs scan
and
- szap/tzap/czap
installed; they are all included in the drivers
- package.
Verify that your drivers are working properly with a program such as
- dvbstream
- (that is the base of the DVB input module).
Now you should compile a ~/.mplayer/channels.conf
file,
- with the syntax accepted by szap/tzap/czap
, or have
- scan
compile it for you.
Make sure that you have have only Free to Air channels in your
- channels.conf
file, or MPlayer will hang on the others.
To show the first of the channels present in your list, run
- -- mplayer dvb:// -- -
If you want to watch a specific channel, such as R1
, run
- mplayer dvb://R1 -- -
To change channels press the 'h'
(next) and 'k'
- (previous) keys, or use the OSD
menu (requires a working
- OSD subsystem).
If your ~/.mplayer/menu.conf
contains a <dvbsel>
- entry, such as the one in the example file etc/dvb-menu.conf
- (that you can use to overwrite ~/.mplayer/menu.conf
), the
- main menu will show a sub-menu entry that will permit you to choose
- one of the channels present in your channels.conf
.
If you want to save a program to disk you can use
- -- mplayer -dumpfile r1.ts -dumpstream dvb://R1 -- -
If you want to record it in a different format (re-encoding it) instead you - can run a command such as
- -- mencoder -o r1.avi -ovc xvid -xvidenctopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -vf ci dvb://R1 -- -
Read the man page for a list of options that you can pass to the DVB - input module.
- - -If you have questions or want to hear feature announcements and take part in - discussions on this subject, join our - MPlayer-DVB - mailing list. Please remember that the list language is English.
- -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).
- - -MPlayer supports hardware accelerated playback with the Creative DXR2 - card.
- -First of all you will need properly installed DXR2 drivers. You can find - the drivers and installation instructions at the - DXR2 Resource Center site.
- --vo dxr2
-vo dxr2:x11
or -vo dxr2:xv
-dxr2 <option1:option2:...>
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.
- -Please see the manpage for available options.
- - -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.
- -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 DXR3 & Hollywood Plus for - Linux site. Configure should detect your card automatically, compilation - should go without problems.
- --vo dxr3:prebuf:sync:norm=x:<device>
overlay
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.prebuf
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.-framedrop
option to avoid further loss of sync.sync
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.norm=x
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.<device>
= device number to use if you have more than one
- em8300 card.
- :prebuf:sync
seems to work great when playing DivX movies.
- People have reported problems using the prebuf
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 :sync
a
- try.-ao oss:/dev/em8300_ma-X
X
is the device number
- (0 if one card).-aop list=resample:fout=xxxxx
-ac hwac3
).-vf lavc/fame
-vf lavc/fame
.-vf lavc=<quality>:25
,
- 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.-vf expand=-1:-1:-1:-1:1
-ac hwac3
-ao oss
option
- above, it must be used to specify the DXR3's output instead of
- a soundcard.This is a display-driver (-vo zr
) 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 libavcodec is
- used, and required. With the special cinerama 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 -framedrop
- if your machine is too slow. Note: My AMD K6-2 350MHz is (with
- -framedrop
) quite adequate for watching VCD sized material and
- downscaled movies.
This driver talks to the kernel driver available at - http://mjpeg.sourceforge.net, 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
- -- ./configure --enable-zr -- -
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
- -- mplayer -zrhelp -- -
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 512x272
and
- you want to view it fullscreen on your DC10+. There are three main
- possibilities, you may scale the movie to a width of 768
,
- 384
or 192
. For performance and quality reasons,
- I would choose to scale the movie to 384x204
using the fast
- bilinear software scaler. The commandline is
- mplayer -vo zr -sws 0 -vf scale=384:204 movie.avi -- -
Cropping can be done by the crop
filter and by
- this driver itself. Suppose that a movie is too wide for display on your
- Buz and that you want to use -zrcrop
to make the movie less
- wide, then you would issue the following command
- mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi -- -
if you want to use the crop
filter, you would do
- mplayer -vo zr -vf crop=720:320:80:0 benhur.avi -- -
Extra occurrences of -zrcrop
invoke cinerama 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 /dev/video1
and the right one is connected to your DC10+ at
- /dev/video0
. The movie has a resolution of 704x288
.
- Suppose also that you want the right beamer in black and white and that
- the left beamer should have JPEG frames at quality 10
,
- then you would issue the following command
- mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ - -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi -- -
You see that the options appearing before the second -zrcrop
- only apply to the DC10+ and that the options after the second
- -zrcrop
apply to the Buz. The maximum number of MJPEG cards
- participating in cinerama is four, so you can build a 2x2
- vidiwall.
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 - FIRST start XawTV, THEN start MPlayer, wait for - MPlayer to finish and THEN stop XawTV.
- - -This driver is capable of playback using the Blinkenlights UDP protocol. - If you don't know what Blinkenlights - is, you don't need this driver.
- - -Under Linux you have 2 methods to get G400 TV out working:
- -IMPORTANT: for Matrox G450/G550 TV-out instructions, please see the - next section!
- --vo x11 -fs -zoom
- options, but it will be SLOW, and has Macrovision copy protection
- enabled (you can "workaround" Macrovision using
- this perl
- script.TVout/matroxset
and type make
. Install
- matroxset
into somewhere in your PATH.fbset
installed, enter
- TVout/fbset
and type make
. Install
- fbset
into somewhere in your PATH.con2fb
installed, enter
- TVout/con2fb
and type make
. Install
- con2fb
into somewhere in your PATH.TVout/
directory in the MPlayer
- source, and execute ./modules
as root. Your text-mode console
- will enter into framebuffer mode (no way back!)../matroxtv
script. This will present you
- to a very simple menu. Press 2 and ENTER. 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.Yoh. Next task is to make the cursor on tty1 (or whatever) to disappear, - and turn off screen blanking. Execute the following commands:
- -echo -e '\033[?25l'
or setterm -cursor off
- setterm -blank 0
You possibly want to put the above into a script, and also clear
- the screen.. To turn the cursor back:echo -e '\033[?25h'
- or setterm -cursor on
Yeah kewl. Start movie playing with mplayer -vo mga -fs -screenw 640
- -screenh 512 <filename>
- (if you use X, now change to matroxfb with for example CTRL-ALT-F1!)
- Change 640x512 if you set the resolution to other.
- Enjoy the ultra-fast ultra-featured Matrox TV output (better than Xv)!
No one takes any responsibility, nor guarantee for any damage caused by this - documentation.
- -Cable for G400: 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)
- -Cable for G450: 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)
- -TV output support for these cards has only been recently introduced, and is - not yet in the mainstream kernel. Currently the mga_vid 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 BES - for explanation - on BES, please see the G400 section above) on TV. So you can only use - MPlayer's fbdev output driver at the present.
- -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.
- -The necessary kernel patch and the detailed howto is downloadable from - http://www.bglug.ca/matrox_tvout/
- - -Currently ATI doesn't want to support any of its TV-out chips under Linux, - because of their licensed Macrovision technology.
- -On other cards, just use the VESA driver, without - VIDIX. Powerful CPU is needed, though.
- -Only thing you need to do - have TV connector plugged in before - booting your PC since video BIOS initializes itself only once during - POST procedure.
- - -Check this URL.
- - -First, you MUST download the closed-source drivers from - http://nvidia.com. I will not describe the - installation and configuration process because it does not cover the - scope of this documentation.
- -After XFree86, XVideo, and 3D acceleration is properly working,
- edit your card's Device section in the XF86Config
file,
- according to the following example (adapt for your card/TV):
-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 -- -
Of course the important thing is the TwinView part.
- - -