diff options
Diffstat (limited to 'DOCS/en/video.html')
-rw-r--r-- | DOCS/en/video.html | 1595 |
1 files changed, 0 insertions, 1595 deletions
diff --git a/DOCS/en/video.html b/DOCS/en/video.html deleted file mode 100644 index 50b1505255..0000000000 --- a/DOCS/en/video.html +++ /dev/null @@ -1,1595 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML> - -<HEAD> - <TITLE>Video - 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> - - -<H3><A NAME="video">2.3.1 Video output devices</A></H3> - - -<H4><A NAME="mtrr">2.3.1.1 Setting up MTRR</A></H4> - -<P>It is VERY recommended to check if the MTRR registers are set up properly, - because they can give a big performance boost.</P> - -<P>Do a '<CODE>cat /proc/mtrr</CODE>':</P> - -<P><CODE> - --($:~)-- cat /proc/mtrr<BR> - reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR> - reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1</CODE></P> - -<P>It's right, shows my Matrox G400 with 16MB memory. I did this from - XFree 4.x.x , which sets up MTRR registers automatically.</P> - -<P>If nothing worked, you have to do it manually. First, you have to find the - base address. You have 3 ways to find it:</P> - -<UL> - <LI>from X11 startup messages, for example: - <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR> - (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI> - <LI>from /proc/pci (use lspci -v command): - <P> - <CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE> - <CODE>Memory at d8000000 (32-bit, prefetchable)</CODE> - </P></LI> - <LI>from mga_vid kernel driver messages (use <CODE>dmesg</CODE>): - <P><CODE>mga_mem_base = d8000000</CODE></P></LI> -</UL> - -<P>Then let's find the memory size. This is very easy, just convert video ram - size to hexadecimal, or use this table:</P> - -<TABLE BORDER=0> - <TR><TD> </TD><TD>1 MB</TD><TD WIDTH="10%"></TD><TD>0x100000</TD></TR> - <TR><TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD></TR> - <TR><TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD></TR> - <TR><TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD></TR> - <TR><TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD></TR> - <TR><TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD></TR> -</TABLE> - - -<P>You know base address and memory size, let's setup MTRR registers! - For example, for the Matrox card above (base=0xd8000000) with 32MB - ram (size=0x2000000) just execute:</P> - - -<P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> - - -<P>Not all CPUs support MTRRs. For example older K6-2's [around 266MHz, - stepping 0] doesn't support MTRR, but stepping 12's do ('<CODE>cat - /proc/cpuinfo</CODE>' to check it').</P> - -<H4><A NAME="normal">2.3.1.2 Video outputs for traditional video cards</A></H4> - -<H4><A NAME="xv">2.3.1.2.1 Xv</A></H4> - -<P>Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines - using the XVideo extension. This is what the option '-vo xv' uses. Also, - this is driver supports adjusting brightness/contrast/hue/etc (unless you use - the old, slow DirectShow DivX codec, which supports it everywhere), see the - man page.</P> - -<P>In order to make this work, be sure to check the following:</P> - -<UL> - <LI>You have to use XFree86 4.0.2 or newer (former versions don't have - XVideo)</LI> - <LI>Your card actually supports hardware acceleration (modern cards do)</LI> - <LI>X loads the XVideo extension, it's something like this: - - <P><CODE> (II) Loading extension XVideo</CODE></P> - - <P>in /var/log/XFree86.0.log</P> - - <P>NOTE: this loads only the XFree86's extension. In a good install, this - is always loaded, and doesn't mean that the <B>card's</B> XVideo support is - loaded!</P> - </LI> - <LI>Your card has Xv support under Linux. To check, try 'xvinfo', it is the - part of the XFree86 distribution. It should display a long text, similar - to this: - <PRE> - X-Video Extension version 2.2 - screen #0 - Adaptor #0: "Savage Streams Engine" - number of ports: 1 - port base: 43 - operations supported: PutImage - supported visuals: - depth 16, visualID 0x22 - depth 16, visualID 0x23 - number of attributes: 5 - (...) - Number of image formats: 7 - id: 0x32595559 (YUY2) - guid: 59555932-0000-0010-8000-00aa00389b71 - bits per pixel: 16 - number of planes: 1 - type: YUV (packed) - id: 0x32315659 (YV12) - guid: 59563132-0000-0010-8000-00aa00389b71 - bits per pixel: 12 - number of planes: 3 - type: YUV (planar) - (...etc...) - </PRE> - <P>It must support YUY2 packed, and YV12 planar pixel formats to be - usable with MPlayer.</P> - </LI> - <LI>And finally, check if MPlayer was compiled with 'xv' support. - ./configure prints this.</LI> -</UL> - - -<H4><A NAME="xv_3dfx">2.3.1.2.1.1 3dfx cards</A></H4> - -<P>Older 3dfx drivers were known to have problems with XVideo acceleration, it - didn't support either YUY2 or YV12, and so. Verify that you have XFree86 - version 4.2.0 or greater, it works OK with YV12 and YUY2. Previous versions, - including 4.1.0, <B>crash with YV12</B>. If you experience strange effects - using -vo xv, try SDL (it has XVideo too) and see if it helps. Check the - <A HREF="#sdl">SDL section</A> for details.</P> - -<P><B>OR</B>, try the NEW -vo tdfxfb driver! See the - <A HREF="#tdfxfb">tdfxfb</A> section.</P> - - -<H4><A NAME="xv_s3">2.3.1.2.1.2 S3 cards</A></H4> - -<P>S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 - or greater (in case of image problems, try 16bpp). As for S3 Virge.. there is - xv support, but the card itself is very slow, so you better sell it.</P> - -<P><B>NOTE</B>: it's currently unclear which Savage models lack YV12 support, - and convert by driver (slow). If you suspect your card, get a newer driver, - or ask politely on the mplayer-users mailing list for an MMX/3DNow enabled - driver.</P> - - -<H4><A NAME="xv_nvidia">2.3.1.2.1.3 nVidia cards</A></H4> - -<P>nVidia isn't a very good choice under Linux (according to nVidia, this is - <A HREF="users_against_developers.html#nvidia">not true</A>).. You'll have to - use the binary closed-source nVidia driver, available at nVidia's web site. - The standard XFree86 driver doesn't support XVideo for these cards, due to - nVidia's closed sources/specifications.</P> - -<P>As far as I know the latest XFree86 driver contains XVideo support for - GeForce 2 and 3.</P> - -<P>Riva128 cards don't have XVideo support even with the nVidia driver :( - Complain to nVidia.</P> - - -<H4><A NAME="xv_ati">2.3.1.2.1.4 ATI cards</A></H4> - -<UL> - <LI>The <A HREF="http://gatos.sourceforge.net">GATOS driver</A> (which you - should use, unless you have Rage128 or Radeon) has VSYNC enabled by - default. It means that decoding speed (!) is synced to the monitor's - refresh rate. If playing seems to be slow, try disabling VSYNC somehow, or - set refresh rate to n*(fps of the movie) Hz.</LI> - <LI>Radeon VE - if you need X, use XFree86 4.2.0 or greater for this card. - No TV out support. Of course with MPlayer you can happily get - <B>accelerated</B> display, with or without <B>TV output</B>, and - no libraries or X are needed. Read <A HREF="#vidix">VIDIX</A> section.</LI> -</UL> - - -<H4><A NAME="xv_neomagic">2.3.1.2.1.5 NeoMagic cards</A></H4> - -<P>These cards can be found in many laptops. You must use XFree86 4.3.0 or - above, or else use Stefan Seyfried's - <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/">Xv-capable drivers</A>. - Just choose the one that applies to your version of XFree86.</P> - -<P>XFree86 4.3.0 includes Xv support, yet Bohdan Horst sent a small - <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neo_driver.patch">patch</A> - against the XFree86 sources that speeds up framebuffer operations (so XVideo) - up to four times. The patch has been included in XFree86 CVS and should be in - the next release after 4.3.0.</P> - -<P>To allow playback of DVD sized content change your XF86Config like this:</P> - -<P>Section "Device"<BR> - <I>[...]</I><BR> - Driver "neomagic"<BR> - <B>Option "OverlayMem" "829440"</B><BR> - <I>[...]</I><BR> - EndSection</P> - - -<H4><A NAME="xv_trident">2.3.1.2.1.6 Trident cards</A></H4> - -<P>If you want to use Xv with a Trident card, provided that it doesn't work - with 4.1.0, install XFree 4.2.0. 4.2.0 adds support for fullscreen xv - support with the Cyberblade XP card.</P> - - -<H4><A NAME="xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></H4> - -<P>If you want to use Xv with a Kyro based card (for example Hercules Prophet - 4000XT), you should download the drivers from the - <A HREF="http://www.powervr.com/">PowerVR site</A>.</P> - - -<H4><A NAME="dga">2.3.1.2.2 DGA</A></H4> - - -<H4>PREAMBLE</H4> - -<P>This section tries to explain in some words what DGA is in general and what - the DGA video output driver for MPlayer can do (and what it can't).</P> - - -<H4>WHAT IS DGA</H4> - -<P>DGA is short for Direct Graphics Access and is a means for a program to - bypass the X-Server and directly modifying the framebuffer memory. - Technically spoken this happens by mapping the framebuffer memory into - the memory range of your process. This is allowed by the kernel only - if you have superuser privileges. You can get these either by logging in - as root or by setting the SUID bit on the MPlayer executable (<B>not - recommended</B>).</P> - -<P>There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was - introduced with XFree 4.0.1.</P> - -<P>DGA1 provides only direct framebuffer access as described above. For - switching the resolution of the video signal you have to rely on the - XVidMode extension.</P> - -<P>DGA2 incorporates the features of XVidMode extension and also allows - switching the depth of the display. So you may, although basically - running a 32 bit depth X server, switch to a depth of 15 bits and vice - versa. </P> - -<P>However DGA has some drawbacks. It seems it is somewhat dependent on the - graphics chip you use and on the implementation of the X server's video - driver that controls this chip. So it does not work on every system.</P> - - -<H4>INSTALLING DGA SUPPORT FOR MPLAYER</H4> - -<P>First make sure X loads the DGA extension, see in /var/log/XFree86.0.log:</P> - -<P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> - -<P>See, XFree86 4.0.x or greater is VERY RECOMMENDED! MPlayer's DGA - driver is autodetected on ./configure, or you can force it with - --enable-dga.</P> - -<P>If the driver couldn't switch to a smaller resolution, experiment with - options -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that - the movie fits in. There is no converter right now :(</P> - -<P>Become root. DGA needs root access to be able to write directly to video - memory. If you want to run it as user, then install MPlayer SUID - root:</P> - -<P><CODE> - chown root /usr/local/bin/mplayer<BR> - chmod 750 /usr/local/bin/mplayer<BR> - chmod +s /usr/local/bin/mplayer</CODE></P> - -<P>Now it works as a simple user, too.</P> - -<BLOCKQUOTE> - <B>Warning: security risk</B><BR> - This is a <B>big</B> security risk! <B>Never</B> do this on a server or on - a computer that can be accessed by other people because they can gain root - privileges through SUID root MPlayer. -</BLOCKQUOTE> - -<P>Now use the <CODE>-vo dga</CODE> option, and there you go (hope so :))! - You should also try if the <CODE>-vo sdl:dga</CODE> option works for you. It's - much faster.</P> - - -<H4><A NAME="dga_modelines">RESOLUTION SWITCHING</A></H4> - -<P>The DGA driver allows for switching the resolution of the output signal. - This avoids the need for doing (slow) software scaling and at the same time - provides a fullscreen image. Ideally it would switch to the exact resolution - (except for honoring aspect ratio) of the video data, but the X server only - allows switching to resolutions predefined in - <CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> for - XFree 4.0.X respectively). Those are defined by so-called modelines and - depend on the capabilities of your video hardware. The X server scans this - config file on startup and disables the modelines not suitable for your - hardware. You can find out which modes survive with the X11 log file. It can - be found at: - <CODE>/var/log/XFree86.0.log</CODE>.</P> - -<P>These entries are known to work fine with a Riva128 chip, using the - <CODE>nv.o</CODE> X server driver module.</P> - -<PRE> - Section "Modes" - Identifier "Modes[0]" - Modeline "800x600" 40 800 840 968 1056 600 601 605 628 - Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 - Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 - Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan - Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 - Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan - Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan - EndSection -</PRE> - - -<H4>DGA & MPLAYER</H4> - -<P>DGA is used in two places with MPlayer: The SDL driver can be made to - make use of it (-vo sdl:dga) and within the DGA driver (-vo dga). The above - said is true for both; in the following sections I'll explain how the DGA - driver for MPlayer works.</P> - - -<H4>FEATURES</H4> - -<P>The DGA driver is invoked by specifying -vo dga at the command line. - The default behavior is to switch to a resolution matching the original - resolution of the video as close as possible. It deliberately ignores the - -vm and -fs options (enabling of video mode switching and fullscreen) - - it always tries to cover as much area of your screen as possible by switching - the video mode, thus refraining to use a single additional cycle of your CPU - to scale the image. - If you don't like the mode it chooses you may force it to choose the mode - matching closest the resolution you specify by -x and -y. - By providing the -v option, the DGA driver will print, among a lot of other - things, a list of all resolutions supported by your current XF86-Config - file. - Having DGA2 you may also force it to use a certain depth by using the -bpp - option. Valid depths are 15, 16, 24 and 32. It depends on your hardware - whether these depths are natively supported or if a (possibly slow) - conversion has to be done.</P> - -<P>If you should be lucky enough to have enough offscreen memory left to - put a whole image there, the DGA driver will use doublebuffering, which - results in much smoother movie replaying. It will tell you whether double- - buffering is enabled or not.</P> - -<P>Doublebuffering means that the next frame of your video is being drawn in - some offscreen memory while the current frame is being displayed. When the - next frame is ready, the graphics chip is just told the location in memory - of the new frame and simply fetches the data to be displayed from there. - In the meantime the other buffer in memory will be filled again with new - video data.</P> - -<P>Doublebuffering may be switched on by using the option -double and may be - disabled with -nodouble. Current default option is to disable - doublebuffering. When using the DGA driver, onscreen display (OSD) only - works with doublebuffering enabled. However, enabling doublebuffering may - result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of - CPU time!) depending on the implementation of DGA for your hardware.</P> - - -<H4>SPEED ISSUES</H4> - -<P>Generally spoken, DGA framebuffer access should be at least as fast as using - the X11 driver with the additional benefit of getting a fullscreen image. - The percentage speed values printed by MPlayer have to be interpreted - with some care, as for example, with the X11 driver they do not include the - time used by the X-Server needed for the actual drawing. Hook a terminal to a - serial line of your box and start top to see what is really going on in your - box.</P> - -<P>Generally spoken, the speedup done by using DGA against 'normal' use of X11 - highly depends on your graphics card and how well the X-Server module for it - is optimized.</P> - -<P>If you have a slow system, better use 15 or 16bit depth since they require - only half the memory bandwidth of a 32 bit display.</P> - -<P>Using a depth of 24bit is even a good idea if your card natively just - supports 32 bit depth since it transfers 25% less data compared to the 32/32 - mode.</P> - -<P>I've seen some AVI files already be replayed on a Pentium MMX 266. AMD K6-2 - CPUs might work at 400 MHZ and above.</P> - - -<H4>KNOWN BUGS</H4> - -<P>Well, according to some developers of XFree, DGA is quite a beast. They - tell you better not to use it. Its implementation is not always flawless - with every chipset driver for XFree out there.</P> - -<UL> - <LI>With XFree 4.0.3 and nv.o there is a bug resulting in strange - colors.</LI> - <LI>ATI driver requires to switch mode back more than once after finishing - using of DGA.</LI> - <LI>Some drivers simply fail to switch back to normal resolution (use - Ctrl-Alt-Keypad +, - to switch back manually).</LI> - <LI>Some drivers simply display strange colors.</LI> - <LI>Some drivers lie about the amount of memory they map into the process's - address space, thus vo_dga won't use doublebuffering (SIS?).</LI> - <LI>Some drivers seem to fail to report even a single valid mode. In this - case the DGA driver will crash telling you about a nonsense mode of - 100000x100000 or something like that.</LI> - <LI>OSD only works with doublebuffering enabled (else it flickers).</LI> -</UL> - - -<H4><A NAME="sdl">2.3.1.2.3 SDL</A></H4> - -<P>SDL (Simple Directmedia Layer) is basically a unified video/audio - interface. Programs that use it know only about SDL, and not about what video - or audio driver does SDL actually use. For example a Doom port using SDL can - run on svgalib, aalib, X, fbdev, and others, you only have to specify the - (for example) video driver to use with the SDL_VIDEODRIVER environment - variable. Well, in theory.</P> - -<P>With MPlayer, we used its X11 driver's software scaler ability for - cards/drivers that doesn't support XVideo, until we made our own (faster, - nicer) software scaler. Also we used its aalib output, but now we have ours - which is more comfortable. Its DGA mode was better than ours, until - recently. Get it now? :)</P> - -<P>It also helps with some buggy drivers/cards if the video is jerky - (not slow system problem), or audio is lagging.</P> - -<P>SDL video output supports displaying subtitles under the movie, on the (if - present) black bar.</P> - -<P><B>There are several command line options for SDL:</B></P> -<DL> - <DT><CODE>-vo sdl:name</CODE></DT> - <DD>specifies sdl video driver to use (i.e.. aalib, dga, x11)</DD> - - <DT><CODE>-ao sdl:name</CODE></DT> - <DD>specifies sdl audio driver to use (i.e. dsp, esd, arts)</DD> - - <DT><CODE>-noxv</CODE></DT> - <DD>disables XVideo hardware acceleration</DD> - - <DT><CODE>-forcexv</CODE></DT> - <DD>tries to force XVideo acceleration</DD> -</DL> - -<TABLE BORDER=0> - <TR><TD COLSPAN=4><P><B>SDL only keys:</B></P></TD></TR> - <TR><TD></TD><TD><CODE>c</CODE></TD><TD></TD><TD>cycles available fullscreen modes</TD></TR> - <TR><TD></TD><TD><CODE>n</CODE></TD><TD></TD><TD>changes back to normal mode</TD></TR> -</TABLE> - -<H4>KNOWN BUGS</H4> - -<UL> - <LI>Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa!) - It's bug in SDL, I can't change it (tested with SDL 1.2.1).</LI> - <LI>DO NOT USE SDL with GUI! It won't work as it should.</LI> -</UL> - - -<H4><A NAME="svgalib">2.3.1.2.4 SVGAlib</A></H4> - -<H4>INSTALLATION</H4> - -<P>You'll have to install svgalib and its development package in order for - MPlayer build its SVGAlib driver (autodetected, but can be forced), - and don't forget to edit /etc/vga/libvga.config to suit your card & - monitor.</P> - -<H4>NOTES</H4> - -<P>Be sure not to use the -fs option, since it toggles the usage of the software - scaler, and it's slow. If you really need it, use the <CODE>-sws 4</CODE> - option which will produce bad quality, but is somewhat faster.</P> - -<H4>EGA (4BPP) SUPPORT</H4> - -<P>SVGAlib incorporates EGAlib, and MPlayer has the possibility to - display any movie in 16 colors, thus usable in the following sets:</P> - -<UL> - <LI>EGA card with EGA monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp</LI> - <LI>EGA card with CGA monitor: 320x200x4bpp, 640x200x4bpp</LI> -</UL> - -<P>The bpp (bits per pixel) value must be set to 4 by hand:<BR> - <CODE>-bpp 4</CODE><BR> - The movie probably must be scaled down to fit in EGA mode:<BR> - <CODE>-vf scale=640:350</CODE> or<BR> - <CODE>-vf scale=320:200</CODE><BR> - For that we need fast but bad quality scaling routine:<BR> - <CODE>-sws 4</CODE><BR> - Maybe automatic aspect correction has to be shut off:<BR> - <CODE>-noaspect</CODE></P> - -<P><B>NOTE:</B> according to my experience the best image quality on EGA - screens can be achieved by decreasing the brightness a bit: <CODE>-vf - eq=-20:0</CODE>. I also needed to lower the audio samplerate on my box, - because the sound was broken on 44kHz: <CODE>-srate 22050</CODE>.</P> - -<P>You can turn on OSD and subtitles only with the <CODE>expand</CODE> filter, - see the man page for exact parameters.</P> - - -<H4><A NAME="fbdev">2.3.1.2.5 Framebuffer output (FBdev)</A></H4> - -<P>Whether to build the FBdev target is autodetected during ./configure . - Read the framebuffer documentation in the kernel sources - (Documentation/fb/*) for more information.</P> - -<P>If your card doesn't support VBE 2.0 standard (older ISA/PCI - cards, such as S3 Trio64), only VBE 1.2 (or older?): - Well, VESAfb is still available, but you'll have to load SciTech Display - Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or - whatever. And don't forget to register your UniVBE ;))</P> - -<P>The FBdev output takes some additional parameters above the others:</P> - -<DL> - <DT><CODE>-fb</CODE></DT> - <DD>specify the framebuffer device to use (/dev/fb0)</DD> - - <DT><CODE>-fbmode</CODE></DT> - <DD>mode name to use (according to /etc/fb.modes)</DD> - - <DT><CODE>-fbmodeconfig</CODE></DT> - <DD>config file of modes (default /etc/fb.modes)</DD> - - <DT><CODE>-monitor_hfreq</CODE></DT> - <DT><CODE>-monitor_vfreq</CODE></DT> - <DT><CODE>-monitor_dotclock</CODE></DT> - <DD><STRONG>Important</STRONG> values, see <CODE>example.conf</CODE></DD> -</DL> - -<P>If you want to change to a specific mode, then use</P> - -<P><CODE> mplayer -vm -fbmode (NameOfMode) filename</CODE></P> - -<UL> - <LI><B>-vm</B> alone will choose the most suitable mode from /etc/fb.modes. - Can be used together with -x and -y options too. The -flip option is - supported only if the movie's pixel format matches the video mode's pixel - format. Pay attention to the bpp value, fbdev driver tries to use the - current, or if you specify the -bpp option, then that.</LI> - <LI><B>-zoom</B> option isn't supported (use <CODE>-vf scale</CODE>). - You can't use 8bpp (or less) modes.</LI> - <LI>you possibly want to turn the cursor off: <CODE>echo -e - '\033[?25l'</CODE> or <CODE>setterm -cursor off</CODE><BR> - and the screen saver: <CODE>setterm -blank 0</CODE><BR> - To turn the cursor back on: <CODE>echo -e '\033[?25h'</CODE> - or <CODE>setterm -cursor on</CODE></LI> -</UL> - -<P>NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer, - and don't ask for it, since it's not an MPlayer limitation.</P> - - -<H4><A NAME="mga_vid">2.3.1.2.6 Matrox framebuffer (mga_vid)</A></H4> - -<P>This section is about the Matrox G200/G400/G450/G550 BES (Back-End Scaler) - support, the mga_vid kernel driver. It's actively developed by A'rpi, and - it has hardware VSYNC support with triple buffering. It works on both - framebuffer console and under X.</P> - -<P><B>NOTE</B>: This is Linux only! On non-Linux (tested on FreeBSD) systems, - you can use <A HREF="#vidix">VIDIX</A> instead!</P> - -<P><B>Installation:</B></P> -<OL> - <LI>To use it, you first have to compile mga_vid.o: - <P><CODE>cd drivers<BR> - make</CODE></P></LI> - <LI>Then create the <CODE>/dev/mga_vid</CODE> device: - <P><CODE>mknod /dev/mga_vid c 178 0</CODE></P> - <P>and load the driver with</P> - <P><CODE>insmod mga_vid.o</CODE></P></LI> - <LI>You should verify the memory size detection using the <CODE>dmesg</CODE> - command. If it's bad, use the <CODE>mga_ram_size</CODE> option - (<CODE>rmmod mga_vid</CODE> first), specify card's memory size in MB: - <P><CODE>insmod mga_vid.o mga_ram_size=16</CODE></P></LI> - <LI>To make it load/unload automatically when needed, first insert the - following line at the end of <CODE>/etc/modules.conf</CODE>: - <P><CODE>alias char-major-178 mga_vid</CODE></P> - <P>Then copy the <CODE>mga_vid.o</CODE> module to the appropriate place - under <CODE>/lib/modules/<kernel version>/somewhere</CODE>.</P> - <P>Then run</P> - <P><CODE>depmod -a</CODE></P></LI> - <LI>Now you have to (re)compile MPlayer, <CODE>configure</CODE> will - detect <CODE>/dev/mga_vid</CODE> and build the 'mga' driver. Using it from - MPlayer goes by <CODE>-vo mga</CODE> if you have matroxfb console, - or <CODE>-vo xmga</CODE> under XFree86 3.x.x or 4.x.x.</LI> -</OL> - -<P>The mga_vid driver cooperates with Xv.</P> - -<P>The <CODE>/dev/mga_vid</CODE> device file can be read (for example by - <CODE>cat /dev/mga_vid</CODE>) for some info, and written for brightness - change: <CODE>echo "brightness=120" > /dev/mga_vid</CODE></P> - - -<H4><A NAME="tdfxfb">2.3.1.2.7 3dfx YUV support (tdfxfb)</A></H4> - -<P>This driver uses the kernel's tdfx framebuffer driver to play movies with - YUV acceleration. You'll need a kernel with tdfxfb support, and recompile - with <CODE>./configure --enable-tdfxfb</CODE></P> - - -<H4><A NAME="opengl">2.3.1.2.8 OpenGL output</A></H4> - -<P>MPlayer supports displaying movies using OpenGL, but if your - platform/driver supports xv as should be the case on a PC with Linux, use xv - instead, OpenGL performance is considerably worse. If you have an X11 - implementation without xv support, OpenGL is a viable alternative.</P> - -<P>Unfortunately not all drivers support this feature. The Utah-GLX drivers - (for XFree86 3.3.6) support it for all cards. See - <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> - for details about how to install it.</P> - -<P>XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards, - 4.2.0 or later supports Rage128. See - <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> - for download and installation instructions.</P> - -<P>A hint from one of our users: the GL video output can be used to get - vsynced TV output. You'll have to set an environment variable (at least - on nVidia):</P> - -<P> - <CODE>export $__GL_SYNC_TO_VBLANK=1</CODE> -</P> - - -<H4><A NAME="aalib">2.3.1.2.9 AAlib - text mode displaying</A></H4> - -<P><B>AAlib</B> is a library for displaying graphics in text mode, using powerful - ASCII renderer. There are LOTS of programs already supporting it, like Doom, - Quake, etc. MPlayer contains a very usable driver for it. - If ./configure detects aalib installed, the aalib libvo driver will be - built.</P> - -<TABLE BORDER=0> - <TR><TD COLSPAN=4><P><B>You can use some keys in the AA Window to change rendering options:</B></P></TD></TR> - <TR><TD> </TD><TD><CODE>1</CODE></TD><TD> </TD><TD>decrease contrast</TD></TR> - <TR><TD></TD><TD><CODE>2</CODE></TD><TD></TD><TD>increase contrast</TD></TR> - <TR><TD></TD><TD><CODE>3</CODE></TD><TD></TD><TD>decrease brightness</TD></TR> - <TR><TD></TD><TD><CODE>4</CODE></TD><TD></TD><TD>increase brightness</TD></TR> - <TR><TD></TD><TD><CODE>5</CODE></TD><TD></TD><TD>switch fast rendering on/off</TD></TR> - <TR><TD></TD><TD><CODE>6</CODE></TD><TD></TD><TD>set dithering mode (none, error distribution, Floyd Steinberg)</TD></TR> - <TR><TD></TD><TD><CODE>7</CODE></TD><TD></TD><TD>invert image</TD></TR> - <TR><TD></TD><TD><CODE>a</CODE></TD><TD></TD><TD>toggles between aa and MPlayer control)</TD></TR> -</TABLE> - -<P><B>The following command line options can be used:</B></P> -<DL> - <DT><CODE>-aaosdcolor=V</CODE></DT> - <DD>change OSD color</DD> - - <DT><CODE>-aasubcolor=V</CODE></DT> - <DD>change subtitle color - <P><I>where V can be: (0/normal, 1/dark, 2/bold, 3/bold font, 4/reverse, - 5/special)</I></P></DD> -</DL> - -<P><B>AAlib itself provides a large sum of options. - Here are some important:</B></P> -<DL> - <DT><CODE>-aadriver</CODE></DT> - <DD>set recommended aa driver (X11, curses, Linux)</DD> - - <DT><CODE>-aaextended</CODE></DT> - <DD>use all 256 characters</DD> - - <DT><CODE>-aaeight</CODE></DT> - <DD>use eight bit ASCII</DD> - - <DT><CODE>-aahelp</CODE></DT> - <DD>prints out all aalib options</DD> -</DL> - -<P>NOTE: the rendering is very CPU intensive, especially when using AA-on-X - (using aalib on X), and it's least CPU intensive on standard, - non-framebuffer console. Use SVGATextMode to set up a big textmode, - then enjoy! (secondary head Hercules cards rock :)) (but imho you can use - <CODE>-vf 1bpp</CODE> option to get graphics on hgafb:)</P> - -<P>Use the <CODE>-framedrop</CODE> option if your computer isn't fast enough to - render all frames!</P> - -<P>Playing on terminal you'll get better speed and quality using the Linux - driver, not curses (<CODE>-aadriver linux</CODE>). But therefore you need write access on - <CODE>/dev/vcsa<terminal></CODE>. That isn't autodetected by aalib, but vo_aa tries - to find the best mode. See - <A HREF="http://aa-project.sourceforge.net/tune/">http://aa-project.sourceforge.net/tune/</A> - for further tuning issues.</P> - - -<H4><A NAME="vesa">2.3.1.2.10 VESA - output to VESA BIOS</A></H4> - -<P>This driver was designed and introduced as a <B>generic driver</B> for any - video card which has VESA VBE 2.0+ compatible BIOS. Another advantage of this - driver is that it tries to force TV output on.<BR> - <B>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</B> (Page - 70) says:</P> - -<BLOCKQUOTE> - <B>Dual-Controller Designs</B><BR> - VBE 3.0 supports the dual-controller design by assuming that since both - controllers are typically provided by the same OEM, under control of a - single BIOS ROM on the same graphics card, it is possible to hide the fact - that two controllers are indeed present from the application. This has the - limitation of preventing simultaneous use of the independent controllers, - but allows applications released before VBE 3.0 to operate normally. The - VBE Function 00h (Return Controller Information) returns the combined - information of both controllers, including the combined list of available - modes. When the application selects a mode, the appropriate controller is - activated. Each of the remaining VBE functions then operates on the active - controller. -</BLOCKQUOTE> - -<P>So you have chances to get working TV-out by using this driver.<BR> - (I guess that TV-out frequently is standalone head or standalone output - at least.)</P> - -<H4>ADVANTAGES</H4> - -<UL> - <LI>You have the possibility to watch movies <B>even if Linux doesn't know</B> - your video hardware.</LI> - <LI>You don't need to have installed any graphics' related things on your Linux - (like X11 (aka XFree86), fbdev and so on). This driver can be run from - <B>text-mode</B>.</LI> - <LI>You have chances to get <B>working TV-out</B>. (It's known at least for - ATI's cards).</LI> - <LI>This driver calls <B>int 10h</B> handler thus it's not an emulator - it - calls <B>real</B> things of <B>real</B> BIOS in <B>real</B>-mode (actually - in vm86 mode).</LI> - <LI>You can use VIDIX with it, thus getting accelerated video display - <B>AND</B> TV output at the same time! (recommended for ATI cards)</LI> - <LI>If you have VESA VBE 3.0+, and you had specified <CODE>monitor_hfreq</CODE>, - <CODE>monitor_vfreq</CODE>, <CODE>monitor_dotclock</CODE> somewhere (config - file, or commandline) you will get the highest possible refresh rate. (Using - General Timing Formula). To enable this feature you have to specify - <B>all</B> your monitor options.</LI> -</UL> - -<H4>DISADVANTAGES</H4> - -<UL> - <LI>It works only on <B>x86 systems</B>.</LI> - <LI>It can be used only by <B>root</B>.</LI> - <LI>Currently it's available only for <B>Linux</B>.</LI> -</UL> - -<P>Don't use this driver with <B>GCC 2.96</B>! It won't work!</P> - -<H4>COMMAND LINE OPTIONS AVAILABLE FOR VESA</H4> -<DL> - <DT><CODE>-vo vesa:opts</CODE></DT> - <DD>currently recognized: <B>dga</B> to force dga mode and <B>nodga</B> to - disable dga mode. In dga mode you can enable double buffering via the - <CODE>-double</CODE> option. Note: you may omit these parameters to enable - <B>autodetection</B> of dga mode.</DD> -</DL> - -<H4>KNOWN PROBLEMS AND WORKAROUNDS</H4> - -<UL> - <LI>If you have installed <B>NLS</B> font on your Linux box and run VESA - driver from text-mode then after terminating MPlayer you will have - <B>ROM font</B> loaded instead of national. You can load national font again - by using <B><I>setsysfont</I></B> utility from the Mandrake distribution - for example.<BR> - (<B>Hint:</B> The same utility is used for the localization of fbdev).</LI> - <LI>Some <B>Linux graphics drivers</B> don't update active <B>BIOS mode</B> in - DOS memory. So if you have such problem - always use VESA driver only from - <B>text-mode</B>. Otherwise text-mode (#03) will be activated anyway and - you will need restart your computer.</LI> - <LI>Often after terminating VESA driver you get <B>black screen</B>. To return - your screen to original state - simply switch to other console (by pressing - <B>Alt-Fx</B>) then switch to your previous console by the same way.</LI> - <LI>To get <B>working TV-out</B> you need have plugged TV-connector in before - booting your PC since video BIOS initializes itself only once during POST - procedure.</LI> -</UL> - - -<H4><A NAME="x11">2.3.1.2.11 X11</A></H4> - -<P>Avoid if possible. Outputs to X11 (uses shared memory extension), with no - hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but still - slow) software scaling, use the options <CODE>-fs -zoom</CODE>. Most cards - have hardware scaling support, use the <CODE>-vo xv</CODE> output for them, - or <CODE>-vo xmga</CODE> for Matroxes.</P> - -<P>The problem is that most cards' driver doesn't support hardware acceleration - on the second head/TV. In those cases, you see green/blue colored window - instead of the movie. This is where this driver comes in handy, but you need - powerful CPU to use software scaling. Don't use the SDL driver's software - output+scaler, it has worse image quality!</P> - -<P>Software scaling is very slow, you better try changing video modes instead. - It's very simple. See the <A HREF="#dga_modelines">DGA section's modelines</A>, - and insert them into your XF86Config.</P> - -<UL> - <LI>If you have XFree86 4.x.x - use the <CODE>-vm</CODE> option. It will - change to a resolution your movie fits in. If it doesn't:</LI> - <LI>With XFree86 3.x.x - you have to cycle through available resolutions - with the <B>CTRL-ALT-plus</B> and <B>minus</B> keys.</LI> -</UL> - -<P>If you can't find the modes you inserted, browse XFree86's output. Some - drivers can't use low pixelclocks that are needed for low resolution - video modes.</P> - - -<H4><A NAME="vidix">2.3.1.2.12 VIDIX</A></H4> - -<H4>PREAMBLE</H4> - -<P>VIDIX is the abbreviation for <B>VID</B>eo <B>I</B>nterface for *ni<B>X</B>. - It was designed and introduced as an interface for fast user-space drivers - providing such video performance as mga_vid does for Matrox cards. It's also - very portable.</P> - -<P>This interface was designed as an attempt to fit existing video acceleration - interfaces (known as mga_vid, rage128_vid, radeon_vid, pm3_vid) into a fixed scheme. It - provides highlevel interface to chips which are known as BES (BackEnd - scalers) or OV (Video Overlays). It doesn't provide lowlevel interface to - things which are known as graphics servers. (I don't want to compete with X11 - team in graphics mode switching). I.e. main goal of this interface is to - maximize the speed of video playback.</P> - -<H4>USAGE</H4> - -<UL> - <LI>You can use standalone video output driver: <CODE>-vo xvidix</CODE><BR> - This driver was developed as X11's front end to VIDIX technology. It - requires X server and can work only under X server. Note that, as it - directly accesses the hardware and circumvents the X driver, pixmaps - cached in the graphics card's memory may be corrupted. You can prevent - this by limiting the amount of video memory used by X with the XF86Config - option "VideoRam" in the device section. You should set this to the amount - of memory installed on your card minus 4MB. If you have less than 8MB of - video ram, you can use the option "XaaNoPixmapCache" in the screen section - instead.</LI> - <LI>You can use VIDIX subdevice which was applied to several video output - drivers, such as:<BR> - <CODE>-vo vesa:vidix</CODE> (<B>Linux only</B>) and <CODE>-vo fbdev:vidix</CODE></LI> -</UL> - -Indeed it doesn't matter which video output driver is used with <B>VIDIX</B>. - -<H4>REQUIREMENTS</H4> - -<UL> - <LI>video card should be in graphics mode (I write <B>should</B> simply - because I tested it in text mode - it works but has awful output ;) Use - AAlib for that).<BR> - <I>Note: Everyone can try this trick by commenting out mode switching in - vo_vesa driver.</I></LI> - <LI>MPlayer's video output driver should know active video mode and be - able to tell to VIDIX subdevice some video characteristics of server.</LI> -</UL> - -<H4>USAGE METHODS</H4> - -<P>When VIDIX is used as <B>subdevice</B> (<CODE>-vo vesa:vidix</CODE>) then - video mode configuration is performed by video output device - (<B>vo_server</B> in short). Therefore you can pass into command line of - MPlayer the same keys as for vo_server. In addition it understands - <CODE>-double</CODE> key as globally visible parameter. (I recommend using - this key with VIDIX at least for ATI cards).<BR> - As for <CODE>-vo xvidix</CODE>: currently it recognizes the following - options: <CODE>-fs -zoom -x -y -double</CODE>.</P> - -<P>Also you can specify VIDIX's driver directly as third subargument in command - line:<BR> - <BR> - <code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double - file.avi</code><BR> - or<BR> - <code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp - 32 file.avi</code><BR> - <BR> - But it's dangerous, and you shouldn't do that. In this case given driver will - be forced and result is unpredictable (it may <B>freeze</B> your - computer). You should do that ONLY if you are absolutely sure it will work, - and MPlayer doesn't do it automatically. Please tell about it to the - developers. The Right Way is to use VIDIX without arguments to enable driver - autodetection.</P> - -<P>VIDIX is a new technology and it's extremely possible that on your system - it won't work. In this case the only solution for you is porting it (mainly - libdha). But there is hope that it will work on systems where X11 does.</P> - -<P>Since VIDIX requires direct hardware access you can either run it as root or - set the SUID bit on the MPlayer binary (<B>Warning: This is a security - risk!</B>). Alternatively, you can use a special kernel module, like this:</P> - -<OL> - <LI>Download the - <A HREF="http://www.arava.co.il/matan/svgalib/">development version</A> - of svgalib (for example 1.9.17),<BR> - <B>OR</B><BR> - download a version made by Alex especially for usage with - MPlayer (it doesn't need the svgalib source to compile) from - <A HREF="http://www.mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2"> - here</A>.</LI> - <LI>Compile the module in the <CODE>svgalib_helper</CODE> directory (it can - be found inside the <CODE>svgalib-1.9.17/kernel/</CODE> directory if you've - downloaded the source from the svgalib site) and insmod it.</LI> - <LI>Move the <CODE>svgalib_helper</CODE> directory to - <CODE>mplayer/main/libdha/svgalib_helper</CODE>.</LI> - <LI>Required if you download the source from the svgalib site: Remove the - comment before the CFLAGS line containing "svgalib_helper" string from the - <CODE>libdha/Makefile</CODE>.</LI> - <LI>Recompile and install libdha.</LI> -</OL> - - -<H4><A NAME="vidix_ati">2.3.1.2.12.1 ATI cards</A></H4> - -<P>Currently most ATI cards are supported natively, from Mach64 to the newest - Radeons.</P> - -<P>There are two compiled binaries: <CODE>radeon_vid</CODE> for Radeon and - <CODE>rage128_vid</CODE> for Rage 128 cards. You may force one or let the - VIDIX system autoprobe all available drivers.</P> - - -<H4><A NAME="vidix_matrox">2.3.1.2.12.2 Matrox cards</A></H4> - -<P>Matrox G200,G400,G450 and G550 have been reported to work.</P> - -<P>The driver supports video equalizers and should be nearly as fast as the - <A HREF="#mga_vid">Matrox framebuffer</A>.</P> - - -<H4><A NAME="vidix_trident">2.3.1.2.12.3 Trident cards</A></H4> - -<P>There is a driver available for the Trident Cyberblade/i1 chipset, which - can be found on VIA Epia motherboards.</P> - -<P>The driver was written and is maintained by Alastair M. Robinson, who offers - the very latest driver versions for download from his - <A HREF="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">homepage</A>. - The drivers are added to MPlayer with only a short delay, so CVS should always - be up to date.</P> - - -<H4><A NAME="vidix_3dlabs">2.3.1.2.12.4 3DLabs cards</A></H4> - -<P>Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, - no one has tested it, so reports are welcome.</P> - - -<H4><A NAME="vidix_nvidia">2.3.1.2.12.5 nVidia cards</A></H4> - -<P>There's a relatively new nvidia driver out there, it's known to work on Riva - 128, TNT and GeForce2 chipsets, also others have been reported working.</P> - -<P>It's recommended to use the binary nvidia drivers for X before using this - vidix driver, because some of the registers haven't been discovered which - need to be initialised, so it will probably fail with the opensource Xfree86 - nv.o driver.</P> - -<P>Reports awaited!</P> - -<H4><A NAME="vidix_sis">2.3.1.2.12.6 SiS cards</A></H4> - -<P>This is a very experimental code too, as the nvidia_vid.</P> - -<P>It's been tested on SiS 650/651/740 (the most common chipsets used in the -SiS versions of the "Shuttle XPC" barebones boxes out there)</P> - -<P>Reports awaited!</P> - - -<H4><A NAME="directfb">2.3.1.2.13 DirectFB</A></H4> - -<P><I>"DirectFB is a graphics library which was designed with embedded systems in - mind. It offers maximum hardware accelerated performance at a minimum of - resource usage and overhead."</I> - quoted from - <A HREF="http://www.directfb.org">http://www.directfb.org</A>.</P> - -<P>I'll exclude DirectFB features from this section.</P> - -<P>Though MPlayer is not supported as a "video provider" in DirectFB, this - output driver will enable video playback through DirectFB. It will - - of course - be accelerated, on my Matrox G400 DirectFB's speed was the - same as XVideo.</P> - -<P>Always try to use the newest version of DirectFB. You can use DirectFB - options on the command line, using the <CODE>-dfbopts</CODE> option. - Layer selection can be done by the subdevice method, e.g.: <CODE>-vo - directfb:2</CODE> (layer -1 is default: autodetect)</P> - - -<H4><A NAME="dfbmga">2.3.1.2.14 DirectFB/Matrox (dfbmga)</A></H4> - -<P>Please read the <A HREF="#directfb">main DirectFB section</A> for general - informations.</P> - -<P>This video output driver will enable CRTC2 (on the second head) on the - Matrox G400/G450/G550 cards, displaying video <B>independently</B> of the - first head.</P> - -<P>Instructions on how to make it work can be found in the - <A HREF="../tech/directfb.txt">tech section</A> - or directly on Ville Syrjala's - <A HREF="http://www.sci.fi/~syrjala/directfb/Matrox_TV-out_README.txt">home page</A>.</P> - -<P>Note: the first DirectFB version with which we could kick this working was - 0.9.17 (it's buggy, needs that <CODE>surfacemanager</CODE> patch from - the URL above). Anyway, porting of the CRTC2 code to <B>mga_vid</B> is - underway.</P> - - -<H4><A NAME="mpegdec">2.3.1.3 MPEG decoders</A></H4> - -<H4><A NAME="dvb">2.3.1.3.1 DVB output and input</A></H4> - -<P>MPlayer supports cards with the Siemens DVB chipset from vendors like - Siemens, Technotrend, Galaxis or Hauppauge. The latest DVB drivers are - available from the <A HREF="http://www.linuxtv.org">Linux TV site</A>. If you - want to do software transcoding you should have at least a 1GHz CPU.</P> - -<P>Configure should detect your DVB card. If it did not, force detection with</P> - -<PRE> - ./configure --enable-dvb -</PRE> - -<P>If you have ost headers at a non-standard path, set the path with</P> - -<PRE> - ./configure --with-extraincdir=<DVB source directory>/ost/include -</PRE> - -<P>Then compile and install as usual.</P> - -<H4>USAGE</H4> - -<P>Hardware decoding (playing standard MPEG1/2 files) can be done with this - command:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes file.mpg|vob -</PRE> - -<P>Software decoding or transcoding different formats to MPEG1 can be achieved - using a command like this:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes yourfile.ext - mplayer -ao mpegpes -vo mpegpes -vf expand yourfile.ext -</PRE> - -<P>Note that DVB cards only support heights 288 and 576 for PAL or 240 and 480 - for NTSC. You <B>must</B> rescale for other heights by adding - <CODE>scale=width:height</CODE> with the width and height you want to the - <CODE>-vf</CODE> option. DVB cards accept various widths, like 720, 704, - 640, 512, 480, 352 etc and do hardware scaling in horizontal direction, so - you do not need to scale horizontally in most cases. For a 512x384 (aspect - 4:3) DivX try:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vf scale=512:576 -</PRE> - -<P>If you have a widescreen movie and you do not want to scale it to full height, - you can use the <CODE>expand=w:h</CODE> filter to add black bands. To view a - 640x384 DivX, try:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 file.avi -</PRE> - -<P>If your CPU is too slow for a full size 720x576 DivX, try downscaling:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 file.avi -</PRE> - -<P>If speed does not improve, try vertical downscaling, too:</P> - -<PRE> - mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 file.avi -</PRE> - -<P>For OSD and subtitles use the OSD feature of the expand filter. So, instead - of <CODE>expand=w:h</CODE> or <CODE>expand=w:h:x:y</CODE>, use - <CODE>expand=w:h:x:y:1</CODE> (the 5th parameter <CODE>:1</CODE> at the end - will enable OSD rendering). You may want to move the image up a bit to get a - bigger black zone for subtitles. You may also want to move subtitles up, if - they are outside your TV screen, use the <CODE>-subpos <0-100></CODE> option - to adjust this (<CODE>-subpos 80</CODE> is a good choice).</P> - -<P>In order to play non-25fps movies on a PAL TV or with a slow CPU, add the - <CODE>-framedrop</CODE> option.</P> - -<P>To keep the aspect ratio of DivX files and get the optimal scaling parameters - (hardware horizontal scaling and software vertical scaling while keeping the - right aspect ratio), use the new dvbscale filter:</P> - -<PRE> -for a 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1 -for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1 -</PRE> - -<H4>Using your DVB card for watching Digital TV (DVB input module)</H4> - -<P>First you need to pass the <CODE>dvb_shutdown_timeout=0</CODE> parameter - to the kernel module <CODE>dvb-core</CODE>, or MPlayer will die after 10 - seconds.</P> - -<P>You should also have the programs <CODE>scan</CODE> and - <CODE>szap/tzap/czap</CODE> installed; they are all included in the drivers - package.</P> - -<P>Verify that your drivers are working properly with a program such as - <A HREF="http://www.sf.net/projects/dvbtools/"><CODE>dvbstream</CODE></A> - (that is the base of the DVB input module).</P> - -<P>Now you should compile a <CODE>~/.mplayer/channels.conf</CODE> file, - with the syntax accepted by <CODE>szap/tzap/czap</CODE>, or have - <CODE>scan</CODE> compile it for you.</P> - -<P>Make sure that you have have <B>only</B> Free to Air channels in your - <CODE>channels.conf</CODE> file, or MPlayer will hang on the others.</P> - -<P>To show the first of the channels present in your list, run</P> - -<PRE> - mplayer dvb:// -</PRE> - -<P>If you want to watch a specific channel, such as <CODE>R1</CODE>, run</P> - -<PRE> - mplayer dvb://R1 -</PRE> - -<P>To change channels press the <CODE>'h'</CODE> (next) and <CODE>'k'</CODE> - (previous) keys, or use the <CODE>OSD</CODE> menu (requires a working - <A HREF="documentation.html#subtitles_osd">OSD subsystem</a>).</P> - -<P>If your <CODE>~/.mplayer/menu.conf</CODE> contains a <B><dvbsel></b> - entry, such as the one in the example file <CODE>etc/dvb-menu.conf</CODE> - (that you can use to overwrite <CODE>~/.mplayer/menu.conf</CODE>), the - main menu will show a sub-menu entry that will permit you to choose - one of the channels present in your <CODE>channels.conf</CODE>.</P> - -<P>If you want to save a program to disk you can use</P> - -<PRE> - mplayer -dumpfile r1.ts -dumpstream dvb://R1 -</PRE> - -<P>If you want to record it in a different format (re-encoding it) instead you - can run a command such as</P> - -<PRE> - mencoder -o r1.avi -ovc xvid -xvidenctopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -vf ci dvb://R1 -</PRE> - -<P>Read the man page for a list of options that you can pass to the DVB - input module.</P> - - -<H4>FUTURE</H4> - -<P>If you have questions or want to hear feature announcements and take part in - discussions on this subject, join our - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</A> - mailing list. Please remember that the list language is English.</P> - -<P>In the future you may expect the ability to display OSD and subtitles using - the native OSD feature of DVB cards, as well as more fluent playback of - non-25fps movies and realtime transcoding between MPEG2 and MPEG4 (partial - decompression).</P> - - -<H4><A NAME="dxr2">2.3.1.3.2 DXR2</A></H4> - -<P>MPlayer supports hardware accelerated playback with the Creative DXR2 - card.</P> - -<P>First of all you will need properly installed DXR2 drivers. You can find - the drivers and installation instructions at the - <A HREF="http://dxr2.sourceforge.net/">DXR2 Resource Center</A> site.</P> - -<H4>USAGE</H4> -<DL> - <DT><CODE>-vo dxr2</CODE></DT> - <DD>enable TV output</DD> - <DT><CODE>-vo dxr2:x11</CODE> or <CODE>-vo dxr2:xv</CODE></DT> - <DD>enable Overlay output in X11</DD> - <DT><CODE>-dxr2 <option1:option2:...></CODE></DT> - <DD>This option is used to control the DXR2 driver.</DD> -</DL> - -<P>The overlay chipset used on the DXR2 is of pretty bad quality but the - default settings should work for everybody. The OSD may be usable with the - overlay (not on TV) by drawing it in the colorkey. With the default colorkey - settings you may get variable results, usually you will see the colorkey - around the characters or some other funny effect. But if you properly adjust - the colorkey settings you should be able to get acceptable results.</P> - -<P>Please see the manpage for available options.</P> - - -<H4><A NAME="dxr3">2.3.1.3.3 DXR3/Hollywood+</A></H4> - -<P>MPlayer supports hardware accelerated playback with the Creative DXR3 - and Sigma Designs Hollywood Plus cards. These cards both use the em8300 MPEG - decoder chip from Sigma Designs.</P> - -<P>First of all you will need properly installed DXR3/H+ drivers, version - 0.12.0 or later. You can find the drivers and installation instructions at - the <A HREF="http://dxr3.sourceforge.net/">DXR3 & Hollywood Plus for - Linux</A> site. Configure should detect your card automatically, compilation - should go without problems.</P> - -<H4>USAGE</H4> -<DL> - <DT><CODE>-vo dxr3:prebuf:sync:norm=x:<device></CODE></DT> - <DD><CODE>overlay</CODE> activates the overlay instead of TVOut. It requires - that you have a properly configured overlay setup to work right. The easiest - way to configure the overlay is to first run autocal. Then run mplayer with - dxr3 output and without overlay turned on, run dxr3view. In dxr3view you can - tweak the overlay settings and see the effects in realtime, perhaps this - feature will be supported by the MPlayer GUI in the future. When overlay is - properly set up you will no longer need to use dxr3view.<BR> - <CODE>prebuf</CODE> turns on prebuffering. Prebuffering is a feature - of the em8300 chip that enables it to hold more than one frame of video at - a time. This means that when you are running with prebuffering - MPlayer will try to keep the video buffer filled with data at all - times. If you are on a slow machine MPlayer will probably use close - to, or precisely 100% of CPU. This is especially common if you play pure MPEG - streams (like DVDs, SVCDs a.s.o.) since MPlayer will not have to - reencode it to MPEG it will fill the buffer very fast.<BR> - With prebuffering video playback is <B>much</B> less sensitive to other - programs hogging the CPU, it will not drop frames unless applications hog - the CPU for a long time.<BR> - When running without prebuffering the em8300 is much more sensitive to CPU - load, so it is highly suggested that you turn on MPlayer's - <CODE>-framedrop</CODE> option to avoid further loss of sync.<BR> - <CODE>sync</CODE> will turn on the new sync-engine. This is currently an - experimental feature. With the sync feature turned on the em8300's internal - clock will be monitored at all times, if it starts to deviate from MPlayer's - clock it will be reset causing the em8300 to drop any frames that are lagging - behind.<BR> - <CODE>norm=x</CODE> will set the TV norm of the DXR3 card without the need - for external tools like em8300setup. Valid norms are 5 = NTSC, 4 = PAL-60, - 3 = PAL. Special norms are 2 (auto-adjust using PAL/PAL-60) and 1 - (auto-adjust using PAL/NTSC) because they decide which norm to use by - looking at the frame rate of the movie. norm = 0 (default) does not - change the current norm.<BR> - <CODE><device></CODE> = device number to use if you have more than one - em8300 card. - <BR> - Any of these options may be left out.<BR> - <CODE>:prebuf:sync</CODE> seems to work great when playing DivX movies. - People have reported problems using the <CODE>prebuf</CODE> option when playing - MPEG1/2 files. You might want to try running without any options first, if you - have sync problems, or DVD subtitle problems, give <CODE>:sync</CODE> a - try.</DD> - - <DT><CODE>-ao oss:/dev/em8300_ma-X</CODE></DT> - <DD>For audio output, where <CODE>X</CODE> is the device number - (0 if one card).</DD> - - <DT><CODE>-aop list=resample:fout=xxxxx</CODE></DT> - <DD>The em8300 cannot play back samplerates lower than 44100Hz. If the sample - rate is below 44100Hz select either 44100Hz or 48000Hz depending on which - one matches closest. I.e. if the movie uses 22050Hz use 44100Hz as - 44100 / 2 = 22050, if it is 24000Hz use 48000Hz as 48000 / 2 = 24000 and so - on. This does not work with digital audio output (<CODE>-ac hwac3</CODE>).</DD> - - <DT><CODE>-vf lavc/fame</CODE></DT> - <DD><B>(AUTO-INSERTED)</B> To watch non-MPEG content on the em8300 (i.e. DivX or RealVideo) you have - to specify an MPEG1 video filter such as libavcodec (lavc) or libfame - (fame). At the moment lavc is both faster and gives better image quality, it - is suggested that you use that unless you have problems with it. See the man - page for further info about <CODE>-vf lavc/fame</CODE>.<BR> - Using lavc is highly recommended. Currently there is no way of setting the - fps of the em8300 which means that it is fixed to 29.97fps. Because of this - it is highly recommended that you use <CODE>-vf lavc=<quality>:25</CODE>, - especially if you are using prebuffering. Then why 25 and not 29.97? Well, - the thing is that when you use 29.97 the picture becomes a bit jumpy. The - reason for this is unknown to us. If you set it to somewhere between 25 and - 27 the picture becomes stable. For now all we can do is accept this for a - fact.</DD> - - <DT><CODE>-vf expand=-1:-1:-1:-1:1</CODE></DT> - <DD>Although the DXR3 driver can put some OSD onto the MPEG1/2/4 video, - it has much lower quality than MPlayer's traditional OSD, and has several - refresh problems as well. The command line above will firstly convert the - input video to MPEG4 (this is mandatory, sorry), then apply an expand - filter which won't expand anything (-1: default), but apply the normal OSD - onto the picture (that's what the "1" at the end does).</DD> - - <DT><CODE>-ac hwac3</CODE></DT> - <DD>The em8300 supports playing back AC3 audio (surround sound) through the - digital audio output of the card. See the <CODE>-ao oss</CODE> option - above, it must be used to specify the DXR3's output instead of - a soundcard.</DD> -</DL> - - -<H4><A NAME="other">2.3.1.4 Other visualization hardware</A></H4> - -<H4><A NAME="zr">2.3.1.4.1 Zr</A></H4> - -<P>This is a display-driver (<CODE>-vo zr</CODE>) for a number of MJPEG - capture/playback cards (tested for DC10+ and Buz, and it should work for the - LML33 and the original DC10). The driver works by encoding the frame to jpeg - and then sending it to the card. For the jpeg encoding <B>libavcodec</B> is - used, and required. With the special <I>cinerama</I> mode, you can watch - movies in true wide screen provided that you have two beamers and two - MJPEG cards. Depending on resolution and quality settings, this driver - may require a lot of CPU power, remember to specify <CODE>-framedrop</CODE> - if your machine is too slow. Note: My AMD K6-2 350MHz is (with <CODE> - -framedrop</CODE>) quite adequate for watching VCD sized material and - downscaled movies.</P> - -<P>This driver talks to the kernel driver available at - <A HREF="http://mjpeg.sourceforge.net">http://mjpeg.sourceforge.net</A>, so - you must get it working first. The presence of an MJPEG card is autodetected - by the configure script, if autodetection fails, force detection with</P> - -<PRE> - ./configure --enable-zr -</PRE> - -<P>The output can be controlled by several options, a long description of the - options can be found in the man page, a short list of options can be - viewed by running</P> - -<PRE> - mplayer -zrhelp -</PRE> - -<P>Things like scaling and the OSD (on screen display) are not handled by - this driver but can be done using the video filters. For example, - suppose that you have a movie with a resolution of <CODE>512x272</CODE> and - you want to view it fullscreen on your DC10+. There are three main - possibilities, you may scale the movie to a width of <CODE>768</CODE>, - <CODE>384</CODE> or <CODE>192</CODE>. For performance and quality reasons, - I would choose to scale the movie to <CODE>384x204</CODE> using the fast - bilinear software scaler. The commandline is</P> - -<PRE> - mplayer -vo zr -sws 0 -vf scale=384:204 movie.avi -</PRE> - -<P>Cropping can be done by the <CODE>crop</CODE> filter and by - this driver itself. Suppose that a movie is too wide for display on your - Buz and that you want to use <CODE>-zrcrop</CODE> to make the movie less - wide, then you would issue the following command</P> - -<PRE> - mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi -</PRE> - -<P>if you want to use the <CODE>crop</CODE> filter, you would do</P> - -<PRE> - mplayer -vo zr -vf crop=720:320:80:0 benhur.avi -</PRE> - -<P>Extra occurrences of <CODE>-zrcrop</CODE> invoke <I>cinerama</I> mode, i.e. - you can distribute the movie over several TV's or beamers to create a larger - screen. Suppose you have two beamers. The left one is connected to your Buz - at <CODE>/dev/video1</CODE> and the right one is connected to your DC10+ at - <CODE>/dev/video0</CODE>. The movie has a resolution of <CODE>704x288</CODE>. - Suppose also that you want the right beamer in black and white and that - the left beamer should have JPEG frames at quality <CODE>10</CODE>, - then you would issue the following command</P> - -<PRE> - mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ - -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi -</PRE> - -<P>You see that the options appearing before the second <CODE>-zrcrop</CODE> - only apply to the DC10+ and that the options after the second - <CODE>-zrcrop</CODE> apply to the Buz. The maximum number of MJPEG cards - participating in <I>cinerama</I> is four, so you can build a <CODE>2x2</CODE> - vidiwall.</P> - -<P>Finally an important remark: Do not start or stop XawTV on the playback - device during playback, it will crash your computer. It is, however, fine to - <B>FIRST</B> start XawTV, <B>THEN</B> start MPlayer, wait for - MPlayer to finish and <B>THEN</B> stop XawTV.</P> - - -<H4><A NAME="blinken">2.3.1.4.2 Blinkenlights</A></H4> - -<P>This driver is capable of playback using the Blinkenlights UDP protocol. - If you don't know what <A HREF="http://www.blinkenlights.de/">Blinkenlights</A> - is, you don't need this driver.</P> - - -<H4><A NAME="tv-out">2.3.1.5 TV-out support</A></H4> - - -<H4><A NAME="tv-out_matrox">2.3.1.5.1 Matrox G400 cards</A></H4> - -<P>Under Linux you have 2 methods to get G400 TV out working:</P> - -<P><B>IMPORTANT:</B> for Matrox G450/G550 TV-out instructions, please see the - next section!</P> - -<UL> - <LI><B>XFree86</B>: using the driver and the HAL module, available from - <A HREF="http://www.matrox.com">Matrox's site</A>. This will give you X on - the TV.<BR> <B>This method doesn't give you accelerated playback</B> as - under Windoze! The second head has only YUV framebuffer, the <I>BES</I> - (Back End Scaler, the YUV scaler on G200/G400/G450/G550 cards) doesn't work - on it! The Windows driver somehow works around this, probably by using the - 3D engine to zoom, and the YUV framebuffer to display the zoomed - image. If you really want to use X, use the <CODE>-vo x11 -fs -zoom</CODE> - options, but it will be <B>SLOW</B>, and has <B>Macrovision</B> copy protection - enabled (you can "workaround" Macrovision using - <A HREF="http://avifile.sourceforge.net/mgamacro.pl">this</A> perl - script.</LI> - <LI><B>Framebuffer</B>: using the <B>matroxfb modules</B> in the 2.4 kernels. - 2.2 kernels don't have the TVout feature in them, thus unusable for this. - You have to enable ALL matroxfb-specific feature during compilation (except - MultiHead), and compile them into <B>modules</B>! You'll also need I2C - enabled. - <OL> - <LI> - Enter <CODE>TVout/matroxset</CODE> and type <CODE>make</CODE>. Install - <CODE>matroxset</CODE> into somewhere in your PATH.</LI> - <LI> - If you don't have <CODE>fbset</CODE> installed, enter - <CODE>TVout/fbset</CODE> and type <CODE>make</CODE>. Install - <CODE>fbset</CODE> into somewhere in your PATH.</LI> - <LI> - If you don't have <CODE>con2fb</CODE> installed, enter - <CODE>TVout/con2fb</CODE> and type <CODE>make</CODE>. Install - <CODE>con2fb</CODE> into somewhere in your PATH.</LI> - <LI> - Then enter into the <CODE>TVout/</CODE> directory in the MPlayer - source, and execute <CODE>./modules</CODE> as root. Your text-mode console - will enter into framebuffer mode (no way back!).</LI> - <LI>Next, EDIT and run the <CODE>./matroxtv</CODE> script. This will present you - to a very simple menu. Press <B>2</B> and <B>ENTER</B>. Now you should - have the same picture on your monitor, and TV. If - the TV (PAL by default) picture has some weird stripes on it, the script wasn't able to - set the resolution correctly (to 640x512 by default). Try other - resolutions from the menu and/or experiment with fbset.</LI> - </OL> - - <P>Yoh. Next task is to make the cursor on tty1 (or whatever) to disappear, - and turn off screen blanking. Execute the following commands:</P> - - <P><CODE>echo -e '\033[?25l'</CODE> or <CODE>setterm -cursor off<BR> - setterm -blank 0</CODE></P> - - <P>You possibly want to put the above into a script, and also clear - the screen.. To turn the cursor back:<BR><CODE>echo -e '\033[?25h'</CODE> - or <CODE>setterm -cursor on</CODE></P> - - <P>Yeah kewl. Start movie playing with <CODE>mplayer -vo mga -fs -screenw 640 - -screenh 512 <filename></CODE><BR> - (if you use X, now change to matroxfb with for example CTRL-ALT-F1!)<BR> - Change 640x512 if you set the resolution to other.<BR> - <B>Enjoy the ultra-fast ultra-featured Matrox TV output (better than Xv)!</B></P> - </LI> -</UL> - -<H4>Building a Matrox TV-out cable</H4> - -<P>No one takes any responsibility, nor guarantee for any damage caused by this - documentation.</P> - -<P><B>Cable for G400</B>: The CRTC2 connector's fourth pin is the composite video signal. The ground - are the sixth, seventh and eighth pins. (info contributed from Balázs - Rácz)</P> - -<P><B>Cable for G450</B>: The CRTC2 connector's first pin is the composite video - signal. The ground are the fifth, sixth, seventh, and fifteenth - (5, 6, 7, 15) pins. (info contributed from Balázs Kerekes)</P> - -<H4><A NAME="tv-out_matrox_g450">2.3.1.5.2 Matrox G450/G550 cards</A></H4> - -<P>TV output support for these cards has only been recently introduced, and is - not yet in the mainstream kernel. Currently the <B>mga_vid</B> module - can't be used AFAIK, because the G450/G550 driver works only in one - configuration: the first CRTC chip (with much more features) on the first - display (on monitor), and the second CRTC (no <B>BES</B> - for explanation - on BES, please see the G400 section above) on TV. So you can only use - MPlayer's <I>fbdev</I> output driver at the present.</P> - -<P>The first CRTC can't be routed to the second head currently. - The author of the kernel matroxfb driver - Petr Vandrovec - will maybe make - support for this, by displaying the first CRTC's output onto both of the - heads at once, as currently recommended for G400, see the section above.</P> - -<P>The necessary kernel patch and the detailed howto is downloadable from - <A HREF="http://www.bglug.ca/matrox_tvout/">http://www.bglug.ca/matrox_tvout/</A></P> - - -<H4><A NAME="tv-out_ati">2.3.1.5.3 ATI cards</A></H4> - -<H4>PREAMBLE</H4> - -<P>Currently ATI doesn't want to support any of its TV-out chips under Linux, - because of their licensed Macrovision technology.</P> - -<H4>ATI CARDS TV-OUT STATUS ON LINUX</H4> - -<UL> - <LI><B>ATI Mach64</B>: Supported by - <A HREF="http://gatos.sf.net">gatos</A>.</LI> - <LI><B>ASIC Radeon VIVO</B>: Supported by - <A HREF="http://gatos.sf.net">gatos</A>.</LI> - <LI><B>Radeon</B> and <B>Rage128</B>: Supported by MPlayer! - Check <a href="#vesa">VESA driver</a> and <A HREF="#vidix">VIDIX</A> - sections.</LI> - <LI><B>Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</B>: Supported by - <A HREF="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/"> - atitvout</A>. -</UL> - -<P>On other cards, just use the <a href="#vesa">VESA driver</a>, without - VIDIX. Powerful CPU is needed, though.</P> - -<P>Only thing you need to do - <B>have TV connector plugged in before - booting your PC</B> since video BIOS initializes itself only once during - POST procedure.</P> - - -<H4><A NAME="tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></H4> - -<P>Check <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">this URL</A>.</P> - - -<H4><A NAME="tv-out_nvidia">2.3.1.5.5 nVidia</A></H4> - -<P>First, you MUST download the closed-source drivers from - <A HREF="http://nvidia.com">http://nvidia.com</A>. I will not describe the - installation and configuration process because it does not cover the - scope of this documentation.</P> - -<P>After XFree86, XVideo, and 3D acceleration is properly working, - edit your card's Device section in the <CODE>XF86Config</CODE> file, - according to the following example (adapt for your card/TV):</P> - -<PRE> -Section "Device" - Identifier "GeForce" - VendorName "ASUS" - BoardName "nVidia GeForce2/MX 400" - Driver "nvidia" - #Option "NvAGP" "1" - Option "NoLogo" - Option "CursorShadow" "on" - - Option "TwinView" - Option "TwinViewOrientation" "Clone" - Option "MetaModes" "1024x768,640x480" - Option "ConnectedMonitor" "CRT, TV" - Option "TVStandard" "PAL-B" - Option "TVOutFormat" "Composite" - -EndSection -</PRE> - -<P>Of course the important thing is the TwinView part.</P> - -</BODY> -</HTML> |