<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>

<HEAD>
  <TITLE>FAQ -- MPlayer -- Linux下的电影播放器</TITLE>
  <LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gbk">
  <STYLE TYPE="text/css">
      dt	{
	font-weight : bold;
      }
  </STYLE>
</HEAD>

<BODY>


<H1><A NAME="faq">5. FAQ </A></H1>

<UL>
  <LI><A HREF="#compilation">5.1 编译</A></LI>
  <LI><A HREF="#general">5.2 一般问题</A></LI>
  <LI><A HREF="#playback">5.3 播放问题</A></LI>
  <LI><A HREF="#driver">5.4 视频与音频驱动问题(vo/ao)</A></LI>
  <LI><A HREF="#dvd">5.5 DVD播放</A></LI>
  <LI><A HREF="#features">5.6 特性要求</A></LI>
  <LI><A HREF="#encoding">5.7 编码</A></LI>
</UL>


<H2><A NAME="compilation">5.1 编译</A></H2>

<DL>

  <DT>Q：编译停止并出现类似这样的出错信息：
    <PRE>
    In file included from mplayer.c:34:
    mw.h: In function `mplMainDraw':
    mw.h:209: Internal compiler error in print_rtl_and_abort, at flow.c:6458
    Please submit a full bug report,
    with preprocessed source if appropriate.
    </PRE>
  </DT>
  <DD>A：这是gcc 3.0.4的一个已知的bug，升级到3.1就可以解决问题。如何安装gcc参阅<A HREF="users_against_developers.html#gcc">gcc 2.96</A>部分。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：Configure结束时出现这样的文字，MPlayer无法编译！<BR>
    <CODE>"Your gcc does not support even i386 for '-march' and '-mcpu'."</CODE>
    </DT>
  <DD>A：你的gcc没有正确的安装，细节需要查看<CODE>config.log</CODE>文件。</DD>
  <DD>&nbsp;</DD>

  <DT>Q："No such file or directory"是什么意思？</DT>
  <DD>A：有可能真的没有这样文件或目录。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：gcc2.96有什么问题？</DT>
  <DD>A：<B>我们强烈反对使用gcc 2.96！</B><BR>
    细节参见<A HREF="users_against_developers.html#gcc">这个</A>文件了解为什么Red Hat发布gcc 2.96，以及它有什么问题。如果你仍然
确实确实确实确实想要使用它，总是使用最新的版本并且在configure的时候加上<CODE>--disable-gcc-checking</CODE>选项。记住是你自己选择这条路的。
一定<B>不要</B>报告bug，一定<B>不要</B>到邮件列表上寻求帮助。如果你遇到问题我们将<B>不</B>提供任何支持。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：好极了，那么我使用Red Hat/Mandrake的gcc 3.0.1，我没问题！</DT>
  <DD>A：不，因为那些编译器同样有问题。为了了解当前的编译器对MPlayer的支持状况，参见<A HREF="documentation.html#installation">安装</A>部分。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我试图编译MPlayer，但是我得到这样的输出：
    <PRE>
    In file included from /usr/include/g++-v3/bits/std_cwchar.h:42,
                     from /usr/include/g++-v3/bits/fpos.h:40,
                     from /usr/include/g++-v3/bits/char_traits.h:40,
                     from /usr/include/g++-v3/bits/std_string.h:41,
                     from /usr/include/g++-v3/string:31,
                     from libwin32.h:36,
                     from DS_AudioDecoder.h:4,
                     from DS_AudioDec.cpp:5:
    /usr/include/wchar.h: In function Long long int wcstoq(const wchar_t*,
       wchar_t**, int)':
    /usr/include/wchar.h:514: cannot convert `const wchar_t* __restrict' to
    `const
    </PRE>
  </DT>
  <DD>A：把你的glibc升级到最新的发行版。对于Mandrake，使用2.2.4-8mdk。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：... gcc 2.96 ... (是的，有些人还在为gcc 2.96上火！)</DT>
  <DD>A：我们引用A'rpi发送到<A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A>邮件列表的一封
<A HREF="http://www.mplayerhq.hu/pipermail/mplayer-users/2001-October/005351.html">邮件</A>('ideg'的意思将在下面解释)：
    <BLOCKQUOTE>
    <P>And we have idegs. And our idegcounter overflowed again and again.</P>

    <P>Unfortunately MPlayer is out of our control. It's used by lamers, Linux
    users who can't even use Windows, and never tried to compile a kernel. They
    installed (with default options) Mandrake or Red Hat or SuSE, and without
    RTFM'ing they send messages saying 'it doesn't work! help me! please! i'm
    new to Linux! help! oh! help me!'. We can't stop them, but at least we try
    to force them to RTFM and to read the messages of ./configure and MPlayer.</P>

    <P>And you clever guys come and flame us with gcc 2.96 and binary packages.
    Instead of helping users or making patches to help solve problems.</P>

    <P>Half of our spare/free time is spent by answering silly mails here and
    making newer tricks and checks to configure to avoid such mails.</P>

    <P>And there is a balance. On the one side are you, clever guys, saying we
    are very bad because we don't like buggy gcc 2.96, and on the other side
    there are the 'new to Linux' guys who are showing us gcc 2.96 is buggy.</P>

    <P>Conclusion: We can't be good. Half the people will always say we are bad.</P>

    <P>Maybe we should close the project, make it closed source, commercial, and
    provide install support for it. then we could leave current work, so
    development could go faster, and we could earn lots of money with it and buy
    a big house, etc etc. Do you really want it? It seems.</P>
    </BLOCKQUOTE>
  </DD>
  <DD>&nbsp;</DD>

  <DT>Q：SDL输出不能工作或者编译。问题在...</DT>
  <DD>A：SDL 1.2.x经过测试能够工作另外SDL 1.1.7+可能能工作。任何以前的版本肯定<B>不能</B>工作。因此如果你选择使用这样的版本，是你自己的责任。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我在编译SDL支持的时候仍然有问题。gcc说什么"undefined reference to `SDL_EnableKeyRepeat'"。现在怎么办？</DT>
  <DD>A：你把SDL库装在哪里？ 如果你装在/usr/local(默认目录)中那么编辑顶层的config.mak并在"X_LIBS="之后添加"-L/usr/local/lib"。现在打make。你搞定了！</DD>
  <DD>&nbsp;</DD>

  <DT>Q：不能编译，找不到uint64_t inttypes.h之类的东西...</DT>
  <DD>A：把etc/inttypes.h复制到MPlayer目录下(<CODE>cp etc/inttypes.h .</CODE>)然后再试一次...</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我在Pentium III上运行Linux但是<CODE>./configure </CODE>没有找到SSE...</DT>
  <DD>A：只有2.4.x的内核支持SSE(或者试试2.2.19或更新的版本，但准备好出问题)。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我有G200与G400，我如何编译使用mga_vid驱动？</DT>
  <DD>A：阅读<A HREF="video.html#mga_vid">mga_vid文档</A>。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：MPlayer有rpm/deb/...之类的安装包吗？</DT>
  <DD>A：你能自己制作.deb安装包，查阅<A HREF="documentation.html#debian">Debian安装包的制作</A>一节。
我们网站的<A HREF="http://www.mplayerhq.hu/homepage/dload.html">下载页</A>上有官方的Red Hat的RPM包的下载链接。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：在'make'时，MPlayer报告没有X11库。我不理解，我确实装了X！？</DT>
  <DD>A：...但是你没有装X的开发包。或者没有正确安装。Red Hat下面它叫XFree86-devel*，Debian下面是xlibs-dev。
也检查是否存在<CODE>/usr/X11</CODE>和<CODE>/usr/include/X11</CODE>的符号链接(在Mandrake系统上可能有这个问题)。
他们用下列命令创建：<BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>$ ln -sf /usr/X11R6 /usr/X11</CODE><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>$ ln -sf /usr/X11R6/include/X11 /usr/include/X11</CODE><BR>
    你的发行版可能不是<A HREF="http://www.pathname.com/fhs/">文件系统层次标准</A>。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我不能编译SVGAlib。我使用2.3/2.4的内核...</DT>
  <DD>A：你必须编辑SVGAlib的Makefile.cfg把<CODE>BACKGROUND = y</CODE>注释掉。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我的MPlayer编译了libdvdcss/libdivxdecore的支持，但是当我试图起动它时，它说：<BR>
    <CODE>&gt; error while loading shared libraries: lib*.so.0: cannot load
    shared object file: No such file or directory</CODE><BR>
    我检查了文件，它确实在<CODE>/usr/local/lib</CODE>里面...</DT>
  <DD>A：在<CODE>/etc/ld.so.conf</CODE>里添加<CODE>/usr/local/lib</CODE>然后运行<CODE>ldconfig</CODE>。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：Hmm，奇怪。我加载mga_vid.o内核模块后在log中找到这个：<BR>
    <CODE>Warning: loading mga_vid.o will taint the kernel: no license</CODE></DT>
  <DD>A：最新的内核modutils要求一个标明许可证的标记(主要避免内核hackers调试非开源的驱动)。升级你的内核，
modutils和MPlayer。</DD>
  <DD>&nbsp;</DD>

    <DT>Q：编译MEncoder过程中，在连接时出现segfaults！</DT>
    <DD>A：这是连接程序的问题。把binutils升级应该有用(2.11.92.*或者更新版本应该不错)。由于它不是我们的问题，
请一定<B>不要</B>报告！</DD>
    <DD>&nbsp;</DD>

    <DT>Q：MPlayer在pthread check时因为segmentation fault而崩溃！</DT>
    <DD>A：chmod 644 /usr/lib/libc.so</DD>
    <DD>&nbsp;</DD>

    <DT>Q：我想在Minix上编译MPlayer！</DT>
    <DD>A：我也想。:)</DD>

</DL>


<H2><A NAME="general">5.2 一般问题</A></H2>

<DL>

  <DT>Q: 我怎么给MPlayer制作合适的补丁？</DT>
  <DD>A: 我们做了一个<A HREF="../tech/patches.txt">短小的文件</A>描述了所有必要的细节。照上面的步骤做。</DD>
  <DD>&nbsp;</DD>

  <DT>Q: 我怎么支持MPlayer的开发工作？</DT>
  <DD>A: 我们非常乐于接受你的硬件和软件的<A HREF="http://www.mplayerhq.hu/homepage/donations.html">捐赠</A>。
它们能帮助我们持续的改进MPlayer。</DD>
  <DD>&nbsp;</DD>

  <DT>Q: 我怎么成为MPlayer的开发者？</DT>
  <DD>A: 我们总是欢迎写程序的和写文档的。先阅读<A HREF="../tech/">技术文档</A>来有个大致了解。然后你应该订阅<A
  HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">mplayer-dev-eng</A>邮件列表并开始编程。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我能同时运行多个MPlayer实例吗？</DT>
  <DD>A：是的。有些视频输出的驱动像xv，dga或者(x)mga是唯一的，所以你将不能够运行超过一个使用这样的视频输出驱动的MPlayer实例。
音频驱动也在不是很严重的程度上存在这种问题。并非所有的驱动都允许在同样的设备上播放多重流。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：在左上角中有一个计时器。我怎么能去掉它？</DT>
  <DD>A：按<CODE>o</CODE>或者使用<CODE>-osdlevel</CODE>选项。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：<CODE>-xy</CODE>或者<CODE>-fs</CODE>选项对x11驱动(<CODE>-vo x11</CODE>)不起作用...</DT>
  <DD>A：它能起作用，但你必须用<CODE>-zoom</CODE>选项明确指定使用软件缩放(十分缓慢)。你最好是使用XF86VidMode支持：
你必须指定<CODE>-vm</CODE>和<CODE>-fs</CODE>选项，然后就搞定了。确保在你的XF86Config文件中有正确设定了modelines，并且尝试使用<A
HREF="video.html#dga">DGA驱动</A>以及<A HREF="video.html#sdl">SDL的DGA驱动</A>。它快得多。如果SDL的DGA能工作就用它，它还要更快。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：状态行上的数字的是什么意思？</DT>
  <DD>A：例如：
    <CODE>A: 2.1  V: 2.2  A-V: -0.167  ct: 0.042  57/57  41%  0%  2.6% 0 4 49%</CODE>
    <UL>
      <LI>A：以秒计算的音频位置</LI>
      <LI>V：以秒计算的视频位置</LI>
      <LI>A-V：以秒计算的音频视频位置差(延迟)</LI>
      <LI>ct：所有完成的A-V同步纠正</LI>
      <LI>播放的帧数(从最后一次搜索开始计算)</LI>
      <LI>解码的帧数(从最后一次搜索开始计算)</LI>
      <LI>视频解码器占用的cpu的百分比(对于slice和DR这包括了视频输出的占用)</LI>
      <LI>视频输出的cpu占用</LI>
      <LI>音频解码器占用的cpu的百分比</LI>
      <LI>为保持A-V同步而丢弃的帧数</LI>
      <LI>目前图像后处理的级别(当使用<CODE>-autoq</CODE>时)</LI>
      <LI>当前cache使用量(大约50%是正常的)</LI>
    </UL>
    他们中大多数是为了调试的，将在适当时候去掉。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我不想要他们出现怎么办？</DT>
  <DD>A：使用<CODE>-quiet</CODE>选项并阅读man page。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：为什么有些文件的视频输出的cpu占用是零(0%)？</DT>
  <DD>A1：它不是零，但它是由解码器调用的不能被单独测量。你应该试着先用<CODE>-vo null</CODE>播放文件然后用<CODE>-vo ...</CODE>播放，
检查它们的不同来查看视频速度。</DD>
  <DD>A2：你使用了直接渲染，那是由解码器自己渲染显存。在这种情况下，解码占用的百分比也包含了显示占用的百分比。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：出现关于在<CODE>/usr/lib/codecs/</CODE>下找不到文件的错误...</DT>
  <DD>A：从我们的<AHREF="http://www.mplayerhq.hu/MPlayer/releases/codecs/">编解码器页</A>下载Win32编解码
器(跟avifile的解码器包里的DLL不一样)并安装它。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：有关于MPlayer的邮件列表吗？</DT>
  <DD>A：有的。看我们的主页的<A HREF="http://www.mplayerhq.hu/homepage/info.html">信息页</A>的底部来订阅。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：当我试图播放我最喜爱的视频时，我发现一个讨厌的bug！我应该报告谁？</DT>
  <DD>A：请阅读<A HREF="bugreports.html">bug报告指导</A>并按照上面的步骤做。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我用...编解码器播放文件的时候有问题。我能使用它们吗？</DT>
  <DD>A：查阅<A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">编解码器状态</A>，如果它不包含你的解码器，
阅读<A HREF="codecs.html">编解码器文件</A>，特别是<A HREF="codecs.html#importing">编解码器导入HOWTO</A>然后联系我们。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：Umm，"IdegCounter"是什么东东？</DT>
  <DD>A：匈牙利语和英语的结合。匈牙利语"Ideg"是神经质的意思，发音类似于“ydaegh”。它最初用来度量A'rpi神经质，
在一些CVS的代码(umm)“神秘的”消失之后；)</DD>
  <DD>&nbsp;</DD>

  <DT>Q："Faszom(C)ounter"又是什么？</DT>
  <DD>A：“Fasz”是你不会想要知道的匈牙利词汇，其他的跟MPlayer开发者们的邪恶的脑袋有关。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：LIRC不工作，因为...</DT>
  <DD>A：你明确你使用的是<CODE>mplayer</CODE>而不是<CODE>mplayer-lirc</CODE>吗？ 注意，<CODE>mplayer_lirc</CODE>
使用了很长时间，包括0.60的发行版，但是它最近又变成<CODE>mplayer</CODE>了。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：字幕非常不错，是我见过的最漂亮的，但它们降低播放速度！ 我想它是不可能的了...</DT>
  <DD>A：在运行<CODE>./configure</CODE>之后，编辑<CODE>config.h</CODE>并将<CODE>#undef FAST_OSD</CODE>换成
<CODE>#define FAST_OSD</CODE>。然后重新编译。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：onscreen display(OSD)不停的闪烁！</DT>
  <DD>A：你使用单缓冲的vo驱动(x11,xv)。对于xv，使用<CODE>-double</CODE>选项。也试试<CODE>-vf expand</CODE></DD>
  <DD>&nbsp;</DD>

  <DT>Q：libavcodec这种东东到底是什么？</DT>
  <DD>A：参见<A HREF="codecs.html#libavcodec">libavcodec</A>一节。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：但是Configure告诉我"Checking for libavcodec ... no"！</DT>
  <DD>A：你需要从FFmpeg的CVS中获得libavcodec。阅读<A HREF="codecs.html#libavcodec">libavcodec部分</A>的说明。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：Icewm的任务条总是在全屏的时候挡住电影！</DT>
  <DD>A：这不应该再发生了，但如果它确实仍然发生，使用<CODE>-fstype layer</CODE>选项并向<A
HREF="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</A>邮件列表报告。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我不能访问GUI菜单。我按下右键，但我不能访问任何菜单项！</DT>
  <DD>A：你使用的是FVWM吗？ 试试下列方法：<BR>
    Start -&gt; Settings -&gt; Configuration -&gt; Base Configuration<BR>
    把"Use Applications position hints"设为"Yes"。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我能在后台中运行MPlayer吗？</DT>
  <DD>A：用法：<CODE>mplayer &lt;options&gt; &lt;filename&gt; &lt; /dev/null &amp;</CODE></DD>

</DL>


<H2><A NAME="playback">5.3 播放问题</A></H2>

<DL>

  <DT>Q：我能播放某些AVI文件但是我听不到声音并且有这种出错信息：
    <PRE>
    Detected audio codec: [divx] afm:4 (DivX audio (WMA))
    Requested audio codec family [divx] (afm=4) not available (enable it at
    compile time!)
    </PRE>
  </DT>
  <DD>A：可能文件的音频使用了一个不是MPlayer本地支持的解码器。按照README或者<A HREF="documentation.html#installation">
安装</A>部分中的说明安装Win32解码器包。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：...avifile/aviplay能工作但MPlayer不能。</DT>
  <DD>A：MPlayer不是avifile。它们之间唯一的共同之处Win32 DLL装载器。codecs(DLL)集，同步，信号分离等等完全不同
所以不应该被比较。如果什么东西能用aviplay播放并不意味着MPlayer能工作，反之亦然。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：播放AVI文件时音频不同步。</DT>
  <DD>A：试试<CODE>-bps</CODE>或<CODE>-nobps</CODE>选项。如果还没有改善，阅读<A HREF="bugreports.html">
这个</A>并把文件上载到FTP上。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：MPlayer在使用l3codeca.acm的时候因为一些错误而退出。</DT>
  <DD>A：检查<CODE>ldd /usr/local/bin/mplayer</CODE>的输出。如果它包含<BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>libc.so.6 =&gt; /lib/libc.so.6 (0x4???????)</CODE><BR>
    "?"可以是任意数字表示没有问题，错误不在这里。如果它是：<BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>libc.so.6 =&gt; /lib/libc.so.6 (0x00??????)</CODE><BR>
    那就表示你的内核/libc有问题。可能你使用了一些安全补丁(例如Solar Designer的OpenWall补丁)强迫把库加载到很低的内存地址。
因为l3codeca.acm是不可重新定位的DLL，它必须被加载到0x00400000，我们没法改变它。你应该使用没有打补丁的核心，
或者使用MPlayer的<CODE>-afm 1</CODE>选项禁用l3codeca.acm。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我的电脑播放分辨率640x300而且是立体声的mp3的M$ DivX AVI文件时非常慢。当我使用-nosound选项时，一切正常(但没有声音)。</DT>
  <DD>A：你的机器太慢或者你的声卡驱动坏了。查阅文档看你是否能提高性能。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：MPlayer由于"MPlayer interrupted by signal 4 in module: decode_video"而崩溃。</DT>
  <DD>A：尝试在你用来编译MPlayer的机器上运行它。或者重新编译打开运行时CPU检测功能(<CODE>./configure --enable-runtime-cpudetection</CODE>)。
如果没有使用上面提到的特性，不要在与编译它不同的CPU上使用MPlayer。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我有个关于[your window manager]跟xv/xmga/sdl/x11模式下全屏的问题...</DT>
  <DD>A：读取我们的<A HREF="bugreports.html">bug报告指导</A>并送一个正确的bug报告给我们</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我播放MPEG文件时出现这样的错误： Can't find codec for video format 0x10000001!</DT>
  <DD>A：你的<CODE>~/.mplayer/</CODE>下的codecs.conf的版本太旧。用<CODE>/etc/</CODE>下面的文件升级它。<BR>
    <B>或者</B>你的配置文件中包含<CODE>vc=</CODE>选项或者类似东西。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：当KDE下的运行MPlayer我只看到一个黑色的屏幕什么都没有。在大约一分钟之后才开始播放视频。</DT>
  <DD>A：KDE的arts守护进程会阻塞声卡设备。你可以一直等到视频开始或者在控制中心中禁用arts。如果你想使用arts的音频，
将音频输出指定为我们本地的arts音频驱动<CODE>-ao arts</CODE>)。如果它失败或者没有被编译进来，尝试SDL
(<CODE>-ao sdl</CODE>)并且确保你的SDL能处理arts的音频。还有另一个选择是用artsdsp运行MPlayer。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我有一个AVI文件，当用<CODE>-vc odivx</CODE>播放时时，出现灰色屏幕，用<CODE>-vc divx4</CODE>时，出现绿色屏幕。</DT>
  <DD>A：这不是DivX文件，而是M$ MPEG4v3。更新你的codecs.conf。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我播放电影时遇到视频音频不同步和/或者MPlayer崩溃并出现下列信息：<BR>
    <CODE>DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!</CODE></DT>
  <DD>A：这可能有很多原因。
    <UL>
      <LI>你的CPU<B>和/或者</B>显卡<B>和/或者</B>总线太慢。在这种情况下MPlayer会显示信息(并且掉帧数会迅速增加)。</LI>
      <LI>如果它是AVI文件，也许它的交错有问题。试试<CODE>-ni</CODE>选项。</LI>
      <LI>你的声卡驱动太buggy，或者你对ALSA 0.5使用了<CODE>-ao oss</CODE>。
        参见<A HREF="sound.html">声卡部分</A>。</LI>
      <LI>AVI的文件头有问题，试试<CODE>-nobps</CODE>选项，和/或者<CODE>-mc 0</CODE>。</LI>
    </UL></DD>
  <DD>&nbsp;</DD>

  <DT>Q：我有个MJPEG文件能用其它播放器播放但是MPlayer只显示一个黑色的图象。</DT>
  <DD>A：在<CODE>codecs.conf</CODE>中禁用Windows DLL，或者使用<CODE>-vc ffmjpeg</CODE>选项(为此你需要为MPlayer编译libavcodec支持)。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：当我试图从我的电视选台器截取时，它能工作，但是颜色很奇怪。用其它程序没问题。</DT>
  <DD>A：你的卡片有可能错误报告了它的色彩空间容量。试试YUY2而不是缺省的YV12(见<A HREF="documentation.html#tv">电视输入文档</A>)。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：每次我开始播放是，都遇到这种信息，但一切似乎都正常：<BR>
    <CODE>Linux RTC init: ioctl (rtc_pie_on): Permission denied</CODE></DT>
  <DD>A：你需要root权限或者一个特殊设定的内核使用计时器代码。细节参见文档的<A HREF="documentation.html#rtc">RTC部分</A>。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我的同步有问题。一些AVI我能正常播放，另外一些却是以双倍速度播放！</DT>
  <DD>A：你的声卡/驱动buggy。很有可能它的固定在44100Hz，而你试图播放22050Hz的音频的文件。试试resample音频滤镜。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我播放所有WMV (或者其它.. )文件时都只有一个绿色/灰色的窗口和声音！ MPlayer报告：<BR>
    <CODE>Detected video codec: [null] drv:0 (NULL codec (no decoding))</CODE></DT>
  <DD>A：更新你<CODE>codecs.conf</CODE>。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我用我的笔记本播放文件时得到十分奇怪的CPU百分值(太大了)。</DT>
  <DD>A：这是你的笔记本的电源管理/节能系统(BIOS，不是内核)的影响。起动你的笔记本<B>之前</B>插上外部电源。你也可以试试<A
HREF="http://www.brodo.de/cpufreq/">cpufreq</A>(一个Linux下的SpeedStep界面)对你是否有帮助。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：当我以root权限在我的笔记本上运行MPlayer时，音频与视频完全不同步。当我作为普通用户运行它时，它工作正常。</DT>
  <DD>A：这还是电源管理的结果(见上面)。起动你的笔记本<B>之前</B>插上外部电源或者使用<CODE>-nortc</CODE>选项。</DD>
  <DD>&nbsp;</DD>

  <DT>Q: 放一部电影的时候它突然跳跃起来并且出现下列信息:<BR>
    <CODE>Badly interleaved AVI file detected - switching to -ni
    mode...</CODE>
  <DD>A: 糟糕的交错文件不能和<CODE>-cache</CODE>选项协同工作. 试试<CODE>-nocache</CODE>.</DD>
  <DD>&nbsp;</DD>

</DL>


<H2><A NAME="driver">5.4 视频与音频驱动问题(vo/ao)</A></H2>

<DL>

  <DT>Q：我播放视频的时候没有声音并且得到类似这样的出错信息：
    <PRE>
    AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian)
    audio_setup: Can't open audio device /dev/dsp: Device or resource busy
    couldn't open/init audio device -&gt; NOSOUND
    Audio: no sound!!!
    Start playing...
    </PRE>
  </DT>
  <DD>A：你是运行的KDE或者GNOME，并且起动了ARTS或者ESD音频守护进程吗？ 试试禁用音频守护进程，或者使用<CODE>-ao arts</CODE>
或<CODE>-ao esd</CODE>选项让MPlayer使用ARTS或ESD。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：DGA驱动怎么了？ 我找不到它！</DT>
  <DD>A：<CODE>./configure</CODE>会自动检测你的DGA驱动。如果<CODE>-vo help</CODE>没有显示DGA，那你的X装的有问题。
尝试<CODE>./configure --enable-dga</CODE>并且读取<A HREF="video.html#dga">相关文档</A>。或者，使用<CODE>-vo sdl:dga</CODE>
选项试试SDL的DGA驱动。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：很好，<CODE>-vo help</CODE>显示有DGA驱动，但是它抱怨权限。帮帮我！</DT>
  <DD>A：它只能以root权限工作！ 这是DGA的限制。你应该成为root(<CODE>su -</CODE>)，然后再试一次。另一个解决方法是为
MPlayerSUID root，但是这种方法<B>不被推荐！</B><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>chown root /usr/local/bin/mplayer</CODE><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>chmod 755 /usr/local/bin/mplayer</CODE><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>chmod +s /usr/local/bin/mplayer</CODE><BR>
    <BLOCKQUOTE>
      <B>警告：安全风险</B><BR>
      这是一个<B>很大的</B>安全风险！<B>永远不要</B>在除了你之外还有人可以使用的服务器上这样做，因为他们能通过SUID root的
MPlayer获得root权限。<B>你被警告过了。</B>
    </BLOCKQUOTE>
  </DD>
  <DD>&nbsp;</DD>

  <DT>Q：当使用Xvideo时，我的Voodoo 3/Banshee报告说：<BR>
    <CODE>X Error of failed request:  BadAccess (attempt to access private
    resource denied)<BR>
    &nbsp;&nbsp;Major opcode of failed request:  147 (MIT-SHM)<BR>
    &nbsp;&nbsp;Minor opcode of failed request:  1 (X_ShmAttach)<BR>
    &nbsp;&nbsp;Serial number of failed request:  26<BR>
    &nbsp;&nbsp;Current serial number in output stream:27</CODE></DT>
  <DD>A：XFree86 4.0.2/4.0.3的“tdfx”驱动有这个bug。已经被解决了<A
HREF="http://www.xfree86.org/cvs/changes_4_1.html">bugfix #621 of the XFree86 4.1.0 CVS log</A>。因此，升级到XFree86
4.1.0或者更新的版本。或者，要么是从<A HREF="http://dri.sourceforge.net">DRI的主页</A>下载(至少)0.6版本的DRI，要么
使用CVS的DRI。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：OpenGL(<CODE>-vo gl</CODE>)输出不工作(锁死/黑色窗口/X11出错/...)。</DT>
  <DD>A：你的OpenGL驱动不支持动态材质更换(glTexSubImage)。已知的是它在nVidia的二进制的家伙上不工作。同时也知道它在Utah-GLX/DRI
和Matrox G400显卡上能工作。Radeon显卡加DRI也行。其它显卡加DRI不行。它同样不能在3DFX显卡上工作，因为256x256材质大小限制。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我有一块nVidia TNT/TNT2显卡，而我的电影的下面总有一个颜色奇怪的带子！ 这个是什么故障？</DT>
  <DD>A：这是nVidia二进制X驱动的一个bug。这些bug仅出现在TNT/TNT2显卡上，我们什么也干不了。要解决问题，升级到最新版本的nVidia二进制的驱动。
如果仍然不行，对nVidia抱怨去吧！</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我使用nVidia XYZ显卡，当我单击显示GUI的显示窗口来触发GUI面板时，在我单击的地方出现一个黑色方块。我安装了最新的驱动。</DT>
  <DD>A：没错，nVidia修正了上一个的错误(上面)，并且引进了新的bug。让我们祝贺他们。更新：据<A
HREF="users_against_developers.html#nvidia">nVidia</A>说，这已经修正了。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：当我使用GUI时，如果使用SDL视频输出，会创建第二个视频窗口。</DT>
  <DD>A：知道，目前GUI不能使用SDL。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：啊世界真是残酷...！ SDL只有<CODE>x11</CODE>输出，而不是<CODE>xv</CODE>！</DT>
  <DD>A：再试一次<CODE>x11</CODE>输出。现在尝试<CODE>-vo x11 -fs -zoom</CODE>。看到区别了？没有？！好，给你点启发：SDL的<CODE>x11</CODE>
输出只要xv可用就会使用xv，你不必为它担心...注意：你使用<CODE>-forcexv</CODE>或<CODE>-noxv</CODE>强制/禁用SDL使用xv</DD>
  <DD>&nbsp;</DD>

</DL>


<H2><A NAME="dvd">5.5 DVD播放</A></H2>

<DL>

  <DT>Q: 有没有DVD导航菜单？</DT>
  <DD>A: MPlayer中的dvdnav支持目前坏了，但正常的播放可以工作。如果你想要华丽的菜单，你需要使用别的播放器比如<A
  HREF="http://xine.sourceforge.net">xine</A>或者<A HREF="http://www.dtek.chalmers.se/groups/dvd/">Ogle</A>。
如果你确实想要DVD导航，送一个<A HREF="../tech/patches.txt">补丁</A>.</DD>
  <DD>&nbsp;</DD>

  <DT>Q：当播放DVD时，我遇到这个错误：<BR>
    <CODE>mplayer: ifo_read.c:1143: ifoRead_C_ADT_internal: Assertion
    nfo_length / sizeof(cell_adr_t) &gt;= c_adt-&gt;nr_of_vobs' failed.</CODE></DT>
  <DD>A：这是已知的libdvdread 0.9.1/0.9.2的bug。使用<B>libmpdvdkit2</B>，就在MPlayer的源代码中，并且缺省使用</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我能在我的Solaris下的可爱的SPARC上编译libdvdread和libdvdcss吗？</DT>
  <DD>A：天知道...据说它能工作，所以请测试它并且提供反馈。也参阅libdvdread的文件及其主页。我们不是libdvdread的作者。使用<B>libmpdvdkit2</B>，
就在MPlayer的源代码中，并且缺省使用。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：字幕怎么样？ MPlayer能显示他们吗？</DT>
  <DD>A：是。参见文档的<A HREF="cd-dvd.html#dvd">DVD</A>部分。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我怎么设置我的DVD光驱的地区代码？ 我没有Windows！</DT>
  <DD>A：使用<A HREF="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">regionset工具</A>。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我一定需要(setuid) root/setuid fibmap_mplayer来播放DVD吗？</DT>
  <DD>A：不，这个只用于老式的DVD支持。然而你必须有访问DVD设备适当权限(在<CODE>/dev/</CODE>里)。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我在什么地方能找到libdvdread和libdvdcss包？</DT>
  <DD>A：你不需要。使用<B>libmpdvdkit2</B>，就在MPlayer的源代码中，并且缺省使用。这些包能从<A
HREF="http://www.dtek.chalmers.se/groups/dvd">Ogle的站点</A>得到。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：可以单独播放/编码选定的chapter吗？</DT>
  <DD>A：可以，试试<CODE>-chapter</CODE>选项。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我的DVD回放慢的要死！</DT>
  <DD>A：使用<CODE>-cache</CODE>选项(在man page中介绍)并尝试用hdparm工具为了DVD光驱开启DMA(在文档<A
HREF="cd-dvd.html#cd">CD部分</A>有介绍)。</DD>
  <DD>&nbsp;</DD>

</DL>


<H2><A NAME="features">5.6 特性要求</A></H2>

<DL>

  <DT>Q：如果<B>MPlayer</B>暂停之后我试图搜索或者按任意键，<B>MPlayer</B>会停止暂停。我愿意能够在暂停时在电影中搜索。</DT>
  <DD>A：很难在不失去A/V同步的情况下实现这项功能。迄今为止所有尝试都失败了，但补丁是受欢迎的。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我想要+/- 1帧来搜索而不是10秒。</DT>
  <DD>A：这不会被实现。它曾被实现过，但是它弄乱了A/V同步。如果你愿意就实现它，并且发送补丁。不要要求它。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：哪里有Windows版本？</DT>
  <DD>A：它没有发行，并且将来也不会。看看Windows的情况(开源的ASF分析器，开源的ASF编码器等等)然后你就知道为什么了。
我们不想进监狱。顺便说一下，你可以自己编译它，在<A HREF="documentation.html#cygwin">Cygwin</A>下。</DD>
  <DD>&nbsp;</DD>

</DL>


<H2><A NAME="encoding">5.7 编码</A></H2>

<DL>

  <DT>Q：我怎么编码？</DT>
  <DD>A：读取MEncoder的<A HREF="encoding.html">文档</A>。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我怎么创建VCD？</DT>
  <DD>A：试试<CODE>TOOLS</CODE>目录下的<CODE>mencvcd</CODE>脚本。使用它你能把DVD或者其它电影编码成为VCD或者SVCD格式
甚至直接把它们刻到CD上。</DD>
  <DD>&nbsp;</DD>

  <DT>Q: 我怎么合并两个视频文件？</DT>
  <DD>A: 这在mplayer-users上面是永不完结的话题。检索<A
HREF="http://mplayerhq.hu/cgi-bin/htsearch?restrict=/mplayer-users/">邮件文档</A>来寻找完整的答案。
这是个复杂的问题，而且你的操作可能因为你想要合并的文件种类有很大分别。MPEG可以直接连接成一个文件。
对于AVI有两个可用的工具<A HREF="http://fixounet.free.fr/avidemux/">avidemux</A>和avimerge(<A
HREF="http://www.theorie.physik.uni-goettingen.de/~ostreich/transcode/">transcode</A>工具集的一部分)，
可能可以完成这个工作。如果两个文件使用同样的分辨率和编解码器，你也可用试试MEncoder。尝试<BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>cat file1 file2 &gt; file3</CODE><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;<CODE>mencoder -ovc copy -oac copy -o out.avi -forceidx file3.avi</CODE></DD>
  <DD>&nbsp;</DD>
  <DT>Q：我的电视选台器工作，我能用MPlayer听到声音观看视频，但是MEncoder不把音频编码！</DT>
  <DD>A：Linux的电视音频编码目前还没有实现，我们正在努力。目前它只在BSD上工作。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我不能把DVD字幕编码成AVI！</DT>
  <DD>A：你必须正确设定<CODE>-sid</CODE>选项！</DD>
  <DD>&nbsp;</DD>

  <DT>Q：MEncoder启动时出现segfaults！</DT>
  <DD>A：升级DivX4Linux。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：我如何仅对一张DVD中选定的chapter进行编码？</DT>
  <DD>A：正确使用<CODE>-chapter</CODE>选项，像这样：
    <CODE>-chapter 5-7</CODE></DD>
  <DD>&nbsp;</DD>

  <DT>Q：我试图在VFAT文件系统上处理2GB+的文件。能行吗？</DT>
  <DD>A：不，VFAT不支持2GB+的文件。</DD>
  <DD>&nbsp;</DD>

  <DT>Q：为什么MEncoder显示的推荐比特率都是负的？</DT>
  <DD>A：因为你编码的音频的比特率太大，在任何CD上不能用于电影。检查你是否正确安装了libmp3lame。</DD>
  <DD>&nbsp;</DD>

</DL>

</BODY>
</HTML>
