Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > a42e22ddf1d70fb02e9f62289d71cafa > files > 886

mplayer-doc-1.0-1.rc4.0.r31086.3.1mdv2010.2.i586.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>6.15. VIDIX</title><link rel="stylesheet" href="default.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="MPlayer - 电影播放器"><link rel="up" href="video.html" title="第 6 章 Video output devices"><link rel="prev" href="x11.html" title="6.14. X11"><link rel="next" href="directfb.html" title="6.16. DirectFB"><link rel="preface" href="howtoread.html" title="如何阅读此文档"><link rel="chapter" href="intro.html" title="第 1 章 介绍"><link rel="chapter" href="install.html" title="第 2 章 Installation"><link rel="chapter" href="usage.html" title="第 3 章 Usage"><link rel="chapter" href="advaudio.html" title="第 4 章 Advanced audio usage"><link rel="chapter" href="cd-dvd.html" title="第 5 章 CD/DVD用法"><link rel="chapter" href="video.html" title="第 6 章 Video output devices"><link rel="chapter" href="tv.html" title="第 7 章 TV"><link rel="chapter" href="radio.html" title="第 8 章 广播电台"><link rel="chapter" href="ports.html" title="第 9 章 Ports"><link rel="chapter" href="mencoder.html" title="第 10 章 MEncoder的基础用法"><link rel="chapter" href="encoding-guide.html" title="第 11 章 Encoding with MEncoder"><link rel="chapter" href="faq.html" title="第 12 章 Frequently Asked Questions"><link rel="appendix" href="bugreports.html" title="附录 A. 如何报告错误"><link rel="appendix" href="skin.html" title="附录 B. MPlayer skin format"><link rel="subsection" href="vidix.html#svgalib_helper" title="6.15.1. svgalib_helper"><link rel="subsection" href="vidix.html#vidix-ati" title="6.15.2. ATI cards"><link rel="subsection" href="vidix.html#vidix-mga" title="6.15.3. Matrox cards"><link rel="subsection" href="vidix.html#vidix-trident" title="6.15.4. Trident cards"><link rel="subsection" href="vidix.html#vidix-3dlabs" title="6.15.5. 3DLabs cards"><link rel="subsection" href="vidix.html#vidix-nvidia" title="6.15.6. nVidia cards"><link rel="subsection" href="vidix.html#vidix-sis" title="6.15.7. SiS cards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">6.15. VIDIX</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="x11.html">上一页</a> </td><th width="60%" align="center">第 6 章 Video output devices</th><td width="20%" align="right"> <a accesskey="n" href="directfb.html">下一页</a></td></tr></table><hr></div><div class="sect1" title="6.15. VIDIX"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="vidix"></a>6.15. VIDIX</h2></div></div></div><p title="PREAMBLE"><b>PREAMBLE. </b>
<acronym class="acronym">VIDIX</acronym> is the abbreviation for
<span class="bold"><strong>VID</strong></span>eo
<span class="bold"><strong>I</strong></span>nterface
for *ni<span class="bold"><strong>X</strong></span>.
VIDIX 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 a high level interface to chips
which are known as BES (BackEnd scalers) or OV (Video Overlays). It doesn't
provide low level 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><div class="itemizedlist" title="USAGE"><p class="title"><b>USAGE</b></p><ul class="itemizedlist" type="disc" compact><li class="listitem"><p>
  You can use standalone video output driver: <tt class="option">-vo xvidix</tt>.
  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.
</p></li><li class="listitem"><p>
  There is a console VIDIX driver: <tt class="option">-vo cvidix</tt>.
  This requires a working and initialized framebuffer for most cards (or else
  you'll just mess up the screen), and you'll have a similar effect as with
  <tt class="option">-vo mga</tt> or <tt class="option">-vo fbdev</tt>. nVidia cards however
  are able to output truly graphical video on a real text console. See the
  <a class="link" href="vidix.html#vidix-nvidia" title="6.15.6. nVidia cards">nvidia_vid</a> section for more information.
  To get rid of text on the borders and the blinking cursor, try something like
  </p><pre class="screen">setterm -cursor off &gt; /dev/tty9</pre><p>
  (assuming <code class="systemitem">tty9</code> is unused so far) and then
  switch to <code class="systemitem">tty9</code>.
  On the other hand, <tt class="option">-colorkey 0</tt> should give you a video
  running in the "background", though this depends on the colorkey
  functionality to work right.
  </p></li><li class="listitem"><p>
  You can use VIDIX subdevice which was applied to several video output
  drivers, such as: <tt class="option">-vo vesa:vidix</tt>
  (<span class="bold"><strong>Linux only</strong></span>) and
  <tt class="option">-vo fbdev:vidix</tt>.
</p></li></ul></div><p>
Indeed it doesn't matter which video output driver is used with
<span class="bold"><strong>VIDIX</strong></span>.
</p><div class="itemizedlist" title="REQUIREMENTS"><p class="title"><b>REQUIREMENTS</b></p><ul class="itemizedlist" type="disc" compact><li class="listitem"><p>
  Video card should be in graphics mode (except nVidia cards with the
  <tt class="option">-vo cvidix</tt> output driver).
</p></li><li class="listitem"><p>
  <span class="application">MPlayer</span>'s video output driver should know
  active video mode and be able to tell to VIDIX subdevice some video
  characteristics of server.
</p></li></ul></div><p title="USAGE METHODS"><b>USAGE METHODS. </b>
When VIDIX is used as <span class="bold"><strong>subdevice</strong></span> (<tt class="option">-vo
vesa:vidix</tt>) then video mode configuration is performed by video
output device (<span class="bold"><strong>vo_server</strong></span> in short). Therefore you can
pass into command line of <span class="application">MPlayer</span> the same keys
as for vo_server. In addition it understands <tt class="option">-double</tt> key
as globally visible parameter. (I recommend using this key with VIDIX at
least for ATI's card). As for <tt class="option">-vo xvidix</tt>, currently it
recognizes the following options: <tt class="option">-fs -zoom -x -y -double</tt>.
</p><p>
Also you can specify VIDIX's driver directly as third subargument in
command line:
</p><pre class="screen">
mplayer -vo xvidix:mga_vid.so -fs -zoom -double <em class="replaceable"><code>file.avi</code></em>
</pre><p>
or
</p><pre class="screen">
mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 <em class="replaceable"><code>file.avi</code></em>
</pre><p>
But it's dangerous, and you shouldn't do that. In this case given driver
will be forced and result is unpredictable (it may
<span class="bold"><strong>freeze</strong></span> your computer). You should do that
ONLY if you are absolutely sure it will work, and
<span class="application">MPlayer</span> 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><div class="sect2" title="6.15.1. svgalib_helper"><div class="titlepage"><div><div><h3 class="title"><a name="svgalib_helper"></a>6.15.1. svgalib_helper</h3></div></div></div><p>
Since VIDIX requires direct hardware access you can either run it as root
or set the SUID bit on the <span class="application">MPlayer</span> binary
(<span class="bold"><strong>Warning: This is a security risk!</strong></span>).
Alternatively, you can use a special kernel module, like this:
</p><div class="procedure"><ol class="procedure" type="1"><li class="step" title="步骤 1"><p>
  Download the
  <a class="ulink" href="http://www.arava.co.il/matan/svgalib/" target="_top">development version</a>
  of svgalib (1.9.x).
</p></li><li class="step" title="步骤 2"><p>
  Compile the module in the
  <tt class="filename">svgalib_helper</tt> directory (it can be
  found inside the
  <tt class="filename">svgalib-1.9.17/kernel/</tt> directory if
  you've downloaded the source from the svgalib site) and insmod it.
</p></li><li class="step" title="步骤 3"><p>
  To create the necessary devices in the
  <tt class="filename">/dev</tt> directory, do a
  </p><pre class="screen">make device</pre><p> in the
  <tt class="filename">svgalib_helper</tt> dir, as root.
</p></li><li class="step" title="步骤 4"><p>
  Then run <tt class="filename">configure</tt> again and pass the parameter
  <tt class="option">--enable-svgalib_helper</tt> as well as
  <tt class="option">--with-extraincdir=<em class="replaceable"><code>/path/to/svgalib_helper/sources/</code></em>kernel/svgalib_helper</tt>,
  where <em class="replaceable"><code>/path/to/svgalib_helper/sources/</code></em> has to be
  adjusted to wherever you extracted svgalib_helper sources.
</p></li><li class="step" title="步骤 5"><p>
  Recompile.
</p></li></ol></div></div><div class="sect2" title="6.15.2. ATI cards"><div class="titlepage"><div><div><h3 class="title"><a name="vidix-ati"></a>6.15.2. ATI cards</h3></div></div></div><p>
Currently most ATI cards are supported natively, from Mach64 to the
newest Radeons.
</p><p>
There are two compiled binaries: <tt class="filename">radeon_vid</tt> for Radeon and
<tt class="filename">rage128_vid</tt> for Rage 128 cards. You may force one or let
the VIDIX system autoprobe all available drivers.
</p></div><div class="sect2" title="6.15.3. Matrox cards"><div class="titlepage"><div><div><h3 class="title"><a name="vidix-mga"></a>6.15.3. Matrox cards</h3></div></div></div><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 class="link" href="mga_vid.html" title="6.7. Matrox framebuffer (mga_vid)">Matrox framebuffer</a>
</p></div><div class="sect2" title="6.15.4. Trident cards"><div class="titlepage"><div><div><h3 class="title"><a name="vidix-trident"></a>6.15.4. Trident cards</h3></div></div></div><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
<a class="ulink" href="http://www.blackfiveservices.co.uk/EPIAVidix.shtml" target="_top">Alastair M. Robinson</a>.
</p></div><div class="sect2" title="6.15.5. 3DLabs cards"><div class="titlepage"><div><div><h3 class="title"><a name="vidix-3dlabs"></a>6.15.5. 3DLabs cards</h3></div></div></div><p>
Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, no one
has tested it, so reports are welcome.
</p></div><div class="sect2" title="6.15.6. nVidia cards"><div class="titlepage"><div><div><h3 class="title"><a name="vidix-nvidia"></a>6.15.6. nVidia cards</h3></div></div></div><p>
An unique feature of the nvidia_vid driver is its ability to display video on
<span class="bold"><strong>plain, pure, text-only console</strong></span> - with no
framebuffer or X magic whatsoever. For this purpose, we'll have to use the
<tt class="option">cvidix</tt> video output, as the following example shows:
</p><pre class="screen">mplayer -vo cvidix <em class="replaceable"><code>example.avi</code></em></pre><p>
</p></div><div class="sect2" title="6.15.7. SiS cards"><div class="titlepage"><div><div><h3 class="title"><a name="vidix-sis"></a>6.15.7. SiS cards</h3></div></div></div><p>
This is very experimental code, just like 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></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="x11.html">上一页</a> </td><td width="20%" align="center"><a accesskey="u" href="video.html">上一级</a></td><td width="40%" align="right"> <a accesskey="n" href="directfb.html">下一页</a></td></tr><tr><td width="40%" align="left" valign="top">6.14. X11 </td><td width="20%" align="center"><a accesskey="h" href="index.html">起始页</a></td><td width="40%" align="right" valign="top"> 6.16. DirectFB</td></tr></table></div></body></html>