mirror of https://github.com/mpv-player/mpv
2050 lines
89 KiB
HTML
2050 lines
89 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML>
|
|
|
|
<HEAD>
|
|
<TITLE>Documentation - MPlayer - The Movie Player for Linux</TITLE>
|
|
<LINK REL="stylesheet" TYPE="text/css" HREF="default.css">
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
|
</HEAD>
|
|
|
|
<BODY>
|
|
|
|
<H1 ALIGN="center">MPlayer - The Movie Player for LINUX</H1>
|
|
|
|
<H2 ALIGN="center">© 2000-2003 Arpad Gereoffy (A'rpi/ESP-team)<BR>
|
|
<A HREF="http://www.mplayerhq.hu">http://www.mplayerhq.hu</A></H2>
|
|
|
|
<P ALIGN="center">[ English ]
|
|
<A HREF="Hungarian/documentation.html">[ Hungarian ]</A>
|
|
<A HREF="German/documentation.html">[ German ]</A>
|
|
<A HREF="French/documentation.html">[ French ]</A>
|
|
<A HREF="Polish/documentation.html">[ Polish ]</A>
|
|
<A HREF="Italian/documentation.html">[ Italian ]</A>
|
|
<A HREF="Chinese/documentation.html">[ Chinese ]</A></P>
|
|
|
|
<HR>
|
|
|
|
<H2>Table of Contents</H2>
|
|
|
|
<HR>
|
|
|
|
<UL>
|
|
<LI><A HREF="#reading">0. How to read this documentation</A></LI>
|
|
<LI><A HREF="#introduction">1. Introduction</A>
|
|
<UL>
|
|
<LI><A HREF="#history">1.1 History</A></LI>
|
|
<LI><A HREF="#installation">1.2 Installation</A></LI>
|
|
<LI><A HREF="#gui">1.3 What about the GUI?</A></LI>
|
|
<LI><A HREF="#subtitles_osd">1.4 Subtitles and OSD</A>
|
|
<UL>
|
|
<LI><A HREF="#mpsub">1.4.1 MPlayer's own subtitle format (MPsub)</A></LI>
|
|
<LI><A HREF="#install_osd">1.4.2 Installing OSD and subtitles</A></LI>
|
|
<LI><A HREF="#menu">1.4.3 OSD Menu</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#rtc">1.5 RTC</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#features">2. Features</A>
|
|
<UL>
|
|
<LI><A HREF="formats.html">2.1 Supported formats</A>
|
|
<UL>
|
|
<LI><A HREF="formats.html#video_formats">2.1.1 Video formats</A>
|
|
<UL>
|
|
<LI><A HREF="formats.html#mpeg">2.1.1.1 MPEG files</A></LI>
|
|
<LI><A HREF="formats.html#avi">2.1.1.2 AVI files</A></LI>
|
|
<LI><A HREF="formats.html#asf">2.1.1.3 ASF/WMV files</A></LI>
|
|
<LI><A HREF="formats.html#mov">2.1.1.4 QuickTime/MOV files</A></LI>
|
|
<LI><A HREF="formats.html#vivo">2.1.1.5 VIVO files</A></LI>
|
|
<LI><A HREF="formats.html#fli">2.1.1.6 FLI files</A></LI>
|
|
<LI><A HREF="formats.html#real">2.1.1.7 RealMedia (RM) files</A></LI>
|
|
<LI><A HREF="formats.html#nuppelvideo">2.1.1.8 NuppelVideo files</A></LI>
|
|
<LI><A HREF="formats.html#yuv4mpeg">2.1.1.9 yuv4mpeg files</A></LI>
|
|
<LI><A HREF="formats.html#film">2.1.1.10 FILM files</A></LI>
|
|
<LI><A HREF="formats.html#roq">2.1.1.11 RoQ files</A></LI>
|
|
<LI><A HREF="formats.html#ogg">2.1.1.12 OGG/OGM files</A></LI>
|
|
<LI><A HREF="formats.html#sdp">2.1.1.13 SDP files</A></LI>
|
|
<LI><A HREF="formats.html#pva">2.1.1.14 PVA files</A></LI>
|
|
<LI><A HREF="formats.html#gif">2.1.1.15 GIF files</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="formats.html#audio_formats">2.1.2 Audio formats</A>
|
|
<UL>
|
|
<LI><A HREF="formats.html#mp3">2.1.2.1 MP3 files</A></LI>
|
|
<LI><A HREF="formats.html#wav">2.1.2.2 WAV files</A></LI>
|
|
<LI><A HREF="formats.html#ogg_vorbis">2.1.2.3 OGG/OGM files (Vorbis)</A></LI>
|
|
<LI><A HREF="formats.html#wma">2.1.2.4 WMA/ASF files</A></LI>
|
|
<LI><A HREF="formats.html#mp4">2.1.2.5 MP4 files</A></LI>
|
|
<LI><A HREF="formats.html#cdda">2.1.2.6 CD audio</A></LI>
|
|
<LI><A HREF="formats.html#xmms">2.1.2.7 XMMS</A></LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="codecs.html">2.2 Supported codecs</A>
|
|
<UL>
|
|
<LI><A HREF="codecs.html#video_codecs">2.2.1 Video codecs</A>
|
|
<UL>
|
|
<LI><A HREF="codecs.html#divx">2.2.1.1 DivX4/DivX5</A></LI>
|
|
<LI><A HREF="codecs.html#libavcodec">2.2.1.2 FFmpeg DivX/libavcodec</A></LI>
|
|
<LI><A HREF="codecs.html#xanim">2.2.1.3 XAnim codecs</A></LI>
|
|
<LI><A HREF="codecs.html#vivo_video">2.2.1.4 VIVO video</A></LI>
|
|
<LI><A HREF="codecs.html#mpeg">2.2.1.5 MPEG 1/2 video</A></LI>
|
|
<LI><A HREF="codecs.html#ms_video1">2.2.1.6 MS Video1</A></LI>
|
|
<LI><A HREF="codecs.html#cinepak">2.2.1.7 Cinepak CVID</A></LI>
|
|
<LI><A HREF="codecs.html#realvideo">2.2.1.8 RealVideo</A></LI>
|
|
<LI><A HREF="codecs.html#xvid">2.2.1.9 XViD</A></LI>
|
|
<LI><A HREF="codecs.html#sorenson">2.2.1.10 Sorenson</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="codecs.html#audio_codecs">2.2.2 Audio codecs</A>
|
|
<UL>
|
|
<LI><A HREF="codecs.html#software_ac3">2.2.2.1 Software AC3 decoding</A></LI>
|
|
<LI><A HREF="codecs.html#hardware_ac3">2.2.2.2 Hardware AC3 decoding</A></LI>
|
|
<LI><A HREF="codecs.html#libmad">2.2.2.3 libmad support</A></LI>
|
|
<LI><A HREF="codecs.html#vivo_audio">2.2.2.4 VIVO audio</A></LI>
|
|
<LI><A HREF="codecs.html#realaudio">2.2.2.5 RealAudio</A></LI>
|
|
<LI><A HREF="codecs.html#qdesign">2.2.2.6 QDesign codecs</A></LI>
|
|
<LI><A HREF="codecs.html#qclp">2.2.2.7 Qualcomm codec</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="codecs.html#importing">2.2.3 Win32 codec importing HOWTO</A>
|
|
<UL>
|
|
<LI><A HREF="codecs.html#importing_vfw">2.2.3.1 VFW codecs</A></LI>
|
|
<LI><A HREF="codecs.html#importing_directshow">2.2.3.2 DirectShow codecs</A></LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#output">2.3 Output devices</A>
|
|
<UL>
|
|
<LI><A HREF="video.html">2.3.1 Video output devices</A>
|
|
<UL>
|
|
<LI><A HREF="video.html#mtrr">2.3.1.1 Setting up MTRR</A></LI>
|
|
<LI><A HREF="video.html#normal">2.3.1.2 Video outputs for traditional video cards</A>
|
|
<UL>
|
|
<LI><A HREF="video.html#xv">2.3.1.2.1 Xv</A>
|
|
<UL>
|
|
<LI><A HREF="video.html#xv_3dfx">2.3.1.2.1.1 3dfx cards</A></LI>
|
|
<LI><A HREF="video.html#xv_s3">2.3.1.2.1.2 S3 cards</A></LI>
|
|
<LI><A HREF="video.html#xv_nvidia">2.3.1.2.1.3 nVidia cards</A></LI>
|
|
<LI><A HREF="video.html#xv_ati">2.3.1.2.1.4 ATI cards</A></LI>
|
|
<LI><A HREF="video.html#xv_neomagic">2.3.1.2.1.5 NeoMagic cards</A></LI>
|
|
<LI><A HREF="video.html#xv_trident">2.3.1.2.1.6 Trident cards</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="video.html#dga">2.3.1.2.2 DGA</A></LI>
|
|
<LI><A HREF="video.html#sdl">2.3.1.2.3 SDL</A></LI>
|
|
<LI><A HREF="video.html#svgalib">2.3.1.2.4 SVGAlib</A></LI>
|
|
<LI><A HREF="video.html#fbdev">2.3.1.2.5 Framebuffer output (FBdev)</A></LI>
|
|
<LI><A HREF="video.html#mga_vid">2.3.1.2.6 Matrox framebuffer (mga_vid)</A></LI>
|
|
<LI><A HREF="video.html#tdfxfb">2.3.1.2.7 3dfx YUV support (tdfxfb)</A></LI>
|
|
<LI><A HREF="video.html#opengl">2.3.1.2.8 OpenGL output</A></LI>
|
|
<LI><A HREF="video.html#aalib">2.3.1.2.9 AAlib - text mode displaying</A></LI>
|
|
<LI><A HREF="video.html#vesa">2.3.1.2.10 VESA - output to VESA BIOS</A></LI>
|
|
<LI><A HREF="video.html#x11">2.3.1.2.11 X11</A></LI>
|
|
<LI><A HREF="video.html#vidix">2.3.1.2.12 VIDIX</A></LI>
|
|
<LI><A HREF="video.html#directfb">2.3.1.2.13 DirectFB</A></LI>
|
|
<LI><A HREF="video.html#dfbmga">2.3.1.2.14 DirectFB/Matrox (dfbmga)</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="video.html#mpegdec">2.3.1.3 MPEG decoders</A>
|
|
<UL>
|
|
<LI><A HREF="video.html#dvb">2.3.1.3.1 DVB</A></LI>
|
|
<LI><A HREF="video.html#dxr2">2.3.1.3.2 DXR2</A></LI>
|
|
<LI><A HREF="video.html#dxr3">2.3.1.3.3 DXR3/Hollywood+</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="video.html#other">2.3.1.4 Other visualization hardware</A>
|
|
<UL>
|
|
<LI><A HREF="video.html#zr">2.3.1.4.1 Zoran JPEG decoders</A></LI>
|
|
<LI><A HREF="video.html#blinken">2.3.1.4.2 Blinkenlights</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="video.html#tv-out">2.3.1.5 TV-out support</A>
|
|
<UL>
|
|
<LI><A HREF="video.html#tv-out_matrox">2.3.1.5.1 Matrox G400 cards</A></LI>
|
|
<LI><A HREF="video.html#tv-out_matrox_g450">2.3.1.5.2 Matrox G450/G550 cards</A></LI>
|
|
<LI><A HREF="video.html#tv-out_ati">2.3.1.5.3 ATI cards</A></LI>
|
|
<LI><A HREF="video.html#tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></LI>
|
|
<LI><A HREF="video.html#tv-out_nvidia">2.3.1.5.5 nVidia</A></LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
<LI><A HREF="sound.html">2.3.2 Audio output devices</A>
|
|
<UL>
|
|
<LI><A HREF="sound.html#sync">2.3.2.1 Audio/Video synchronisation</A></LI>
|
|
<LI><A HREF="sound.html#experiences">2.3.2.2 Sound card experiences, recommendations</A></LI>
|
|
<LI><A HREF="sound.html#af">2.3.2.3 Audio filters</A>
|
|
<UL>
|
|
<LI><A HREF="sound.html#af_resample">2.3.2.3.1 Up/Downsampling</A></LI>
|
|
<LI><A HREF="sound.html#af_channels">2.3.2.3.2 Changing the number of channels</A></LI>
|
|
<LI><A HREF="sound.html#af_format">2.3.2.3.3 Sample format converter</A></LI>
|
|
<LI><A HREF="sound.html#af_delay">2.3.2.3.4 Delay</A></LI>
|
|
<LI><A HREF="sound.html#af_volume">2.3.2.3.5 Software volume control</A></LI>
|
|
<LI><A HREF="sound.html#af_equalizer">2.3.2.3.6 Equalizer</A></LI>
|
|
<LI><A HREF="sound.html#af_panning">2.3.2.3.7 Panning filter</A></LI>
|
|
<LI><A HREF="sound.html#af_sub">2.3.2.3.8 Sub-woofer</A></LI>
|
|
<LI><A HREF="sound.html#af_surround">2.3.2.3.9 Surround-sound decoder</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="sound.html#plugins">2.3.2.4 Audio plugins (deprecated)</A>
|
|
<UL>
|
|
<LI><A HREF="sound.html#resample">2.3.2.4.1 Up/Downsampling</A></LI>
|
|
<LI><A HREF="sound.html#surround_decoding">2.3.2.4.2 Surround Sound decoding</A></LI>
|
|
<LI><A HREF="sound.html#format">2.3.2.4.3 Sample format converter</A></LI>
|
|
<LI><A HREF="sound.html#delay">2.3.2.4.4 Delay</A></LI>
|
|
<LI><A HREF="sound.html#volume">2.3.2.4.5 Software volume control</A></LI>
|
|
<LI><A HREF="sound.html#extrastereo">2.3.2.4.6 Extrastereo</A></LI>
|
|
<LI><A HREF="sound.html#normalizer">2.3.2.4.7 Volume Normalizer</A></LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#tv">2.4 TV input</A>
|
|
<UL>
|
|
<LI><A HREF="#tv_compilation">2.4.1 Compilation</A></LI>
|
|
<LI><A HREF="#tv_tips">2.4.2 Usage tips</A></LI>
|
|
<LI><A HREF="#tv_examples">2.4.3 Examples</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#edl">2.5 Edit Decision Lists (EDL)</A>
|
|
<UL>
|
|
<LI><A HREF="#edl_using">2.5.1 Using an EDL file</A></LI>
|
|
<LI><A HREF="#edl_making">2.5.2 Making an EDL file</A></LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#usage">3. Usage</A>
|
|
<UL>
|
|
<LI><A HREF="#command_line">3.1 Command line</A></LI>
|
|
<LI><A HREF="#control">3.2 Control</A>
|
|
<UL>
|
|
<LI><A HREF="#controls_configuration">3.2.1 Controls configuration</A>
|
|
<UL>
|
|
<LI><A HREF="#key_names">3.2.1.1 Key names</A></LI>
|
|
<LI><A HREF="#commands">3.2.1.2 Commands</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#lirc">3.2.2 Control from LIRC</A></LI>
|
|
<LI><A HREF="#slave">3.2.3 Slave mode</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#streaming">3.3 Streaming from network or pipes</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="cd-dvd.html">4. CD/DVD section</A>
|
|
<UL>
|
|
<LI><A HREF="cd-dvd.html#drives">4.1 CD/DVD drives</A></LI>
|
|
<LI><A HREF="cd-dvd.html#dvd">4.2 DVD playback</A></LI>
|
|
<LI><A HREF="cd-dvd.html#vcd">4.3 VCD playback</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="faq.html">5. FAQ section</A>
|
|
<UL>
|
|
<LI><A HREF="faq.html#compilation">5.1 Compilation</A></LI>
|
|
<LI><A HREF="faq.html#general">5.2 General questions</A></LI>
|
|
<LI><A HREF="faq.html#playback">5.3 Playback problems</A></LI>
|
|
<LI><A HREF="faq.html#driver">5.4 Video/audio driver problems (vo/ao)</A></LI>
|
|
<LI><A HREF="faq.html#dvd">5.5 DVD playback</A></LI>
|
|
<LI><A HREF="faq.html#features">5.6 Feature requests</A></LI>
|
|
<LI><A HREF="faq.html#encoding">5.7 Encoding</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#ports">6. Ports</A>
|
|
<UL>
|
|
<LI><A HREF="#linux">6.1 Linux</A>
|
|
<UL>
|
|
<LI><A HREF="#debian">6.1.1 Debian packaging</A></LI>
|
|
<LI><A HREF="#rpm">6.1.2 RPM packaging</A></LI>
|
|
<LI><A HREF="#arm">6.1.3 ARM</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#bsd">6.2 *BSD</A>
|
|
<UL>
|
|
<LI><A HREF="#freebsd">6.2.1 FreeBSD</A></LI>
|
|
<LI><A HREF="#openbsd">6.2.2 OpenBSD</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#solaris">6.3 Solaris</A></LI>
|
|
<LI><A HREF="#sgi">6.4 Silicon Graphics / Irix</A></LI>
|
|
<LI><A HREF="#qnx">6.5 QNX</A></LI>
|
|
<LI><A HREF="#cygwin">6.6 Cygwin</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="encoding.html">7. Encoding with MEncoder</A>
|
|
<UL>
|
|
<LI><A HREF="encoding.html#2pass">7.1 Encoding 2 or 3-pass MPEG-4 ("DIVX")</A></LI>
|
|
<LI><A HREF="encoding.html#mpeg">7.2 Encoding to MPEG format</A></LI>
|
|
<LI><A HREF="encoding.html#rescaling">7.3 Rescaling movies</A></LI>
|
|
<LI><A HREF="encoding.html#copying">7.4 Stream copying</A></LI>
|
|
<LI><A HREF="encoding.html#fixing">7.5 Fixing AVIs with broken index</A></LI>
|
|
<LI><A HREF="encoding.html#libavcodec">7.6 Encoding with the libavcodec codec family</A></LI>
|
|
<LI><A HREF="encoding.html#image_files">7.7 Encoding from multiple input image files (JPEGs or PNGs)</A></LI>
|
|
<LI><A HREF="encoding.html#vobsub">7.8 Extracting DVD subtitles to a Vobsub file</A></LI>
|
|
<LI><A HREF="encoding.html#aspect">7.9 Preserving aspect ratio</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="#mailing_lists">Appendix A - Mailing lists</A></LI>
|
|
<LI><A HREF="bugreports.html">Appendix B - How to report bugs</A></LI>
|
|
<LI><A HREF="#known_bugs">Appendix C - Known bugs</A></LI>
|
|
<LI><A HREF="skin.html">Appendix D - MPlayer skin format</A>
|
|
<UL>
|
|
<LI><A HREF="skin.html#overview">D.1 Overview</A>
|
|
<UL>
|
|
<LI><A HREF="skin.html#directories">D.1.1 Directories</A></LI>
|
|
<LI><A HREF="skin.html#images">D.1.2 Images</A></LI>
|
|
<LI><A HREF="skin.html#components">D.1.3 Skin components</A></LI>
|
|
<LI><A HREF="skin.html#files">D.1.4 Files</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="skin.html#skinfile">D.2 The skin file</A>
|
|
<UL>
|
|
<LI><A HREF="skin.html#mainwindow">D.2.1 Main window and playbar</A></LI>
|
|
<LI><A HREF="skin.html#subwindow">D.2.2 Subwindow</A></LI>
|
|
<LI><A HREF="skin.html#skinmenu">D.2.3 Skin menu</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="skin.html#fonts">D.3 Fonts</A>
|
|
<UL>
|
|
<LI><A HREF="skin.html#symbols">D.3.1 Symbols</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="skin.html#guimessages">D.4 GUI messages</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="users_against_developers.html">Appendix E - Developer Cries</A>
|
|
<UL>
|
|
<LI><A HREF="users_against_developers.html#gcc">E.1 GCC 2.96</A></LI>
|
|
<LI><A HREF="users_against_developers.html#binary">E.2 Binary distribution</A></LI>
|
|
<LI><A HREF="users_against_developers.html#nvidia">E.3 nVidia</A></LI>
|
|
<LI><A HREF="users_against_developers.html#barr">E.4 Joe Barr</A></LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><A HREF="tech/patches.txt">Appendix F - How to send patches</A></LI>
|
|
</UL>
|
|
|
|
<HR>
|
|
|
|
|
|
|
|
<H1><A NAME="reading">0. How to read this documentation</A></H1>
|
|
|
|
<P>If you are a first-time installer: be sure to read everything from here to
|
|
the end of the Installation section, and follow the links you will find. If
|
|
you have any other questions, return to the Table of Contents and
|
|
search for the topic, read the <A HREF="faq.html">FAQ</A>, or try grepping
|
|
through the files.</P>
|
|
|
|
<P>The main rule of this documentation: if it's not documented, it
|
|
<U>does not exist</U>. If I don't say you encode audio from TV tuner, you
|
|
can't. A healthy quantity of combining ability is welcomed, though.
|
|
Good luck. You'll need it :) And for another good advice, let me quote
|
|
Chris Phillips from the
|
|
<A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A>
|
|
mailing list:</P>
|
|
|
|
<BLOCKQUOTE>
|
|
I said a while ago that there is such a difference between a newbie and
|
|
a dumbass. No matter what you actually know about a system (linux, cars,
|
|
girls :D) you should ALWAYS be able to take a step back and be objective,
|
|
otherwise, you're just dumb IMHO. A girl i live with assumed the vacuum
|
|
cleaner was broken because it didn't suck things up. never thought to change
|
|
the bag, becasue she'd never done it before... now that's just stupid, not a
|
|
case of simply not knowing what to do... Simply not being that familiar with
|
|
your surroundings is no excuse for a) laziness and b) ignorance. So many
|
|
people seem to see the word "error" and then stop... few seem to actually
|
|
read the words on the OTHER side of the colon.
|
|
</BLOCKQUOTE>
|
|
|
|
|
|
|
|
<H1><A NAME="introduction">1. Introduction</A></H1>
|
|
|
|
|
|
<P>MPlayer is a movie player for LINUX (runs on many other Unices, and
|
|
<B>non-x86</B> CPUs, see the <A HREF="#ports">ports section</A>). It plays most
|
|
MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg,
|
|
FILM, RoQ, PVA files, supported by many native, XAnim, RealPlayer, and
|
|
Win32 DLL codecs. You can watch <B>VideoCD</B>, <B>SVCD</B>, <B>DVD</B>,
|
|
<B>3ivx</B>, <B>RealMedia</B>, and <B>DivX</B> movies too (and you don't need
|
|
the avifile
|
|
library at all!). Another big feature of MPlayer is the wide range of
|
|
supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev,
|
|
AAlib, DirectFB, but you can also use GGI and SDL (and this way all their
|
|
drivers) and some lowlevel card-specific drivers (for Matrox, 3Dfx and Radeon,
|
|
Mach64, Permedia3) too! Most
|
|
of them supports software or hardware scaling, so you can enjoy movies in
|
|
fullscreen. MPlayer supports displaying through some hardware MPEG
|
|
decoder boards, such as the <B><A HREF="video.html#dvb">DVB</A></B> and
|
|
<B><A HREF="video.html#dxr3">DXR3/Hollywood+</A></B>. And what about the nice big antialiased
|
|
shaded subtitles (<B>10 supported types</B>) with European/ISO 8859-1,2
|
|
(Hungarian, English, Czech, etc), Cyrillic, Korean fonts, and the onscreen
|
|
display (OSD)?</P>
|
|
|
|
<P>The player is rock solid playing damaged MPEG files (useful for some VCDs),
|
|
and it plays bad AVI files which are unplayable with the famous
|
|
windows media player. Even AVI files without index chunk are playable, and
|
|
you can temporarily rebuild their indexes with the <CODE>-idx</CODE> option, or
|
|
permanently with MEncoder, thus enabling seeking!
|
|
As you see, stability and quality are the most important things,
|
|
but the speed is also amazing.</P>
|
|
|
|
<P>MEncoder (MPlayer's Movie Encoder) is a simple movie encoder,
|
|
designed to encode MPlayer-playable movies
|
|
(<B>AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA</B>) to other
|
|
MPlayer-playable formats (see below). It can encode with various codecs, like
|
|
<B>DivX4</B> (1 or 2 passes), libavcodec,
|
|
<B>PCM</B>/<B>MP3</B>/<B>VBR MP3</B> audio. Also has powerful plugin system
|
|
for video manipulation.</P>
|
|
|
|
<H4>MEncoder features</H4>
|
|
|
|
<UL>
|
|
<LI>encoding from the wide range of fileformats and decoders of MPlayer</LI>
|
|
<LI>encoding to all the codecs of ffmpeg's
|
|
<A HREF="codecs.html#libavcodec">libavcodec</A></LI>
|
|
<LI>video encoding from <B>V4L compatible TV tuners</B></LI>
|
|
<LI>encoding/multiplexing to interleaved AVI files with proper index</LI>
|
|
<LI>creating files from external audio stream</LI>
|
|
<LI>1, 2 or 3 pass encoding</LI>
|
|
<LI><B>VBR</B> MP3 audio - <B>IMPORTANT NOTE:</B> VBR MP3 audio doesn't
|
|
always play nicely on Windows players! On the other hand, currently
|
|
MEncoder's CBR encoding is totally broken on Win32 players :)</LI>
|
|
<LI>PCM audio</LI>
|
|
<LI>stream copying</LI>
|
|
<LI>input A/V synchronizing (PTS-based, can be disabled with -mc 0 option)</LI>
|
|
<LI>FPS correction with <CODE>-ofps</CODE> option (useful when encoding
|
|
29.97fps VOB to 24fps AVI)</LI>
|
|
<LI>using our very powerful plugin system (crop, expand, flip, postprocess,
|
|
rotate, scale, rgb/yuv conversion)</LI>
|
|
<LI>can encode DVD/VOBsub <B>AND</B> text subtitles into the output file</LI>
|
|
<LI>can rip DVD subtitles to Vobsub format</LI>
|
|
</UL>
|
|
|
|
<H4>Planned features</H4>
|
|
|
|
<UL>
|
|
<LI>even wider variety of available en/decoding formats/codecs
|
|
(creating VOB files with DivX4/Indeo5/VIVO streams :)</LI>
|
|
</UL>
|
|
|
|
<P>MPlayer and MEncoder can be distributed under the terms of the GNU General
|
|
Public License Version 2.</P>
|
|
|
|
|
|
<H2><A NAME="history">1.1 History</A></H2>
|
|
|
|
<P>This began a year ago...
|
|
I (A'rpi) have tried lots of players under linux (mtv,xmps,dvdview,livid/oms,videolan,
|
|
xine,xanim,avifile,xmmp) but they all have some problem. Mostly with special
|
|
files or with audio/video sync. Most of them is unable to play both MPEG1,
|
|
MPEG2 and AVI (DivX) files. Many players have image quality or speed problems
|
|
too. So I've decided to write/modify one...</P>
|
|
|
|
<UL>
|
|
<LI><B>mpg12play v0.1-v0.3:</B> Sep 22-25, 2000<BR>
|
|
The first try, hacked together in a half hour!
|
|
I've used libmpeg3 from www.heroinewarrior.com up to the version 0.3,
|
|
but there were image quality and speed problems with it.</LI>
|
|
<LI><B>mpg12play v0.5-v0.87:</B> Sep 28-Oct 20, 2000<BR>
|
|
Mpeg codec replaced with DVDview by Dirk Farin, it was a great stuff,
|
|
but it was slow and was written in C++ (I hate C++!!!)</LI>
|
|
<LI><B>mpg12play v0.9-v0.95pre5:</B> Oct 21-Nov 2, 2000<BR>
|
|
Mpeg codec was libmpeg2 (mpeg2dec) by Aaron Holtzman & Michel Lespinasse.
|
|
It's great, optimized very fast C code with perfect image quality and
|
|
100% MPEG standard conformance.</LI>
|
|
<LI><B>MPlayer v0.01:</B> Nov 11, 2000<BR>
|
|
The first MPlayer.</LI>
|
|
<LI><B>MPlayer v0.3-v0.9:</B> Nov 18-Dec 4, 2000<BR>
|
|
It was a pack of two programs: mpg12play v0.95pre6 and my new simple AVI
|
|
player 'avip' based on avifile's Win32 DLL loader.</LI>
|
|
<LI><B>MPlayer v0.10:</B> Jan 1, 2001<BR>
|
|
The MPEG and AVI player in a single binary!</LI>
|
|
<LI><B>MPlayer v0.11pre series:</B><BR>
|
|
Some new developers joined and from 0.11 the mplayer project is a team-work!
|
|
Added .ASF file support, and OpenDivX (see www.projectmayo.com) en/decoding.</LI>
|
|
<LI><B>MPlayer v0.17a "The IdegCounter"</B> Apr 27, 2001<BR>
|
|
The release version of the 0.11pre after 4 months of heavy development!
|
|
Try it, and be amazed! Thousands of new features added... and of course
|
|
old code was improved too, bugs removed etc.</LI>
|
|
<LI><B>MPlayer 0.18 "The BugCounter"</B> Jul 9, 2001<BR>
|
|
2 months since 0.17 and here's a new release.. Completed ASF support,
|
|
more subtitle formats, introduced libao (similar to libvo but to audio),
|
|
even more stable than ever, and so on. It's a MUST!</LI>
|
|
<LI><B>MPlayer 0.50 "The Faszom(C)ounter"</B> Oct 8, 2001<BR>
|
|
Hmm. Release again. Tons of new features, beta GUI version, bugs fixed,
|
|
new vo and ao drivers, ported to many systems, including opensource DivX
|
|
codecs and much more. Try it!</LI>
|
|
<LI><B>MPlayer 0.60 "The RTFMCounter"</B> Jan 3, 2002<BR>
|
|
MOV/VIVO/RM/FLI/NUV fileformats support, native CRAM, Cinepak, ADPCM codecs,
|
|
and support for XAnim's binary codecs; DVD subtitles support, first
|
|
release of MEncoder, TV grabbing, cache, liba52, countless fixes.</LI>
|
|
<LI><B>MPlayer 0.90pre10 "The BirthdayCounter"</B> Nov 11, 2002<BR>
|
|
Although this is not a release, I am going to mention it because it
|
|
came out 2 years after MPlayer v0.01. Happy birthday, MPlayer!</LI>
|
|
<LI><B>MPlayer 0.90rc1 "The CodecCounter"</B> Dec 7, 2002<BR>
|
|
Again not a release, but after adding Sorenson 3 (QuickTime) and Windows
|
|
Media 9 support, MPlayer is the world's first movie player with support
|
|
for all known video formats!</LI>
|
|
<LI><B>MPlayer 0.90 "?"</B> Date yet unknown</LI>
|
|
</UL>
|
|
|
|
|
|
<H2><A NAME="installation">1.2 Installation</A></H2>
|
|
|
|
<P>In this chapter I'll try to guide you through the compiling and
|
|
configuring process of MPlayer. It's not easy, but it won't necessarily
|
|
be hard. If you experience a different behavior than what I explain, please
|
|
search through this documentation and you'll find your answers. If you
|
|
see links, please follow them and read carefully what they contain. It
|
|
will take some time, but it DOES worth it.</P>
|
|
|
|
<P>You need a fairly recent system. On Linux, 2.4.x kernels are recommended.</P>
|
|
|
|
<H4>Software requirements:</H4>
|
|
|
|
<UL>
|
|
<LI><B>binutils</B> - suggested version is <B>2.11.x</B> . This program is
|
|
responsible for generating MMX/3DNow!/etc instructions, thus very important.</LI>
|
|
<LI><B>gcc</B> - suggested versions are: <B>2.95.3</B>, <B>2.95.4</B> and <B>3.1</B>.
|
|
<B>NEVER</B> use 2.96 or 3.0.x! They generate faulty code for MPlayer.
|
|
If you decide to change gcc from 2.96, then don't decide in favor of 3.0.x
|
|
just because it's newer! Early releases of 3.0.x were even more buggy than
|
|
2.96. So downgrade to 2.95.x (downgrade libstdc++ too, other programs may
|
|
need it) or don't up/downgrade at all (but in this case, be prepared for
|
|
runtime problems). If you vote for 3.x.x, try to use the latest version,
|
|
early releases had various bugs, so be sure you use at least 3.1, it's
|
|
tested and working. For detailed information about gcc 2.96's bugs (that are
|
|
still NOT fixed, they have been WORKED AROUND in MPlayer!), see the
|
|
<A HREF="users_against_developers.html#gcc">gcc 2.96</A> section and the
|
|
<A HREF="faq.html">FAQ</A>.</LI>
|
|
<LI><B>XFree86</B> - suggested version is <B>always the newest (4.2.1)</B>.
|
|
Normally, everyone wants this, as starting with XFree86 4.0.2, it contains
|
|
the <A HREF="video.html#xv">XVideo</A> extension (somewhere referred to
|
|
as <B>Xv</B>) which is needed to enable the hardware YUV acceleration (fast
|
|
image display) on cards that support it.<BR>
|
|
Make sure its <B>development package</B> is installed, too, otherwise
|
|
it won't work.<BR>
|
|
For some video cards you don't need XFree86. See list below.</LI>
|
|
<LI><B>make</B> - suggested version is <B>always the newest</B> (at least 3.79.x). This
|
|
usually isn't important.</LI>
|
|
<LI><B>SDL</B> - it's not mandatory, but can help in some cases (bad audio,
|
|
video cards that lag strangely with the xv driver). Always use the newest
|
|
(beginning from 1.2.x).</LI>
|
|
<LI><B>libjpeg</B> - optional JPEG decoder, used by -mf and some QT MOV files.
|
|
Useful for both MPlayer and MEncoder if you plan to work with jpeg files.</LI>
|
|
<LI><B>libpng</B> - recommended and default (M)PNG decoder. Required for GUI.
|
|
Useful for both MPlayer and MEncoder.</LI>
|
|
<LI><B>lame</B> - recommended, needed for encoding MP3 audio with MEncoder,
|
|
suggested version is <B>always the newest</B> (at least 3.90).</LI>
|
|
<LI><B>libogg</B> - optional, needed for playing OGG file format.</LI>
|
|
<LI><B>libvorbis</B> - optional, needed for playing OGG Vorbis audio.</LI>
|
|
<LI><B><A HREF="http://www.live.com/mplayer/">LIVE.COM Streaming Media</A></B>
|
|
- optional, needed for playing RTSP/RTP streams.</LI>
|
|
<LI><B>directfb</B> - optional, from
|
|
<A HREF="http://www.directfb.org">http://www.directfb.org</A></LI>
|
|
<LI><B>cdparanoia</B> - optional, for CDDA support</LI>
|
|
<LI><B>libfreetype</B> - optional, for TTF fonts support. At least 2.0.9 is
|
|
required.</LI>
|
|
<LI><B>libxmms</B> - optional, for XMMS input plugin support. At least 1.2.7 is
|
|
required.</LI>
|
|
</UL>
|
|
|
|
<H4>Codecs:</H4>
|
|
|
|
<UL>
|
|
<LI><B>libavcodec</B>: This codec package is capable of decoding
|
|
H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1 encoded video streams and
|
|
WMA (Windows Media Audio) v1/v2 audio streams, on
|
|
multiple platforms. It is also known to be the fastest for this task.
|
|
See the <A HREF="codecs.html#libavcodec">libavcodec</A> section for details.
|
|
Features:<BR>
|
|
<UL>
|
|
<LI>gain decoding of videos mentioned above, on non-x86 machines</LI>
|
|
<LI>encoding with most of the mentioned codecs</LI>
|
|
<LI>this codec is the <B>fastest codec available</B> for DivX/3/4/5 and
|
|
other MPEG4 types. Recommended!</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><B>Win32 codecs</B>: If you plan to use MPlayer on x86
|
|
architecture, you will possibly need them. Download and unzip w32codecs.zip
|
|
to /usr/lib/win32 <B>BEFORE</B> compiling MPlayer, otherwise no Win32
|
|
support will be compiled!<BR>
|
|
<B>Note:</B> the avifile project has a similar codecs package, but it differs
|
|
from ours. If you want to use all supported codecs, then install our package
|
|
(do not worry, avifile works with it without problems). Features:<BR>
|
|
<UL>
|
|
<LI>you need this if you want to play or encode for example movies recorded
|
|
with various hardware compressors, like tuner cards, digital cameras
|
|
(example: DV, ATI VCR, MJPEG)</LI>
|
|
<LI>needed if you want to play <B>WMV8, WMV9/WMA9 movies</B>.</LI>
|
|
<LI>Not needed for old
|
|
ASF's with MP41 or MP42 video (though VoxWare audio is frequent for these
|
|
files - it's done by the Win32 codec), or WMV7. Also not needed
|
|
for WMA (Windows Media Audio), libavcodec has opensource decoder
|
|
for that.</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><B>QuickTime codecs</B>: on x86 platforms these codecs can be used
|
|
to decode Sorenson v1/v3, RPZA, and other QuickTime video, and
|
|
QDesign audio streams. Installation instructions can be found in the
|
|
<A HREF="codecs.html#sorenson">Sorenson video codec</A> section.</LI>
|
|
<LI><B>DivX4/DivX5</B>: information about this codec is available in the
|
|
<A HREF="codecs.html#divx">DivX4/DivX5</A> section. You possibly don't want
|
|
this codec as <B>libavcodec</B> (see above) is much faster and has better
|
|
quality than this, for both decoding and encoding.<BR>
|
|
Features:
|
|
<UL>
|
|
<LI>1 pass or 2 pass encoding with
|
|
<A HREF="encoding.html">MEncoder</A></LI>
|
|
<LI>can play old <B>DivX3</B> movies much faster than the Win32 DLL but
|
|
slower than <B>libavcodec</B>!</LI>
|
|
<LI>it's closed-source, and only an x86 version is available.</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI><B>XviD</B>: Open source encoding alternative to Divx4Linux<BR>
|
|
Features:
|
|
<UL>
|
|
<LI>1 pass or 2 pass encoding with
|
|
<A HREF="encoding.html">MEncoder</A></LI>
|
|
<LI>it's open-source, so it's multiplatform.</LI>
|
|
<LI>it's about 2 times faster than DivX4 when encoding - about the same
|
|
quality</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI>The <A HREF="codecs.html#xanim">XAnim codecs</A> are the best (full
|
|
screen, hardware YUV zoom) for decoding <B>3ivx</B> and Indeo 3/4/5 movies,
|
|
and some old formats. And they are multiplatform, so this is the only way to
|
|
play Indeo on non-x86 platforms (well, apart from using XAnim:). But for
|
|
example Cinepak movies are best played with MPlayer's own Cinepak
|
|
decoder!</LI>
|
|
<LI>For <B>Ogg Vorbis</B> audio decoding you need to install
|
|
<CODE>libvorbis</CODE> properly. Use deb/rpm packages if available, or
|
|
compile from
|
|
<A HREF="http://ogg.org/ogg/vorbis/download/vorbis_nightly_cvs.tgz">source</A>
|
|
(this is a nightly updated tarball of Vorbis CVS).</LI>
|
|
<LI>MPlayer can use the libraries of RealPlayer 8 or RealONE to play
|
|
files with <B>RealVideo 2.0 - 4.0</B> video, and Sipro/Cook audio. See
|
|
<A HREF="formats.html#real">RealMedia file format</A> section for
|
|
installation instructions and more information.</LI>
|
|
</UL>
|
|
|
|
<H4>Video Cards</H4>
|
|
|
|
<P>There are generally two kind of video cards. One kind (the newer cards) has
|
|
<B>hardware scaling and YUV acceleration</B> support, the other cards don't.</P>
|
|
|
|
<H4>YUV cards</H4>
|
|
|
|
<P>They can display and scale (zoom) the picture to any size that fits in
|
|
their memory, with <B>small CPU usage</B> (even when zooming), thus
|
|
fullscreen playing is nice and very fast.</P>
|
|
|
|
<UL>
|
|
<LI><B>Matrox G200/G400/G450/G550 cards</B>: although a
|
|
<A HREF="video.html#vidix">Vidix driver</A> is provided, it is recommended
|
|
to use the mga_vid kernel module instead, for it works much better.
|
|
Please see the <A HREF="video.html#mga_vid">mga_vid</A> section about its
|
|
installation and usage. It is important to do these steps <I>before</I>
|
|
compiling MPlayer, otherwise no mga_vid support will be built. Also
|
|
check out the <A HREF="video.html#tv-out_matrox">Matrox TV-out</A> section.
|
|
<U><B>If you don't use Linux</B></U>, your only possibility is the VIDIX
|
|
driver: read the <A HREF="video.html#vidix">VIDIX</A> section.</LI>
|
|
<LI><B>3Dfx Voodoo3/Banshee cards</B>: please see the
|
|
<A HREF="video.html#tdfxfb">tdfxfb</A> section in order to gain big
|
|
speedup. It is important to do these steps <B>before</B> compiling
|
|
MPlayer, otherwise no 3Dfx support will be built. Also see the <A
|
|
HREF="video.html#tv-out_voodoo">3dfx TV-out section</A>. If you use X, use
|
|
<B>at least 4.2.0</B>, as the 3dfx Xv driver was broken in 4.1.0 and earlier
|
|
releases.</LI>
|
|
<LI><B>ATI cards</B>: <A HREF="video.html#vidix">Vidix driver</A> is
|
|
provided for the following cards:
|
|
<B>Radeon</B>, <B>Rage128</B>, <B>Mach64</B> (Rage XL/Mobility, Xpert98).
|
|
Also see the <A HREF="video.html#tv-out_ati">ATI cards
|
|
section</A> of the TV-out documentation, to know if you card's TV-out is
|
|
supported under Linux/MPlayer.</LI>
|
|
<LI><B>S3 cards</B>: the Savage and Virge/DX chips have hardware acceleration.
|
|
Use as new XFree86 version as possible, older drivers are buggy. Savage chips
|
|
have problems with YV12 display, see <A HREF="video.html#xv_s3">S3 Xv
|
|
section</A> for details. Older, Trio cards have no, or slow hardware
|
|
support.</LI>
|
|
<LI><B>nVidia cards</B>: may or may not be good choice for video playing.
|
|
If you do not have a GeForce2 (or newer) card, it's not likely to work
|
|
without bugs.
|
|
<B>The built-in nVidia driver in XFree86 does not support hardware YUV
|
|
acceleration on all nVidia cards.</B> You have to download nVidia's
|
|
closed-source drivers from nVidia.com. See the
|
|
<A HREF="video.html#xv_nvidia">nVidia Xv driver</A> section for
|
|
details. Please also check the <A HREF="video.html#tv-out_nvidia">nVidia
|
|
TV-out section</A> if you wish to use a TV.</LI>
|
|
<LI><B>3DLabs GLINT R3 and Permedia3</B>: a VIDIX driver is provided
|
|
(pm3_vid). Please see the <A HREF="video.html#vidix">VIDIX</A> section for
|
|
details.</LI>
|
|
<LI><B>Other cards</B>: None of the above?
|
|
<UL>
|
|
<LI>Try if the XFree86 driver (and your card) supports hardware
|
|
acceleration. See the <A HREF="video.html#xv">Xv section</A> for
|
|
details.</LI>
|
|
<LI>If it doesn't, then your card's video features aren't supported under
|
|
your operating system :(<BR>
|
|
If hardware scaling works under Windows, it doesn't mean it will work
|
|
under Linux or other operating systems: it depends on the drivers. Most
|
|
manufacturers neither make Linux drivers nor release specifications
|
|
for their chips, so you are unlucky using their cards.
|
|
See 'Non-YUV cards'.</LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
|
|
<H4>Non-YUV cards</H4>
|
|
|
|
<P>Fullscreen playing can be achieved by either enabling <B>software scaling</B>
|
|
(use the <CODE>-zoom</CODE> or <CODE>-vop scale</CODE>
|
|
option, but I warn you: this is slow), or switching to a small resolution
|
|
video mode, for example 352x288. If you don't have YUV acceleration, the
|
|
latter method is recommended. Video mode switching can be enabled by
|
|
using the <CODE>-vm</CODE> option and it works with the following drivers:</P>
|
|
|
|
<UL>
|
|
<LI><B>using</B> XFree86: see the
|
|
<A HREF="video.html#dga">DGA driver</A> and
|
|
<A HREF="video.html#x11">X11 driver</A> sections for details. DGA is
|
|
recommended! Also try DGA via SDL, sometimes it's better.</LI>
|
|
<LI><B>not using</B> XFree86: try the drivers in the following order:
|
|
<A HREF="video.html#vesa">vesa</A>,
|
|
<A HREF="video.html#fbdev">fbdev</A>,
|
|
<A HREF="video.html#svgalib">svgalib</A>,
|
|
<A HREF="video.html#aalib">aalib</A>.</LI>
|
|
</UL>
|
|
|
|
<H4>Some cards:</H4>
|
|
|
|
<UL>
|
|
<LI><B>Cirrus Logic cards</B>:
|
|
<UL>
|
|
<LI>GD 7548: present on-board and tested in Compaq Armada 41xx notebook
|
|
series.
|
|
<UL>
|
|
<LI>XFree86 3: works in 8/16bpp modes. However, the driver is
|
|
dramatically slow and buggy in 800x600@16bpp.
|
|
<B>Recommended: 640x480@16bpp</B></LI>
|
|
<LI>XFree86 4: the Xserver freezes soon after start unless
|
|
acceleration is disabled, but then the whole thing gets
|
|
slower than XFree86 3. No XVideo.</LI>
|
|
<LI>FBdev: framebuffer can be turned on with the <CODE>clgenfb</CODE>
|
|
driver in the kernel, though for me it worked only in 8bpp, thus
|
|
unusable. The clgenfb source had to be extended with the 7548 ID
|
|
before compilation.</LI>
|
|
<LI>VESA: the card is only VBE 1.2 capable, so VESA output can't be
|
|
used. Can't be workarounded with UniVBE.</LI>
|
|
<LI>SVGAlib: detects an older Cirrus chip. Usable but slow with
|
|
<CODE>-bpp 8</CODE>.</LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
|
|
|
|
<H4>Sound cards:</H4>
|
|
|
|
<UL>
|
|
<LI><B>Soundblaster Live!</B>: with this card you can use 4 or 6 (<B>5.1</B>)
|
|
channels AC3 decoding instead of 2. Read the
|
|
<A HREF="codecs.html#software_ac3">Software AC3 decoding</A> section.
|
|
For hardware AC3 passthrough you <B>must</B> use ALSA 0.9 with OSS emulation!</LI>
|
|
<LI><B>C-Media with SP/DIF out</B>: hardware AC3 passthrough is possible
|
|
with these cards, see
|
|
<A HREF="codecs.html#hardware_ac3">Hardware AC3 decoding</A> section.</LI>
|
|
<LI>Features of <B>other cards</B> aren't supported by MPlayer.
|
|
<U>It's very recommended to read the <A HREF="sound.html">sound card
|
|
section</A>!</U></LI>
|
|
</UL>
|
|
|
|
<H4>Features:</H4>
|
|
|
|
<UL>
|
|
<LI>Decide if you need GUI. If you do, see the <A HREF="#gui">GUI section</A>
|
|
before compiling.</LI>
|
|
<LI>If you want to install MEncoder (our great all-purpose encoder),
|
|
see the <A HREF="encoding.html">MEncoder section</A>.</LI>
|
|
<LI>If you have a V4L compatible <B>TV tuner</B> card, and wish to watch/grab
|
|
and encode movies with MPlayer, read the <A HREF="#tv">TV input</A>
|
|
section.</LI>
|
|
<LI>There is a neat <B>OSD Menu</B> support ready to be used. Check the
|
|
<A HREF="#menu">OSD Menu</A> section.</LI>
|
|
</UL>
|
|
|
|
<P>Then build MPlayer:</P>
|
|
|
|
<PRE>
|
|
./configure
|
|
make
|
|
make install
|
|
</PRE>
|
|
|
|
<P>At this point, MPlayer is ready to use. The directory
|
|
<CODE>$PREFIX/etc/mplayer</CODE> contains the <CODE>codecs.conf</CODE>
|
|
file, which is used to tell the program all the codecs and their
|
|
capabilities. This file should always be kept up to date together with the
|
|
main binary.<BR>
|
|
Check if you have <CODE>codecs.conf</CODE> in your home directory
|
|
(<CODE>~/.mplayer/codecs.conf</CODE>) left from old MPlayer versions, and remove it.</P>
|
|
|
|
<P><B>Debian users</B> can build a <CODE>.deb</CODE> package for themselves,
|
|
it's very simple. Just exec <CODE>fakeroot debian/rules binary</CODE> in
|
|
MPlayer's root directory. See
|
|
<A HREF="documentation.html#debian">Debian packaging</A> for detailed
|
|
instructions.</P>
|
|
|
|
<P><B>Always browse the output of <CODE>./configure</CODE></B>, and the
|
|
<CODE>configure.log</CODE> file, they contain information about what will be
|
|
built, and what will not. You may also want to view <CODE>config.h</CODE> and
|
|
<CODE>config.mak</CODE> files.<BR>
|
|
If you have some libraries installed, but not detected by
|
|
<CODE>./configure</CODE>, then check if you also have the proper header files
|
|
(usually the -dev packages) and their version matches. The
|
|
<CODE>configure.log</CODE> file usually tells you what is missing.</P>
|
|
|
|
<P>Though not mandatory, the fonts should be installed in order to gain OSD,
|
|
and subtitle functionality. The recommended method is installing a TTF
|
|
font file and telling MPlayer to use it. See the
|
|
<A HREF="#install_osd">Subtitles and OSD</A> section for details.</P>
|
|
|
|
|
|
|
|
<H2><A NAME="gui">1.3 What about the GUI?</A></H2>
|
|
|
|
<P>The GUI needs GTK (it isn't GTK, but the panels are). The skins are stored
|
|
in PNG format, so gtk, libpng (and their devel stuff) has to be installed.
|
|
You can build it by specifying <CODE>--enable-gui</CODE> during
|
|
<CODE>./configure</CODE>. Then, to turn on GUI mode, you either</P>
|
|
<UL>
|
|
<LI>specify <CODE>gui=yes</CODE> in your config file</LI>
|
|
<LI><CODE>ln -s $PREFIX/bin/mplayer $PREFIX/bin/gmplayer</CODE> ,
|
|
and call <CODE>gmplayer</CODE> instead.</LI>
|
|
</UL>
|
|
|
|
<P>Currently you can't use the <CODE>-gui</CODE> option on the command line,
|
|
due to technical reasons.</P>
|
|
|
|
<P>As MPlayer doesn't have a skin included, you have to download them if
|
|
you want to use the GUI. See the
|
|
<A HREF="http://www.mplayerhq.hu/homepage/dload.html">download page</A>.
|
|
They should be extracted to the usual system-wide directory
|
|
(<CODE>$PREFIX/share/mplayer/Skin</CODE>), or to
|
|
<CODE>$HOME/.mplayer/Skin</CODE>. MPlayer by default looks in these
|
|
directories for a directory named <I>default</I>, but you can use the
|
|
<CODE>-skin newskin</CODE> option, or the <CODE>skin=newskin</CODE> config
|
|
file directive to use the skin in <CODE>*/Skin/newskin</CODE> directory.</P>
|
|
|
|
|
|
<H2><A NAME="subtitles_osd">1.4 Subtitles and OSD</A></H2>
|
|
|
|
<P>
|
|
MPlayer can display subtitles along with movie files. Currently the following
|
|
formats are supported:</P>
|
|
<UL>
|
|
<LI>VobSub</LI>
|
|
<LI>OGM</LI>
|
|
<LI>CC (closed caption)</LI>
|
|
<LI>Microdvd</LI>
|
|
<LI>SubRip</LI>
|
|
<LI>SubViewer</LI>
|
|
<LI>Sami</LI>
|
|
<LI>VPlayer</LI>
|
|
<LI>RT</LI>
|
|
<LI>SSA</LI>
|
|
<LI>MPsub</LI>
|
|
<LI>AQTitle</LI>
|
|
<LI>JACOsub</LI>
|
|
</UL>
|
|
|
|
<P>MPlayer can dump the previously listed subtitle formats (<B>except
|
|
the three first</B>) into the following destination formats, with the given
|
|
options:</P>
|
|
|
|
<UL>
|
|
<LI>MPsub: <CODE>-dumpmpsub</CODE></LI>
|
|
<LI>SubRip: <CODE>-dumpsrtsub</CODE></LI>
|
|
<LI>Microdvd: <CODE>-dumpmicrodvdsub</CODE></LI>
|
|
<LI>JACOsub: <CODE>-dumpjacosub</CODE></LI>
|
|
<LI>Sami: <CODE>-dumpsami</CODE></LI>
|
|
</UL>
|
|
|
|
<P>The command line options differ slightly for the different formats:</P>
|
|
|
|
<H4>VobSub subtitles</H4>
|
|
|
|
<P>VobSub subtitles consist of a big (some megabytes) .SUB file, and optional
|
|
.IDX and/or .IFO files.<BR>
|
|
Usage: If you have files like <CODE>sample.sub</CODE>,
|
|
<CODE>sample.ifo</CODE> (optional), <CODE>sample.idx</CODE> - you have to pass
|
|
MPlayer the <CODE>-vobsub sample [-vobsubid <id>]</CODE> options (full
|
|
path optional). The <CODE>-vobsubid</CODE> option is like <CODE>-sid</CODE>
|
|
for DVDs, you can choose between subtitle tracks (languages) with it. In case
|
|
that <CODE>-vobsubid</CODE> is omitted, MPlayer will try to use the languages
|
|
given by the <CODE>-slang</CODE> option and fall back to the
|
|
<CODE>langidx</CODE> item in the .IDX file to set the subtitle language. If
|
|
that fails, there will be no subtitles.</P>
|
|
|
|
<H4>Other subtitles</H4>
|
|
|
|
<P>The other formats consist of a single text file containing timing,
|
|
placement and text information.<BR>
|
|
Usage: If you have a file like <CODE>sample.txt</CODE>, you have to pass the
|
|
option <CODE>-sub sample.txt</CODE> (full path optional).</P>
|
|
|
|
<H4>Adjusting subtitle timing and placement:</H4>
|
|
|
|
<DL>
|
|
<DT><CODE>-subdelay <sec></CODE></DT>
|
|
<DD>Delays subtitles by <sec> seconds. Can be negative.</DD>
|
|
|
|
<DT><CODE>-subfps <rate></CODE></DT>
|
|
<DD>Specify frame/sec rate of subtitle file (float number)</DD>
|
|
|
|
<DT><CODE>-subpos <0 - 100></CODE></DT>
|
|
<DD>Specify the position of subtitles.</DD>
|
|
</DL>
|
|
|
|
<P>If you experience a growing delay between the movie and the subtitles when
|
|
using a MicroDVD subtitle file, most likely the frame rate of the movie and
|
|
the subtitle file are different.<BR> Please note that the MicroDVD subtitle
|
|
format uses absolute frame numbers for its timing, and therefore the
|
|
<CODE>-subfps</CODE> option cannot be used with this format. As
|
|
MPlayer has no way to guess the frame rate of the subtitle file, you
|
|
have to manually convert the frame rate. There is a little perl script in the
|
|
<CODE>contrib</CODE> directory of the MPlayer FTP site to do this conversion
|
|
for you.</P>
|
|
|
|
<P>MPlayer will try to guess the subtitle files you want to use when playing a
|
|
movie. If, like in most cases, subtitle and movie files have the same name and
|
|
are in the same place, you do not need to set the subtitle options. Just play
|
|
the movie, MPlayer will handle the subtitles automatically.</P>
|
|
|
|
<P>About DVD subtitles, read the <A HREF="cd-dvd.html#dvd">DVD section</A>.</P>
|
|
|
|
|
|
<H3><A NAME="mpsub">1.4.1 MPlayer's own subtitle format (MPsub)</A></H3>
|
|
|
|
<P>MPlayer introduces a new subtitle format called <B>MPsub</B>. It was
|
|
designed by me (Gabucino). Basically its main feature is being
|
|
<I>dynamically</I> time-based (although it has frame-based mode too). Example
|
|
(from
|
|
<A HREF="tech/mpsub.sub">DOCS/tech/mpsub.sub</A>):</P>
|
|
|
|
<P><CODE><I># first number : wait this much after previous subtitle disappeared<BR>
|
|
# second number : display the current subtitle for this many seconds<BR>
|
|
<BR>
|
|
15 3<BR>
|
|
A long long, time ago...<BR>
|
|
<BR>
|
|
0 3<BR>
|
|
in a galaxy far away...<BR>
|
|
<BR>
|
|
0 3<BR>
|
|
Naboo was under an attack.<BR></I></CODE></P>
|
|
|
|
<P>So you see, the main goal was to <B>make subtitle
|
|
editing/timing/joining/cutting easy</B>. And, if you - say - get an SSA
|
|
subtitle but it's badly timed/delayed to your version of the movie, you
|
|
simply do a <CODE>mplayer dummy.avi -sub source.ssa -dumpmpsub</CODE>.
|
|
A <CODE>dump.mpsub</CODE> file will be created in the current directory,
|
|
which will contain the source subtitle's text, but in <B>MPsub</B> format.
|
|
Then you can freely add/subtract seconds to/from the subtitle.</P>
|
|
|
|
<P>Subtitles are displayed with a technique called <B>'OSD', On Screen
|
|
Display</B>. OSD is used to display current time, volume bar, seek bar
|
|
etc.</P>
|
|
|
|
<H3><A NAME="install_osd">1.4.2 Installing OSD and subtitles</A></H3>
|
|
|
|
<P>You need an MPlayer font package to be able to use OSD/SUB feature.
|
|
There are many ways to get it:</P>
|
|
|
|
<UL>
|
|
<LI>download ready-to-use font packages from MPlayer site.
|
|
Note: Currently available fonts are limited for iso 8859-1/2 support,
|
|
but there are some other (including Korean, Russian, 8859-8 etc) fonts
|
|
at contrib/font section of FTP, made by users.<BR>
|
|
<BR>
|
|
Font should have appropriate font.desc file which maps unicode font
|
|
positions to the actual code page of the subtitles text. Other solution is
|
|
to have subtitles encoded in utf8 encoding and use <CODE>-utf8</CODE>
|
|
option or just name the subtitles file <video_name>.utf and have it
|
|
in the same dir as the video file. Recoding from different codepages to
|
|
utf8 could be done by using konwert (Debian) or iconv (Red Hat)
|
|
programs.<BR>
|
|
Some URLs:
|
|
<UL>
|
|
<LI><A HREF="ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/">ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/</A> - ISO fonts</LI>
|
|
<LI><A HREF="ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/">ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/</A> - various fonts by users</LI>
|
|
<LI><A HREF="http://realtime.ssu.ac.kr/~lethean/mplayer/">http://realtime.ssu.ac.kr/~lethean/mplayer/</A> - Korean fonts & RAW plugin</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI>use the font generator tool at TOOLS/subfont-c
|
|
It's a complete tool to convert from TTF/Type1/etc font to mplayer font pkg.
|
|
(read TOOLS/subfont-c/README for details)</LI>
|
|
<LI>use the font generator GIMP plugin at TOOLS/subfont-GIMP
|
|
(note: you must have HSI RAW plugin too, see URL below)</LI>
|
|
<LI>using a TrueType (TTF) font, by the means of the <B>freetype</B>
|
|
library. Version 2.0.9 or greater is mandatory! Then you
|
|
have two methods:
|
|
<UL>
|
|
<LI>use the <CODE>-font /path/to/arial.ttf</CODE> option to specify
|
|
a TrueType font file on every occassion</LI>
|
|
<LI>create a symlink: <CODE>ln -s /path/to/arial.ttf ~/.mplayer/subfont.ttf</CODE></LI>
|
|
</UL>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>If you chose non-TTF fonts, UNZIP the file you downloaded to <CODE>~/.mplayer</CODE> or
|
|
<CODE>$PREFIX/share/mplayer</CODE>. Then rename or symlink one of the extracted directories to
|
|
<CODE>font</CODE> (like: <CODE>ln -s ~/.mplayer/arial-24
|
|
~/.mplayer/font</CODE>). Now you have to see a timer at the upper left corner
|
|
of the movie (switch it off with the "o" key).</P>
|
|
|
|
|
|
<P>OSD has 4 states: (switch with 'o')</P>
|
|
|
|
<P>(subtitles are <I>always enabled</I>, for disabling them please read the man
|
|
page)</P>
|
|
|
|
<UL>
|
|
<LI>volume bar + seek bar (default)</LI>
|
|
<LI>volume bar + seek bar + timer + file position percentage on seeking</LI>
|
|
<LI>volume bar + seek bar + timer + total duration of media</LI>
|
|
<LI>subtitles only</LI>
|
|
</UL>
|
|
|
|
<P>You can change default behaviour by setting <CODE>osdlevel=</CODE> variable
|
|
in config file, or the <CODE>-osdlevel</CODE> command line option.</P>
|
|
|
|
|
|
<H3><A NAME="menu">1.4.3 OSD menu</A></H3>
|
|
|
|
<P>MPlayer has a completely user definiable OSD Menu interface.</P>
|
|
|
|
<P><B>NOTE:</B> the Preferences menu is currently UNIMPLEMENTED!</P>
|
|
|
|
<H4>Installation</H4>
|
|
|
|
<OL>
|
|
<LI>compile MPlayer by passing the <CODE>--enable-menu</CODE> parameters to
|
|
<CODE>./configure</CODE></LI>
|
|
<LI>make sure you have an OSD font installed</LI>
|
|
<LI>copy <CODE>etc/menu.conf</CODE> to your <CODE>.mplayer</CODE>
|
|
directory</LI>
|
|
<LI>copy <CODE>etc/input.conf</CODE> to your <CODE>.mplayer</CODE>
|
|
directory, or to the system-wide MPlayer config dir (default:
|
|
<CODE>/usr/local/etc/mplayer</CODE>)</LI>
|
|
<LI>check and edit <CODE>input.conf</CODE> to enable menu movement
|
|
keys (it is described there).</LI>
|
|
<LI>start MPlayer by the following example:<BR>
|
|
<CODE>$ mplayer -menu file.avi</CODE></LI>
|
|
<LI>push any menu key you defined</LI>
|
|
</OL>
|
|
|
|
|
|
<H2><A NAME="rtc">1.5 RTC</A></H2>
|
|
|
|
There are three timing methods in MPlayer.
|
|
|
|
<UL>
|
|
<LI><B>To use the old method</B>, you don't have to do anything. It uses
|
|
<CODE>usleep()</CODE> to tune A/V sync, with +/- 10ms accuracy. However
|
|
sometimes the sync has to be tuned even finer.</LI>
|
|
<LI><B>The new timer</B> code uses PC's RTC (Real Time Clock) for this task,
|
|
because it has precise 1ms timers. It is automagically enabled when
|
|
available, but requires root privileges, a <I>setuid root</I>
|
|
MPlayer binary or a properly set up kernel.
|
|
<BR>
|
|
If you are running kernel 2.4.19pre8 or later you can adjust the maximum
|
|
RTC frequency for normal users through the <CODE>/proc</CODE> filesystem.
|
|
Use this command to enable RTC for normal users:
|
|
<P>
|
|
<CODE>echo 1024 > /proc/sys/dev/rtc/max-user-freq</CODE>
|
|
</P>
|
|
If you do not have such a new kernel, you can also change one line in
|
|
<CODE>drivers/char/rtc.c</CODE> and recompile your kernel. Find the
|
|
section that reads
|
|
<PRE>
|
|
* We don't really want Joe User enabling more
|
|
* than 64Hz of interrupts on a multi-user machine.
|
|
*/
|
|
if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))
|
|
</PRE>
|
|
and change the 64 to 1024. You should really know what you are doing, though.
|
|
<BR>
|
|
You can see the new timer's efficiency in the status line.
|
|
<BR>
|
|
The power management functions of some notebook BIOSes with speedstep CPUs
|
|
interact badly with RTC. Audio and video may get out of sync. Plugging the
|
|
external power connector in before you power up your notebook seems to help.
|
|
You can always turn off RTC support with the <CODE>-nortc</CODE> option.
|
|
In some hardware combinations (confirmed during usage of non-DMA DVD
|
|
drive on an ALi1541 board) usage of the RTC timer causes skippy playback.
|
|
It's recommended to use the third method in these cases.</LI>
|
|
<LI><B>The third timer code</B> is turned on with the <CODE>-softsleep</CODE>
|
|
option. It has the efficiency of the RTC, but it doesn't use RTC. On the other
|
|
hand, it requires more CPU.</LI>
|
|
</UL>
|
|
|
|
<B>Note:</B> <B>NEVER install a setuid root MPlayer binary on a multiuser system!</B>
|
|
It's a clear way for everyone to become root.
|
|
|
|
|
|
|
|
<H1><A NAME="features">2. Features</A></H1>
|
|
|
|
|
|
<H2><A NAME="formats">2.1</A> <A HREF="formats.html">Supported formats</A></H2>
|
|
|
|
|
|
<H2><A NAME="codecs">2.2</A> <A HREF="codecs.html">Supported codecs</A></H2>
|
|
|
|
|
|
<H2><A NAME="output">2.3</A> <A HREF="video.html">Video</A> & <A HREF="sound.html">Audio</A> output devices</H2>
|
|
|
|
|
|
<H2><A NAME="tv"><B>2.4 TV input</B></A></H2>
|
|
|
|
<P>This section is about how to enable <B>watching/grabbing from V4L compatible
|
|
TV tuner</B>. See the man page for a description of TV options and keyboard
|
|
controls.</P>
|
|
|
|
<H3><A NAME="tv_compilation">2.4.1 Compilation</A></H3>
|
|
|
|
<OL>
|
|
<LI>First, you have to recompile. <CODE>./configure</CODE> will autodetect
|
|
kernel headers of v4l stuff and the existence of <CODE>/dev/video*</CODE>
|
|
entries. If they exist, TV support will be built (see the output of
|
|
<CODE>./configure</CODE>).</LI>
|
|
<LI>Make sure your tuner works with another TV software in Linux, for example
|
|
xawtv.</LI>
|
|
</OL>
|
|
|
|
<H3><A NAME="tv_tips">2.4.2 Usage tips</A></H3>
|
|
|
|
The full listing of the options is available on the manual page. Here
|
|
are just a few tips:
|
|
|
|
<UL>
|
|
<LI>Use the <CODE>channels</CODE> option. An example:<BR>
|
|
<CODE>-tv on:channels=26-MTV1,23-TV2</CODE><BR>
|
|
Explanation: using this option, only the 26 and 23 channels will be usable,
|
|
and there will be a nice OSD text upon channel switching, displaying the
|
|
channel's name. Spaces in the channel name must be replaced by the "_"
|
|
character.</LI>
|
|
<LI>Choose some sane image dimensions. The dimensions of the resulting image
|
|
should be divisible by 16.</LI>
|
|
<LI>If you capture the video with the vertical resolution higher than half of
|
|
the full resolution (i.e. 288 for PAL or 240 for NTSC), make sure you
|
|
turned deinterlacing on. Otherwise you'll get a movie which is distorted
|
|
during fast-motion scenes and the bitrate controller will be probably even
|
|
unable to retain the specified bitrate as the interlacing artifacts produce
|
|
high amount of detail and thus consume lot of bandwidth. You can enable
|
|
deinterlacing with <CODE>-vop pp=DEINT_TYPE</CODE>. Usually
|
|
<CODE>pp=lb</CODE> does a good job, but it can be matter of personal
|
|
preference. See other deinterlacing algorithms in the manual and give it a
|
|
try.</LI>
|
|
<LI>Crop out the dead space. When you capture the video, the areas at the
|
|
edges are usually black or contain some noise. These again consume lots of
|
|
unnecessary bandwidth. More precisely it's not the black areas themselves
|
|
but the sharp transitions between the black and the brighter video image
|
|
which do but that's not important for now. Before you start capturing,
|
|
adjust the arguments of the <CODE>crop</CODE> option so that all the crap
|
|
at the margins is cropped out. Again, don't forget to keep the resulting
|
|
dimensions sane.</LI>
|
|
<LI>Watch out for CPU load. It shouldn't cross the 90% boundary for most of
|
|
the time. If you have a large capture buffer, MEncoder can survive an
|
|
overload for few seconds but nothing more. It's better to turn off the 3D
|
|
OpenGL screensavers and similar stuff.</LI>
|
|
<LI>Don't mess with the system clock. MEncoder uses the system clock for
|
|
doing A/V sync. If you adjust the system clock (especially backwards in
|
|
time), MEncoder gets confused and you will lose frames. This is an
|
|
important issue if you are hooked to a network and run some time
|
|
synchronization software like NTP. You have to turn NTP off during the
|
|
capture process if you want to capture reliably.</LI>
|
|
<LI>Don't change the <CODE>outfmt</CODE> unless you know what you are doing
|
|
or your card/driver really doesn't support the default (YV12 colorspace).
|
|
In the older versions of MPlayer/MEncoder it was necessary to specify the
|
|
output format. This issue should be fixed in the current releases and
|
|
<CODE>outfmt</CODE> isn't required anymore, and the default suits the most
|
|
purposes. For example, if you are capturing into DivX using libavcodec and
|
|
specify <CODE>outfmt=RGB24</CODE> in order to increase the quality of the
|
|
captured images, the captured image will be actually later converted back
|
|
into YV12 so the only thing you achieve is a massive waste of CPU power.
|
|
</LI>
|
|
<LI>To specify the I420 colorspace (<CODE>outfmt=i420</CODE>), you have to
|
|
add an option <CODE>-vc rawi420</CODE> due to a fourcc conflict with an
|
|
Intel Indeo video codec.</LI>
|
|
<LI>There are several ways of capturing audio. You can grab the sound either
|
|
using your soundcard via an external cable connection between video card
|
|
and line-in, or using the built-in ADC in the bt878 chip. In the latter
|
|
case, you have to load the <b>btaudio</b> driver. Read the
|
|
<CODE>linux/Documentation/sound/btaudio</CODE> file (in the kernel tree,
|
|
not MPlayer's) for some instructions on using this driver.</LI>
|
|
<LI>If MEncoder cannot open the audio device, make sure that it is really
|
|
available. There can be some trouble with the sound servers like arts
|
|
(KDE) or esd (GNOME). If you have a full duplex soundcard (almost any
|
|
decent card supports it today), and you are using KDE, try to check the
|
|
"full duplex" option in the sound server preference menu.</LI>
|
|
</UL>
|
|
|
|
<H3><A NAME="tv_examples">2.4.3 Examples</A></H3>
|
|
|
|
<P>Dummy output, to AAlib :)<BR>
|
|
<CODE> mplayer -tv on:driver=dummy:width=640:height=480 -vo aa</CODE><BR>
|
|
<BR>
|
|
Input from standard V4L<BR>
|
|
<CODE> mplayer -tv
|
|
on:driver=v4l:width=640:height=480 -vo xv</CODE><BR>
|
|
<BR>
|
|
|
|
A more sophisticated example. This makes MEncoder capture the full
|
|
PAL image, crop the margins, and deinterlace the picture using
|
|
a linear blend algorithm. Audio is compressed with a constant
|
|
bitrate of 64kbps, using LAME codec. This setup is suitable for
|
|
capturing movies.<BR> <CODE> mencoder -tv
|
|
on:driver=v4l:width=768:height=576 \<BR>
|
|
-ovc lavc -lavcopts
|
|
vcodec=mpeg4:vbitrate=900 \<BR> -oac
|
|
mp3lame -lameopts cbr:br=64 \<BR> -vop
|
|
pp=lb,crop=720:544:24:16 -o output.avi </CODE><BR>
|
|
|
|
<BR>
|
|
This will additionally rescale the image to 384x288 and compresses
|
|
the video with the bitrate of 350kbps in high quality mode. The
|
|
vqmax option looses the quantizer and allows the video compressor to
|
|
actualy reach so low bitrate even at the expense of the
|
|
quality. This can be used for capturing long TV series, where the
|
|
video quality isn't so important.<BR>
|
|
<CODE>
|
|
mencoder -tv on:driver=v4l:width=768:height=576 \<BR>
|
|
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \<BR>
|
|
-oac mp3lame -lameopts cbr:br=48 \<BR>
|
|
-vop scale=384:288,pp=tn/lb,crop=720:540:24:18 -sws 1 -o output.avi
|
|
</CODE><BR>
|
|
|
|
It's also possible to specify smaller image dimensions in the
|
|
<CODE>-tv</CODE> option and omit the software scaling but this
|
|
approach uses the maximum available information and is a little more
|
|
resistant to noise. The bt8x8 chips can do the pixel averaging only
|
|
in the horizontal direction due to a hardware limitation.</P>
|
|
|
|
|
|
<H2><A NAME="edl">2.5 Edit Decision Lists (EDL)</A></H2>
|
|
|
|
<P>The edit decision list (EDL) system allows you to automatically skip or mute
|
|
sections of videos during playback, based on a movie specific EDL
|
|
configuration file.</P>
|
|
|
|
<P>This is useful for those who may want to watch a film in "family-friendly"
|
|
mode. You can cut out any violence, profanity, Jar-Jar Binks .. from a movie
|
|
according to your own personal preferences. Aside from this, there are other
|
|
uses, like automatically skipping over commercials in video files you
|
|
watch.</P>
|
|
|
|
<P>The EDL file format is pretty bare-bones. Once the EDL system has reached a
|
|
certain level of maturity, an XML-based file format will probably be
|
|
implemented (keeping backwards compatibility with previous EDL formats).</P>
|
|
|
|
<P>The maximum number of EDL entries for the current incarnation of EDL is 1000.
|
|
If you happen to need more, change the <CODE>#define MAX_EDL_ENTRIES</CODE>
|
|
in the <CODE>edl.h</CODE> file.</P>
|
|
|
|
<H3><A NAME="edl_using">2.5.1 Using an EDL file</A></H3>
|
|
|
|
<P>Include the <CODE>-edl <filename></CODE> flag when you run MPlayer,
|
|
with the name of the EDL file you want applied to the video.</P>
|
|
|
|
<H3><A NAME="edl_making">2.5.2 Making an EDL file</A></H3>
|
|
|
|
<P>The current EDL file format is:</P>
|
|
|
|
<CODE>[begin second] [end second] [action]</CODE>
|
|
|
|
<P>Where the seconds are floating-point numbers and the action is either
|
|
<CODE>0</CODE> for skip or <CODE>1</CODE> for mute. Example:</P>
|
|
|
|
<PRE>
|
|
5.3 7.1 0
|
|
15 16.7 1
|
|
420 422 0
|
|
</PRE>
|
|
|
|
<P>This will skip from second 5.3 to second 7.1 of the video, then mute at
|
|
15 seconds, unmute at 16.7 seconds and skip from second 420 to second
|
|
422 of the video. These actions will be performed when the playback timer
|
|
reaches the times given in the file.</P>
|
|
|
|
<P>To create an EDL file to work from, use the
|
|
<CODE>-edlout <filename></CODE> flag. During playback, when you want to
|
|
mark the previous two seconds to skip over, hit <CODE>i</CODE>. A
|
|
corresponding entry will be written to the file for that time. You can then go
|
|
back and fine-tune the generated EDL file.</P>
|
|
|
|
|
|
|
|
<H1><A NAME="usage">3. Usage</A></H1>
|
|
|
|
|
|
<H2><A NAME="command_line">3.1 Command line</A></H2>
|
|
|
|
<P>MPlayer utilizes a complex playtree. It consists of global options
|
|
written as first (for example <CODE>mplayer -vfm 5</CODE>), and options
|
|
written after filenames, that apply only to the given filename/URL/whatever
|
|
(for example <CODE>mplayer -vfm 5 movie1.avi movie2.avi -vfm 4</CODE>).<BR>
|
|
You can group filenames/URLs together using { and }. It's useful with
|
|
option -loop: <CODE>mplayer { 1.avi -loop 2 2.avi } -loop 3</CODE>
|
|
will play files in this order: 1 1 2 1 1 2 1 1 2<BR>
|
|
</P>
|
|
|
|
<TABLE BORDER=0>
|
|
<TR><TD> </TD><TD>file</TD><TD> </TD><TD><CODE>mplayer [options] [path/]filename</CODE></TD></TR>
|
|
<TR><TD></TD><TD>files</TD><TD></TD><TD><CODE>mplayer [default options] [path/]filename1 [options for filename1] filename2 [options for filename2] ...</CODE></TD></TR>
|
|
<TR><TD></TD><TD>VCD</TD><TD></TD><TD><CODE>mplayer [options] -vcd trackno [-cdrom-device /dev/cdrom]</CODE></TD></TR>
|
|
<TR><TD></TD><TD>DVD</TD><TD></TD><TD><CODE>mplayer [options] -dvd titleno [-dvd-device /dev/dvd]</CODE></TD></TR>
|
|
<TR><TD></TD><TD>WWW</TD><TD></TD><TD><CODE>mplayer [options] http://site.com/file.asf (playlists can be used, too)</CODE></TD></TR>
|
|
<TR><TD></TD><TD>RTSP</TD><TD></TD><TD><CODE>mplayer [options] rtsp://server.example.com/streamName</CODE></TD></TR>
|
|
</TABLE>
|
|
|
|
<P>
|
|
Latest versions of MPlayer also accept VCD and DVD tracks in URL style, just like
|
|
xine does: <CODE>mplayer dvd://1</CODE> or <CODE>mplayer vcd://1</CODE></P>
|
|
|
|
<PRE>
|
|
mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
|
|
mplayer -vcd 2
|
|
mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
|
|
mplayer -dvd 1 -dvd-device /dev/hdc
|
|
mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi
|
|
</PRE>
|
|
|
|
|
|
<H2><A NAME="control">3.2 Control</A></H2>
|
|
|
|
<P>MPlayer has a fully configurable, command driven, control layer which
|
|
lets you control MPlayer with keyboard, mouse, joystick or remote
|
|
control (using LIRC). See the man page for the complete list of keyboard
|
|
controls.</P>
|
|
|
|
|
|
<H3><A NAME="controls_configuration">3.2.1 Controls configuration</A></H3>
|
|
|
|
<P>MPlayer allows you bind any key/button to any MPlayer command
|
|
using a simple config file. The syntax consist of a key name followed by a
|
|
command. The default config file location is
|
|
<CODE>$HOME/.mplayer/input.conf</CODE> but it can be overridden using the
|
|
<CODE>-input</CODE> conf option (relative path are relative to
|
|
<CODE>$HOME/.mplayer</CODE>).
|
|
|
|
<P>Example:</P>
|
|
|
|
<PRE>
|
|
##
|
|
## MPlayer input control file
|
|
##
|
|
|
|
RIGHT seek +10
|
|
LEFT seek -10
|
|
- audio_delay 0.100
|
|
+ audio_delay -0.100
|
|
q quit
|
|
> pt_step 1
|
|
< pt_step -1
|
|
ENTER pt_step 1 1
|
|
</PRE>
|
|
|
|
|
|
<H4><A NAME="key_names">3.2.1.1 Key names</A></H4>
|
|
|
|
<P>You can have a full list by running <CODE>mplayer -input keylist</CODE></P>
|
|
|
|
<H4>Keyboard:</H4>
|
|
|
|
<UL>
|
|
<LI>Any printable character</LI>
|
|
<LI>SPACE</LI>
|
|
<LI>ENTER</LI>
|
|
<LI>TAB</LI>
|
|
<LI>CTRL</LI>
|
|
<LI>BS</LI>
|
|
<LI>DEL</LI>
|
|
<LI>INS</LI>
|
|
<LI>HOME</LI>
|
|
<LI>END</LI>
|
|
<LI>PGUP</LI>
|
|
<LI>PGDWN</LI>
|
|
<LI>ESC</LI>
|
|
<LI>RIGHT</LI>
|
|
<LI>LEFT</LI>
|
|
<LI>UP</LI>
|
|
<LI>DOWN</LI>
|
|
</UL>
|
|
|
|
<H4>Mouse (only supported under X):</H4>
|
|
|
|
<UL>
|
|
<LI>MOUSE_BTN0 (Left button)</LI>
|
|
<LI>MOUSE_BTN1 (Right button)</LI>
|
|
<LI>MOUSE_BTN2 (Middle button)</LI>
|
|
<LI>MOUSE_BTN3 (Wheel)</LI>
|
|
<LI>MOUSE_BTN4 (Wheel)</LI>
|
|
<LI>...</LI>
|
|
<LI>MOUSE_BTN9</LI>
|
|
</UL>
|
|
|
|
<H4>Joystick (support must be enabled at compile time):</H4>
|
|
|
|
<UL>
|
|
<LI>JOY_RIGHT or JOY_AXIS0_PLUS</LI>
|
|
<LI>JOY_LEFT or JOY_AXIS0_MINUS</LI>
|
|
<LI>JOY_UP or JOY_AXIS1_MINUS</LI>
|
|
<LI>JOY_DOWN or JOY_AXIS1_PLUS</LI>
|
|
<LI>JOY_AXIS2_PLUS</LI>
|
|
<LI>JOY_AXIS2_MINUS</LI>
|
|
<LI>...</LI>
|
|
<LI>JOY_AXIS9_PLUS</LI>
|
|
<LI>JOY_AXIS9_MINUS</LI>
|
|
</UL>
|
|
|
|
|
|
<H4><A NAME="commands">3.2.1.2 Commands</A></H4>
|
|
|
|
<P>You can have a full list of known commands by running "mplayer -input cmdlist"</P>
|
|
|
|
<UL>
|
|
<LI><B>seek</B> (int) val [(int) type=0]
|
|
<P>Seek to some place in the movie.<BR>
|
|
Type 0 is a relative seek of +/- val seconds.<BR>
|
|
Type 1 seek to val % in the movie.</P></LI>
|
|
<LI><B>audio_delay</B> (float) val
|
|
<P>Adjust the audio delay of val seconds</P></LI>
|
|
<LI><B>quit</B>
|
|
<P>Quit MPlayer</P></LI>
|
|
<LI><B>pause</B>
|
|
<P>Pause/unpause the playback</P></LI>
|
|
<LI><B>grap_frames</B>
|
|
<P>Somebody know ?</P></LI>
|
|
<LI><B>pt_step</B> (int) val [(int) force=0]
|
|
<P>Go to next/previous entry in playtree. Val sign tell the direction.<BR>
|
|
If no other entry is available in the given direction it won't do anything
|
|
unless force is non 0.</P></LI>
|
|
<LI><B>pt_up_step</B> (int) val [(int) force=0]
|
|
<P>Like pt_step but it jump to next/previous in the parent list. It's useful
|
|
to break inner loop in the playtree.</P></LI>
|
|
<LI><B>alt_src_step</B> (int) val
|
|
<P>When more than one source is available it select the next/previous one
|
|
(only supported by asx playlist).</P></LI>
|
|
<LI><B>sub_delay</B> (float) val [(int) abs=0]
|
|
<P>Adjust the subtitles delay of +/- val seconds or set it to val seconds
|
|
when abs is non zero.</P></LI>
|
|
<LI><B>osd</B> [(int) level=-1]
|
|
<P>Toggle osd mode or set it to level when level > 0.</P></LI>
|
|
<LI><B>volume</B> (int) dir
|
|
<P>Increase/decrease volume</P></LI>
|
|
<LI><B>contrast</B> (int) val [(int) abs=0]</LI>
|
|
<LI><B>brightness</B> (int) val [(int) abs=0]</LI>
|
|
<LI><B>hue</B> (int) val [(int) abs=0]</LI>
|
|
<LI><B>saturation</B> (int) val [(int) abs=0]
|
|
<P>Set/Adjust video parameters. Val range from -100 to 100.</P></LI>
|
|
<LI><B>frame_drop</B> [(int) type=-1]
|
|
<P>Toggle/Set frame dropping mode.</P></LI>
|
|
<LI><B>sub_visibility</B>
|
|
<P>Toggle subtitle visibility.</P></LI>
|
|
<LI><B>sub_pos</B> (int) val
|
|
<P>Adjust subtitles position.</P></LI>
|
|
<LI><B>vobsub_lang</B>
|
|
<P>Change the language of VobSub subtitles.</P></LI>
|
|
<LI><B>vo_fullscreen</B>
|
|
<P>Switch fullscreen mode.</P></LI>
|
|
<LI><B>tv_step_channel</B> (int) dir
|
|
<P>Select next/previous tv channel.</P></LI>
|
|
<LI><B>tv_step_norm</B>
|
|
<P>Change TV norm.</P></LI>
|
|
<LI><B>tv_step_chanlist</B>
|
|
<P>Change channel list.</P></LI>
|
|
<LI><B>gui_loadfile</B></LI>
|
|
<LI><B>gui_loadsubtitle</B></LI>
|
|
<LI><B>gui_about</B></LI>
|
|
<LI><B>gui_play</B></LI>
|
|
<LI><B>gui_stop</B></LI>
|
|
<LI><B>gui_playlist</B></LI>
|
|
<LI><B>gui_preferences</B></LI>
|
|
<LI><B>gui_skinbrowser</B>
|
|
<P>GUI actions</P></LI>
|
|
</UL>
|
|
|
|
|
|
<H3><A NAME="lirc">3.2.2 Control from LIRC</A></H3>
|
|
|
|
<P>Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver,
|
|
an (almost) arbitrary remote control and control your Linux box with it!
|
|
More about it at <A HREF="http://www.lirc.org">www.lirc.org</A>.</P>
|
|
|
|
<P>If you have installed the lirc-package, configure will autodetect it. If
|
|
everything went fine, MPlayer will print a message like "Setting up
|
|
lirc support..." on startup. If an error occurs it will tell you. If it
|
|
doesn't tell you anything about LIRC there's no support compiled in. That's
|
|
it :-)</P>
|
|
|
|
<P>The application name for MPlayer is - oh wonder - <CODE>mplayer</CODE>.
|
|
You can use any mplayer commands and even pass more than one command by
|
|
separating them with \n. Don't forget to enable the repeat flag in .lircrc
|
|
when it make sense (seek, volume, etc). Here's an excerpt from my
|
|
.lircrc:</P>
|
|
|
|
<PRE>
|
|
begin
|
|
button = VOLUME_PLUS
|
|
prog = mplayer
|
|
config = volume 1
|
|
repeat = 1
|
|
end
|
|
|
|
begin
|
|
button = VOLUME_MINUS
|
|
prog = mplayer
|
|
config = volume -1
|
|
repeat = 1
|
|
end
|
|
|
|
begin
|
|
button = CD_PLAY
|
|
prog = mplayer
|
|
config = pause
|
|
end
|
|
|
|
begin
|
|
button = CD_STOP
|
|
prog = mplayer
|
|
config = seek 0 1\npause
|
|
end
|
|
</PRE>
|
|
|
|
<P>If you don't like the standard location for the lirc-config file (~/.lircrc)
|
|
use the -lircconf <filename> option to specify another file.</P>
|
|
|
|
|
|
<H3><A NAME="slave">3.2.3 Slave mode</A></H3>
|
|
|
|
<P>The slave mode allow you to build simple frontend to MPlayer. When
|
|
enabled (with the <CODE>-slave</CODE> option) MPlayer will read
|
|
commands separated by new line (\n) from stdin.</P>
|
|
|
|
|
|
<H2><A NAME="streaming">3.3 Streaming from network or pipes</A></H2>
|
|
|
|
<P>MPlayer can play files from network, using the HTTP, MMS or RTSP/RTP
|
|
protocol.</P>
|
|
|
|
<P>Playing goes by simply using adding the URL to the command line.
|
|
MPlayer also honors the http_proxy environment variable, and uses
|
|
proxy if available. Proxy usage can also be forced:</P>
|
|
|
|
<P><CODE>mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf</CODE></P>
|
|
|
|
<P>MPlayer can read from stdin (NOT named pipes). This can be for example
|
|
used to play from FTP:</P>
|
|
|
|
<P><CODE> wget ftp://micorsops.com/something.avi -O - | mplayer -</CODE></P>
|
|
|
|
<P>Note: it's also recommended to enable CACHE when playback from network:</P>
|
|
|
|
<P><CODE> wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -</CODE></P>
|
|
|
|
|
|
|
|
<H1><A NAME="faq">4.</A> <A HREF="faq.html">FAQ section</A></H1>
|
|
|
|
|
|
|
|
<H1><A NAME="cd/dvd">5.</A> <A HREF="cd-dvd.html">CD/DVD section</A></H1>
|
|
|
|
|
|
|
|
<H1><A NAME="ports">6. Ports</A></H1>
|
|
|
|
|
|
<H2><A NAME="linux">6.1 Linux</A></H2>
|
|
|
|
<P>The main development platform is Linux on x86, although MPlayer works on many
|
|
other Linux ports.</P>
|
|
|
|
|
|
<H3><A NAME="debian">6.1.1 Debian packaging</A></H3>
|
|
|
|
<P>To build a Debian package, run the following command in the MPlayer source
|
|
directory:</P>
|
|
|
|
<PRE>
|
|
fakeroot debian/rules binary
|
|
</PRE>
|
|
|
|
<P>As root you can then install the <CODE>.deb</CODE> package as usual:</P>
|
|
|
|
<PRE>
|
|
dpkg -i ../mplayer_<version>.deb
|
|
</PRE>
|
|
|
|
<P>Christian Marillat has been making unofficial Debian MPlayer, MEncoder and
|
|
font packages for a while, you can (apt-)get them from his
|
|
<A HREF="http://marillat.free.fr/">homepage</A>. These packages are highly
|
|
unofficial, however, as Christian made and redistributed these packages when
|
|
MPlayer was still not fully GPLed and
|
|
<A HREF="users_against_developers.html#binary">binary redistribution</A> was
|
|
not allowed. Christian ignored requests to stop redistributing his packages,
|
|
which caused bad blood with MPlayer developers. Binary redistribution is not
|
|
a problem anymore, but we <B>do not support</B> these packages!</P>
|
|
|
|
|
|
<H3><A NAME="rpm">6.1.2 RPM packaging</A></H3>
|
|
|
|
<P>Dominik Mierzejewski created and maintains official Red Hat RPM packages of
|
|
MPlayer. They are available from his
|
|
<A HREF="http://www.piorunek.pl/~dominik/linux/pkgs/mplayer/">homepage</A>.
|
|
Please read the instructions there and report problems to him, not us.</P>
|
|
|
|
<P>There are other RPM versions (SuSE now includes MPlayer in their official
|
|
distribution, Mandrake packages are available from the
|
|
<A HREF="http://plf.zarb.org/">P.L.F</A>) of MPlayer, but none of them is
|
|
officially supported.</P>
|
|
|
|
|
|
<H3><A NAME="arm">6.1.3 ARM</A></H3>
|
|
|
|
<P>MPlayer works on Linux PDAs with ARM CPU e.g. Sharp Zaurus, Compaq Ipaq.
|
|
The easiest way to obtain MPlayer is to get it from one of the
|
|
<A HREF="http://www.openzaurus.org">Openzaurus</A> package feeds.
|
|
If you want to compile it yourself, you should look at the
|
|
<A HREF="http://openzaurus.bkbits.net:8080/buildroot/src/packages/mplayer?nav=index.html|src/.|src/packages">mplayer</A>
|
|
and the
|
|
<A HREF="http://openzaurus.bkbits.net:8080/buildroot/src/packages/libavcodec?nav=index.html|src/.|src/packages">libavcodec</A>
|
|
directory in the OpenZaurus distribution buildroot. These always have the
|
|
latest Makefile and patches used for building a CVS MPlayer with libavcodec.
|
|
<BR>If you need a GUI frontend, you can use xmms-embedded.</P>
|
|
|
|
|
|
<H2><A NAME="bsd">6.2 *BSD</A></H2>
|
|
|
|
<P>MPlayer runs on FreeBSD, OpenBSD, NetBSD, BSD/OS and Darwin. There are
|
|
ports/pkgsrc/fink/etc versions of MPlayer available that are probably easier
|
|
to use than our raw sources.</P>
|
|
|
|
<P>To build MPlayer you will need GNU make (gmake - native BSD make will not
|
|
work) and a recent version of binutils.</P>
|
|
|
|
<P>If MPlayer complains about not finding <CODE>/dev/cdrom</CODE> or
|
|
<CODE>/dev/dvd</CODE>, create an appropiate symbolic link:<BR>
|
|
<CODE>ln -s /dev/(your_cdrom_device) /dev/cdrom</CODE>.</P>
|
|
|
|
<P>To use Win32 DLLs with MPlayer you will need to re-compile the kernel with
|
|
"<CODE>option USER_LDT</CODE>" (unless you run FreeBSD -CURRENT, where this
|
|
is the default).</P>
|
|
|
|
<H3><A NAME="freebsd">6.2.1 FreeBSD</A></H3>
|
|
|
|
<P>If your CPU has SSE, recompile your kernel with "options CPU_ENABLE_SSE" to
|
|
use it (FreeBSD-STABLE or kernel patches required).</P>
|
|
|
|
<H3><A NAME="openbsd">6.2.2 OpenBSD</A></H3>
|
|
|
|
<P>Due to limitations in different versions of gas (relocation vs MMX), you will
|
|
need to compile in two steps: First make sure that the non-native as is first
|
|
in your <CODE>$PATH</CODE> and do a <CODE>gmake -k</CODE>, then make sure that
|
|
the native version is used and do <CODE>gmake</CODE>.</P>
|
|
|
|
|
|
<H2><A NAME="solaris">6.3 Solaris</A></H2>
|
|
|
|
<P>MPlayer should work on Solaris 2.6 or newer.</P>
|
|
|
|
<P>On <B>UltraSPARC</B>s, MPlayer takes advantage of their <B>VIS</B>
|
|
extensions (equivalent to MMX), currently only in <I>libmpeg2</I>,
|
|
<I>libvo</I> and <I>libavcodec</I>, but not in mp3lib. You can watch a VOB
|
|
file on a 400MHz CPU. You'll need
|
|
<A HREF="http://www.sun.com/sparc/vis/mediaLib.html">mLib</A> installed.</P>
|
|
|
|
<P>To build the package you will need GNU make (gmake, /opt/sfw/gmake), native
|
|
Solaris make will not work. Typical error you get when building with Solaris'
|
|
make instead of GNU make:</P>
|
|
|
|
<PRE>
|
|
% /usr/ccs/bin/make
|
|
make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
|
|
</PRE>
|
|
|
|
<P>On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter
|
|
if GNU C/C++ compiler is configured with or without the GNU assembler.</P>
|
|
|
|
<P>On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler,
|
|
configured to use the GNU assembler! The mplayer code on the x86 platform
|
|
makes heavy use of MMX, SSE and 3DNOW! instructions that cannot be compiled
|
|
using Sun's assembler <CODE>/usr/ccs/bin/as</CODE>.</P>
|
|
|
|
<P>The configure script tries to find out, which assembler program is used by
|
|
your "gcc" command (in case the autodetection fails, use the
|
|
<CODE>--as=/whereever/you/have/installed/gnu-as</CODE> option to tell the
|
|
configure script where it can find GNU "as" on your system).</P>
|
|
|
|
<P>Error message from configure on a Solaris x86 system using GCC
|
|
without GNU assembler:</P>
|
|
|
|
<PRE>
|
|
% configure
|
|
...
|
|
Checking assembler (/usr/ccs/bin/as) ... , failed
|
|
Please upgrade(downgrade) binutils to 2.10.1...
|
|
</PRE>
|
|
|
|
<P>(Solution: Install and use a gcc configured with "--with-as=gas")</P>
|
|
|
|
<P>Typical error you get when building with a GNU C compiler that does
|
|
not use GNU as:</P>
|
|
|
|
<PRE>
|
|
% gmake
|
|
...
|
|
gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
|
|
-fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c
|
|
Assembler: mplayer.c
|
|
"(stdin)", line 3567 : Illegal mnemonic
|
|
"(stdin)", line 3567 : Syntax error
|
|
... more "Illegal mnemonic" and "Syntax error" errors ...
|
|
</PRE>
|
|
|
|
<P>Due to bugs in Solaris 8, you may not be able to play DVD discs larger
|
|
than 4 GB:</P>
|
|
|
|
<UL>
|
|
<LI>The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk
|
|
block >4GB on a device using a logical blocksize != DEV_BSIZE (i.e. CD-ROM
|
|
and DVD media). Due to a 32Bit int overflow, a disk address modulo 4GB is
|
|
accessed.
|
|
(<A HREF="http://groups.yahoo.com/group/solarisonintel/message/22516">http://groups.yahoo.com/group/solarisonintel/message/22516</A>)
|
|
<P>
|
|
This problem does not exist in the SPARC version of Solaris 8.
|
|
</P>
|
|
</LI>
|
|
<LI>A similar bug is present in the hsfs(7FS) filesystem code (aka
|
|
ISO9660), hsfs may not not support partitions/disks larger than 4GB, all data
|
|
is accessed modulo 4GB.
|
|
(<A HREF="http://groups.yahoo.com/group/solarisonintel/message/22592">http://groups.yahoo.com/group/solarisonintel/message/22592</A>).
|
|
<P>
|
|
The hsfs problem can be fixed by installing patch 109764-04 (sparc) /
|
|
109765-04 (x86).
|
|
</P>
|
|
</LI>
|
|
</UL>
|
|
|
|
<P>On Solaris with an UltraSPARC CPU, you can get some extra speed by
|
|
using the CPU's VIS instructions for certain time consuming operations.
|
|
VIS acceleration can be used in MPlayer by calling functions in Sun's
|
|
<A HREF="http://www.sun.com/sparc/vis/mediaLib.html">mediaLib</A>.</P>
|
|
|
|
<P>VIS accelerated operations from mediaLib are used for mpeg2 video
|
|
decoding and for color space conversion in the video output drivers.</P>
|
|
|
|
|
|
<H2><A NAME="sgi">6.4 Silicon Graphics / IRIX</A></H2>
|
|
|
|
<P>You can either try to install the GNU install program, and (if you did not
|
|
put it in your global path) then point to the location with:</P>
|
|
|
|
<PRE>
|
|
./configure --install-path=PATH
|
|
</PRE>
|
|
|
|
<P>Or you can use the default install delivered with IRIX 6.5 in which case you
|
|
will have to edit the Makefile a littlebit by hand. Change the following two
|
|
lines:</P>
|
|
|
|
<PRE>
|
|
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1
|
|
|
|
$(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf
|
|
</PRE>
|
|
|
|
<P>to:</P>
|
|
|
|
<PRE>
|
|
$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/
|
|
|
|
$(INSTALL) -m 644 codecs.conf $(CONFDIR)/
|
|
</PRE>
|
|
|
|
<P>And then do (from within the MPlayer source dir):</P>
|
|
|
|
<PRE>
|
|
cp DOCS/mplayer.1 . ; cp etc/codecs.conf .
|
|
</PRE>
|
|
|
|
<P>and then go on with building and installing.</P>
|
|
|
|
|
|
<H2><A NAME="qnx">6.5 QNX</A></H2>
|
|
|
|
<P>Works. You'll need to download SDL for QNX, and install it. Then run
|
|
MPlayer with <CODE>-vo sdl:photon</CODE> and <CODE>-ao sdl:nto</CODE>
|
|
options, and it should be fast.</P>
|
|
|
|
<P>The <CODE>-vo x11</CODE> output will be even slower than on Linux, since
|
|
QNX has only X <I>emulation</I> which is VERY slow. Use SDL.</P>
|
|
|
|
|
|
<H2><A NAME="cygwin">6.6 Cygwin</A></H2>
|
|
|
|
<P>The Cygwin port is still in its infancy. Currently there is no support for
|
|
Win32 DLLs or OpenGL. SDL is known to distort sound and image or crash
|
|
on some systems. <A HREF="tech/patches.txt">Patches</A> are always welcome.
|
|
Best results are achieved with the native DirectX video output driver
|
|
(<CODE>-vo directx</CODE>) and the native Windows waveout audio driver
|
|
(<CODE>-ao win32</CODE>). You should also check out the
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">mplayer-cygwin</A>
|
|
mailing list for help and latest information.</P>
|
|
|
|
<P>You have to copy or symlink <CODE>etc/cygwin_inttypes.h</CODE> from the
|
|
MPlayer source directory to <CODE>/usr/include/inttypes.h</CODE> in order to
|
|
make MPlayer compile.</P>
|
|
|
|
<P>To get native DirectX video, download
|
|
<A HREF="http://www.videolan.org/vlc/dx7headers.tgz">DirectX 7 header files</A>,
|
|
extract them to <CODE>/usr/include/</CODE> or <CODE>/usr/local/include/</CODE>
|
|
and recompile. If the image is distorted, try turning off hardware
|
|
acceleration with <CODE>-vo directx:noaccel</CODE>.</P>
|
|
|
|
<P>Instructions and files for making SDL run under Cygwin can be found on the
|
|
<A HREF="http://www.libsdl.org/extras/win32/cygwin/">libsdl site</A>.</P>
|
|
|
|
<P>You can play VCDs by playing the <CODE>.DAT</CODE> or <CODE>.MPG</CODE> files
|
|
that Windows exposes on VCDs. It works like this (adjust for the drive letter
|
|
of your CD-ROM):</P>
|
|
|
|
<P><CODE>mplayer d:/mpegav/avseq01.dat</CODE></P>
|
|
|
|
<P><CODE>mplayer /cydrive/d/MPEG2/AVSEQ01.MPG</CODE></P>
|
|
|
|
<P>DVDs also work, just set the DVD device correctly to whatever your CD-ROM
|
|
device is:</P>
|
|
|
|
<P><CODE>mplayer -dvd <title> -dvd-device '\\.\d:'</CODE></P>
|
|
|
|
<P>QuickTime DLLs have also been reported to work. Compile with
|
|
<CODE>--enable-qtx-codecs</CODE> and put the codecs into the
|
|
default Windows DLL location, <CODE>C:\WINNT\system32</CODE> or
|
|
<CODE>C:\Windows\system</CODE> depending on your Windows version.</P>
|
|
|
|
|
|
|
|
<H1><A NAME="encoding">7.</A> <A HREF="encoding.html">Encoding with MEncoder</A></H1>
|
|
|
|
|
|
|
|
<H1><A NAME="mailing_lists">Appendix A - Mailing lists</A></H1>
|
|
|
|
<P>There are some public mailing lists on MPlayer. Unless explicitly
|
|
stated otherwise the language of these lists is <B>English</B>. Please do
|
|
not send messages in other languages or HTML mail! Message size limit is 80k.
|
|
If you have something bigger put it up for download somewhere. Click the
|
|
links to subscribe. On the mailing lists, the same rules about writing
|
|
and quoting apply as on usenet. Please follow them, it makes the life of
|
|
those who read your mails a lot easier. If you do not know them please
|
|
read <A HREF="http://learn.to/edit_messages">HOWTO edit messages</A> or
|
|
(if you are in a hurry)
|
|
<A HREF="http://www.xs4all.nl/~hanb/documents/quotingguide.html">
|
|
Quoting HOWTO</A>.</P>
|
|
|
|
<UL>
|
|
<LI>MPlayer announce list:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-announce">http://mplayerhq.hu/mailman/listinfo/mplayer-announce</A><BR>
|
|
List for MPlayer announcements. Subscribe here if you want to get
|
|
announcements about new features.</LI>
|
|
<LI>MPlayer developers list:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng</A><BR>
|
|
This list is about MPlayer development! Talking about interface/API
|
|
changes, new libraries, code optimization, configure changes is ontopic
|
|
here. Send patches but <B>not</B> bug reports, user questions, feature
|
|
requests or flames here to keep the list traffic low.</LI>
|
|
<LI>MPlayer users list:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">http://mplayerhq.hu/mailman/listinfo/mplayer-users</A>
|
|
<UL>
|
|
<LI>Send bug reports here after reading the <A HREF="#known_bugs">Known Bugs</A>
|
|
and <A HREF="bugreports.html">bug reporting section</A>).</LI>
|
|
<LI>Send feature requests here (after reading the <B>whole</B>
|
|
documentation).</LI>
|
|
<LI>Send user questions here (after reading the <B>whole</B>
|
|
documentation).</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI>MPlayer Hungarian users list:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok">http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok</A>
|
|
<UL>
|
|
<LI>Hungarian language list</LI>
|
|
<LI>Topic? We'll see about it... mostly flame and RTFM questions up to
|
|
now :(</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI>MPlayer & Matrox G200/G400/G450/G550 users:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-matrox">http://mplayerhq.hu/mailman/listinfo/mplayer-matrox</A><BR>
|
|
Matrox related questions like
|
|
<UL>
|
|
<LI>things about mga_vid</LI>
|
|
<LI>Matrox's official beta drivers (for X 4.x.x)</LI>
|
|
<LI>matroxfb-TVout stuff</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI>MPlayer & DVB card users:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">http://mplayerhq.hu/mailman/listinfo/mplayer-dvb</A><BR>
|
|
Things related to the hardware decoder card called DVB (<B>not</B> DXR3!).
|
|
</LI>
|
|
<LI>MPlayer CVS-log:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog">http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog</A><BR>
|
|
All changes in MPlayer code are automatically sent to this list. Only
|
|
questions about these changes belong here (if you do not understand why a
|
|
change is required or you have a better fix or you have noticed a possible
|
|
bug/problem in the commit).
|
|
</LI>
|
|
<LI>MPlayer CygWin-porting list:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin">http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin</A><BR>
|
|
List for discussion about MPlayer's CygWin port.
|
|
</LI>
|
|
<LI>MPlayer OS/2-porting list:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-os2">http://mplayerhq.hu/mailman/listinfo/mplayer-os2</A><BR>
|
|
List for discussion about MPlayer's OS/2 port.
|
|
</LI>
|
|
<LI>MPlayer Weekly News' editors and translators list:
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-mwn">http://mplayerhq.hu/mailman/listinfo/mplayer-mwn</A><BR>
|
|
List for discussion about the Weekly News releases.
|
|
</LI>
|
|
</UL>
|
|
|
|
<P><B>Note:</B> You can reach the searchable mailing list archives at
|
|
<A HREF="http://www.mplayerhq.hu/cgi-bin/htsearch">http://www.mplayerhq.hu/cgi-bin/htsearch</A>.
|
|
|
|
|
|
|
|
<H1><A NAME="bug_reports">Appendix B</A> - <A HREF="bugreports.html">How to report bugs</A></H1>
|
|
|
|
|
|
|
|
<H1><A NAME="known_bugs">Appendix C - Known bugs</A></H1>
|
|
|
|
<P>Special system/CPU-specific bugs/problems:</P>
|
|
<UL>
|
|
|
|
<LI>SIGILL (signal 4) on P3 using 2.2.x kernels:<BR>
|
|
Problem: kernel 2.2.x doesn't have proper (working) SSE support<BR>
|
|
Solution: upgrade kernel to 2.4.x<BR>
|
|
Workaround: <CODE>./configure --disable-sse</CODE></LI>
|
|
|
|
<LI>General SIGILL (signal 4):<BR>
|
|
Problem: you compiled and run mplayer in different machines
|
|
(for example compiled on P3 and running on Celeron)<BR>
|
|
Solution: compile MPlayer on the same machine where you will use it!<BR>
|
|
Workaround: <CODE>./configure --disable-sse</CODE> etc. options</LI>
|
|
|
|
<LI>"Internal buffer inconsistency" during MEncoder run:<BR>
|
|
Problem: known problem when lame < 3.90 was compiled with gcc 2.96 or 3.x.<BR>
|
|
Solution: use lame >=3.90.<BR>
|
|
Workaround: compile lame with gcc 2.95.x and remove any already installed
|
|
lame packages, they may have been compiled with gcc 2.96.</LI>
|
|
|
|
<LI>Messed up MP2/MP3 sound on PPC:<BR>
|
|
Problem: known GCC miscompilation bug on PPC platforms, no fix yet.<BR>
|
|
Workaround: use FFmpeg's (slow) MP1/MP2/MP3 decoder (<CODE>-ac ffmpeg</CODE>)</LI>
|
|
|
|
<LI>sig11 in libmpeg2, when scaling+encoding:<BR>
|
|
Problem: known GCC 2.95.2 MMX bug, upgrade to 2.95.3.</LI>
|
|
</UL>
|
|
|
|
<P>Various A-V sync and other audio problems:</P>
|
|
|
|
General audio delay or jerky sound (exists with all or many files):
|
|
<UL>
|
|
<LI>most common: buggy audio driver! - try to use different drivers, try
|
|
ALSA 0.9 OSS emulation with -ao oss, also try -ao sdl, sometimes it helps.
|
|
If your file plays fine with -nosound, then you can be sure it's sound card
|
|
(driver) problem.</LI>
|
|
<LI>audio buffer problems (buffer size badly detected)<BR>
|
|
Workaround: mplayer -abs option</LI>
|
|
<LI>samplerate problems - maybe your card doesn't support the samplerate
|
|
used in your files - try the resampling plugin (-aop)</LI>
|
|
<LI>slow machine (CPU or VGA)<BR>
|
|
try with -vo null, if it plays well, then you have slow VGA card/driver<BR>
|
|
Workaround: buy a faster card or read this documentation about how to speed up<BR>
|
|
Also try -framedrop</LI>
|
|
</UL>
|
|
|
|
Audio delay/de-sync specific to one or a few files:
|
|
<UL>
|
|
<LI>bad file<BR>
|
|
Workaround:
|
|
<UL>
|
|
<LI>-ni or -nobps option (for non-interleaved or bad files)<BR>
|
|
and/or</LI>
|
|
<LI>-mc 0 (required for files with badly interleaved VBR audio)<BR>
|
|
and/or</LI>
|
|
<LI>-delay option or +/- keys at runtime to adjust delay</LI>
|
|
</UL>
|
|
If none of these help, please upload the file, we'll check (and fix).
|
|
</LI>
|
|
<LI>your sound card doesn't support 48kHz playback<BR>
|
|
Workaround: buy a better sound card... or try to decrease fps by 10% (use
|
|
-fps 27 for a 30fps movie) or use the resampler plugin</LI>
|
|
<LI>slow machine<BR>
|
|
(if A-V is not around 0, and the last number in the status line increasing)<BR>
|
|
Workaround: -framedrop</LI>
|
|
</UL>
|
|
|
|
No sound at all:
|
|
<UL>
|
|
<LI>your file uses an unsupported audio codec<BR>
|
|
Workaround: read the documentation and help us adding support for it</LI>
|
|
</UL>
|
|
|
|
No picture at all (just plain grey/green window):
|
|
<UL>
|
|
<LI>your file uses an unsupported video codec<BR>
|
|
Workaround: read the documentation and help us adding support for it</LI>
|
|
<LI>auto-selected codec can't decode the file, try to select another using -vc
|
|
or -vfm options</LI>
|
|
<LI>you try to play DivX 3.x file with OpenDivX decoder or XviD (-vc odivx)
|
|
- install Divx4Linux and recompile player</LI>
|
|
</UL>
|
|
|
|
<P>Video-out problems:</P>
|
|
|
|
<P>First note: options -fs -vm and -zoom are just recommendations, not (yet)
|
|
supported by all drivers. So it isn't a bug if it doesn't work.
|
|
Only a few driver supports scaling/zooming, don't expect this from x11 or dga.</P>
|
|
|
|
<P>OSD/sub flickering:<BR>
|
|
- x11 driver: sorry, it can't be fixed now<BR>
|
|
- xv driver: use -double option</P>
|
|
|
|
<P>Green image using mga_vid (-vo mga / -vo xmga):<BR>
|
|
- mga_vid misdetected your card's RAM amount, reload it using mga_ram_size option</P>
|
|
|
|
|
|
|
|
<H1><A NAME="skin">Appendix D</A> - <A HREF="skin.html">MPlayer skin format</A></H1>
|
|
|
|
|
|
|
|
<H1><A NAME="flame_wars">Appendix E</A> - <A HREF="users_against_developers.html">Developer Cries</A></H1>
|
|
|
|
|
|
|
|
<H1><A NAME="patches">Appendix F</A> - <A HREF="tech/patches.txt">How to send patches</A></H1>
|
|
|
|
|
|
</BODY>
|
|
</HTML>
|