The xine engine FAQ


Table of Contents
General questions about xine and this document
What is the xine engine?
What's the aim and scope of this text?
My question is not yet covered here - where can I ask for help?
How do I pronounce "xine"?
What are those xine-lib, xine-ui, gxine, ... modules in cvs for?
Where and how do I get the latest development version?
Where can I find pre-compiled binaries, e.g. RPMs?
Building and installing xine from source
What do I need to compile everything properly?
How do I compile xine?
Making your own RPM packages (xine-lib, xine-ui)
Can I provide additional CFLAGS for compilation?
Are there binaries for my AMD K7 (Athlon™) available? Can I build them?
Build problems: xine engine (xine-lib)
Build problems in frontends (gxine/xine-ui/...)
Can I install xine in my home directory (without being root)?
How to compile xine for Windows?
Playback of various stream types
DVD Playback with xine
Can I watch Video CDs (VCDs)? SVCDS ? CD-i?
Can I watch Quicktime (.mov, .mp4) files using xine?
Real Network files/streams
Can I watch Windows Media (.asf/.wmv/.wma) files using xine?
Can I watch Digital TV (Digital Video Broadcast) using xine?
How do I play streams from STDIN?
How can I watch files with external AVI subtitles?
Running xine
I have a lot of dropped frames - what can I do?
Oki, xine doesn't drop frames now but video output still is not really smooth!
I have problems when using xine on FreeBSD, Solaris, ... !
What is aalib? How do I use it in xine?
Does xine support my dxr3 / hollywood+ card?
Audio related questions
What audio drivers does xine support? OSS? Alsa? Arts? Esd?
When I'm watching a movie, the sound effects are much higher in volume than the voices!
When I play this stream, xine shows video but there's no audio!
Can xine produce 4-/5-channel surround audio output?
What about ac3 output via spdif to an external ac3 decoder?
Getting SPDIF output from a SBLive 5.1 using OSS drivers
Changing the volume with the GUI control has no effect! What's up!?
Audio is stuttering and i see a lot of "metronom: fixing sound card drift by -2115 pts" on the console output
xine seems to lose sound arbitrarily during playback, especially with DVDs
Video related questions
I can hear the audio - but I don't see a picture!
I only see a blue (or green or black) video image most of the time.
The image looks strange, it is shifted, cropped or shows weird lines!
How can I make xine use the Xv extension and what drivers do I need?
Some parts of my X Desktop get transparent when xine plays the video!
The aspect ratio of the video is wrong!
What is the difference between discarded and skipped frames?
My xine is runing in black and white! / I only get a gray video output!
Which is the best video driver to use?
OSD and overlay related questions
What is this "unscaled" OSD about?
I can't see the OSD or it leaves a black box over the image!
Why colors of overlays/subtitles seem to be "leaking"?
Why external subtitles look so ugly?
Why subtitles can't be displayed outside the video?
What kinds of subtitle fonts does xine use?
How to create own xine subtitle fonts?
Encoding of external subtitles is bad. What is wrong?
Error Messages: What they mean and what you can do
Starting xine crashes XFree, I am logged out of my desktop!
Starting xine fails with complains about audio drivers/devices!
"no video port found"
"Unable to open dvd drive (/dev/dvd)"
My drive doesn't work and the kernel says "status=0x51 { DriveReady SeekComplete Error }"
"demux error! 00 00 00 (should be 0x000001)"
"audio driver 'oss' failed, using null driver instead"
"video_out: throwing away image with pts xxx because it's too old"
"No video plugin available to decode 'xxxxxx'."
"w32codec: decoder failed to start. Is 'xxxxxx' installed?"
xine just crashed on me - i didn't get any error message

General questions about xine and this document


My question is not yet covered here - where can I ask for help?

First of all be sure that your question is really not covered here and that you haven't just been a bit too lazy to read through all of this text. ;-). Also check out the documentation specific to the frontend (e.g. xine-ui or gxine or totem).

That said - you are welcome to mail to our user mailing list: Please provide some info about your setup so people have a chance to help you, e.g. include information about your audio/video hardware and drivers you use, operating system, cpu type and some console output/any error messages. Also include command line parameters you have specified and information about the type of stream you're trying to play back. Also very important is the version of xine you're using and information about any additional plugins you may have installed on your system.


Building and installing xine from source


How do I compile xine?


How to compile xine for Windows?

For compiling xine under MinGW, CygWin or MS Visual C see README.WIN32.

For cross-compiling xine under MinGW from comfortable unix-like environment see README.MINGWCROSS.


Playback of various stream types

DVD Playback with xine

How do I play back DVDs with xine?

Newer xine (1.0.x) releases come with a full-featured DVD plugin that should be able to handle any unencrypted, non-locked DVD with full menu navigation support. No external plugins are required anymore here.

To get DVD playback working, first make sure you have a symlink /dev/dvd pointing to your DVD device on your system. For example, if your DVD drive is the master ide drive on the second IDE channel, /dev/dvd should point to /dev/hdc. Please note that if you are using the ide-scsi emulation on your system, it is likely that your DVD drive got mapped to a scsi device node even though it is an ide drive. In that case first check out you boot/kernel logs (or run cdrecord -scanbus) to find out which device it got mapped to and set the symlink accordingly (should be something like /dev/scd0, /dev/scd1, ... in that case). Also make sure you (as a user) have sufficient (read and write) permissions on your DVD drive. This could mean you either have to change the device permissions or add your user to a special group (e.g. addgroup cdrom username), depending on your setup and/or distribution.

It is highly recommended to switch DMA mode on for your DVD drive (without it even very recent machines will have trouble producing smooth video output). Use a command like hdparm -d 1 <device> on your DVD device. Please note that even if you're using ide-scsi you will have to set the dma flag on the ide device node (e.g. /dev/hdc), not the mapped /dev/scd scsi device.

To be able to play back encrypted DVDs you need to have libdvdcss installed on your system (please check if this is legal where you live). If you do not understand what the term "encrypted DVD" means here: As a rule of thumb, every DVD you have to pay money for is most likely encrypted.

To make matters worse, apart from encryption, there is another obstacle to take: the region code. The DVD authorities decided to divide the world into eight geographical regions. Have a look at http://www.dvdforum.gr.jp/RegionMap.pdf if you want to know which number has been assigned to your country. It is now their idea, that you shall only play DVDs, which have been produced for your region. If you take a DVD off the shelf in your local store, you should find a little globe-like icon which shows the region code the disc is for.

Newer (post-2000) DVD drives (so-called RPC-2 drives) check the DVD region, which means they'll prevent you from playing back DVDs that have a different region code from what the drive is set up for. Some drives come with a factory setting of region 0 so they can play back any DVD until a region code is set. Others refuse to play any DVD at all until they are told a region. The easiest way to handle this is to use the regionset utility from http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=168415 .

Once you have everything set up, try something like gxine dvd:/ or xine -p dvd:/ to start dvd playback. Some frontend also offer so-called autoplay buttons or menu entries that start dvd playback immediately.

Important: do not try to mount the DVD. Just insert it and hit the DVD autoplay button or start xine from the command line.

If things do not work as expected, try running the xine-check shellscript that comes with xine to see if this gives you further hints on what could be wrong.


I have problems setting up my RPC-2 drive for the right region!

You can download a tool to set the region code of RPC-Drives here: http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=168415 .

Warning: Please be aware that the number of region code changes in RPC-2 drives is limited (usually about 5 times), after that your drive will stay locked to the region you last set it up for.


Can I watch Video CDs (VCDs)? SVCDS ? CD-i?

xine supports VCD and SVCD playback out-of-the box. Similar to DVDs, make sure you have a /dev/cdrom alias pointing to your CDROM drive which you will use to play back the (S)VCD.

At the moment, CD-i formats are not supported by xine.

Do not try to mount the (S)VCD. Simply insert it into your CDROM drive and hit the VCD autoplay button or start something like gxine vcd:/ or xine vcd:/ from the command line.


VideoCD troubleshooting guide

This gives higher-level troubleshooting. More lower-level information is given in the next section.

  • When you open the configuration dialog of your frontend, you should see a vcd config section. An important setting is default_device. If this is set to the empty string, the VCD plugin will try to scan your drives for a suitable device if the driver has the capability to scan for drives. However you can set the device to something of your choosing. On GNU/Linux, this may be /dev/cdrom and on Solaris it may be /vol/dev/aliases/cdrom0.

    If you set this field, make sure these are correct for your particular setup. For example, I generally play out of the DVD device and this is called /dev/dvd rather than /dev/cdrom.

  • Your frontend should offer a VCD autoscan button or menu item. If you select this, you should see your CD disk light go on if you have one. And the CD should be read. You should get a playlist of what's on the VideoCD.

    If not something's wrong, possibly you configured the wrong drive. You might try to read a disk image of a VideoCD and thus elimate any problems with hardware. You can get a test VideoCD disk image to test here: http://www.vcdimager.org/pub/vcdimager/examples/test_svcd/test_svcd_pal.zip . After unzipping this there should be files test_svcd_pal.cue and test_svcd_pal.bin. Run xine with the MRL vcd:/test_svcd_pal.cue:E0. If you see something playing then this is a hardware problem. You might also want to try starting playback-control with vcd:/test_svcd_pal.cue:P1.

  • There should be at least one "track", and one "entry" listed for the VideoCD and the names of these in the MRL list will end with "T1" and "E0" respectively. Often there are other playlist items, and if you have menus or still frames there will be "segments" as well. The simplest things to check are probably "entries" and "tracks". If there are no entries listed or none of the tracks or entries play, then there may be a problem with that particular medium. So as in the step above, you can try a known good sample and perhaps burn a CD from that. More likely if you get this far, some of the items listed work and some do not. There are a number of debugging switches that you can dynamically turn on and off that may be able to help in isolating more specific problems. See the section below.

  • Something plays now, but you do not get any menus? Well, first is there supposed to be a menu? In the last step you should have seen what is on the VideoCD. Still frames are always "segments" so see if you can find one in the MRL list and select that.

    If there are no segments listed, there aren't any still-frame menus. It's also possible to have menus in looping MPEG's. Use the vcddump tool to find loops. vcddump is also part of VCDImager. Another program that can help you examine the contents of a VideoCD is vcdxrip.

    To troubleshoot, start out with the known SVCD example that has a still-frame menu at the beginning: http://www.vcdimager.org/pub/vcdimager/examples/test_svcd/test_svcd_pal.zip Inside this is a largish file called test_svcd_pal.bin and another short text file called test_svcd_ntsc.cue. These are CD disk images; that is, something that could be burned to a CD drive such as with cdrdao. However you don't have to create a CD to view these with the xine VCD plugin. You should be able to play the VideoCD by running the MRL vcd:/test_svcd_pal.cue. If you see a still frame on startup. Great! If instead you see what looks like the beginning of a movie (Blue Streak with Martin Lawrence) then go to the next step.

  • You have a VideoCD with menu and can see it, but there is no menu on startup? If you have the VideoCD from the last step, then run the MRL vcd:/test_svcd_pal.cue:P1 If this shows a still frame, but it just does not show when you hit either the "VCD" autoscan button or give a MRL without the P1 at the end then go to the next step.

    If you have another VideoCD, from the MRL list, you should also see "playlist" entries. Try selecting the one that ends "P1". If you don't see an entry with P1, then your VideoCD does not have playback control (PBC) and although there may be a still frame on the VideoCD it may have been authored so it is not easily accessed. Again vcddump or vcdxrip can help here.

  • You have a VideoCD with menu at beginning and can see it using an MRL with P1 at the end, but you want to see it by hitting the "VCD" autoscan button as well? Check to see that you have the configuration entry media.vcd.autoplay set to playlist.


Real Network files/streams

Can I watch Real (.rm, .ram) files using xine?

The situation with real files and streams is pretty similar to the situation with Quicktime Streams (see above). The newer real audio and video formats are only supported by using binary-only codecs which are not included in xine.

Possibly the most convenient way to get the Real codecs is to download them from the MPlayer website http://www.mplayerhq.hu/homepage/dload.html . The package is called "essential". Unpack it and move everything you find inside to /usr/lib/win32 and set the decoder.external.real_codecs_path in your xine config file to /usr/lib/win32 (actually you can place them anywhere you want, e.g. someplace in your home directory, but then you'll have to set decoder.external.real_codecs_path accordingly). Restart xine then and you should be able to watch Real files/streams.


Can I watch Windows Media (.asf/.wmv/.wma) files using xine?

While the container format (system layer) ASF (wmv is just an alias) is fully supported in xine, for newer windows media 9 based streams you'll need to install windows binary codecs (.DLLs).

Possibly the most convenient way to get the Windows DLLs is to download them from the MPlayer website http://www.mplayerhq.hu/homepage/dload.html . The package is called "essential". Unpack it and move everything you find inside to /usr/lib/win32 (actually you can place them anywhere you want, e.g. someplace in your home directory, but then you'll have to set decoder.external.win32_codecs_path in your xine config file accordingly). Restart xine then and you should be able to watch windows media streams.


Running xine

I have a lot of dropped frames - what can I do?

Your hardware might be too slow for xine. Make sure you turn on all speed optimizing options. A few things you should check (in order of importance):


Audio related questions


Getting SPDIF output from a SBLive 5.1 using OSS drivers

The following explains how to get the above configuration going with xine. Some parts of it may applicable to other configurations (cards that use the EMU10k1 chip) as well.


Retrieving the driver

The OSS driver is maintained by creative and can be downloaded at http://opensource.creative.com/. The driver package contains documentation on how to install it. Besides that I'd like to add the following notes.

In order to compile and install these drivers, you need a valid kernel configuration file. For RedHat Linux's pre-compiled kernels these configuration files can be found in /usr/src/linux/configs. After you've located the correct config file for your kernel, you need to copy it to /usr/src/linux/.config For example, when you run the 2.4.18-i686 kernel do :
   cp /usr/src/linux/configs/kernel-2.4.18-i686.config /usr/src/linux/.config
Make sure that the emu10k1 module that is currently installed is not loaded. To unload the modules:
   /sbin/modprobe -rv emu10k1.o ac97_codec.o
If this mentions that the device is busy, some program is using the driver. Some example could be a mixer application or sound daemon like artsd. You'll need to close down the applications before continuing. At success it should print something like:
   # delete emu10k1
   # delete ac97_codec
   # delete soundcore
Run make in the directory where you unpacked the driver and follow the instructions printed at the end of each step. The last step should be:
   make install-tools
As the README of the driver package mentions the SPDIF AC3 output doesn't work by default. In the directory utils/scripts an emu10k1.conf file can be found which need to be placed in the default installation directory (/usr/local/etc). After this the emu10k1.conf needs to be modified. The following settings worked fine for me (I don't use the analog outputs of the card):
   CARD_IS_5_1=yes
   USE_DIGITAL_OUTPUT=yes
   ENABLE_TONE_CONTROL=yes
   AC3PASSTHROUGH=yes
   ENABLE_LIVEDRIVE_IR=no
   INVERT_REAR=no
   MULTICHANNEL=yes
   ROUTE_ALL_TO_SUB=no
   ANALOG_FRONT_BOOST=no
   SURROUND=no
   PROLOGIC=no
   ENABLE_CD_Spdif=yes  
   ENABLE_OPTICAL_SPDIF=no 
   ENABLE_LINE2_MIC2=no    
   ENABLE_RCA_SPDIF=no     
   ENABLE_RCA_AUX=no
After modifying the emu10k1.conf, you need to modify your /etc/modules.conf and make sure the following lines are in there.
   alias sound-slot-0 emu10k1
   post-install emu10k1 /usr/local/etc/emu-script
After saving the changes to modules.conf, run
   /sbin/depmod -a
Now, you're ready to load the new modules and set the correct options for it. To load the modules run:
   /sbin/modprobe emu10k1


Video related questions


How can I make xine use the Xv extension and what drivers do I need?

xine will normally use Xv by default if it is available. In some cases you might need to choose Xv playback manually (when the ~/.xine/config file for some reason says that you want to use XShm):
   xine -V Xv

If this doesn't work for you, it may be possible that Xv is not present on your system.

First you need to install/use XFree 4.x. Once you got that you have to make sure the XFree drivers you're using are supporting Xv on your hardware. Here are some hints for individual gfx chips:


OSD and overlay related questions


I can't see the OSD or it leaves a black box over the image!

If you are using xine-lib version 1-rc3 or newer, this is probably due buggy XV drivers that do not support unscaled OSD (the XShape extension) properly.

There have being reports of some ATI drivers that don't allow displaying anything over the video. The VIA Epia binary drivers is reported to leave a black box where the OSD was displayed.

The problem may be fixed by either updating the video driver, or disabling xine unscaled OSD support.


Error Messages: What they mean and what you can do


"audio driver 'oss' failed, using null driver instead"

First of all, make sure that your OSS Audio drivers are working (i.e. you can play music with other software). Maybe you're using alsa? If so, try gxine -A alsa to see if this helps.

The most common reason for oss not working is that some other program is accesing your audio device. If you're using linux, the command fuser /dev/dsp should give you the PID of the process.

If you are using GNOME, chances are that this is caused by ESD. Now you have two possibilities. Either deactivate ESD (temporarily) by right clicking on the sound monitor applet and selecting "Place Esound in standby" or just kill it. Then xine will use OSS audio output. The other method is to make xine use ESD for audio output with:
   gxine -A esd
This may result in worse playback - exact syncronization is not possible with esd, so using oss should be preferred.

If you are using KDE, there is the possibility that the aRts sound daemon is currently running and thus blocking your sound device. You can check that by starting the aRts control (in your KDE menu it should be under Multimedia). If it is running, you can either use the aRts audio output plugin:
   gxine -A arts
Or you suspend the aRts daemon by checking the appropriate option in your aRts control. (recommended)

Newer versions of arts have an auto-suspend mode - this can lead to some nondeterministic behaviour of xine if it is set up to use the audio device directly. Using arts is recommended in that case, however you will loose the ability to do four/five channel audio output.


xine just crashed on me - i didn't get any error message

OK, yes, that shouldn't happen and you're upset. We can understand that. But, to help you and of course to fix this, we need some information. So, let's go through the checklist and maybe prepare a nice bug report for the xine-user mailing list: