mirror of https://github.com/mpv-player/mpv
2044 lines
74 KiB
HTML
2044 lines
74 KiB
HTML
<HTML>
|
||
|
||
<BODY>
|
||
|
||
<P>
|
||
<CENTER>MPlayer - Movie Player for LINUX (C) 2000-2001 Arpad Gereoffy (A'rpi/ESP-team)<BR>
|
||
<BR>
|
||
http://mplayer.sourceforge.net (or http://mplayer.dev.hu)</CENTER><BR>
|
||
</P>
|
||
|
||
<P><HR></P>
|
||
|
||
<P>
|
||
Table of Contents
|
||
</P>
|
||
|
||
<P><HR></P>
|
||
|
||
<PRE>
|
||
<P>
|
||
<A HREF="#1">1. Introduction</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#1.1">1.1 Overview +speed</A>
|
||
<A HREF="#1.2">1.2 History</A>
|
||
<A HREF="#1.3">1.3 Installation</A>
|
||
<A HREF="#1.4">1.4 What about the GUI?</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#2">2. Features</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#2.1">2.1 Video Formats, Audio & Video Codecs</A>
|
||
<A HREF="#2.1.1">2.1.1 Supported input formats</A>
|
||
<A HREF="#2.1.2">2.1.2 Supported audio & video codecs</A>
|
||
<A HREF="#2.1.2.1">2.1.2.1 OpenDivX</A>
|
||
<A HREF="#2.1.2.2">2.1.2.2 ffmpeg's DivX/libavcodec</A>
|
||
<A HREF="#2.1.4">2.1.4 Codec importing howto</A>
|
||
<A HREF="#2.1.4.1">2.1.4.1 VFW codecs</A>
|
||
<A HREF="#2.1.4.2">2.1.4.2 DirectShow codecs</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#2.2">2.2 Video & Audio output devices</A>
|
||
<A HREF="#2.2.1">2.2.1 Video output devices</A>
|
||
<A HREF="#2.2.1.1">2.2.1.1 Xv</A>
|
||
<A HREF="#2.2.1.1.1">2.2.1.1.1 3dfx cards</A>
|
||
<A HREF="#2.2.1.1.2">2.2.1.1.2 S3 cards</A>
|
||
<A HREF="#2.2.1.1.3">2.2.1.1.3 nVidia cards</A>
|
||
<A HREF="#2.2.1.1.4">2.2.1.1.4 ATI cards</A>
|
||
<A HREF="#2.2.1.2">2.2.1.2 DGA</A>
|
||
<A HREF="#2.2.1.2.1">2.2.1.2.1 Summary</A>
|
||
<A HREF="#2.2.1.2.2">2.2.1.2.2 What is DGA</A>
|
||
<A HREF="#2.2.1.2.3">2.2.1.2.3 Installing DGA support for MPlayer</A>
|
||
<A HREF="#2.2.1.2.4">2.2.1.2.4 Resolution switching</A>
|
||
<A HREF="#2.2.1.2.5">2.2.1.2.5 DGA & MPlayer</A>
|
||
<A HREF="#2.2.1.2.6">2.2.1.2.6 Features of the DGA driver</A>
|
||
<A HREF="#2.2.1.2.7">2.2.1.2.7 Speed issues</A>
|
||
<A HREF="#2.2.1.2.8">2.2.1.2.8 Known bugs</A>
|
||
<A HREF="#2.2.1.2.9">2.2.1.2.9 Future work</A>
|
||
<A HREF="#2.2.1.2.A">2.2.1.2.A Some modelines</A>
|
||
<A HREF="#2.2.1.2.B">2.2.1.2.B Bug Reports</A>
|
||
<A HREF="#2.2.1.3">2.2.1.3 SDL</A>
|
||
<A HREF="#2.2.1.4">2.2.1.4 SVGAlib</A>
|
||
<A HREF="#2.2.1.5">2.2.1.5 Framebuffer output (FBdev)</A>
|
||
<A HREF="#2.2.1.6">2.2.1.6 Matrox framebuffer (mga_vid)</A>
|
||
<A HREF="#2.2.1.7">2.2.1.7 SiS 6326 framebuffer (sis_vid)</A>
|
||
<A HREF="#2.2.1.8">2.2.1.8 3dfx YUV support</A>
|
||
<A HREF="#2.2.1.9">2.2.1.9 OpenGL output</A>
|
||
<A HREF="#2.2.2">2.2.2 Audio output devices</A>
|
||
+SOUNDCARDS
|
||
</P>
|
||
<P>
|
||
<A HREF="#3">3. Usage</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#3.1">3.1 Control from keyboard</A>
|
||
<A HREF="#3.2">3.2 Control from LIRC (Linux Infrared Remote Control)</A>
|
||
<A HREF="#3.3">3.3 Streaming from network or pipes</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#4">4. TV-out support</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#4.1">4.1 Matrox cards</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#5">5. Tuning</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#5.1">5.1 CD drives</A>
|
||
<A HREF="#5.2">5.2 DVD drives</A>
|
||
<A HREF="#5.3">5.3 MTRR</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#6">6. FAQ section</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#6.10">6.10 DVD FAQ</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#7">7. Misc OS'es</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#7.1">7.1 Debian packaging</A>
|
||
<A HREF="#7.2">7.2 FreeBSD</A>
|
||
<A HREF="#7.3">7.3 Solaris 8</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#A">A. Authors</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#B">B. Mailing lists</A>
|
||
</P>
|
||
<P>
|
||
<A HREF="#C">C. How to report bugs</A>
|
||
</P>
|
||
<P>
|
||
License+standard disc, maintainers
|
||
</P></PRE>
|
||
<P><HR></P>
|
||
|
||
<P><PRE>
|
||
<A NAME=1>1. Introduction
|
||
|
||
|
||
<A NAME=1.1>1.1. Overview
|
||
|
||
MPlayer is a movie player for LINUX. It plays most MPEG, AVI and ASF files,
|
||
supported by many native and Win32 DLL codecs. You can watch VCD, DVD and
|
||
even DivX movies too. The another big feature of mplayer is the wide range of
|
||
supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev,
|
||
but you can use SDL (and this way all drivers of SDL, for example AAlib) and
|
||
some lowlevel card-specific drivers (for Matrox) too! Most of them supports
|
||
software or hardware scaling, so you can enjoy movies in fullscreen. And what
|
||
about the nice big antialiased shaded subtitles (7 supported types!!!) with
|
||
hungarian, english, cyrillic, czech, korean fonts, and OSD?
|
||
|
||
I didn't write any codecs, just some players. I spent
|
||
a lot of time finding the best way to parse bad damaged input files
|
||
(both MPEG and AVI) and to do perfect A-V sync with seeking ability.
|
||
My 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 rebuild their indexes with the -idx option, thus enabling seeking!
|
||
As you see, stability and quality are the most important things for me,
|
||
but the speed is also amazing.
|
||
|
||
|
||
<A NAME=1.2>1.2. History
|
||
|
||
This began a year ago...
|
||
I've 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...
|
||
|
||
- mpg12play v0.1-v0.3:
|
||
The first try, hacked together in a half hour!
|
||
I've used libmpeg3 from www.heroinewarrior.com up to the version 0.3,
|
||
but there were image quality and speed problems with it.
|
||
- mpg12play v0.5-v0.87:
|
||
Mpeg codec replaced with DVDview by Dirk Farin, it was a great stuff,
|
||
but it was slow and was written in C++ (I hate C++!!!)
|
||
- mpg12play v0.9-v0.95pre5:
|
||
Mpeg codec was libmpeg2 (mpeg2dec) by Aaron Holtzman & Michel Lespinasse.
|
||
It's great, optimized very fast C code with perfect image quality and
|
||
100% MPEG standard conformance.
|
||
- MPlayer v0.3-v0.9:
|
||
It was a pack of two programs: mpg12playv0.95pre6 and my new simple AVI
|
||
player 'avip' based on avifile's Win32 DLL loader.
|
||
- MPlayer v0.10:
|
||
The MPEG and AVI player in a single binary!
|
||
- MPlayer v0.11:
|
||
Some new developers joined and from 0.11 the mplayer project is a team-work!
|
||
Added .ASF file support, and OpenDivX (see www.projectmayo.com) en/decoding.
|
||
- MPlayer v0.17 "The IdegCounter"
|
||
The release version of the 0.11pre after 4 months of heavy development!
|
||
Try it, and be amazed! Thousands of new features added... and of course
|
||
old code was improved too, bugs removed etc.
|
||
- MPlayer 0.18 "The BugCounter"
|
||
2 months since 0.17 and here's a new release.. Completed ASF support,
|
||
more subtitle formats, introduced libao (similar to libvo but to audio),
|
||
even more stable than ever, and so on. It's a MUST !
|
||
|
||
|
||
<A NAME=1.3>1.3. Installation
|
||
|
||
If you plan to use MPlayer on x86 architecture, you possibly want to use
|
||
Win32 codecs. Download and unzip w32codecs.zip to /usr/lib/win32 .
|
||
Note: the avifile project has similar codecs package, but it differs
|
||
from our, so if you want to use all supported codecs, then use
|
||
our package! However, you can use our codecs package with avifile.
|
||
|
||
If you own a Matrox G200/G400/G450 card, then please see the <A HREF="#2.2.1.6">2.2.1.6</A>
|
||
section in order to gain big speedup. It is important to do these steps
|
||
_before_ compiling MPlayer, otherwise no Matrox-specific support will be
|
||
built.
|
||
|
||
Then build MPlayer:
|
||
|
||
|
||
./configure
|
||
make
|
||
make install
|
||
|
||
|
||
It is recommended to browse the output of ./configure , it contains info
|
||
about what will be built, and what won't. You may also want to view
|
||
config.h and config.mak files.
|
||
|
||
Though not mandatory, the fonts should be installed in order to gain
|
||
OSD, and subtitle functionality. Download mp_font3.zip (and optional
|
||
language updates) and optional (if exists) language updates.
|
||
|
||
|
||
mkdir ~/.mplayer/font
|
||
cd ~/.mplayer/font
|
||
unzip mp_font3.zip
|
||
unzip mp_font3_hu.zip
|
||
|
||
|
||
See the <A HREF="#2.3">2.3 section</A> for details.
|
||
|
||
<A NAME=1.4>1.4. What about the GUI ?
|
||
|
||
I'm not a GUI programmer. I hate GUIs, I like the pure black 80x25 console.
|
||
So the player has only keyboard control from the controlling console/xterm now.
|
||
There is a GUI development for the player, coordinated by Pontscho/Fresh!
|
||
It's still under development, but it will be merged and released real soon.
|
||
BTW he needs some nice skins, if you are a good graphician, contact him!!!
|
||
|
||
|
||
<A NAME=2>2. Features
|
||
|
||
|
||
<A NAME=2.1>2.1. Video Formats, Audio & Video Codecs
|
||
|
||
|
||
<A NAME=2.1.1>2.1.1. Supported input formats
|
||
|
||
MPlayer can read/play from the following devices/formats:
|
||
- VCD (Video CD) directly from CD-ROM or from CDRwin's .bin image file
|
||
- DVD, directly from your DVD disk, using optional libcss for decryption
|
||
- MPEG 1/2 System Stream (PS/PES/VOB) and Elementary Stream (ES) file
|
||
formats
|
||
- RIFF AVI file format
|
||
- ASF 1.0 file format
|
||
- supports reading from file, stdin, DVD drive or network via HTTP
|
||
|
||
Note: about quicktime (.mov/.qt) and realmedia (.ra/.rm) support read the FAQ!
|
||
|
||
|
||
<A NAME=2.1.2>2.1.2. Supported audio & video codecs
|
||
|
||
See http://mplayer.sourceforge.net/DOCS/codecs.html for the complete,
|
||
daily updated list!!!
|
||
|
||
The most important video codecs:
|
||
- MPEG1 (VCD) and MPEG2 (DVD) video
|
||
- DivX, OpenDivX and other MPEG4 variants
|
||
- Windows Media Video 7 (WMV1) used in .wmv files
|
||
- Intel Indeo codecs (3.1,3.2,4.1,5.0)
|
||
- MJPEG, ASV2 and other hardware formats
|
||
|
||
The most important audio codecs:
|
||
- MPEG layer 2, and layer 3 (MP3) audio (native code, with 3dnow optimization)
|
||
- AC3 dolby audio (native code, with 3dnow optimization)
|
||
- Voxware audio
|
||
- alaw, msgsm, pcm and other simple old audio formats
|
||
|
||
If you have a codec not listed here, and not supported yet, just
|
||
read http://mplayer.sourceforge.net/DOCS/codecs.html
|
||
to get info about its status and about how to help us adding support for it!
|
||
|
||
|
||
<A NAME=2.1.2.1>2.1.2.1. OpenDivX
|
||
|
||
This section contains information about the DivX/OpenDivX codecs of
|
||
<A HREF="http://www.projectmayo.com">ProjectMayo</A>. Their first available alpha version was the OpenDivX 4.0
|
||
alpha 47 and 48. Support for this was/is included in MPlayer, and built by
|
||
default. We even used its postprocessing code to optionally enhance visual
|
||
quality of MPEG1/2 movies.
|
||
|
||
The new generation of this codec can even decode movies made with the
|
||
infamous DivX codec! And it's not everything, it's MUCH faster than the
|
||
traditional Win32 DivX DLL's. See below for configuration. The only
|
||
disadvantage of this codec is that it's currently closed-source. :(
|
||
|
||
The codec can be downloaded from the following URL:
|
||
|
||
|
||
http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip
|
||
|
||
|
||
No automatic installing available at this time, so install it manually,
|
||
EXACTLY as described here. Unpack it, and copy files to their place:
|
||
|
||
|
||
cp libdivxdecore.so.0.0.0 /usr/local/lib/
|
||
ln -s /usr/local/lib/libdivxdecore.so.0.0.0 /usr/local/lib/libdivxdecore.so.0
|
||
ln -s /usr/local/lib/libdivxdecore.so.0 /usr/local/lib/libdivxdecore.so
|
||
ldconfig
|
||
cp decore.h /usr/local/include/
|
||
|
||
|
||
At the moment MPlayer doesn't contain autodetection for the codec, so you'll
|
||
have to edit config.h and config.mak manually. But first run ./configure .
|
||
Change #undef NEW_DECORE to #define NEW_DECORE in config.h
|
||
Change #define MPEG12_POSTPROC to #undef MPEG12_POSTPROC in config.h
|
||
Change DECORE_LIBS in config.mak to be:
|
||
|
||
|
||
DECORE_LIBS=-L/usr/local/lib -ldivxdecore
|
||
|
||
|
||
Continue compiling MPlayer as usual.
|
||
|
||
Using it is a bit tricky. As it conflicts with the old OpenDivX (it's API is
|
||
very similar to OpenDivX's), OpenDivX code is disabled, and the OpenDivX
|
||
driver calls this library too.
|
||
|
||
Generally we can pinpoint this issue to that you have two options to use
|
||
this codec:
|
||
|
||
|
||
-vc odivx : using divx4 codec as a new version of OpenDivX.
|
||
in this case it produces YV12 image in its own buffer,
|
||
and MPlayer (libvo) does colorspace conversion.
|
||
|
||
-vc divx4 : using divx4 codec's colorspace conversion.
|
||
in this mode, you can use YUY2/UYVY too.
|
||
|
||
The '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 'divx4'
|
||
method. For RGB modes you can choose freely, their speed is same, maybe
|
||
differ according to the current bpp.
|
||
|
||
Note: it supports postprocessing too, but range of values is strange:
|
||
|
||
0 no postproc
|
||
10 .. 20 postprocessing, normal
|
||
(like level 2 with divxds)
|
||
30 .. 60 hard postprocessing, eats many CPU.
|
||
(like level 4 with divxds)
|
||
|
||
|
||
<A NAME=2.1.2.2>2.1.2.2. ffmpeg's DivX/libavcodec
|
||
|
||
Beginning with version 0.4.2 , <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> contains an <B>opensource</B> DivX codec,
|
||
which is compatible with the traditional DivX. MPlayer supports this codec,
|
||
and this makes it possible to <B>watch DivX movies on non-x86 platforms!</B>
|
||
To get it compile, you'll need nasm, bison, and flex, above the other
|
||
devel tools. No manual hacking is needed to build it, ./configure detects
|
||
if it can be built. At the moment it doesn't support postprocessing, and
|
||
is under optimization (it's generally a bit faster than the DirectShow
|
||
DivX codec, now).
|
||
|
||
In order to use it, refresh your codecs.conf file, and do as the manpage,
|
||
or the example.conf says (the -vfm option).
|
||
|
||
Note: libavcodec contains other codecs as well, but at the moment we mostly
|
||
focus on ffdivx.
|
||
|
||
<A NAME=2.1.3>2.1.4. Codec importing howto
|
||
|
||
|
||
<A NAME=2.1.4.1>2.1.4.1. VFW codecs
|
||
|
||
VfW (Video for Windows) is the old Video API for Windows. Its codecs have
|
||
the .DLL or (rarely) .DRV extension.
|
||
If MPlayer fails with your AVI:
|
||
|
||
|
||
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 we know this, we'll
|
||
have to find out which DLL Windows loads in order to play this file. In our
|
||
case, the system.ini contains this (with many others):
|
||
|
||
|
||
VIDC.HFYU=huffyuv.dll
|
||
|
||
|
||
So we'll need the huffyuv.dll file. Note that the audio codecs are specified
|
||
with the MSACM prefix :
|
||
|
||
|
||
msacm.l3acm=L3codeca.acm
|
||
|
||
|
||
This is the MP3 codec.
|
||
So, now we have all the info needed (fourcc, codec file, sample AVI), submit
|
||
your codec support request in mail, and upload these files to the FTP:
|
||
ftp://thot.banki.hu/MPlayer/incoming/<codecname>/
|
||
|
||
|
||
<A NAME=2.1.4.2>2.1.4.2. DirectShow codecs
|
||
|
||
DirectShow is the newer Video API, which is even worse than its predecessor.
|
||
Things are harder with DirectShow, since
|
||
- system.ini doesn't contain the needed information, instead it's stored in
|
||
the registry :(
|
||
- we'll need the GUID of the codec.
|
||
|
||
So let's search that goddamn registry..
|
||
- Start 'regedit'
|
||
- press ctrl-f, disable the first two checkbox, and enable the third. Type
|
||
the fourcc of the codec. (for ex.: TM20)
|
||
- you should see a field which contains the path and filename
|
||
(for ex. : C:\WINDOWS\SYSTEM\TM20DEC.AX)
|
||
- now that we have the file, we'll need the GUID. Try searching again, but
|
||
now we'll search for the codec's name, not the fourcc. Its name can be acquired
|
||
when Media Player is playing that file, by checking File/Properties/Advanced.
|
||
If not, bad luck ;) Try guessing.
|
||
(for ex. search for : TrueMotion)
|
||
- if found (in registry), there should be a FriendlyName field, and a CLSID
|
||
field. Write down that 16 byte of CLSID, this is the GUID required by us.
|
||
|
||
|
||
NOTE : if searching fails, try to enable all the checkboxes.. you may have
|
||
false hits, but maybe you'll have the right, too...
|
||
NOTE : dump that M$ shit.
|
||
|
||
|
||
So, now we have all the info needed (fourcc, GUID, codec file, sample AVI),
|
||
submit your codec support request in mail, and upload these files to the FTP:
|
||
ftp://thot.banki.hu/MPlayer/incoming/<codecname>/
|
||
|
||
|
||
<A NAME=2.2>2.2. Video & Audio output devices
|
||
|
||
|
||
<A NAME=2.2.1>2.2.1. Video output devices
|
||
|
||
General:
|
||
- x11: X11 with optional SHM extension
|
||
- xv: X11 using overlays with the Xvideo extension (hardware YUV & scaling)
|
||
- gl: OpenGL renderer, so far works only with :
|
||
- all cards with Utah-GLX
|
||
- Matrox cards with X/DRI >=4.0.3
|
||
- Radeon with X/DRI CVS
|
||
- dga: X11 DGA extension
|
||
- fbdev:Output to general framebuffers
|
||
- svga: Output to SVGAlib
|
||
- sdl: 1.1.7 : supports software scaling
|
||
1.1.8 : supports Xvideo (hardware scaling/fullscreen)
|
||
1.2.0 : supports aalib (textmode rendering, very funny!)
|
||
- ggi: similar to SDL
|
||
|
||
Card specific:
|
||
- mga: Matrox G200/G400 hardware YUV overlay via the mga_vid device
|
||
- xmga: Matrox G200/G400 overlay (mga_vid) in X11 window
|
||
(Xv emulation on X 3.3.x !)
|
||
- syncfb: Matrox G400 YUV support on framebuffer (obsoleted, use mga/xmga)
|
||
- 3dfx: Voodoo2/3 hardware YUV (/dev/3dfx) support (not yet tested, maybe
|
||
broken)
|
||
|
||
Special:
|
||
- png: PNG files output (use -z switch to set compression)
|
||
- pgm: PGM files output (for testing purposes or ffmpeg encoding)
|
||
- md5: MD5sum output (for MPEG conformance tests)
|
||
- odivx:OpenDivX AVI File writer (use -br to set encoding bitrate)
|
||
- null: Null output (for speed tests/benchmarking)
|
||
|
||
NOTE: check the following subsections for details and requirements!
|
||
|
||
|
||
<A NAME=2.2.1.1>2.2.1.1. Xv
|
||
|
||
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.
|
||
In order to make this work, be sure to check the following:
|
||
- You have to use XFree86 4.0.2 or newer (former versions don't have XVideo)
|
||
- Your card actually supports harware acceleration (modern cards do)
|
||
- X loads the XVideo extension, it's something like this:
|
||
|
||
|
||
(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!
|
||
|
||
- Your card has Xv support under Linux. To check, try 'xvinfo', it is the
|
||
part of the XFree86 distribution. It should display a long text, similar
|
||
to this:
|
||
|
||
|
||
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.
|
||
|
||
- And finally, check if MPlayer was compiled with 'xv' support.
|
||
./configure prints this.
|
||
|
||
|
||
<A NAME=2.2.1.1.1>2.2.1.1.1. 3dfx cards
|
||
|
||
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.1.0 or greater, it works ok. Alternatively, you can use
|
||
<A HREF="http://dri.sourceforge.net">DRI</A> cvs.
|
||
If you experience strange effects using -vo xv, try SDL (it has XVideo too)
|
||
and see if it helps. Check the <A HREF="#2.2.1.3">SDL section</A> for details.
|
||
|
||
|
||
<A NAME=2.2.1.1.2>2.2.1.1.2. S3 cards
|
||
|
||
S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3
|
||
or greater.
|
||
|
||
|
||
<A NAME=2.2.1.1.3>2.2.1.1.3. nVidia cards
|
||
|
||
nVidia isn't a very good choice under Linux.. You'll have to use the
|
||
binary nVidia driver, available at nVidia's website. The standard X
|
||
driver doesn't support XVideo for these cards, due to nVidia's closed
|
||
sources/specifications.
|
||
|
||
|
||
<A NAME=2.2.1.1.4>2.2.1.1.4. ATI cards
|
||
|
||
The GATOS driver has VSYNC enabled by default. It means that decoding speed
|
||
(!) is synced to the monitor's refresh rate. If playing seems to be slow, try
|
||
disabling VSYNC somehow, or set refresh rate to n*(fps of the movie) Hz.
|
||
|
||
|
||
<A NAME=2.2.1.2>2.2.1.2. DGA
|
||
|
||
<A NAME=2.2.1.2.1>2.2.1.2.1. Summary
|
||
|
||
This document 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).
|
||
|
||
|
||
<A NAME=2.2.1.2.2>2.2.1.2.2. What is DGA
|
||
|
||
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 excecutable (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 XServer, 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 XServer's video
|
||
driver that controls this chip. So it does not work on every system ...
|
||
|
||
|
||
<A NAME=2.2.1.2.3>2.2.1.2.3. Installing DGA support for MPlayer
|
||
|
||
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
|
||
switches -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 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.
|
||
|
||
|
||
!!!! BUT STAY TUNED !!!!
|
||
This is a BIG security risk! Never do this on a server or on a computer
|
||
can be accessed by more people than only you because they can gain root
|
||
privilegies through suid root mplayer.
|
||
!!!! SO YOU HAVE BEEN WARNED ... !!!!
|
||
|
||
|
||
Now use '-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!!!
|
||
|
||
|
||
<A NAME=2.2.1.2.4>2.2.1.2.4. Resolution switching
|
||
|
||
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 honouring aspect ratio) of the video data, but the
|
||
XServer 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 capabilites
|
||
of your video hardware. The XServer 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
|
||
See appendix A for some sample modeline definitions.
|
||
|
||
|
||
<A NAME=2.2.1.2.5>2.2.1.2.5. DGA & MPlayer
|
||
|
||
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.
|
||
|
||
|
||
<A NAME=2.2.1.2.6>2.2.1.2.6. Features of the DGA driver
|
||
|
||
The DGA driver is invoked by specifying -vo dga at the command line.
|
||
The default behaviour is to switch to a resolution matching the original
|
||
resolution of the video as close as possible. It deliberately ignores the
|
||
-vm and -fs switches (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.
|
||
|
||
|
||
<A NAME=2.2.1.2.7>2.2.1.2.7. Speed issues
|
||
|
||
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.
|
||
|
||
|
||
<A NAME=2.2.1.2.8>2.2.1.2.8. Known bugs
|
||
|
||
Well, according to some developpers 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.
|
||
|
||
o with XFree 4.0.3 and nv.o there is a bug resulting in strange colors
|
||
o ATI driver requires to switch mode back more than once after finishing
|
||
using of DGA
|
||
o some drivers simply fail to switch back to normal resolution (use
|
||
Ctrl-Alt-Keypad +, - to switch back manually)
|
||
o some drivers simply display strange colors
|
||
o some drivers lie about the amount of memory they map into the process's
|
||
address space, thus vo_dga won't use doublebuffering (SIS?)
|
||
o some drivers seem to fail to report even a single valid mode. In this
|
||
case the DGA driver will crash telling you about a nonsense mode of
|
||
100000x100000 or the like ...
|
||
o OSD only works with doublebuffering enabled
|
||
|
||
|
||
<A NAME=2.2.1.2.9>2.2.1.2.9. Future work
|
||
|
||
o use of the new X11 render interface for OSD
|
||
o where is my TODO list ???? :-(((
|
||
|
||
|
||
<A NAME=2.2.1.2.A>2.2.1.2.A. Some modelines
|
||
|
||
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
|
||
|
||
|
||
These entries work fine with my Riva128 chip, using nv.o XServer driver
|
||
module.
|
||
|
||
|
||
<A NAME=2.2.1.2.B>2.2.1.2.B. Bug Reports
|
||
|
||
If you experience troubles with the DGA driver please feel free to file
|
||
a bug report to me (e-mail address below). Please start mplayer with the
|
||
-v option and include all lines in the bug report that start with vo_dga:
|
||
|
||
Please do also include the version of X11 you are using, the graphics card
|
||
and your CPU type. The X11 driver module (defined in XF86-Config) might
|
||
also help. Thanks!
|
||
|
||
|
||
Acki (acki@acki-netz.de, www.acki-netz.de)
|
||
|
||
|
||
<A NAME=2.2.1.3>2.2.1.3. SDL
|
||
|
||
Here are some notes about SDL out in MPlayer.
|
||
|
||
There are several commandline switches for SDL:
|
||
|
||
-vo sdl:name specifies sdl video driver to use (ie. aalib,
|
||
dga, x11)
|
||
-ao sdl:name specifies sdl audio driver to use (ie. dsp,
|
||
esd)
|
||
-noxv disables Xvideo hardware acceleration
|
||
-forcexv tries to force Xvideo acceleration
|
||
|
||
SDL Keys:
|
||
|
||
F toggles fullscreen/windowed mode
|
||
C cycles available fullscreen modes
|
||
W/S mappings for * and / (mixer control)
|
||
|
||
KNOWN BUGS:
|
||
- Keys pressed under aalib console driver repeat forever.
|
||
It's bug in SDL, I can't change it (tested with SDL 1.2.1).
|
||
|
||
|
||
<A NAME=2.2.1.4>2.2.1.4. SVGAlib
|
||
|
||
If you don't have X, you can use the SVGAlib target! Be sure not to use the
|
||
-fs switch, since it toggles the usage of the software scaler, and it's
|
||
SLOOOW now, unless you have a real fast CPU (and/or MTRR?). :(
|
||
|
||
Of course 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.
|
||
|
||
|
||
<A NAME=2.2.1.5>2.2.1.5. Framebuffer output (FBdev)
|
||
|
||
Whether to build the FBdev target is autodetected during ./configure .
|
||
Read the framebuffer documentation in the kernel sources
|
||
(Documentation/fb/*) for info on how to enable it, etc.. !
|
||
|
||
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 ;))
|
||
|
||
|
||
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.
|
||
|
||
|
||
<A NAME=2.2.1.6>2.2.1.6. Matrox framebuffer (mga_vid)
|
||
|
||
This section is about the Matrox G200/G400/G450 BES (Back-End Scaler)
|
||
support, the mga_vid kernel driver. It's active developed by me (A'rpi), and
|
||
it has hardware VSYNC support with triple buffering. It works on both
|
||
framebuffer console and under X.
|
||
|
||
To use it, you first have to compile mga_vid.o :
|
||
|
||
|
||
cd drivers
|
||
make
|
||
|
||
|
||
Then create /dev/mga_vid device :
|
||
|
||
|
||
mknod /dev/mga_vid c 178 0
|
||
|
||
|
||
and load the driver with
|
||
|
||
|
||
insmod mga_vid.o
|
||
|
||
|
||
You should verify the memory size detection using the '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
|
||
|
||
|
||
To make it load/unload automatically when needed, insert the following line
|
||
at the end of /etc/modules.conf :
|
||
|
||
|
||
alias char-major-178 mga_vid
|
||
|
||
|
||
Then run
|
||
|
||
|
||
depmod -a
|
||
|
||
|
||
Now you have to (re)compile MPlayer, ./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 .
|
||
|
||
Note: '-vo xmga' works under XFree86 4.x.x, but it conflicts with the Xv
|
||
driver, so avoid using both. If you messed up Xv with mga, try running
|
||
MPlayer with '-vo mga' . It should fix Xv.
|
||
|
||
|
||
<A NAME=2.2.1.7>2.2.1.7. SiS 6326 framebuffer (sis_vid)
|
||
|
||
SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver
|
||
|
||
Its interface should be compatible with the mga_vid, but the driver was not
|
||
updated after the mga_vid changes, so it's outdated now. Volunteers
|
||
needed to test it and bring the code up-to-date.
|
||
|
||
|
||
<A NAME=2.2.1.8>2.2.1.8. 3dfx YUV support
|
||
|
||
3dfx has native YUV+scaler support, using /dev/3dfx (tdfx.o driver?)
|
||
The /dev/3dfx kernel driver exists only for 2.2.x kernels, for use with
|
||
Glide 2.x Linux ports. It's not tested with MPlayer, and so no more
|
||
supported. Volunteers needed to test it and bring the code up-to-date.
|
||
|
||
|
||
<A NAME=2.2.1.9>2.2.1.9. OpenGL output
|
||
|
||
MPlayer support displaying movies using OpenGL. Unfortunately, not all
|
||
drivers support this ability. For example the Utah-GLX drivers
|
||
(for XFree86 3.3.6) have it, with all cards.
|
||
See <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> for details about how to install it.
|
||
|
||
XFree86(DRI) >= 4.0.3 supports it only with Matrox, and Radeon cards.
|
||
See <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> for download, and installation instructions.
|
||
|
||
|
||
<A NAME=2.2.2>2.2.2. Audio output devices
|
||
|
||
- OSS (ioctl) driver
|
||
- SDL driver (supports up/downsampling, esd, arts etc)
|
||
- native ALSA 0.5 driver
|
||
- native ALSA 0.9 driver (buggy, use OSS emulation!)
|
||
- native ESD driver (under development?)
|
||
- SUN audio driver (/dev/audio) for BSD and Solaris8 users
|
||
|
||
|
||
<A NAME=3>3. Usage
|
||
|
||
file: mplayer [options] [path/]filename
|
||
VCD: mplayer [options] -vcd trackno /dev/cdrom
|
||
DVD: mplayer [options] -dvdauth /dev/dvd filename.VOB
|
||
net: mplayer [options] http://site.com/file.[mpg|avi]
|
||
|
||
mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
|
||
mplayer -vcd 2 /dev/cdrom
|
||
mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
|
||
mplayer -dvd /dev/dvd /mnt/dvd/matrix.vob
|
||
mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi
|
||
|
||
|
||
<A NAME=3.1>3.1. Control from keyboard
|
||
|
||
|
||
l/r arrows seek backward/forward 10 seconds
|
||
up or down seek backward/forward 1 minute
|
||
p or SPACE pause movie (press any key to continue)
|
||
q or ^C stop playing and quit program
|
||
o toggle OSD : none / seek / seek+timer
|
||
/ and * decrease/increase volume
|
||
m toggle using master/pcm channel for volume setting
|
||
f toggle fullscreen (only with -vo sdl)
|
||
|
||
|
||
<A NAME=3.2>3.2. Control from LIRC
|
||
|
||
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, you can compile MPlayer with LIRC
|
||
support using ./configure --enable-lirc
|
||
|
||
If everything went fine, MPlayer will print a message like
|
||
LIRC init was successful.
|
||
on startup. If an error occurs it will tell you. If it doens't tell you
|
||
anything about LIRC there's no support compiled in. That's it :-)
|
||
|
||
The application name for MPlayer is - oh wonder - mplayer_lirc.
|
||
It understands the following commands:
|
||
|
||
PAUSE - pause playing. Any other keystroke will continue replay.
|
||
QUIT - exit mplayer
|
||
RWND - 10 secs back
|
||
FRWND - 60 secs back
|
||
FWD - skip 10 secs
|
||
FFWD - skip 60 secs
|
||
INCVOL - increase volume one percent
|
||
DECVOL - decrease volmue one percent
|
||
MASTER - use master mixer channel
|
||
PCM - use pcm mixer channel
|
||
|
||
Don't forget to enable the repeat flag for RWND/FWD in .lircrc. Here's an
|
||
excerpt from my .lircrc:
|
||
|
||
begin
|
||
remote = CU-SX070
|
||
prog = mplayer_lirc
|
||
button = Tape_Play
|
||
repeat = 1
|
||
config = FFWD
|
||
end
|
||
|
||
begin
|
||
remote = CU-SX070
|
||
prog = mplayer_lirc
|
||
button = Tape_Stop
|
||
config = QUIT
|
||
end
|
||
|
||
If you don't like the standard location for the lirc-config file (~/.lircrc)
|
||
use the -lircconf <filename> switch to specify another file.
|
||
|
||
|
||
<A NAME=3.3>3.3. Streaming from network or pipes
|
||
|
||
MPlayer can play media from network, by using the HTTP protocol, and even
|
||
beta ASF streaming (FROM network) is available.
|
||
Configuring it is simple, just recompile MPlayer with
|
||
|
||
|
||
./configure --enable-streaming
|
||
|
||
|
||
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 -
|
||
|
||
|
||
<A NAME=4>4. TV-out support
|
||
|
||
|
||
<A NAME=4.1>4.1. Matrox cards
|
||
|
||
> What I'd love to see in mplayer is the the same feature that I see in my
|
||
> windows box. When I start a movie in windows (in a window or in full screen)
|
||
> the movie is also redirected to the tv-out and I can also see it full screen
|
||
> on my tv. I love this feature and was wondering how hard it would be to add
|
||
> such a feature to mplayer.
|
||
|
||
It's a driver limitation. BES (Back-End Scaler, it's the overlay generator
|
||
and YUV scaling engine of G200/G400/G450 cards) works only with CRTC1.
|
||
Normally, CRTC1 (textmode, every bpp gfx and BES) is routed to HEAD1,
|
||
and CRTC2 (only 16/32bpp gfx) is routed to HEAD2 (TV-out).
|
||
|
||
Under linux, you have two choices to get TV-out working:
|
||
|
||
1. Using X 4.0.x + the HAL driver from matrox, so you'll get dual-head
|
||
support, and you'll be able to redirect second output to the TV.
|
||
Unfortunately it has Macrovision encryption enabled, so it will
|
||
only work on directly-connected TV, no through VCR.
|
||
Other problem is that Xv doesn't work on the second head.
|
||
(I don't know how Windows solve it, maybe it swaps the CRTCs between
|
||
the heads, or just uses YUV framebuffer of second DAC with some trick)
|
||
|
||
2. Using matroxfb with dual-head support enabled (2.4.x kernels).
|
||
You'll be able to get a framebuffer console (using CRTC2, so it's
|
||
slow), and TV-out (using CRTC1, with BES support).
|
||
You have to forget X while using this kind of TV-out! :(
|
||
|
||
- Compile all the matrox-related things to modules in the kernel.
|
||
(you MUST compile them to modules, at least I couldn't get them
|
||
working built-in yet)
|
||
[reboot to new kernel & install modules, but don't load them yet!]
|
||
|
||
cd TVout
|
||
./compile.sh
|
||
|
||
- Run the 'modules' script from the TV-out directory of mplayer.
|
||
It will switch your console to framebuffer.
|
||
Change to tty1 (ALT+F1)!
|
||
Now run the script 'independent', it will set up your tty's:
|
||
tty 1,2: fb console, CRTC2, head 1 (monitor)
|
||
tty 3,4,5...: framebuffer+BES, CRTC1, head 2 (TV-out)
|
||
You should run the scripts TV-* and Mon-* to set up resolutions:
|
||
change to tty1 (ALT+F1), and run Mon-* (one of them)
|
||
change to tty3 (ALT+F3) and then back to tty1 (ALT+F1)
|
||
(this change will select tty3 on /dev/fb1 - tricky)
|
||
run TV-* (one of them)
|
||
(now you'll get a console on your PAL TV - don't know about NTSC)
|
||
|
||
Now if you start mplayer (on tty1), the picture will show up on
|
||
the tty3, so you'll see it on your TV or second monitor.
|
||
|
||
Yes, it is a bit 'hack' now. But I'm waiting for the marvel
|
||
project to be finished, it will provide real TV-out drivers, I hope.
|
||
|
||
My current problem is that BES is working only with CRTC1. So picture
|
||
will always shown up on head routed to CRTC1 (normaly the monitor),
|
||
so i have to swap CRTC's, but this way your console will framebuffer
|
||
(CRTC2 can't do text-mode) and a bit slow (no acceleration). :(
|
||
|
||
|
||
> anyway i also just get monochrome output on the tv ...
|
||
Maybe you have NTSC TV? Or just didn't run one of TV-* scripts.
|
||
|
||
|
||
<A NAME=5>5. Tuning
|
||
|
||
|
||
<A NAME=5.1>5.1. CD-ROM drives
|
||
|
||
From Linux documentation:
|
||
|
||
Some CDROM drives are capable of changing their head-speed. There are several
|
||
reasons for changing the speed of a CDROM drive. Badly pressed CDROMs may
|
||
benefit from less-than-maximum head rate. Modern CDROM drives can obtain very
|
||
high head rates (up to 24-times is common). It has been reported that these
|
||
drives can make reading errors at these high speeds, reducing the speed can
|
||
prevent data loss in these circumstances. Finally, some of these drives can
|
||
make an annoyingly loud noise, which a lower speed may reduce.
|
||
|
||
The recommended way to do it is with a program called 'setcd' . It's kinda
|
||
old, but won't be too hard to find on the Net.
|
||
Use it with :
|
||
|
||
|
||
setcd -x [speed] [cdrom device]
|
||
|
||
|
||
Also you can try :
|
||
|
||
|
||
echo current_speed:4 >/proc/ide/[cdrom device]/settings
|
||
|
||
|
||
but you'll need root privileges. I use following command too :
|
||
|
||
|
||
echo file_readahead:2000000 >/proc/ide/[cdrom device]/settings
|
||
|
||
|
||
for 2MB prefetched reading from the file (it's useful for scratched CDROMs).
|
||
It's recommended that you tuneup your CDROM drive also with hdparm :
|
||
|
||
|
||
hdparm -d1 -a8 -u1 <cdrom device>
|
||
|
||
|
||
to enable using DMA access, readahead, and IRQ unmasking.
|
||
(if you don't understand these, *read the hdparm manpage*)
|
||
|
||
Please refer to "/proc/ide/[cdrom device]/settings" for fine-tuning your
|
||
CDROM.
|
||
|
||
|
||
<A NAME=5.2>5.2. DVD drives
|
||
|
||
IMPORTANT NOTE: please _DO_NOT_ require further features for DVD playback. This
|
||
is extremly experimental hack. Maybe it won't work for you. If you're
|
||
capable of helping us do it now! First we would like to fix existing problems.
|
||
Then we can start implementing advanced DVD playback functions of course.
|
||
|
||
This means current DVD functions are mainly for developers and not for users!
|
||
|
||
First, you must compile and install libcss on your system.
|
||
Second, you have to recompile MPlayer with libcss support. There is
|
||
autodetection of libcss, but if it fails, see below :
|
||
|
||
Call ./configure script of MPlayer with these options:
|
||
|
||
./configure --enable-css --with-csslibdir=/usr/local/lib --with-cssincdir=/usr/local/include
|
||
|
||
(of course you can append your favourite options as well)
|
||
|
||
--with-csslibdir=/usr/local/lib
|
||
Directory contains libcss.so shared library. This directory should
|
||
be in your /etc/ld.so.conf as well.
|
||
|
||
--with-cssincdir=/usr/local/include
|
||
Directory contains header file 'css.h' of libcss.
|
||
|
||
mplayer -dvdauth /dev/dvd /mnt/cdrom/video_ts/vts_01_1.vob
|
||
|
||
where,
|
||
|
||
'-dvdauth /dev/dvd' tells MPlayer the device name of your DVD drive.
|
||
it's used in disc authentication process
|
||
|
||
the filename is simply a VOB file path on the disc
|
||
|
||
Note that according to my experiences, disc authentication requires root
|
||
privileges so you must run MPlayer as root! (see section 'Problems').
|
||
|
||
NOTE about the sound:
|
||
It seems that MPlayer sometimes fails to find the first audio stream.
|
||
You can specify it with the '-aid 128' option, for example.
|
||
Please experience with 128,129 and similar values. See section
|
||
'Problems'.
|
||
|
||
On my AMD K6-2 with using hw scaling and colorspace conversion
|
||
capability of my G400 it's possible to watch DVD with about 70%
|
||
CPU usage with '-nosound'. Unfortunately with sound my machine is
|
||
not enough :( Maybe it can be improved somewhat ...
|
||
Guess, it's not so bad ... According to reports from my friends
|
||
xine uses 80-90% CPU to play DVD on much more powerful machines
|
||
like 1GHz Athlon systems (as far as I know, it's said that about
|
||
300MHz celeron is the minimum to watch DVDs ... using windows
|
||
DVD viewers).
|
||
|
||
Hint: I commented out downmix functions from libac3 (of course in this way I
|
||
can't get sound) and audio decoding CPU usage became 11% instead of 24 on
|
||
my machine. This clearly indicates that we should optimize downmix functions
|
||
(KNI code is no use for my k6-2).
|
||
|
||
HOT NEWZ:
|
||
We have got 3Dnow optimized libac3. Wow ;-)
|
||
|
||
|
||
Problems (TODO)
|
||
|
||
* disc authentication (the FIBMAP ioctl) requires root privilegies.
|
||
this is strange since OMS can do it as user too.
|
||
* sound. I'm using my only DVD disc (The Matrix) to test MPlayer.
|
||
some VOB file have English sound, some have Spanish and some have
|
||
no sound at all.
|
||
IT SEEMS that if I give '-aid 128' everything works with English sound ...
|
||
* strange effects but only with SOME vob files (it looks like some interlacing
|
||
effect, eg: every 2nd line on the screen is from the last frame).
|
||
|
||
|
||
Feature TODO
|
||
|
||
* chapter scanner
|
||
* audio stream scanner and allow to select one on runtime as well
|
||
(in stage#1 it would be enough to select one on the startup, see
|
||
'Problems' above)
|
||
* DVD menu
|
||
I found (at least on disc 'The Matrix') the menu VOB but I don't
|
||
know how can it be used.
|
||
(after some eyeballing on the source of OMS, it seems we would have to
|
||
parse *.ifo files)
|
||
* subtitle support
|
||
* OSD/GUI (?) support for select chapter, subtitle and audio stream
|
||
* getting some documentation on DVD format, eg: which is the 'root' VOB
|
||
file on the disc in video_ts directory, which is the menu and so on.
|
||
* improve performance (see 'Performance' above)
|
||
|
||
|
||
No sound problem (from Matrix DVD, the menu VOB)
|
||
|
||
End of packet while searching for PCM header
|
||
|
||
DEMUXER: Too many (2048 in 4131540 bytes) video packets in the buffer!
|
||
(maybe you play a non-interleaved stream/file or video codec failed)
|
||
MPEG: No Audio stream found... ->nosound
|
||
|
||
However this does not occur if you specify '-aid 128'.
|
||
|
||
|
||
<A NAME=5.3>5.3. MTRR
|
||
|
||
It is VERY recommended to set MTRR registers up properly, because they can
|
||
give a big performance boost. First you have to find the base address.
|
||
You have 3 ways to find it:
|
||
|
||
- from X11 startup messages, for example:
|
||
|
||
(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
|
||
(--) SVGA: Linear framebuffer at 0xD8000000
|
||
|
||
- from /proc/pci (use lspci -v command):
|
||
|
||
01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
|
||
Memory at d8000000 (32-bit, prefetchable)
|
||
|
||
- from mga_vid kernel driver messages (use 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).
|
||
|
||
|
||
<A NAME=6>6. FAQ section (TODO)
|
||
|
||
Yes, this is the MPlayer FAQ.
|
||
=============================
|
||
|
||
About:
|
||
~~~~~~
|
||
Many people asked same questions so I decided to write this stuff.
|
||
I know that people will never read this but at least i try to
|
||
pull down number of these mails.
|
||
And from now i can say that "read the fuckin' FAQ!" :-)
|
||
|
||
Let's ask!
|
||
~~~~~~~~~~
|
||
Q: What about DVD playback?
|
||
A: Read files 'DVD' and 'DVD-FAQ'.
|
||
|
||
Q: SDL output doesn't work or compile. Problem is ....
|
||
A: It is tested with newest SDL (probably runs on 1.1.7+).
|
||
It does NOT work with 1.1.6, 1.1.5 1.1.4 1.1.3 1.0.4 etc, don't ask.
|
||
|
||
Q: I am still having trouble compiling with SDL support. gcc says something
|
||
about "undefined reference to `SDL_EnableKeyRepeat'" What's now?
|
||
A: Where did you install the SDL library? If you installed in /usr/local
|
||
(the default) then edit the top level config.mak and add
|
||
"-L/usr/local/lib " after "X_LIBS=" Now type make. You're done!
|
||
|
||
Q: It doesn't compile, and it misses uint64_t inttypes.h and similar things...
|
||
A: copy DOCS/inttypes.h to MPlayer directory (cp DOCS/inttypes.h .)
|
||
try again... if fail, contact us
|
||
|
||
Q: I have Pentium III but ./configure doesn't detect SSE
|
||
A: Only kernel versions 2.4.x supports SSE (or try latest 2.2.19 or newer, but
|
||
be prepared for problems)
|
||
|
||
Q: -xy option doesn't work with x11 driver (-vo x11)
|
||
A: x11 driver doesn't support scaling, but XF86VidMode support is now
|
||
used: you must specify the -vm and the -fs switch, and you're done.
|
||
Make sure you have the right Modelines in your XF86Config file, and
|
||
try if the DGA driver (and SDL's DGA driver, see VIDEOCARDS) works for you.
|
||
It's much faster. If SDL's DGA works too, use that, it'll be EVEN
|
||
faster!
|
||
|
||
Q: audio goes out of sync playing .avi file
|
||
A: try with -bps or -nobps option
|
||
if still bad, send me (upload to ftp) that file, I'll check.
|
||
|
||
Q: what is the meaning of numbers in the status line?
|
||
A: see:
|
||
A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57 41% 0% 2.6% 0
|
||
- A: audio position in seconds
|
||
- V: video position in seconds
|
||
- A-V: audio-video difference in seconds (delay)
|
||
- ct: total A-V sync correction done
|
||
- frames played (counting from last seek)
|
||
- video codec cpu usage in percent (for mpeg it includes video_out too!)
|
||
- video_out cpu usage for avi, 0 for mpg (see above)
|
||
- audio codec cpu usage in percent
|
||
- frames needed to drop to maintain A-V sync
|
||
Most of them are for debug purposes, and will be removed soon.
|
||
|
||
Q: Why is video_out cpu usage zero (0%) for mpeg files?
|
||
A: It's not zero, but it's built in into codec, so can't be measured separated.
|
||
You should try to play the file using -vo null and then -vo ... and check
|
||
the difference to see video_out speed...
|
||
|
||
Q: OpenGL (-vo gl) output doesn't work (hangup/black window/X11 errors/...)
|
||
A: your opengl driver doesn't support dynamic texture changes (glTexSubImage)
|
||
it's known not to work with nVidia's binary shit.
|
||
it's known to work with Utah-GLX/DRI and Matrox G400 card. Also with
|
||
DRI and Radeon card. It won't work with DRI others than these.
|
||
it will not work with 3DFX cards because the 256x256 texture size limit.
|
||
|
||
Q: I have G200/G400, how to compile/use mga_vid driver?
|
||
A: read VIDEOCARDS, INSTALL, README
|
||
|
||
Q: What's XMMP? (is it XMMS or XMPS but mispelled?)
|
||
A: It's a new project, see http://frozenproductions.com for details
|
||
|
||
Q: There are error messages about file not found /usr/lib/win32/....
|
||
A: Download & install w32codec.zip from *our* FTP
|
||
(avifile's codec package has different DLL set)
|
||
|
||
Q: ...... works with avifile/aviplay while doesn't with MPlayer
|
||
A: MPlayer != avifile
|
||
The only common thing between these players is the Win32 DLL loader.
|
||
The codecs (dll) sets, syncronization, demultiplexing etc is totaly
|
||
different and shouldn't be compared.
|
||
If something works with aviplay it doesn't mean that MPlayer should do
|
||
it and vice versa.
|
||
|
||
Q: Indeo 3.x/4.x movies are viewed upside-down!!!?
|
||
A: It's a known bug (really it's a bug/limitation of the DLL codec)
|
||
Try if your vo driver supports the -flip switch.
|
||
|
||
Q: Indeo 3.x,4.x video doesn't work at 32bpp resolutions (16,24 bpp are ok)
|
||
A: It's a known bug (really it's a bug/limitation of the DLL codec)
|
||
|
||
Q: I've got 'MPlayer interrupted by signal 11' in module audio_setup or
|
||
decode_audio.
|
||
A: This is highly unlikely, since the mp3lib rewrite. Contact us, it may be
|
||
a bug. Possibly it's a damaged file, try with -afm 4 .
|
||
|
||
Q: Are there rpm/deb/... packages of MPlayer?
|
||
A: You can make a .deb package for yourself, check DOCS/DEBIAN .
|
||
It's _STRONGLY_ discouraged to use precompiled packages
|
||
of MPlayer, since it (currently) _highly_ depends on compile-time
|
||
options and optimizations!
|
||
Precompiled packages are COMPLETELY unsupported by the MPlayer team!
|
||
|
||
Q: Are there any mailing lists on MPlayer?
|
||
A: Yes! See README on how to subscribe them!
|
||
|
||
Q: I've found a nasty bug when I tried to play my favourite video!!
|
||
Who should I inform?
|
||
A: See DOCS/BUGREPORTS
|
||
|
||
Q: During 'make', MPlayer complains about X11 libraries. I don't understand,
|
||
I DO have X installed!?
|
||
A: ...but you don't have the X development package installed. Or not
|
||
correctly. It's called XFree86-devel* under RedHat, and xlib6g-dev* under
|
||
Debian. Also check if the /usr/X11 symlink exists (this can be a problem on
|
||
Mandrake systems). It can be created with the
|
||
$ ln -sf /usr/X11R6 /usr/X11
|
||
command. Also check the /usr/include/X11 link :
|
||
$ ln -sf /usr/X11R6/include/X11 /usr/include/X11
|
||
Your distribution may differ from the Linux Filesystem Standard.
|
||
|
||
Q: I have problems playing files with ... codec. Can I use'em?
|
||
A: Check http://mplayer.sourceforge.net/DOCS/codecs.html,
|
||
if it doesn't contain your codec, read
|
||
http://mplayer.sourceforge.net/DOCS/CODECS, and contact us.
|
||
|
||
Q: What about DGA driver? I can't find it!!!
|
||
A: ./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 VIDEOCARDS)
|
||
Alternatively, try SDL's DGA driver with '-vo sdl:dga' options.
|
||
|
||
Q: Ok, -vo help shows DGA driver, but it is babbling about permissions!
|
||
Help me!
|
||
A: It works only if running as root! It's a DGA limitation.
|
||
You should become to root (su -), and try again.
|
||
|
||
Another solution is making mplayer SUID root, but its NOT RECOMMENDED!
|
||
'chown root /usr/local/bin/mplayer'
|
||
'chmod 750 /usr/local/bin/mplayer'
|
||
'chmod +s /usr/local/bin/mplayer'
|
||
!!!! BUT STAY TUNED !!!!
|
||
This is a *BIG* security risk! *NEVER* do this on a server or on a computer
|
||
can be accessed by more people than only you because they can gain root
|
||
privilegies through suid root mplayer!!!
|
||
!!!! SO YOU HAVE BEEN WARNED ... !!!!
|
||
|
||
Q: The fsdga driver doesn't work with my xyz.avi file. Why is that?
|
||
A: Because it only works with MPEG. (yet)
|
||
|
||
Q: When using Xvideo, my Voodoo 3/Banshee says:
|
||
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
|
||
A: Your driver is old, update it. Either download (at least) DRI version 0.6
|
||
from http://dri.sourceforge.net , or use the DRI cvs.
|
||
|
||
Q: When using Xvideo, I can't play DivX avis with my Voodoo 3/Banshee !
|
||
It says:
|
||
...
|
||
Xvideo image format: 0x32315659 (YV12) planar
|
||
Xvideo image format: 0x30323449 (I420) planar
|
||
...
|
||
A1: See the previous answer.
|
||
A2: Since 0.18pre4 we include libavcodec from the ffmpeg package. It contains
|
||
a C language DivX and OpenDivX decoder. The DivX decoder uses YV12 format
|
||
for output, thus it should work for you. Compile in libavcodec support.
|
||
|
||
Q: Umm, what is "IdegCounter" ?
|
||
A: A mixture of a hungarian and an english word. In english, "Ideg" means
|
||
"nerve", and is pronounced as something like "ydaegh" . It was first used
|
||
to measure the nervousness of A'rpi, after some (umm) "mystic" disappearance
|
||
of CVS code ;)
|
||
|
||
Q: I can't compile SVGAlib.. I'm using 2.3/2.4 kernel.
|
||
A: You have to edit SVGAlib's Makefile.cfg and comment "BACKGROUND = y" out.
|
||
|
||
Q: LIRC doesn't work, because ...
|
||
A: Are you sure you use "mplayer_lirc" instead of "mplayer" ?
|
||
|
||
Q: MPlayer exits with something error when using l3codeca.acm
|
||
A: Check 'ldd /usr/local/bin/mplayer' output. If it contains
|
||
libc.so.6 => /lib/libc.so.6 (0x4???????)
|
||
where "?" is any number then it's ok, the error is not here. If it is:
|
||
libc.so.6 => /lib/libc.so.6 (0x00??????)
|
||
then there is problem with your kernel/libc. Maybe you are using some
|
||
security patches (for example Solar Designer's OpenWall patch) which
|
||
forces loading libraries to very low addresses.
|
||
Because l3codeca.acm is a non-relocatable DLL, it must be loaded to
|
||
0x00400000, we can't change this. You should use non-patched kernel,
|
||
or use MPlayer's -afm 1 option to disable using l3codeca.acm.
|
||
|
||
Q: My computer plays M$ DivX AVIs with resolutions ~ 640x300 and stereo mp3
|
||
sound too slow. When I use -nosound switch, everything is ok (but quiet).
|
||
A: Those files probably have 48Khz audio, and your soundcard/driver can't play
|
||
it correctly. Audio downsampling isn't implemented in MPlayer (yet).
|
||
|
||
Q: MPlayer dies with "MPlayer interrupted by signal 4 in module: decode_video".
|
||
A: Try running MPlayer on the machine you compiled on. Or recompile. Don't
|
||
use MPlayer on different CPU than it was compiled on.
|
||
|
||
Q: I have problems with <your window manager> and fullscreen xv/xmga/sdl/x11
|
||
modes..
|
||
A1: Use the -fsmode switch. See example.conf or manpage.
|
||
|
||
Q: But it works with avifile !
|
||
A: So what?
|
||
|
||
Q: Then avifile is better !
|
||
A: Then use avifile, it has nice GUI and nice C++ code :)
|
||
|
||
Q: I got this playing mpeg files: Can't find codec for video format 0x10000001 !
|
||
A: You have old version of codecs.conf at ~/.mplayer/. Upgrade it from DOCS/
|
||
|
||
Q: After starting mplayer under KDE(1/2) I just get a black screen and nothing
|
||
happens, after about one minute the video starts playing.
|
||
A: The KDE arts sound daemon is blocking the sound device, either wait the time
|
||
until video starts or you disable the arts-daemon in kontrollcenter.
|
||
|
||
Q: Subtitles are very nice, the most beautiful I've ever seen, but they slow
|
||
down the playing! I know it's unlikely...
|
||
A: After running ./configure , edit config.h and replace #undef FAST_OSD with
|
||
#define FAST_OSD . Then recompile.
|
||
|
||
Q: The OSD is flickering!
|
||
A: You use a vo driver with single buffering (x11,xv). With xv you can change
|
||
the number of buffers in libvo/vo_xv.c :
|
||
Increase #define NUM_BUFFERS 1
|
||
|
||
Q: What's the problem with gcc 2.96 ?
|
||
A: gcc 2.96 is RedHat's UNOFFICIAL (it can be found only on RedHat sites, or
|
||
RedHat distributions) and BUGGY gcc release. gcc 2.96 is TOTALLY
|
||
unsupported by MPlayer, because it simply SKIPS MMX codes, it just does not
|
||
compile it. Important: this is NOT an MPlayer-specific problem, numerous
|
||
other projects (DRI, avifile, etc..) have problems with this shit too.
|
||
** DO NOT USE gcc 2.96 !!! **
|
||
|
||
Q: Is there a hint on how to watch QuickTime and RealMedia movies in mplayer?
|
||
A: There's no way to do it. Therefore these formats deserve to die in flames.
|
||
Theoretically you can reverse engineer Real codecs built for Linux (they
|
||
are available as .so files), but in practice that's really difficult, even
|
||
if you know how the compiler used by Real is making assembler code.
|
||
As for QuickTime, it's possible to play some old movies and this
|
||
capability will be added to mplayer soon, but newer clips are all Sorenson
|
||
encoded, and that codec is built-in deep in the QT executable, there's
|
||
no way to use it.
|
||
|
||
Q: I have an nVidia TNT/TNT2 card, and I have a band with strange colours,
|
||
right under the movie! Whose fault is this?
|
||
A: It's the nVidia X driver's. These bugs are ONLY with the TNT/TNT2 cards,
|
||
and we can't do anything about it, it's not our bug.
|
||
|
||
Q: What exactly is this libavcodec?
|
||
A: It's from Gerard Lantau's ffmpeg package (http://ffmpeg.sourceforge.net).
|
||
It has C<>language DivX ;-) and OpenDivX codec. Some benchmarks
|
||
showed that its DivX seems to be even faster than DirectShow codec without
|
||
preprocessing, and only a few percent slower than ProjectMayo's OpenDivX
|
||
decoder. It uses YV12 pixel format, so old Voodoo users can use it for YUV.
|
||
Also, open the possibility to play DivX on virtually every computer that
|
||
has a C compiler. Kinda great stuff, isn't it?
|
||
|
||
|
||
<A NAME=7>7. Misc OS'es
|
||
|
||
|
||
<A NAME=7.1>7.1. Debian packaging
|
||
|
||
To build the package, get the cvs version, or .tgz and uncompress it,
|
||
and cd into programs directory:
|
||
|
||
|
||
cd main
|
||
fakeroot debian/rules binary
|
||
|
||
|
||
(... mplayer detects hardware/software, builds itself and.. )
|
||
dpkg-deb: building package `mplayer' in `../mplayer_0.18-1_i386.deb'.
|
||
|
||
And now just become root, and :
|
||
|
||
|
||
dpkg -i ../mplayer_0.18-1_i386.deb as root.
|
||
|
||
|
||
Here's how it looks like:
|
||
|
||
eyck@incubus:/src/main$ sudo dpkg -i ../mplayer_0.18-1_i386.deb
|
||
Password:
|
||
(Reading database ... 26946 files and directories currently installed.)
|
||
Preparing to replace mplayer 0.17a-1 (using ../mplayer_0.18-1_i386.deb)
|
||
Unpacking replacement mplayer ...
|
||
Setting up mplayer (0.18-1) ...
|
||
|
||
|
||
<A NAME=7.2>7.2. FreeBSD
|
||
|
||
To build the package you will need GNU make (gmake, /usr/ports/devel/gmake),
|
||
native BSD make will not work.
|
||
|
||
To run MPlayer you will need to re-compile the kernel with
|
||
"options USER_LDT" (unless you are running -CURRENT, where this is default).
|
||
|
||
If MPlayer complains about "CD-ROM Device '/dev/cdrom' not found!" make a
|
||
symbolic link : ln -s /dev/<your_cdrom_device> /dev/cdrom
|
||
|
||
There's no DVD support for FreeBSD yet.
|
||
Feel free to add it :-)
|
||
|
||
|
||
<A NAME=7.3>7.3. Solaris 8
|
||
|
||
AVI file playback works best on Solaris x86, because you have the
|
||
option to use the win32 codecs on the x86 platform. On Solaris SPARC,
|
||
you'll find quite a few AVI files with non working video and/or
|
||
audio playback, because the video/audio codecs using the win32 DLLs
|
||
are not available. However, <B>DivX/OpenDivX</B> movies should work,
|
||
when using libavcodec.
|
||
|
||
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 ...
|
||
|
||
|
||
For DVD support you must have the patched libcss installed. Patch:
|
||
http://www.tools.de/solaris/mplayer/
|
||
|
||
|
||
Due to two bugs in solaris 8 x86, you cannot reliably play DVDs using a
|
||
capacity >4GB:
|
||
|
||
- The sd(7D) driver on solaris 8 x86 driver has bug when accessing a
|
||
disk block >4GB on a device using a logical blocksize != DEV_BSIZE
|
||
(i.e. CDROM and DVD media). Due to a 32bit int overflow, a disk
|
||
address modulo 4GB is accessed.
|
||
(http://groups.yahoo.com/group/solarisonintel/message/22516)
|
||
|
||
- The similar bug is present in the hsfs(7FS) filesystem code (aka
|
||
ISO9660), hsfs currently does not support partitions/disks >4GB,
|
||
all data is accessed modulo 4GB
|
||
(http://groups.yahoo.com/group/solarisonintel/message/22592)
|
||
|
||
|
||
<A NAME=A>Appendix A - Authors
|
||
|
||
NOTE: Do *NOT* send bugreports, help & feature requests directly to the authors!
|
||
===== Read DOCS/BUGREPORTS and subscribe to mplayer-users mailing lists.
|
||
|
||
========================== The MPlayer project: ===============================
|
||
|
||
<EFBFBD>rp<EFBFBD>d Gere<72>ffy (A'rpi/ESP-team): <arpi@thot.banki.hu>
|
||
- player code (mpeg stream demultiplexer and avi/asf parser, A-V sync, seek...)
|
||
- mp3lib, based on mpglib sources [MP3 audio decoder]
|
||
- getch2 [keyboard handler]
|
||
- some changes in libmpeg2 code (progressive frames, bitrate & fps support)
|
||
- libvo improvements: adding OpenGL support, bugfix in mga driver...
|
||
- triple buffering & YUY2 support (for DivX/MPEG4) into mga_vid driver
|
||
- scripts in the TVout directory (TVout on Matrox G400DH, read DOCS/TVout-G400)
|
||
- hacking DivX/Mpeg4 VfW codecs to get YUV output
|
||
- opendivx decoder speed optimizations (see opendivx/ChangeLog)
|
||
- OSD & SUB display code
|
||
- ffmpeg/libavcodec integration
|
||
- DivX4Linux (ProjectMayo) support (see documentation)
|
||
|
||
Zolt<EFBFBD>n Ponekker (Pontscho/Fresh!): <pontscho@makacs.poliod.hu>
|
||
- configure script and Makefiles for easy compile
|
||
- GUI system (near complete!?)
|
||
- 3DNow! support into mp3lib
|
||
- 3DNow! support into fastmemcpy.h
|
||
- various X11 driver changes (keyboard handling, fullscreen, bpp detect, etc)
|
||
- libvo: adding xmga driver, and fullscreen support to xv
|
||
- audio mixer (volume) support
|
||
|
||
G<EFBFBD>bor L<>n<EFBFBD>rt (LGB): <lgb@lgb.hu>
|
||
- ./configure script improvements
|
||
- Makefile improvements
|
||
- prelimenary DVD support
|
||
- another GUI code (is that so..?)
|
||
- various X11 cleanups and fixes
|
||
|
||
G<EFBFBD>bor B<>rczi (Gabucino): <gabucino@k2.jozsef.kando.hu>
|
||
- documentation maintainer
|
||
- hungarian translation of documentation
|
||
- second webpage design&gfx
|
||
- webpage maintainer
|
||
- testing, codecs quality & speed comparsions
|
||
- IRC channel #MPlayer operator
|
||
- experimental MINIX port
|
||
|
||
Szabolcs Berecz (Szabi): <szabi@inf.elte.hu>
|
||
- codecs.conf file parser
|
||
- config file and command line parser
|
||
- mga_vid fixes, module option etc.
|
||
- fbdev support in libvo
|
||
- type #7 subtitle support
|
||
|
||
L<EFBFBD>szl<EFBFBD> Megyer (Lez, Laaz): <lez@sch.bme.hu>
|
||
- SUB reader
|
||
- screensaver+DPMS disable for libvo
|
||
|
||
Gyula L<>szl<7A> (Chass, T<>gla): <chass-@freemail.hu>
|
||
- first fonts (mp_font1.zip)
|
||
- third (current) homepage design&gfx
|
||
|
||
Zolt<EFBFBD>n M<>rk Vici<63>n (Se7en): <se7en@sch.bme.hu>
|
||
- SVGAlib support in libvo
|
||
- native AAlib driver (coming soon)
|
||
|
||
Alex Beregszaszi (Al3x): <alex@naxine.org>
|
||
- ALSA output driver in libao2
|
||
- vo_ggi output driver in libvo (www.ggi-project.org)
|
||
|
||
Andreas Ackermann (Acki): <asackerm@stud.informatik.uni-erlangen.de>
|
||
- LIRC support (see DOCS/LIRC)
|
||
- DGA support in libvo
|
||
|
||
Felix B<>nemann (Atmos): <atmosfear@users.sourceforge.net>
|
||
- SDL driver maintainer
|
||
- Additional YUV formats fixes
|
||
- New font (mp_font2.zip)
|
||
- PNG file output support in libvo
|
||
- flipping support (for Indeo 3/4, etc)
|
||
- SDL audio driver in libao2
|
||
- RAW PCM/WAVE file writer for libao2
|
||
|
||
TeLeNiEkO: <telenieko@telenieko.com>
|
||
- spanish translation of documentation
|
||
|
||
Michael Graffam: <mgraffam@idsi.net>
|
||
- XF86VidMode support to vo_x11 and vo_dga
|
||
- Video mode switching code to vo_dga
|
||
|
||
Jens Hoffmann: <hoffmajs@gmx.de>
|
||
- Additional YUV formats support
|
||
- found the big BITMAPINFOHEADER problem -> solved ASV2 pixelization
|
||
|
||
Nick Kurshev: <nickols_k@mail.ru>
|
||
- memcpy optimizations for AMD K7 and Intel Pentium III (fastmemcpy.h)
|
||
- CDROM tune info
|
||
- further 3DNow! optimizations into mp3lib and libac3
|
||
- russian translation of documentation
|
||
|
||
German Gomez Garcia: <german@piraos.com>
|
||
- DVD .ifo parser and chapter selection [not yet in the main trunk]
|
||
- SPDIF AC3 output for SBLive! [not yet in the main trunk]
|
||
|
||
Dariush Pietrzak (Eyck): <eyck@incubus.ar.lublin.pl>
|
||
- debian packaging support (see debian/* and DOCS/DEBIAN)
|
||
- support for vplayer subtitle format
|
||
- prelimenary support for .RT subtitle format
|
||
|
||
J<EFBFBD>rgen Keil and Marcus Comstedt: <jk@tools.de> <marcus@idonex.se>
|
||
- patched MPlayer to work on Solaris 8 x86
|
||
- configure fixes
|
||
- SUN audio driver in libao2
|
||
|
||
Vladimir Kushnir: <vkushnir@Alfacom.net>
|
||
- patched MPlayer to work on FreeBSD x86
|
||
|
||
Bertrand BAUDET: <bertrand_baudet@yahoo.com>
|
||
- network streaming support
|
||
|
||
Main testers:
|
||
Tibor Bal<61>zs (Tibcu)
|
||
P<>ter Sasi (SaPe)
|
||
Christoph H. Lampert
|
||
Attila Kinali
|
||
Dirk Vornheder
|
||
|
||
========================== The codecs, libs: =================================
|
||
|
||
Aaron Holtzman: <aholtzma@engr.uvic.ca>
|
||
- ac3dec (and libac3) author [AC3 audio decoder]
|
||
- mga_vid driver [Matrox G200/G400 YUV Back-end Scaler]
|
||
- mpeg2dec [Fast MPEG1/MPEG2 video decoder, currently used in player]
|
||
|
||
Michel Lespinasse: <walken@zoy.org>
|
||
- did large libmpeg2 changes for better speed and mpeg conformance
|
||
|
||
Eugene Kuznetsov: <divx@euro.ru>
|
||
- avifile author [AVI player library for linux, using Win32 VfW/ACM codecs]
|
||
- technical help about AVI and ASF formats, and how to get YUV using VfW...
|
||
- divx4linux techical support
|
||
|
||
Zdenek Kabelac: <kabi@informatics.muni.cz>
|
||
- current avifile maintainer(?)
|
||
- some technical help about the win32 stuff and timers
|
||
|
||
Gerard Lantau: <glantau@yahoo.fr>
|
||
- ffmpeg/libavcodec author,maintainer (opensource mpeg & divx en/decoder)
|
||
|
||
Project Mayo: [http://www.projectmayo.com]
|
||
- the OpenDivX codec authors
|
||
|
||
Michael Hipp:
|
||
- mpglib author [isn't used directly but some parts in mp3lib]
|
||
|
||
Mark Podlipec:
|
||
- xa_gsm.c author [MS-GSM audio codec]
|
||
[from a GSM library by Jutta Degener and Carsten Bormann]
|
||
|
||
Their code is not used in current player version, but I've got some ideas or
|
||
other technical help from:
|
||
|
||
John F. McGowan http://www.jmcgowan.com/
|
||
- AVI FAQ author/collector. [site with many useful docs on codecs and avi fmt]
|
||
|
||
Dirk Farin: <farin@ti.uni-mannheim.de>
|
||
- dvdview author [MPEG1/MPEG2 video decoder, used in v0.5-v0.8]
|
||
|
||
Adam Williams: <broadcast@earthling.net>
|
||
- libmpeg3 (and xmovie) author [MPEG1/MPEG2 video decoder, used in v0.1-v0.4]
|
||
|
||
|
||
<A NAME=B>Appendix B - Mailing lists
|
||
|
||
There are some public mailing lists on MPlayer. Subscribing can be achieved on
|
||
the following addresses:
|
||
|
||
- MPlayer core/hungarian developers list:
|
||
http://mp.dev.hu/mailman/listinfo/mplayer-devel
|
||
|
||
I dunno, it is the FLAME list in hungarian language :)
|
||
Also some talking about mplayer core team internals, like mplayer
|
||
party, sponsors etc can be here.
|
||
|
||
- MPlayer developers list:
|
||
http://lists.sourceforge.net/lists/listinfo/mplayer-dev-eng
|
||
|
||
This list is about mplayer development! Talking about interface/API changes,
|
||
new libraryes, code optimization, ./configure changes, and send patches here.
|
||
Do NOT send bugreports, user questions, feature requests here!
|
||
This list should be kept low-traffic.
|
||
|
||
- MPlayer users list:
|
||
http://lists.sourceforge.net/lists/listinfo/mplayer-users
|
||
|
||
- send bugreports here (after reading DOCS/BUGS, BUGREPORTS)
|
||
- send feature requests here (after reading DOCS/TODO)
|
||
- send user questions here (after reading DOCS/README, INSTALL, FAQ etc)
|
||
|
||
- MPlayer & Matrox G200/G400/G450 users:
|
||
http://lists.sourceforge.net/lists/listinfo/mplayer-matrox
|
||
|
||
Send matrox-related questions here,
|
||
- things about mga_vid,
|
||
- matrox's official beta drivers (for X 4.x.x)
|
||
- and about matroxfb-TVout stuff.
|
||
|
||
- mpg12play-portable developers:
|
||
http://lists.sourceforge.net/lists/listinfo/mplayer-mpg12play
|
||
|
||
This list is for talking about mplayer ports to non-x86 platforms
|
||
(IRIX, Solaris-SPARC, Alpha, Commodore64, Sharp Calculator,
|
||
Teapot etc...)
|
||
|
||
- MPlayer announce:
|
||
http://lists.sourceforge.net/lists/listinfo/mplayer-announce
|
||
|
||
Very low traffic list :)
|
||
And it's read-only. I'll post something shit there if a new release
|
||
is done.
|
||
|
||
- MPlayer CVS-log:
|
||
http://mp.dev.hu/mailman/listinfo/mplayer-cvslog
|
||
|
||
Send only questions about CVS changes here.
|
||
(if you don't understand why a change is required or you've better fix)
|
||
Be sure in that your target developer reads this list!
|
||
|
||
NOTE: language of above lists are ENGLISH, unless explicitly stated otherwise.
|
||
Please do not send messages using other language!
|
||
|
||
|
||
<A NAME=C>Appendix C - How to report bugs
|
||
|
||
How to report bugs?
|
||
~~~~~~~~~~~~~~~~~~~
|
||
First read DOCS/BUGS, and other docs. If your problem isn't
|
||
known or isn't solved by our instructions, then report the bug:
|
||
|
||
Where?
|
||
======
|
||
Subscribe to the mplayer-users mailing list:
|
||
http://lists.sourceforge.net/lists/listinfo/mplayer-users
|
||
and send your bugreport to:
|
||
mplayer-users@lists.sourceforge.net
|
||
We won't CC: so please subscribe!!!
|
||
|
||
Don't send bugreports private, directly to author's address!!!
|
||
We are working together on code, so everyone is interested in it.
|
||
BTW many times other users know the solution (system config probs,
|
||
bad drivers etc), even when we think it's a bug in our code.
|
||
The language of this list is ENGLISH !
|
||
|
||
Please describe your problem in details, examples etc, and don't
|
||
forget to include these:
|
||
|
||
What?
|
||
=====
|
||
|
||
1. The system info what we always want:
|
||
- linux distribution
|
||
examples:
|
||
RedHat 7.1
|
||
Slackware 7.0 + devel packs from 7.1 ...
|
||
- kernel version:
|
||
uname -a
|
||
- libc version:
|
||
ls -l /lib/libc[.-]*
|
||
- X version:
|
||
X -version
|
||
- gcc and ld version:
|
||
gcc -v
|
||
ld -v
|
||
- binutils version:
|
||
as --version
|
||
|
||
2. Hardware & drivers:
|
||
- CPU info:
|
||
cat /proc/cpuinfo
|
||
- video card manufacturer and model
|
||
examples:
|
||
ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM
|
||
Matrox G400 DH 32MB SGRAM
|
||
- video driver type&version
|
||
examples:
|
||
X built-in driver
|
||
nvidia 0.9.623
|
||
Utah-GLX CVS 2001-02-17
|
||
DRI from X 4.0.3
|
||
- sound card type & driver
|
||
examples:
|
||
Creative SBLive! Gold with OSS driver from oss.creative.com
|
||
Creative SB16 with OSS drivers of kernel
|
||
GUS PnP with ALSA OSS emulation
|
||
- if you are unsure, attach output of lspci -v
|
||
|
||
For compiling problems/errors:
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
3. output of configure/make:
|
||
make distclean
|
||
./configure &>config.log
|
||
./make &>make.log
|
||
4. these files:
|
||
config.h
|
||
config.mak
|
||
libvo/config.mak
|
||
|
||
For playback problems:
|
||
~~~~~~~~~~~~~~~~~~~~~~
|
||
3. Output of mplayer at verbose level 1 (-v)
|
||
mplayer -v [options] filename &> mplayer.log
|
||
|
||
4. If the problem is specific to one or a few files,
|
||
then please upload that file to:
|
||
ftp://thot.banki.hu/MPlayer/incoming/
|
||
Usually first 1-5 MB of the file is enough to reproduce
|
||
the problem, but first you should try it:
|
||
dd if=yourfile of=smallfile bs=1k count=1024
|
||
(it will cut first 1MB of 'yourfile' and save to 'smallfile')
|
||
Then try again on this small file, and if bug still exists
|
||
then it's enough to upload this small file.
|
||
NEVER send such files via mail! Upload it, and send only
|
||
the path/filename of the file on the FTP.
|
||
If the file is accessible on the net, then sending the
|
||
_exact_ URL is enough!
|
||
|
||
5. For crashes (segfault, SIGILL, signal 4 etc):
|
||
|
||
If you have coredump of the crash, see 5.a, else see 5.b:
|
||
|
||
5.a: Please print us coredump (if it was created).
|
||
Howto:
|
||
please create following command file:
|
||
|
||
disass $eip-32 $eip+32
|
||
printf "eax=%08lX\n",$eax
|
||
printf "ebx=%08lX\n",$ebx
|
||
printf "ecx=%08lX\n",$ecx
|
||
printf "edx=%08lX\n",$edx
|
||
printf "esp=%08lX\n",$esp
|
||
printf "ebp=%08lX\n",$ebp
|
||
printf "edi=%08lX\n",$edi
|
||
printf "esi=%08lX\n",$esi
|
||
|
||
Then simply execute following command line:
|
||
gdb mplayer --core=core -batch --command=command_file >mplayer.bug
|
||
|
||
5.b.: run MPlayer in gdb:
|
||
[at root/user shell prompt:]
|
||
# gdb mplayer
|
||
[at gdb prompt:]
|
||
> run -v [options-to-mplayer] filename
|
||
... (wait until it will crash)
|
||
> bt
|
||
> disass $eip-32 $eip+32
|
||
Send us the full output of the above things!
|
||
|
||
In general:
|
||
~~~~~~~~~~~
|
||
If something is big (logs etc) then it's better to upload to the ftp
|
||
(gzipped), and include only path/filename in the bugreport!
|
||
|
||
</BODY>
|
||
|
||
</HTML>
|