5. FAQ section

5.1 Compilation
| Q: | Configure ends with this text, and MPlayer won't compile! `"Your gcc does not support even i386 for '-march' and '-mcpu'."`
| A: | Your gcc isn't installed correctly, check the `config.log` file for details.
| Q: | What does "No such file or directory" mean?
| A: | Probably there is no such file or directory.
| Q: | What's the problem with gcc 2.96?
| A: | We strongly discourage the use of gcc 2.96!!! Read this and this document for details. If you still really really want to use it, be sure to get the latest release, but remember that you are on your own. Do not report bugs or ask for help on the mailing lists. We will not provide any support in case you run into problems.
| Q: | Great, I have gcc 3.0.1 from Red Hat/Mandrake, then I'm fine--!
| A: | No, since there have been/are issues with these compilers as well. Use the 2.95.x series for reliability (not 2.96). Use the latest gcc 3.0.x (starting at 3.0.2) if you want to use a 3.0.x version.

Q:

I tried to compile MPlayer, but I got this output:

    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

| A: | Upgrade your glibc to the latest release. On Mandrake, use 2.2.4-8mdk.
| Q: | ... gcc 2.96 ... (Yes, some people are STILL flaming about their gcc 2.96!!)

A:

Quoted from a mail A'rpi sent to the mplayer-users list (the word 'ideg' is described below):

> 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 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 always will 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.

| Q: | Where can I find information about gcc 2.96 bugs?
| A: | In this document. And this document describes why Red Hat released 2.96 and other interesting things.
| Q: | SDL output doesn't work or compile. The problem is ...
| A: | It was tested to work with SDL 1.2.x and may run on SDL 1.1.7+. It does not work with any previous version. So if you choose to use such a version, you are on your own.
| Q: | I am still having trouble compiling with SDL support. gcc says something about "undefined reference to `SDL_EnableKeyRepeat'". What 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 etc/inttypes.h to the MPlayer directory (`cp etc/inttypes.h .`) and try again ...
| Q: | I have Linux running on a Pentium III but `./configure` doesn't detect SSE ...
| A: | Only kernel versions 2.4.x support SSE (or try 2.2.19 or newer, but be prepared for problems).
| Q: | I have a G200/G400, how do I compile/use the mga_vid driver?
| A: | Read the documentation.
| Q: | Are there rpm/deb/... packages of MPlayer?
| A: | You can make a .deb package for yourself, check the Debian packaging section. There are RPM packages available on our homepage, don't use other sources!
| 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 Red Hat, and xlib6g-dev* under Debian. Also check if the `/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`
Your distribution may differ from the Filesystem Hierarchy Standard.

| Q: | What about the 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 the documentation. Alternatively, try SDL's DGA driver with the `-vo sdl:dga` option.
| Q: | I can't compile SVGAlib. I'm using kernel 2.3/2.4 ...
| A: | You have to edit SVGAlib's Makefile.cfg and comment `BACKGROUND = y` out.
| Q: | I compiled MPlayer with libdvdcss/libdivxdecore support, but when I try to start it, it says: `> error while loading shared libraries: lib*.so.0: cannot load shared object file: No such file or directory` I checked up on the file and it IS there in `/usr/local/lib` ...
| A: | Add `/usr/local/lib` to `/etc/ld.so.conf` and run `ldconfig`.
| Q: | Hmm, strange. When loading the mga_vid.o kernel module, I found this in the logs: `Warning: loading mga_vid.o will taint the kernel: no license`
| A: | The latest kernel modutils require a flag indicating the license (mainly to avoid kernel hackers debugging closed source drivers). Upgrade your kernel, modutils and MPlayer.
| Q: | When compiling MEncoder, it segfaults at linking!!!
| A: | This is a linker problem. Upgrading binutils should help (2.11.92.* or newer should be good). Since it is not our fault, please do not report!
| Q: | I'd like to compile MPlayer on Minix!
| A: | Me too. :)
5.2. General questions
| Q: | What about DVD playing?
| A: | Read the CD/DVD section in this document.
| Q: | The `-xy` or `-fs` option doesn't work with the x11 driver (`-vo x11`) ...

A:

It does, but you have to explicitly specify software scaling (it's SLOW!) with the `-zoom` option. You better use XF86VidMode support: 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 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!

| Q: | What is the meaning of the numbers on the status line?

A:

Example: `A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49%`

- 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)
- frames decoded (counting from last seek)
- video codec cpu usage in percent (for slices and DR this includes video_out)
- video_out cpu usage
- audio codec cpu usage in percent
- frames needed to drop to maintain A-V sync
- current level of image postprocessing (when using `-autoq`)
- current cache size used (around 50% is normal)

Most of them are for debug purposes and will be removed soon.

| Q: | What if I don't want them to appear?
| A: | Use the `-quiet` option and read the man page.
| Q: | Why is video_out cpu usage zero (0%) for some files?
| A: | It's not zero, but it's called from the codec and thus cannot be measured separately. You should try to play the file using `-vo null` and then `-vo ...` and check the difference to see the video_out speed.
| Q: | There are error messages about file not found `/usr/lib/win32/` ...
| A: | Download the Win32 codecs from our FTP site (avifile's codec package has a different DLL set) and install it.
| Q: | Are there any mailing lists on MPlayer?
| A: | Yes! See the bottom of the info page on our homepage to subscribe!
| Q: | I've found a nasty bug when I tried to play my favorite video!! Who should I inform?
| A: | Please read the bug reporting guidelines and follow the instructions.
| Q: | I have problems playing files with the ... codec. Can I use them?
| A: | Check the codec status, if it doesn't contain your codec, read the codec documentation, especially the codec importing HOWTO and contact us.
| Q: | Umm, what is "IdegCounter"?
| A: | A combination of a Hungarian and an English word. "Ideg" in Hungarian means the same as "nerve" in English, and is pronounced as something like "ydaegh". It was first used to measure the nervousness of A'rpi, after some (umm) "mystic" disappearance of CVS code ;)
| Q: | And what is "Faszom(C)ounter"?
| A: | "Fasz" is a Hungarian word you don't want to know, the others are connected to the perverted minds of the MPlayer developers.
| Q: | LIRC doesn't work, because ...
| A: | Are you sure you are using `mplayer` instead of `mplayer_lirc`? Note that it was `mplayer_lirc` for long time, including the 0.60 release, but recently changed back to `mplayer`.
| Q: | Subtitles are very nice, the most beautiful I've ever seen, but they slow down 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, use the `-double` option. Also try `-vop expand`
| Q: | What exactly is this libavcodec thing?
| A: | See the FFmpeg section.
| Q: | But configure tells me "Checking for libavcodec ... no"!
| A: | You need to get libavcodec from FFmpeg's CVS. Read the instructions in the FFmpeg section.
| Q: | The GUI isn't usable with icewm, because a panel is over the movie!!
| A: | Known problem with icewm. It is unsolvable from our side. In detail: Icewm's taskbar overrides the GUI's window resize queries. If asked for a resize to 800x600, icewm resizes the window to 800x(600-taskbar_size).
| Q: | I can't access the GUI menu. I press right click, but I can't access any menu items!
| A: | Are you using FVWM? Try the following: Start -> Settings -> Configuration -> Base Configuration Set "Use Applications position hints" to "Yes".
| Q: | How can I run MPlayer in the background?
| A: | Use: `mplayer <options> <filename> < /dev/null &`
5.3. File playing problems
| Q: | ... works with avifile/aviplay but doesn't with MPlayer.
| A: | MPlayer != avifile. The only common thing between these players is the Win32 DLL loader. The codecs (DLL) set, synchronization, demultiplexing etc is totally different and shouldn't be compared. If something works with aviplay it doesn't mean that MPlayer will work and vice versa.
| Q: | Audio goes out of sync playing a .avi file.
| A: | Try the `-bps` or `-nobps` option. If it does not improve, read this and upload the file to FTP.
| Q: | MPlayer exits with some 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 a problem with your kernel/libc. Maybe you are using some security patches (for example Solar Designer's OpenWall patch) which forces loading libraries to very low addresses. Because l3codeca.acm is a non-relocatable DLL, it must be loaded to 0x00400000, we can't change this. You should use a non-patched kernel, or use MPlayer's `-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: | Your machine is too slow or your soundcard driver is broken. Consult the documentation to see if you can improve performance.
| 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 a CPU different from the one it was compiled on.
| Q: | I have problems with [your window manager] and fullscreen xv/xmga/sdl/x11 modes ...
| A: | Use the `-fsmode` switch. See example.conf or the man page.
| Q: | But it works with avifile!
| A: | So what?
| Q: | Then avifile is better!
| A: | Then use avifile, it has a nice GUI and nice C++ code :)
| Q: | I got this playing mpeg files: Can't find codec for video format 0x10000001!
| A: | You have an old version of codecs.conf at `~/.mplayer/`. Upgrade it from `/etc/`. OR you have the `vc=` option or something similar in your config file(s).
| 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 kontrol center. If you want to use arts sound, specify audio output via SDL (`ao=sdl`), and make sure your SDL can handle arts sound. Yet another option is to start MPlayer with artsdsp.
| Q: | I have an AVI that produces a gray screen when played with `-vc odivx` and a green one with `-vc divx4`.
| A: | It's not a DivX file, but an M$ MPEG4v3 . Update your codecs.conf.
| Q: | When I play this movie I get video-audio desync and/or MPlayer crashes with the following message: `DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!`

A:

This can have multiple reasons.

- Your CPU and/or video card and/or bus is too SLOW. MPlayer displays a message if this is the case (and the dropped frames counter goes up fast).
- If it is an AVI, maybe it has bad interleaving. Try the `-ni` option.
- Your sound driver is buggy, or you use ALSA 0.5 with `-ao oss`. See the sound card section.
- The AVI has a bad header, try the `-nobps` option, and/or `-mc 0`.

| Q: | I have an MJPEG file which works with other players but displays only a black image in MPlayer.
| A: | Disable the Windows DLL in `codecs.conf`, or use the `-vc ffmjpeg` option (compile MPlayer with libavcodec for this to work).
| Q: | When I try to grab from my tuner, it works, but colors are strange. It's OK with other applications.
| A: | Your card probably misreports its colorspace capacity. Try with YUY2 instead of default YV12 (see the TV input documentation).
| Q: | When I start playing, I get this message but everything seems fine: `Linux RTC init: ioctl (rtc_pie_on): Permission denied`
| A: | You need root privileges to use the new timing code. For details see the installation section of the documentation.
| Q: | I have A/V sync problems. Some of my AVIs play fine, but some play with double speed!
| A: | You have a buggy sound card/driver. Most likely it's fixed at 44100Hz, and you try to play a file which has 22050Hz audio. Try the resample audio plugin.
| Q: | All the WMV (or other..) files I play create a green/gray window and there is only sound! MPlayer prints: `Detected video codec: [null] drv:0 (NULL codec (no decoding))`
| A: | Update your `codecs.conf`.
| Q: | I get very strange percentage values (way too big) while playing files on my notebook.
| A: | It's an effect of the power management / power saving system of your notebook (BIOS, not kernel). Plug the external power connector in before you power on your notebook.
| Q: | The audio/video gets totally out of sync when I run MPlayer as root on my notebook. It works normal when i run it as a user.
| A: | This is again a power management effect (see above). Plug the external power connector in before you power on your notebook.
5.4. Video/audio driver problems (vo/ao)
| Q: | OK, `-vo help` shows DGA driver, but it complains about permissions! Help me!

A:

It works only if running as root! It's a DGA limitation. You should become root (`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`
!!!! BUT STAY TUNED !!!!
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!!!
!!!! SO YOU HAVE BEEN WARNED ... !!!!

| 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: | The "tdfx" driver in XFree86 4.0.2/4.0.3 had this bug. This was solved by bugfix #621 of the XFree86 4.1.0 CVS log. So upgrade to XFree86 4.1.0 or later. Alternatively, either download (at least) DRI version 0.6 from the DRI homepage, or use CVS DRI.
| 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 support 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: | OpenGL (`-vo gl`) output doesn't work (hang/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 mess. It's known to work with Utah-GLX/DRI and Matrox G400 cards. Also with DRI and Radeon cards. It won't work with DRI and other cards. it will not work with 3DFX cards because of the 256x256 texture size limit.
| Q: | I have an nVidia TNT/TNT2 card, and I have a band with strange colors, right under the movie! Whose fault is this?
| A: | This is a bug of nVidia's binary X driver. These bugs appear ONLY with the TNT/TNT2 cards, and we can't do anything about it. To fix the problem, upgrade to the latest nVidia binary driver version. If still bad, complain to nVidia!
| Q: | I have an nVidia XYZ card, and when I click on the GUI's display window to toggle displaying the GUI panel, a black square appears where I clicked. I have the newest driver.
| A: | Yes, nVidia corrected a previous bug (above), and introduced a new one. Let's congratulate them. UPDATE: According to nVidia, this has already been fixed.
| Q: | When I use the GUI with SDL video output, a second video window is created.
| A: | Known, don't use SDL for the GUI yet.
| Q: | Oh the world is cruel ...! SDL has only `x11` target, but not `xv`!
| A: | Try that `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```
5.5. Feature requests
| Q: | Is there a hint on how to watch RealMedia movies in MPlayer?
| A: | There's no way to do it. Therefore this format deserves 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.
| Q: | I'd like to seek +/- 1 frames instead of 10 seconds.
| A: | This won't be done. It was, but then it messed up A/V sync. Feel free to implement it, and send a patch. Don't ask for it.
| Q: | Where is the Windows version?
| A: | It's not released, and won't be. Look around the Windows scene (open source ASF parsers, open source ASF encoders, etc) and you'll know why. We don't want to go to jail.
| Q: | What card do you suggest me to buy?
| A0: | It's for your information only but our criteria are:

A1:

Speed:
This parameter can be computed easily:

1. Which movies do you plan to watch?

- MPEG1: 320x200@32=256000
  You need only 256*25fps=6.4MB/sec of bandwidth (This format can be played in real-time on any PC since the times of Pentium-100 + S3Virge).
- MPEG4: 640x480@32=1228800
  You need a video bandwidth of 1.2*25fps=30MB/sec. To watch such a movie in real-time you need a PC equivalent to a Celeron-450 and a DIMM based video card.
- MPEG2 (aka DVD or SDTV): 1024x768@32=3145728
  You need a video bandwidth of 3*30fps=90MB/sec. In extreme cases (if your video card supports IDCT decoding) the hardware requirements are the same as for MPEG4.
- HDTV (High Definition TeleVision): 2000x2000@32=16000000
  You need a video bandwidth of 16*30fps=480MB/sec. You also need at least 32MB of video memory to watch this stream: 16MB for the RGB area and 16MB for the YUV area.

2. The bandwidth of PCI slots is: 33MHz*32Bit=133MB/sec. PCI2.1 has 66MHz*32Bit=266MB/sec which is more than enough for playing any movie (except HDTV streams which really require an AGP bus).
3. What memory type should be installed on the video card:
   - SIMM - Avoid that.
   - DIMM - Good if your video card has 128-bit memory access.
   - DDR - Is fast enough for all types.

Note: DGA comparison shows that there is no visible difference between video cards which have the same type of video memory installed.
Conclusion: If you have enough CPU power (Celeron-450 or K6-2-500) it should be enough to buy any video card which has at least 8MB of DIMM or DDR memory.

| A2: | Quality: This question was investigated in depth at: AnandTech - Video Card Roundup - DVD Quality, Features & Performance (October 2000)

A3:

Working features under Linux:
If you are a Win32 user then probably you have support (from driver and DirectX8 side) for any feature your chip has.
But for Linux users there are currently only a few vendors which have more or less advanced driver support:

| Matrox Gxxx | ATI m64/r128/radeon | nVidia tnt/geforce | S3 Virge/Savage
Driver's provider | OEM and enthusiasts | OEM and enthusiasts | OEM or enthusiasts | enthusiasts
Driver's quality | best (X11,kernel) | best (X11,GATOS,kernel) | buggy/unstable (X11 only) | slow (X11 only)
VIDEO OVERLAY |  |  |  |
BES and YV2RGB | YES | YES | YES | YES
scaling filters | N/A | YES | N/A | N/A
adaptive deinterlace | N/A | YES | N/A | N/A
Video equalizer (hue, contrast, saturation, color correction) | YES | YES | GeForce only | N/A
Alpha blending, color and video keys | PARTIAL | PARTIAL (under development) | N/A | N/A
Video capture | YES (Marvel) | YES (GATOS) | N/A | N/A
TV-out | G400 only | YES | N/A | N/A

It's a very rough overview of video cards. We should pay attention to video card models. If for example Matrox G400 drivers support TV-out then G450 and G550 do not necessarily have this feature.
Another example: Adaptive deinterlacing exists only for the Rage128 chip and isn't present on Mach64+ ones. The same goes for 3D features. They are different from Mach64 to the Radeon 8500 with TRUFORM technology.

ANYWAY - THE MPLAYER TEAM DOESN'T ACCEPT ANY CLAIMS IF AFTER READING THIS MATERIAL YOU BUY A CARD WHICH IS UNSATISFACTORY FOR YOU!!! THIS IS ONLY OUR POINT OF VIEW.

Q: If a PCI slot is fast enough for most types of movies then why is the S3 Virge too slow for them?
A: Due to its SIMM memory.

5.6. Encoding
| Q: | How can I encode?
| A: | Read the MEncoder documentation.
| Q: | My tuner works, I can hear the sound and watch the video with MPlayer, but MEncoder doesn't encode audio!
| A: | TV audio encoding for Linux is currently unimplemented, we're working on it. At the moment it works only on BSD.
| Q: | I can't encode DVD subtitles into the AVI!
| A: | You have to specify the `-sid` option correctly!
| Q: | MEncoder segfaults on startup!
| A: | Upgrade DivX4Linux.
| Q: | How can I encode only selected chapters from a DVD?
| A: | Use the `-chapter` option correctly, like: `-chapter 5-7`
| Q: | I'm trying to work with 2GB+ files on a VFAT file system. Does it work?
| A: | No, VFAT doesn't support 2GB+ files.