+++++++++++++++++++++++++ +++++++++++++++++++++++++ XINE: A Free Video Player +++++++++++++++++++++++++ +++++++++++++++++++++++++ VERSION => $Id: README_en,v 1.1 2001/12/13 01:00:36 f1rmb Exp $ INDEX -===- 1 THE DOCUMENTATION 1.1 Scope of this document 2 ABOUT XINE 2.1 Supported platforms and requirements 2.2 Used software 2.3 Developers of xine 2.4 Usage 2.4.1 Keyboard shortcuts 2.4.2 Selecting audio channels 2.4.3 Selecting subtitles 3 WHAT'S LEFT TO SAY 3.1 Freedom, DVDs and stuff... 4 Contacting the xine project 1 THE DOCUMENATION 1.1 Scope of this document This is the end-user documentation for xine-lib and xine-ui. You'll find more documentation in the doc/ directory of both packages. Please also take a closer look at the FAQ included with the xine-ui package which may already have the answers to your questions. 2 ABOUT XINE xine is a free GPL-licensed video player for unix-like systems. It supports mpeg-2 and mpeg-1 system (audio + video multiplexed) streams, mpeg elementary streams (audio/video only, e.g. mp3 files), AVI files with various video formats (some of them by using win32 dlls) and Vorbis OGG streams. There is some support for quicktime streams (but most quicktime video and audio codecs are highly proprietary and thus not supported). xine plays the video and audio data of the stream and synchronizes the playback of both. Depending on the properties of the stream, playback will need more or less processor power, full frame rate for mpeg-2 has been seen on a 400 MHz P II system. xine can play Video CDs, SVCDs and DVDs directly. Unfortunately the legal status of encrypted/locked DVD playback is uncertain in some countries so xine does not include any DVD unlock/decrypt code. To play back such DVDs you'll need external programs or something like a xine_dvd_plugin that can handle DVD authentification/descrambling. The xine project team denies all responsibility for such uses of xine. As of xine 0.5 xine's architecture allows for flexible plugins, so various other stream types and output devices might be supported in the future. 2.1 Supported platforms and requirements - xine needs a X11 server for video output (8, 15, 16, 24 or 32 bit color depth) - xine can detect and use the MIT X video and X shared memory extension for better playback performance - if you can't get Xv to run on your platform you should use 16bpp colordepth for speed. Xv seems to work nicely for any color-depth. - if you have a Matrox G200/G400/G450 graphics adaptor you can optionally use the sybcfb/teletux video ouput driver. See README.syncfb for more details. - for audio playback OSS, ALSA, ESD and ARTSD are supported. - aaxine uses aalib for output and can run on nearly any terminal - to build xine fairly recent GNU make, gcc and binutils are required xine should run on any more recent i386-compatible machine (pentium and higher) using GNU/linux or FreeBSD. Depending on the type of video stream you want to play you will need more or less cpu-power for fluid playback. As a rule of thumb, DVDs will typically begin to run nicely on a Pentium II 400 system (or equivalent). There are many factors in this equation, so your mileage may vary. Successfully tested graphic cards (using Xv) for PCs include: nVidia Riva TNT (closed-sources nvidia drivers), nVidia Riva TNT 2, Matrox G400, ATI AIW Rage128-16MB, 3dfx voodoo3 2000 PCI 16Mb The following cards have been reported to work, but it's unclear whether they work with Xv or only with XShm (please report on xine-user mailing list): Trident 9660, ATI AIW M64-8Mb PCI, ATI RageII 8MB. xine should be able to show video on any type of working xserver with any graphics card, but with much worse performance than with Xv. Additionally, xine runs on i386-solaris, sparc machines running linux or solaris (Creator-3D framebuffer is known to work), see README.solaris for more information. Also supported: some powerpc based systems (running linux) and IRIX on MIPS. Last but not least, xine has also been reported to work on Alpha, IA-64 and S/390 machines. 2.2 Used software xine uses code from the following external free software projects: - liba52 by Aaron Holtzman and Michel Lespinasse - libmpeg2 by Aaron Holtzman and Michel Lespinasse - libmad by Robert Leslie - libffmpeg by Gerard Lantau Without these great pieces of software xine would of course not be where it is now. Also many thanks to the Linux Video and DVD Project "LiViD", where the original ideas for the xine video player came from. => http://www.linuxvideo.org/ 2.3 Developers of xine main xine developer Guenter Bartsch various suggestions, bug and build fixes, alsa plugin, gui Daniel Caujolle-Bert audio programming Siegfried Langauf contributes great libmpeg2 and libac3 hacks: Michael Lespinasse Plus various other contributors, see the xine-lib/AUTHORS file 2.4 Usage You can start xine without any command line parameters or you can specify one or more input streams directly. xine tries to detect whether it can use the Xv extension and will fall back to XShm, but that detection might fail. You can specify the video output plugin by using the "-V" option, e.g. xine -V XShm will force xine to use XShm or plain X11. If you want to send the sound over a network with ESD, set the ESPEAKER environment variable before starting xine. The input stream can be a filename or something we call "MediaResourceLocator" (or MRL), which looks similar to a URL. First you specify an input source which is followed by "://" and an input-source specific identifier. What input sources you can use depends on the input plugins you have (for plain files you can omit the input-source identifier). Try: xine --help to get more complete information about usage. xine supports the xdnd protocol (Version 3) so if you have a file browser application supporting that protocol (e.g. gmc) you can drop video files on xine for playback. Playing track 3 from a VCD: xine vcd://3 Example for direct DVD access: xine dvd://VTS_01_1.VOB 2.4.1 Keyboard shortcuts Key Action play pause / fast forward / slow motion 0 seek start of current stream 1-9 seek to 10-90% of current stream / seek -+ 15 sec (+CTRL: 60 sec) / jump to previous playlist entry / jump to next playlist entry f toggle fullscreen mode a toggle aspect ratio (AUTO/16:9/4:3/DVB) i toggle interlaced mode z / Shift-Z zoom into / out of video add Ctrl to zoom horizontally or Meta to zoom vertically "<", ">" modify output window size + - change audio channel , . change subtitle channel n m adjust a/v sync reset a/v sync toggle mouse cursor grabbing in the video output window q quit h hide video window (useful for mp3 playback) More to come. :-) Right click (or press 'g') on the video window to toggle panel visibility. Changing shortcuts: You can also change one/many/all of the shortcuts. For this, you should have a .xine_keymap in your $HOME directory. The key entry syntax is: WindowReduce { key = less modifier = none } The key should match with X11 key strings (see below). The modifier could be: - 'none' for no modifier, - 'control' (or 'ctrl') for the control key, - 'meta' (or 'alt' on PC) for meta key, - 'mod3' or 'mod4' or 'mod5' only available on some platforms. Modifiers can be mixed, separated with comma: WindowReduce { key = less modifier = control, alt } If you don't specify a modifier line that's equal to specifying 'none'. You can also add alias keystrokes, like: Alias { entry = Pause key = p } Meaning you add another key stroke to 'Pause' entry, by pressing 'p', you can also add a modifier section (see above). If you don't specify it, the modifier will be the same as in the original section ('Pause' in this case). Tracking X11 key names: To know a X11 key string, you could use 'xev', which it's provided with your X11 package. Start 'xev' from a xterm, give focus to the small displayed window, and hit the key you want to specify. Then you will see something like: ... KeyRelease event, serial 27, synthetic NO, window 0x3200001, root 0x3c, subw 0x0, time 4144050914, (259,265), root:(272,319), state 0x0, keycode 81 (keysym 0xff9a, KP_Prior), same_screen YES, ^^^^^^^^ This is what you're looking for. Displaying current/remapped shortcuts: You could use 'xine --keymap' or 'xine --keymap=default' to display default shortcuts. You can redirect the result to a file, which can become a .xine_keymap itself. To see the result of a remapping, just use 'xine --keymap=remapped'. 2.4.2 Selecting audio channels Supply the -a option to select the desired audio track: xine -a 3 test.mpg Plays the third available audio track (and the video, of course). Alternatively the gui can be used to select an audio channel. 2.4.3 Selecting subtitles Subtitles are embedded in different tracks like audio. In general, track 0 is the default language subtitle. Use the -u option to select the desired subtitle track: xine -u 0 test.vob Displays the subtitles from stream 0. Alternatively the gui can be used to select a subtitle channel. 2.4.4 LIRC xine can be remotely controlled with IR. For this, you should have LIRC installed (http://www.lirc.org). You should add some entries in your ~/.lircrc, like this: begin remote = SAMSUNG button = Button_Play prog = xine repeat = 0 config = Play end begin remote = SAMSUNG button = Button_1 prog = xine repeat = 0 config = SetPosition10% end xine can self generate a lirc entries draft, using 'xine --keymap=lirc', then you can redirect the output toa file to polish the settings. Each entry will look like this: # Reduce the output window size. begin remote = xxxxx button = xxxxx prog = xine repeat = 0 config = WindowReduce end It's yours to specify the remote name, and assign the button. 3 WHAT'S LEFT TO SAY 3.1 Freedom, DVDs and stuff... xine is free software. "free software" is somewhat related to being "open-source". However, the meaning of "free software" goes further than just that: it is about the freedom of users of software. If you have the time, please read what the free software foundation says about the topics of freedom and software: => http://www.gnu.org/philosophy/free-sw.html There is a very special threat to freedom when it comes to DVDs: the movie industry is making huge efforts to restrict playback of DVDs to controlled devices. Most DVDs that are currently sold are encrypted in a proprietary way - and in some countries (most notably the USA), it is possibly illegal to decrypt them - even for private viewing. Hopefully most people will agree that this is a very questionable way to treat customers. The xine project team condemns these efforts of the movie industry - trying to prevent loss of sales in such a way surely shows a lot of disrespect towards all their honest customers. On the other hand, the xine project team is against breaking existing law. No one knows exactly if it is actually illegal anywhere in the world to write, own and use software for viewing encrypted DVDs. But as this is an unclear topic (that seems potentially very dangerous), xine does not contain any specific code for decrypting DVDs. It seems, however, that third parties are working on such extensions. Possibly in some places it is legal to use these. Whichever way - you will not be able to play encrypted DVDs with xine out-of-the-box. Please note that this is not a bug or 'missing feature', but a genuine legal problem. It would be great to solve the problem (i.e. convincing america and/or the movie industry that they are really annoying and unnecessarily unfair to customers as well as users and developers of free software), but including code to decrypt DVDs in xine won't solve this problem. 4 Contacting the xine project the xine project website is => http://xine.sourceforge.net Feedback or offers for help are greatly appreciated, please contact: the xine user mailing list