Features

Overview

xine is a free, GPL-licensed video player for unix-like systems. The software is based on a modular, advanced multi-threaded architecture composed of:

  1. xine-engine
    The core of xine is responsible for synchronizing audio, video and overlays. It provides high performance comunication functionality between modules, logging capability, unified configuration system, On Screen Display support, fast MMX/MMXEXT/SSE memory transfers, among other important things.
  2. input plugins
    They provide input data to xine and may be seen as an abstraction layer for DVDs, files, http, pipes, VCDs so that the rest of xine does not need to know from where the data is coming. Several input plugins for xine are already available over the internet from third party programmers.
  3. demuxer plugins
    These plugins are responsible for understanding file formats like AVI, MOV, ASF and others. These file formats don't define how video and audio are encoded but how the encoded data is mixed together (multiplexed). An AVI file, for example, may have DivX4 video and MP3 audio, MPEG2 video and AC3 audio, etc.
  4. decoder plugins
    These plugins receive the encoded data (video, audio or subtitles) and deliver them uncompressed to the engine to be played or shown. Examples of encoding formats (also called "codecs") are MPEG2, MP3, Ogg Vorbis and Windows Media Video 7/8/9.
  5. output plugins
    xine runs on a wide variety of hardware and operating systems therefore it need to have different means of displaying video and audio. These plugins are like drivers, they talk directly to the system so xine-engine does not need to handle the details. Some video output plugins have been developed to utilize several hardware capabilities like color conversion, scaling and refresh sync to provide the best multimedia experience and at the same time, requiring less CPU processing.
  6. post effect plugins
    These can be use to apply arbitrary effects to video and audio before they are sent to output. Examples include visual plugins like GOOM (generates colorful images from the music being played), audio filters like echo, equalizer or even a video picture-in-picture plugin playing more than one stream at the same time.

Advantages of this design:

General features

  • Skinnable GUI
  • Download and installation of new skins from the internet
  • Navigation controls (seeking, pause, fast, slow, next chapter, etc)
  • Linux InfraRed Control support (LIRC)
  • On Screen Display features
  • DVD and external subtitles
  • DVD/VCD menus
  • Audio and subtitle channel selection
  • Closed Caption support
  • Brightness, contrast, audio volume, hue, saturation adjusting (requires hardware/driver support)
  • Playlists
  • Mediamarks
  • Image snapshot
  • Audio resampling
  • Software deinterlacing algorithms
  • 2-3 pulldown detection (tvtime plugin)
  • Configuration dialog
  • Aspect ratio changing
  • Fullscreen display
  • DTS passthrough
  • TV fullscreen support using nvtvd
  • Streaming playback support

Supported file formats

This list is not guaranteed to be complete.

  • File formats (System layer / media types)
    supported:
    • direct DVD playback (of unlocked/unencrypted DVDs, see below)
    • Video CD
    • Audio CD
    • mpeg program streams (.mpg, .mpeg)
    • mpeg transport streams (.ts)
    • ogg (.ogg, .ogm)
    • avi (.avi)
    • asf (.asf, .wmv, .wma)
    • quicktime (.mov, .mp4)
    • mpeg-video (.mpv, .m2v)
    • mpeg-audio (.mp2, .mp3)
    • Sega Saturn FILM (.cpk)
    • Id Software RoQ (.roq)
    • wav (.wav)
    • Autodesk FLIC (.fli)
    • real (.rm, .ra, .ram)
    • raw dv (.dv)
    • network graphics format (.png, .mng)
    • Creative Voice (.voc)
    • Sun/NeXT SND/AU (.snd, .au)
    • Wing Commander III (.mve)
    • Westwood Studios files (.vqa, .aud)
    • Electronic Arts WVE (.wve)
    • AIFF (.aif, .aiff)
    • YUV4MPEG2 (.y4m)
    • SMJPEG (.mjpg)
    • raw AC3 (.ac3)
    • Dialogic VOX (.vox)
    • TechnoTrend PVA (.pva)
    • Playstation STR (.str)
    • Nullsoft Video (.nsv)
    • 4X Technologies (.4xm)

  • Audio codecs
    supported:
    • mpeg audio (layer 1,2,3)
    • a/52 (aka ac3, dolby digital)
    • aac (used in .mp4 files)
    • dts (via external decoder)
    • vorbis
    • pcm
    • adpcm (MS/IMA/DVI/Dialogic)
    • mu-law and A-law
    • roq dpcm
    • Real Media dnet audio
    • Real Media 28.8 audio
    • DivX audio (WMA)
    • GSM 6.10
    • FLAC
    • NSF (NES sound format)
    • Speex
    via external binary/win32 codecs (not included in xine):
    • MS GSM
    • Intel Music Coder
    • Voxware Metasound
    • ACELP.net
    • Real Media Sipro/Cook/dnet
    • QDesign Music 1/2 (QDM1/QDM2)
    currently unsupported/untested Formats:
    • some formats frequently found in quicktime streams (Qualcomm Pure Voice…)
  • Video codecs
    supported:
    • mpeg 1/2
    • mpeg 4 (aka OpenDivX)
    • ms mpeg 4
    • divx 3/4/5
    • windows media video 7 & 8
    • motion jpeg
    • Cinepak
    • DV
    • ms video 1 (msvc)
    • ms rle
    • Sorenson SVQ1/SVQ3 (often used in Quicktime trailers)
    • creative yuv (cyuv)
    • roq video
    • QT RLE, SMC, RPZA
    • theora
    via external binary/win32 codecs (not included in xine):
    • Indeo 3.1-5.0
    • Window Media Video 8,9
    • On2 VP3.1
    • I263
    • Real Media 2.0, 3.0, 4.0
    currently unsupported/untested Formats:
    • 3ivx
    • h263 (aka Real Video 1.0)

Note: xine does not support locked/encrypted DVDs, as there seem to be legal problems in that area. At this point it is unclear what the legal implications of providing that functionality are.
However, xine tries to support all features DVD or other enhanced media types offer.
DVD menu support in xine would not have been possible without the kind support from ogle.

Video drivers

  • XVideo – XFree86 extension providing hardware YUV->RGB conversion and scaling.
  • XShm – Standard X11 displaying with (optional) shared memory support.
  • OpenGL – useful on workstations
  • VDPAU - also useful on workstations
  • SDL – Simple DirectMedia Library with multi-platform support.
  • ASCII Art library – render video using console caracters.
  • Syncfb – Matrox G200/G400 hardware overlay with color conversion, scaling and refresh sync using a special kernel module.
  • Linux Framebuffer device – provide direct access to videocard memory through kernel drivers.
  • VIDIX – Provides direct access to hardware including Matrox G200/400, ATI Mach64, 3DRage, Radeon and Rage128, 3DLabs Permedia3. (may only work as root)
  • pgx64 – Sun PGX64/PGX24 output plugin.

Audio drivers

  • OSS (Open Sound System)
  • ALSA 0.9 (Advanced Linux Sound Architecture)
  • PulseAudio
  • JACK (JACK Audio Connection Kit)
  • sndio (OpenBSD audio)
  • Irix Audio
  • Sun Audio
  • aRts (KDE soundserver)
  • ESD (Enlightened Sound Daemon – not recommended)

Supported network (Webcasting/Streaming) protocols

  • MMS (Microsoft Media)
  • PNM (Real Media)
  • RTSP (Real Media and others)
  • HTTP
  • raw TCP socket streaming (tcp://-style mrls)

Supported multimedia hardware boards

  • DXR3 (EM8300) – MPEG 1/2 decoder with TV output
  • DVB (Digital TV) cards like the Hauppauge WinTV NOVA
  • Video 4 Linux (V4L) – video capturing board
  • WinTV-PVR 250/350 pci (ivtv driver)