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:
is based on a modular, advanced multi-threaded architecture composed of:
- 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. - 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. - 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. - 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. - 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. - 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:
- xine is fast
All included decoders are optimized to use MMX, MMXEXT, SSE and 3DNow! acceleration
if available. The well designed architecture moves data efficiently across
plugins without requiring extra memory copies to be made. Multi-threaded implementation
provide big gains on SMP systems. - xine is extensible
Plugins are probed on startup and new ones may be installed from third party
(although the most important are already provided). - xine is reusable
All described features are available from a library and may be called from
other applications.
A default X11 GUI (xine-ui)
is available but any other frontend can use the xine-lib too. There are
several of them already available:
GTK+ 2 (gxine; sinek, GQoob),
Gnome 2 (Totem),
scriptable console (toxine),
KDE (kxine),
KDE multimedia (xine aRts plugin)
and even a Netscape/Mozilla plugin. (Some frontends may be at beta
stage.)
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
|
Note: xine does not support locked/encrypted DVDs, as there seem to |
Video drivers
- XVideo – XFree86 extension providing hardware YUV->RGB conversion and
scaling. - XShm – Standard X11 displaying with (optional) shared memory support.
- OpenGL – usefull on workstations
- SDL – Simple DirectMedia Library with multiplataform 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)
- 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)