Frequently Asked Questions Development How do I create a proper patch for MPlayer? We made a short document describing all the necessary details. Please follow the instructions. How can I support MPlayer development? We are more than happy to accept your hardware and software donations. They help us in continuously improving MPlayer. How can I become an MPlayer developer? We always welcome coders and documenters. Read the technical documentation to get a first grasp. Then you should subscribe to the mplayer-dev-eng mailing list and start coding. Why don't you use autoconf/automake? We have a modular, handwritten build system. It does a reasonably good job, so why change? Besides, we dislike the auto* tools, just like other people. Compilation Are there binary (RPM/deb) packages of MPlayer? See the Debian and RPM section for details. Compilation stops with an error message similar to this one: cfft.c: In function`passf2': cfft.c:556: unable to find a register to spill in class `FLOAT_REGS' cfft.c:556: this is the insn: (insn 235 233 246 (set (subreg:SF (reg/v:DI 29 rmm0 [110]) 0) (minus:SF (mem:SF (plus:SI (mult:SI (reg:SI 1 edx [112]) (const_int 8 [0x8])) (reg/v/f:SI 3 ebx [62])) [4 S4 A32]) (reg:SF 8 st(0) [132]))) 533 {*fop_sf_1_nosse} (insn_list 232 (nil)) (expr_list:REG_DEAD (reg:SF 8 st(0) [132]) (nil))) cfft.c:556: confused by earlier errors, bailing out This is a known problem of gcc 3.2, upgrade to 3.3 to solve the problem. How to install gcc is described in the gcc 2.96 section. Alternatively you can use an external FAAD library as described in the AAC section. Compilation stops with an error message similar to this one: In file included from mplayer.c:34: mw.h: In function `mplMainDraw': mw.h:209: Internal compiler error in print_rtl_and_abort, at flow.c:6458 Please submit a full bug report, with preprocessed source if appropriate. This is a known problem of gcc 3.0.4, upgrade to 3.1 to solve the problem. How to install gcc is described in the gcc 2.96 section. Configure ends with this text, and MPlayer won't compile! Your gcc does not support even i386 for '-march' and '-mcpu' Your gcc isn't installed correctly, check the config.log file for details. What's the problem with gcc 2.96? We strongly discourage the use of gcc 2.96! Read this document for details about why Red Hat released gcc 2.96 and what the problems are all about. If you still really really want to use it, be sure to get the latest release and give the option to configure. Remember that you are on your own from this point. Do not report bugs, do not ask for help on the mailing lists. We will not provide any support in case you run into problems. Great, I have gcc 3.0.1 from Red Hat/Mandrake, then I'm fine! No, since there have been/are issues with these compilers as well. To check the status of current compilers' MPlayer support, see the Installation section. 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 Upgrade your glibc to the latest release. On Mandrake, use 2.2.4-8mdk. .. gcc 2.96 ... (Yes, some people are STILL flaming about gcc 2.96!) 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 the messages of ./configure and MPlayer. And you clever guys come and flame us with gcc 2.96 and binary packages. Instead of helping users or making patches to help solve problems. Half of our spare/free time is spent by answering silly mails here and making newer tricks and checks to configure to avoid such mails. And there is a balance. On the one side are you, clever guys, saying we are very bad because we don't like buggy gcc 2.96, and on the other side there are the 'new to Linux' guys who are showing us gcc 2.96 is buggy. Conclusion: We can't be good. Half the people will always say we are bad. Maybe we should close the project, make it closed source, commercial, and provide install support for it. then we could leave current work, so development could go faster, and we could earn lots of money with it and buy a big house, etc etc. Do you really want it? It seems.
SDL output doesn't work or compile. The problem is ... 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. I am still having trouble compiling with SDL support. gcc says something about "undefined reference to `SDL_EnableKeyRepeat'". What now? 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! It doesn't compile, and it misses uint64_t inttypes.h and similar things ... Copy etc/inttypes.h to the MPlayer directory (cp etc/inttypes.h .) and try again ... I have Linux running on a Pentium III but ./configure doesn't detect SSE ... Only kernel versions 2.4.x support SSE (or try 2.2.19 or newer, but be prepared for problems). I have a Matrox G200/G400/G450/G550, how do I compile/use the mga_vid driver? Read the mga_vid section. 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 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. During 'make', MPlayer complains about X11 libraries. I don't understand, I DO have X installed!? ... but you don't have the X development package installed. Or not correctly. It's called XFree86-devel* under Red Hat, and xlibs-dev under Debian. Also check if the /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. I can't compile SVGAlib. I'm using kernel 2.3/2.4 ... You have to edit SVGAlib's Makefile.cfg and comment BACKGROUND = y out. 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 ... Add /usr/local/lib to /etc/ld.so.conf and run ldconfig. When compiling MEncoder, it segfaults at linking! 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! MPlayer dies with segmentation fault upon pthread check! chmod 644 /usr/lib/libc.so I'd like to compile MPlayer on Minix! Me too. :)
General questions Are there any mailing lists on MPlayer? Yes. See the mailing lists section. I've found a nasty bug when I tried to play my favorite video! Who should I inform? Please read the bug reporting guidelines and follow the instructions. I have problems playing files with the ... codec. Can I use them? Check the codec status, if it doesn't contain your codec, read the codec documentation, especially the codec importing HOWTO and contact us. When I start playing, I get this message but everything seems fine: Linux RTC init: ioctl (rtc_pie_on): Permission denied You need root privileges or a specially set up kernel to use the new timing code. For details see the RTC section of the documentation. There is a timer in the upper left corner. How can I get rid of it? Press o and try the option. The or option doesn't work with the x11 driver () ... It does, but you have to explicitly specify software scaling (very slow) with the option. You better use XF86VidMode support: You must specify the and the option, and you're done. Make sure you have the right modelines in your XF86Config file, and try to make the DGA driver and SDL's DGA driver work for you. It's much faster. If SDL's DGA works, use that, it'll be even faster. What is the meaning of the numbers on the status line? 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 ) current cache size used (around 50% is normal) Most of them are for debug purposes and will be removed at some point. What if I don't want them to appear? Use the option and read the man page. Why is video_out cpu usage zero (0%) for some files? 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 and then and check the difference to see the video_out speed. You are using Direct Rendering, where the codec renders to the video memory itself. In this case, the decoding percentage contains the display percentage, too. There are error messages about file not found /usr/local/lib/codecs/ ... Download the Win32 codecs from our codecs page (avifile's codec package has a different DLL set) and install it. Umm, what is "IdegCounter"? A combination of a Hungarian and an English word. "Ideg" in Hungarian means the same as "nerve" in English, and is pronounced as something like "ydaegh". It was first used to measure the nervousness of A'rpi, after some (umm) "mysterious" disappearance of CVS code ;) And what is "Faszom(C)ounter"? "Fasz" is a Hungarian word you don't want to know, the others are connected to the perverted minds of the MPlayer developers. LIRC doesn't work, because ... Are you sure you are using mplayer instead of mplayer_lirc? Note that it was mplayer_lirc for a long time, including the 0.60 release, but it was recently changed back to mplayer. Subtitles are very nice, the most beautiful I've ever seen, but they slow down playing! I know it's unlikely ... After running ./configure, edit config.h and replace #undef FAST_OSD with #define FAST_OSD. Then recompile. The onscreen display (OSD) is flickering! You use a vo driver with single buffering (x11,xv). With xv, use the option. Also try . What exactly is this libavcodec thing? See the libavcodec section. But configure tells me "Checking for libavcodec ... no"! You need to get libavcodec from FFmpeg's CVS. Read the instructions in the libavcodec section. Icewm's taskbar keeps covering the movie in fullscreen mode! This shouldn't happen anymore, if it still does use the layer option and report it to the mplayer-users mailing list. I can't access the GUI menu. I press right click, but I can't access any menu items! Are you using FVWM? Try the following: Start -> Settings -> Configuration -> Base Configuration Set "Use Applications position hints" to "Yes" How can I run MPlayer in the background? Use: mplayer options filename < /dev/null & Playback problems I cannot pinpoint the cause of some strange playback problem. Do you have a stray codecs.conf file in ~/.mplayer/, /etc/, /usr/local/etc/ or a similar location? Remove it, outdated codecs.conf files can cause obscure problems. MPlayer will use its builtin one instead. ... works with xine/avifile/... but doesn't with MPlayer. MPlayer is not xine/avifile/.... Although these players have some code in common, the codecs (DLL) set, synchronization, demultiplexing etc is different and should not be compared. If you have a file MPlayer fails to play correctly but works in another player, please read the bug reporting guidelines and upload the file to our FTP server. Audio goes out of sync playing an AVI file. Try the or option. If it does not improve, read this and upload the file to FTP. MPlayer exits with some error when using l3codeca.acm. 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 option to disable using l3codeca.acm. My computer plays MS DivX AVIs with resolutions ~ 640x300 and stereo mp3 sound too slow. When I use option, everything is OK (but quiet). Your machine is too slow or your soundcard driver is broken. Consult the documentation to see if you can improve performance. MPlayer dies with "MPlayer interrupted by signal 4 in module: decode_video". Try running MPlayer on the machine you compiled on. Or recompile with runtime CPU detection (./configure --enable-runtime-cpudetection). Don't use MPlayer on a CPU different from the one it was compiled on, without using the feature mentioned just now. I have problems with [your window manager] and fullscreen xv/xmga/sdl/x11 modes ... Read the bug reporting guidelines and send us a proper bug report. I got this playing MPEG files: Can't find codec for video format 0x10000001! You have an old version of codecs.conf in ~/.mplayer/, /etc/, /usr/local/etc/ or similar. Remove it, it's not needed anymore. OR you have the option or something similar in your config file(s). When starting MPlayer under KDE I just get a black screen and nothing happens. After about one minute the video starts playing. The KDE arts sound daemon is blocking the sound device. Either wait until the video starts or disable the arts-daemon in control center. If you want to use arts sound, specify audio output via our native arts audio driver (). If it fails or isn't compiled in, try SDL () and make sure your SDL can handle arts sound. Yet another option is to start MPlayer with artsdsp. I have an AVI that produces a gray screen when played with and a green one with . It's not a DivX file, but an MS MPEG4v3. If you have an old version of codecs.conf in ~/.mplayer/, /etc/, /usr/local/etc/ or similar, remove it. 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! 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 option. Your sound driver is buggy, or you use ALSA 0.5 with . See the sound card section. The AVI has a bad header, try the option, and/or . I have an MJPEG file which works with other players but displays only a black image in MPlayer Use another codec to play the file, try . When I try to grab from my tuner, it works, but colors are strange. It's OK with other applications. Your card probably misreports its colorspace capacity. Try with YUY2 instead of default YV12 (see the TV section). I have A/V sync problems. Some of my AVIs play fine, but some play with double speed! 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. 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)) If you have an old version of codecs.conf in ~/.mplayer/, /etc/, /usr/local/etc/ or similar, remove it. I get very strange percentage values (way too big) while playing files on my notebook. 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. You can also try whether cpufreq (a SpeedStep interface for Linux) helps you. 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. This is again a power management effect (see above). Plug the external power connector in before you power on your notebook or use the option. While playing a movie it suddenly gets jerky and I get the following message: Badly interleaved AVI file detected - switching to -ni mode... Badly interleaved files and don't work well together. Try . How can i play MPEG Layer 2 (mp2) audio files? You have to use . Video/audio driver problems (vo/ao) I have no sound when playing a video and get error messages similar to this one: AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) audio_setup: Can't open audio device /dev/dsp: Device or resource busy couldn't open/init audio device -> NOSOUND Audio: no sound!!! Start playing... Are you running KDE or GNOME with the ARTS or ESD sound daemon? Try disabling the sound daemon or use the or option to make MPlayer use ARTS or ESD. What about the DGA driver? I can't find it! ./configure autodetects your DGA driver. If doesn't show DGA, then there's a problem with your X installation. Try ./configure --enable-dga and read the DGA section. Alternatively, try SDL's DGA driver with the option. OK, shows DGA driver, but it complains about permissions. Help me! 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 This is a big security risk! Never do this on a server or on a computer that you do not control completely because other users can gain root privileges through SUID root MPlayer. You have been warned. 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 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. OpenGL () output doesn't work (hang/black window/X11 errors/...). 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. I have an nVidia TNT/TNT2 card, and I have a band with strange colors, right under the movie! Whose fault is this? 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! 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. 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. Oh the world is cruel ...! SDL has only x11 target, but not xv! Try that x11 target again. Now try . 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 and DVD playback What about DVD navigation? Support for dvdnav in MPlayer is currently broken, normal playback does work, though. If you want to have fancy menus, you will have to use another player like Xine or Ogle. If you care about DVD navigation, send a patch. While playing a DVD, I encountered this error: mplayer: ifo_read.c:1143: ifoRead_C_ADT_internal: Assertion nfo_length / sizeof(cell_adr_t) >= c_adt->nr_of_vobs' failed. This is a known libdvdread 0.9.1/0.9.2 bug. Use libmpdvdkit2, which is present in MPlayer source, and used by default. Can I compile libdvdread and libdvdcss on my sweet SPARC under Solaris? Who knows ... It's said to work, so please test it and send feedback. Refer to the documentation of libdvdread and its homepage as well. We're not the authors of libdvdread. Use libmpdvdkit2, which is present in MPlayer source, and used by default. What about subtitles? Can MPlayer display them? Yes. See the DVD chapter. How can I set the region code of my DVD-drive? I don't have Windows! Use the regionset tool. Do I need to be (setuid) root/setuid fibmap_mplayer to be able to play a DVD? No, only for old-style DVD support. However you must have the proper rights on the DVD device entry (in /dev/). Where can I get libdvdread and libdvdcss packages? You don't need to. Use libmpdvdkit2, which is present in the MPlayer source, and used by default. You can get the mentioned packages from the Ogle site. Is it possible to play/encode only selected chapters? Yes, try the option. My DVD playback is sluggish! Use the option (described in the man page) and try enabling DMA for the DVD drive with the hdparm tool (described in the CD chapter). Feature requests If MPlayer is paused and I try to seek or press any key at all, MPlayer ceases to be paused. I would like to be able to seek in the paused movie. This is very tricky to implement without losing A/V synchronization. All attempts have failed so far, but patches are welcome. I'd like to seek +/- 1 frames instead of 10 seconds. 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. How can I make MPlayer remember the options I use for this particular file? Create a file named movie.avi.conf with the file-specific options in it and put it in ~/.mplayer or in the same directory as the file. Encoding How can I encode? Read the MEncoder section. How can I create VCDs? Try the mencvcd script from the TOOLS subdirectory. With it you can encode DVDs or other movies to VCD or SVCD format and even burn them directly to CD. How can I join two video files? This has been discussed to no end on mplayer-users. Go search the archives for a complete answer. This is a complicated topic and your mileage may vary a lot depending on the kind of files you want to merge. MPEGs can be concatenated into a single file with luck. For AVIs there are two tools, avidemux and avimerge (part of the transcode tool set), available that might do the job. You can also try MEncoder if you have two files sharing the same dimensions and codec. Try cat file1 file2 > file3 mencoder -ovc copy -oac copy -o out.avi -forceidx file3.avi My tuner works, I can hear the sound and watch the video with MPlayer, but MEncoder doesn't encode audio! TV audio encoding for Linux is currently unimplemented, we're working on it. At the moment it works only on BSD. I can't encode DVD subtitles into the AVI! You have to specify the option correctly! MEncoder segfaults on startup! Upgrade DivX4Linux. How can I encode only selected chapters from a DVD? Use the option correctly, like: I'm trying to work with 2GB+ files on a VFAT file system. Does it work? No, VFAT doesn't support 2GB+ files. Why is the recommended bitrate printed by MEncoder negative? Because the bitrate you encoded the audio with is too large to fit the movie on any CD. Check if you have libmp3lame installed properly. I can't encode ASF files to AVI/DivX because it uses 1000 fps? Because ASF uses variable frame rate but AVI uses a fixed one, you have to set it by hand using . How can I put subtitles in the output file? Just pass the (or , , respectively) option to MEncoder.