diff --git a/DOCS/Chinese/bugreports.html b/DOCS/Chinese/bugreports.html new file mode 100644 index 0000000000..e600dbf321 --- /dev/null +++ b/DOCS/Chinese/bugreports.html @@ -0,0 +1,220 @@ + + + + + bug报告 -- MPlayer -- Linux的电影播放器 + + + + + + + +

附录B -- 如何报告bug

+ +

好的bug报告对任何软件项目的发展都是十分有价值的贡献。但是就象写好的软件一样,好的问题报告也需要一些工作。请明白大多数开发者忙的要死并且会收到 +多的变态的电子邮件。所以尽管你的反馈对改进MPlayer至关重要而且非常值得赞赏,希望你理解你必须提供我们需要的所有信息并且严格遵循这个 +文件中的指导进行。

+ + +

如何修正bug

+ +

如果你觉得你有足够的技巧欢迎你尝试自己修正bug。或者也许你已经这么干了?请阅读这个简短的文件了解怎样让你的代码 +包括到MPlayer的代码中。如果你有问题可以从加入mplayer-dev-eng +邮件列表的人那里获得帮助。

+ + +

如何报告bug

+ +

首先,请先尝试MPlayer最新的CVS版本,因为你的bug在那里可能已经被修正了。发展过程进展的相当快,官方发行版的大部分问题在几天甚至几小时之内 +就被报告了,因此请仅仅使用CVS来报告bug。CVS指令能在这个页面的底部或者 +README中找到。如果这样做没有改进那么请查阅已知的bug列表和文件的其他部分。如果你的问题我们没有提到或者 +按照我们提供的步骤没有解决,那么请报告bug。

+ +

请不要私下向单独的开发者报告bug。这是一项社区工作所以可能有若干人都对它感兴趣。有时其它用户已经遇到过你的麻烦并且知道如何绕过这个问题 +即使它是MPlayer代码中的bug。

+ +

请尽可能详细的描述你的问题。做一些小的侦探工作来确定问题发生的情况的范围。这个bug只在一定的情况中出现吗?或是具体针对特定文件或者文件类型吗? +它是针对于唯一的编码格式还是独立于编码格式的?你能用所有的输出驱动重现它吗?你提供的信息越多我们的修复你的问题的机会就越大。别忘了也要包括下面所要求的 +有价值的信息,否则我们将无法正确分析你的问题。

+ +

有篇文采飞扬的关于如何在公共论坛上提问的极好的指导是Eric S. Raymond写的 +How To Ask Questions The Smart Way。你照着那些指示做是没问题的。但是请明白我们大家都在我们的自由时间自愿地回复邮件列表。我们十分忙碌并且 +不能保证你的问题一定能得到解决甚至得到回复。

+ + +

向哪里报告错误?

+ +

订阅mplayer-users邮件列表:
+     http://mplayerhq.hu/mailman/listinfo/mplayer-users
+ 同时,把你的bug发送到:
+     mplayer-users@mplayerhq.hu

+ +

这个列表使用的语言是英语。请遵循标准的Netiquette标准并且不要发送HTML邮件 +到任何我们的邮件列表。你将被忽略或者封掉。如果你不知道什么是HTML邮件,以及它为什么邪恶,阅读这个不错的文件。 +它解释了所有细节和关掉HTML的指令。也请注意到我们不会个别地CC(抄送)给人因此最好通过订阅来保证你会收到答案。

+ + +

报告什么?

+ +

系统信息:

+ + + + +

硬件 & 驱动:

+ + + + +

对于编译问题/错误

+ +请包括这些文件: + + + + +

对于回放问题

+ +

请包括MPlayer的冗长水平为1的输出,但是记住当你把它粘贴到你的邮件中时不要删减输出内容。开发者们需要所有的信息来正确的分析问题。 +你可以像这样把输出导入到一个文件中:

+ +

    mplayer -v [options] [filename] &> mplayer.log

+ +

如果你的问题是具体对于一个或更多的文件的,那么请上传捣乱的文件:

+ +

    ftp://mplayerhq.hu/MPlayer/incoming/

+ +

再上传一个小的同样文件名的文本文件加上.txt的扩展名。在其中描述对于这个特别的文件你遇到的问题加上你的电子邮件地址还有MPlayer冗长水平为1的输出。 +通常文件的前1-5MB足以重现问题,但为了以防万一我们要求你运行:

+ +

    dd if=yourfile of=smallfile bs=1024k count=5

+ +

它将截取'your-file'的头5兆并把他们写到'small-file'里。然后,测试一下这个小文件,如果bug仍然存在那么你的样本 +对我们来说是足够了。请永远不要通过邮件的发送这样文件!把它上传,然后只发送FTP-server上的文件的路径与文件名。如果文件在网上可以获得, +那么发送准确的URL就足够了。

+ + +

对于崩溃

+ +

如果你的崩溃有一个core dump那么继续阅读下一段,否则跳过它。

+ + +

如何从一个core dump中提取出有意义的信息

+ +

请建立下面的命令文件:

+ +

disass $eip-32 $eip+32
+ printf "eax=%08lX\n",$eax
+ printf "ebx=%08lX\n",$ebx
+ printf "ecx=%08lX\n",$ecx
+ printf "edx=%08lX\n",$edx
+ printf "esp=%08lX\n",$esp
+ printf "ebp=%08lX\n",$ebp
+ printf "edi=%08lX\n",$edi
+ printf "esi=%08lX\n",$esi

+ +

然后直接在你的命令行下执行下列命令:

+ +

    gdb mplayer --core=core -batch --command=command_file > mplayer.bug

+ + +

如何保存一个可再现的崩溃的信息

+ +开启调试代码重新编译MPlayer: + +

    ./configure --enable-debug=3
+     make

+ +然后用gdb运行MPlayer: + +

    gdb mplayer

+ +现在你在gdb内。输入: + +

    run -v [options-to-mplayer] filename

+ +然后再现你的崩溃。一旦你成功了,gdb将回到命令行,你需要输入 + +

    bt
+     disass $eip-32 $eip+32

+ +然后把完整的输出发给我们。 + + +

一般的注意事项

+ +

如果有什么东西特别大(比如log)最好把它压缩(最好是gzip或者bzip)之后上载到FTP server上并且在你的bug报告中只要包含路径和文件名。

+ + +

我知道我在干什么...

+ +

如果你按照上述步骤建立了一个正确的bug报告而且你充满信心它是MPlayer中的bug,而不是因为编译错误或者文件损坏的问题,你已经阅读了文档并且 +找不到解决方案,此外你的声卡驱动正常,那么你可能想要订阅mplayer-advusers列表并把你的bug报告发到那里以便得到更快更好的答案。

+ 请听从我们的劝告,如果你在那里问新手级的问题或者问用户手册中已经回答过的问题,你将被忽略或者被骂而不会得到答案。
+ 因此,不要骂我们并且仅仅当你确实知道你在干什么并且觉得你已经是高级MPlayer用户或者是开发者再订阅 -advusers。如果你符合这些标准找出如何 +订阅应该不难...

+ + + diff --git a/DOCS/Chinese/cd-dvd.html b/DOCS/Chinese/cd-dvd.html new file mode 100644 index 0000000000..b3bb7ab9ce --- /dev/null +++ b/DOCS/Chinese/cd-dvd.html @@ -0,0 +1,82 @@ + + + + + CD,DVD,VCD -- MPlayer -- Linux的电影播放器 + + + + + + + +

4.1 CD与DVD光驱

+ +

Linux文件摘录:

+ +

现代的CD-ROM光驱能达到十分高的头速度,还有一些CD-ROM光驱能运行在被正常情况低的速度上。你考虑改变CD-ROM光驱的速度可能有若干原因:

+ + + +

你能使用hdparm或一个叫setcd的程序来降低光驱的速度。它是这样工作的:

+ +

    hdparm -E [speed] [cdrom device]

+ +

    setcd -x [speed] [cdrom device]

+ +

你也可以试试

+ +

    echo current_speed:4 > /proc/ide/[cdrom device]/settings

+ +

但这样你需要root权限。下面这个命令也有用处:

+ +

    echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings

+ +

这把文件预读取设置为2MB,对于刮伤的CD-ROM有好处。推荐你同时也用hdparm调整你的CD-ROM光驱:

+ +

    hdparm -d1 -a8 -u1 (cdrom device)

+ +

这开启DMA存取,预读取,和IRQ unmasking(细节解释请阅读hdparm的man page)。

+ +

为了优化你的CD-ROM请参考"/proc/ide/[cdrom device]/settings"。

+ + +

4.2 DVD回放

+ +

MPlayer使用libdvdreadlibdvdcss进行DVD解密和回放。这两个库包含在MPlayer源码树的libmpdvdkit/ +子目录中,你不需要单独安装他们。我们选择这种解决方案是因为我们必须修正一个libdvdread的bug,并且给libdvdcss添加一个cracked CSS keys caching support的补丁。 +这带来极大的速度提升,因为不用在每次播放之前都破解密钥。破解的密钥储存在~/.mplayer/DVDKeys目录里面。

+ +

MPlayer也能使用系统的libdvdreadlibdvdcss库,但这种解决方法被推荐,因为它会导致bug,库的不兼容,并且降低速度。

+ +

使用dvdnavDVD导航的支持正在开发,但目前还没有完成。

+ +

旧式DVD支持 -- 可选

+ +

如果你想从硬盘上播放编码的VOB是有用。为此要编译并安装libcss0.0.1(不要更新的)(如果MPlayer检测不到它,使用-csslib /path/to/libcss.so选项)。

+ +

可用选项的完全列表,请阅读man page。

+ + +

4.3 VCD回放

+ +

播放标准的Video CDs:

+ +

mplayer -vcd <track> [-cdrom-device device]

+ +

例子:
+ mplayer --vcd 1
+ mplayer --fs --vcd 2 --dev / hdc

+ +注意: + + + + diff --git a/DOCS/Chinese/codecs.html b/DOCS/Chinese/codecs.html new file mode 100644 index 0000000000..3a4f448eb8 --- /dev/null +++ b/DOCS/Chinese/codecs.html @@ -0,0 +1,354 @@ + + + + + 编码格式 -- MPlayer -- Linux的电影播放器 + + + + + + + +

2.2 支持的编码格式

+ + +

2.2.1 视频编码格式

+ +

编码格式状态表格来了解完整的,每日更新的列表。

+ +

所有之中最重要的:

+ + +

如果你有一个Win32解码器没有列出来而且目前没有被支持,请读取解码器导入HOWTO并且帮助我们添加对它的支持。

+ + +

2.2.1.1 DivX4与DivX5

+ +

这部分包含关于Mayo工程的DivX4和DivX5编码格式的信息,他们的第一个可用的alpha版本是 +OpenDivX 4.0 alpha 47和48。 对它们的支持以前包括仔MPlayer中,并且是默认编译的。 我们也使用其后处理代码来有选择地提高MPEG1/2电影的视觉质量。 +现在我们使用我们自己的,对于所有文件类型。

+ +

这个解码器的新一代产品称为DivX4,它甚至能解码以声名狼籍的DivX编码格式制作的电影! 此外,它比本地的Win32 DivX DLL快得多比但是比libavcodec慢。 +因此,不鼓励把它当解码器用。 然而,它对编码有用。 这个编码格式的缺点之一是它目前不开放源代码。

+ +

解码器可以从下列URLs之一下载:

+ +

    http://avifile.sourceforge.net
+     http://divx.com

+ +

解开它,然后以root身份运行./install.sh

+ +

注意:一定不要忘记在你的/etc/ld.so.conf里添加/usr/local/lib然后运行ldconfig

+ +

如果安装正确MPlayer会自动检测到DivX4/DivX5,然后按通常方法编译。如果没有找到,那么你没有正确地安装或配制它。

+ +

DivX4Linux有两种工作方式:

+ +
+
-vc odivx
+
以OpenDivX方式使用解码器。在这种情况下,它在自己的缓冲中产生YV12图象,然后由MPlayer通过libvo做色彩空间转换。(推荐,快!)
+ +
-vc divx4
+
使用解码器的色彩空间转换。以这种方式你也能使用YUY2与UYVY。()
+
+ +

-vc odivx方式通常更快,因为它以YV12(planar YUV 4:2:0)格式传输图象数据,这样占用少的多的总线带宽。对于packed YUV方式 +(YUY2,UYVY)使用-vc divx4方式。对于RGB模式两者速度是相同的,差别最多是你当前的色彩深度。

+ +

注意:如果你的-vo驱动支持直接渲染,那么-vc divx4可以是很快甚至最快的解决方案。

+ + +

2.2.1.2 FFmpeg DivX/libavcodec

+ +

FFmpeg包括一组开源的解码器包,能够以兼容方式解码以 +H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1编码格式编码的视频流。它不仅能对其中一些进行编码, +同时提供比Win32解码器或Mayo工程的DivX4/5库更高的速度!

+ +

它包含很多不错的解码器,尤其重要的是MPEG4的几个变种:DivX 3,DivX 4,DivX 5,Windows Media Video 7 (WMV1)

+ +

如果你使用MPlayer发行版,在你的源码包里就有libavcodec,正常编译。如果你使用CVS的MPlayer +那么你必须从FFmpeg的CVS树中提取libavcodec因为FFmpeg 0.4.5不能用于MPlayer。你应该这样来完成:

+ +OL> +
  • cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login
  • +
  • cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
  • +
  • libavcodec目录从FFmpeg的源代码里移到MPlayer的CVS树的根部。应该看起来象这样: +

        main/libavcodec

    + 符号链接是够的,你必须复制或移动它!
  • +
  • 编译。Configure应该在编译之前发现可能的问题。
  • + + +

    注意:CVS的MPlayer确实有libavcodec子目录,但是它确实没有包含libavcodec的源代码!你必须按照上述的步骤来得到这个库的源代码。

    + +

    用FFmpeg和我的Matrox G400,我甚至能在我的K6/2 500上无掉帧的观看最高分辨率的DivX电影。

    + + +

    2.2.1.3 XAnim解码器

    + +

    前言:
    + XAnim的二进制的解码器包里面有一份关于合法捆绑软件许可的声明,除其它限制之外,禁止用户用除XAnim外的任何程序使用其解码器。然而, +XAnim的作者到目前为止没有就解码器有关的问题对着任何人采取法律行动。 +

    + +

    MPlayer可以使用XAnim的解码器解码。按照下列指令来开启它:

    + +
      +
    1. XAnim的站点下载你想要的解码器。3ivx的解码器不在那里,在 +3ivx的站点
    2. +
    3. 使用--with-xanimlibdir选项来告诉configure在何处可以找到XAnim的解码器。缺省的话,它在 +/usr/local/lib/xanim/mods, /usr/lib/xanim/mods and /usr/lib/xanim里寻找。或者你可以把XANIM_MOD_DIR环境变量 +设置为XAnim解码器所在的目录。
    4. +
    5. 给文件改名/做符号链接,去掉代表平台构架之类的东西,让他们看起来像这样:vid_cvid.xa, vid_h263.xa, vid_iv50.xa
    6. +
    + +

    XAnim的视频解码器族号码是10,因此你可以使用-vfm 10选项让MPlayer尽可能的使用他们。

    + +

    测试过的解码器包括:Indeo 3.24.15.0CVID3ivXh263

    + + +

    2.2.1.4 VIVO视频

    + +

    MPlayer能播放Vivo(1.0和2.0)视频。对于1.0的文件最适合的解码器是FFmpeg的H263解码器,你可以用-vc ffh263选项 +(默认的)来使用它(需要最新的libavcodec)。对于2.0个文件,使用 +ivvideo.dll这个Win32 DLL文件,将它安装在/usr/lib/win32或者你放Win32解码器的那个什么地方。后面这个解码器不支持YV12或YUY2, +只使用BGR,只能限定在X11和OpenGL输出方式。希望ffh263将来支持VIVO 2.0的文件。

    + + +

    2.2.1.5 MPEG 1/2视频

    + +

    MPEG1和MPEG2用本地的多平台的libmpeg2库解码,其源代码被包括在MPlayer中。对于buggy的MPEG 1/2视频文件我们通过截获sig11 +(segmentation fault),然后迅速再次初始化解码器,从失败的地方继续。这种恢复技术会带来无法估量的速度损失。

    + + +

    2.2.1.6 MS Video1

    + +

    这是微软的又旧又差的编码格式。过去它用msvidc32.dll的Win32解码器解码,现在我们有我们自己的开源的实现(由 +Mike Melanson提供)。

    + + +

    2.2.1.7 Cinepak CVID

    + +

    MPlayer默认将使用自己的开源的,多平台的Cinepak解码器。它支持YUV输出,所以只要硬件驱动允许它将使用硬件缩放。

    + + +

    2.2.1.8 RealVideo

    + +MPlayer支持所有版本的RealVideo的解码: + + + +

    推荐下载并安装RealPlayer8或者RealONE,因为MPlayer能使用他们的库来解码RealVideo 2.0或者RealVideo 3.0的视频文件。 +MPlayer的配置脚本应该在一个完全安装的RealPlayer的标准位置找到它的库。如果它没找到,用--with-reallibdir +选项告诉configure到哪里去找。

    + +

    注意:RealPlayer库目前只能用于x86平台上的Linux,FreeBSD,NetBSD和Cygwin。

    + +

    注意:我们不能分发RealPlayer库,它的许可证不允许这样。你必须自己搞到他们。

    + + +

    2.2.1.9 XViD

    + +

    XViDOpenDivX编码格式的开发分支。故事发生在Mayo工程把OpenDivX变成封闭源码的DivX4的时候,那些从事于OpenDivX的非Mayo工程 +的人们感到愤怒,于是开始了XViD。所以两个项目有相同的起源。

    + +

    优点:

    + + + +

    缺点:

    + + + +

    XViD目前只能从CVS中得到。这是下载和安装的指令:

    + +
      +
    1. cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login
    2. +
    3. cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore
    4. +
    5. cd xvidcore/build/generic
    6. +
    7. 按照你的需要编辑Makefile.linux
    8. +
    9. make -f Makefile.linux
    10. +
    11. 从DivX4Linux包中找出encore2.h decore.h ,把它们复制到/usr/local/include/
    12. +
    13. 加上--with-xvidcore=/path/to/libcore.a选项重新编译MPlayer
    14. +
    + + +

    2.2.1.10 Sorenson

    + +

    Sorenson 是苹果开发的视频编码格式。目前我们能用本地解码器解码第一个版本(SVQ1)。

    + +

    优点:

    + + + +

    缺点:

    + + + +

    Sorenson解码器是默认编译使用的。

    + + +

    2.2.2 音频编码格式

    + +

    所有音频编码中最重要的是:

    + + + + +

    2.2.2.1 软件AC3解码

    + +

    这是含有AC3音频的文件的默认解码器。

    + +

    AC3解码器能为了2,4或者6个扬声器创建音频混合输出。当配置为6个扬声器时,这个解码器向声卡驱动提供所有AC3通道的单独的输出, +允许彻底的“环绕立体声”感受而不需要使用需要hwac3解码器的外部AC3解码器。

    + +

    使用-channels选项可以选择输出的通道数。使用-channels 2获得立体声的降混频。 +对于4通道的降混频(左前,右前,左环绕和右环绕),使用-channels 4。在这种情况下,中心通道的任何输出将与前通道均匀混合。 +-channels 6将按照编码时的形式输出所有AC3通道-- 依次为左,右,左环绕,右环绕,中间和低频效果。

    + +

    默认的输出通道数是2。

    + +

    为使用超过2个通道的输出,你需要使用OSS,和一块能通过SNDCTL_DSP_CHANNELS ioctl支持适当输出通道数的声卡。合适的驱动的一个例子是 +2001年8月的或者更新的emu10k1(用于Soundblaster Live!卡)(ALSA的CVS应该也能工作)。

    + + +

    2.2.2.2 硬件AC3解码

    + +

    你需要一个AC3兼容声卡,加上数字输出(SP/DIF)。声卡的驱动必须正确地支持AFMT_AC3格式(C-Media就支持)。把你的AC3解码器连接到SP/DIF输出, +然后使用-ac hwac3选项。这还在试验阶段但已经知道能用于C-Media声卡,使用ALSA驱动(但不能是OSS)的Soundblaster Live! +还有DXR3/Hollywood+ MPEG译码卡。

    + + +

    2.2.2.3 libmad支持

    + +

    libmad是多平台的MPEG音频解码库。它不能很好的处理损坏的文件,而且有时候搜索也有问题。

    + +

    为了支持它,加上--enable-mad配置选项编译。

    + + +

    2.2.2.4 VIVO音频

    + +

    VIVO文件的使用的音频编码取决于它是VIVO/1.0还是VIVO/2.0。VIVO/1.0文件使用g.723音频,而VIVO/2.0文件使用Vivo Siren音频。 +他们两个都支持。你能从MPlayer站点下载g.723/Siren的Win32 DLL, +然后把它复制到/usr/lib/win32目录下。

    + + +

    2.2.2.5 RealAudio

    + +MPlayer支持解码几乎所有版本的RealAudio: + + + +

    至于如何安装RealPlayer库,参见RealMedia文件格式部分。

    + + +

    2.2.3 Win32解码器导入HOWTO

    + + +

    2.2.3.1 VFW codecs

    + +

    VFW(Video for Windows)是Windows的老的视频API。它的解码器以.DLL或者(很少的).DRV为扩展名。 +如果MPlayer无法播放你的AVI并显示这种信息:

    + +

        UNKNOWN video codec: HFYU (0x55594648)

    + +

    它意味着你的AVI在编码时使用了HFYU fourcc(HFYU = HuffYUV codec,DIV3 = DivX Low Motion,等等...) +的编码格式。现在你知道了,你必须查明Windows为了播放这个文件装载了哪一个DLL。在我们的情况下, +system.ini在这样的一行上包含这个信息:

    + +

        VIDC.HFYU=huffyuv.dll

    + +

    因此,你需要huffyuv.dll文件。注意,音频解码器通过MSACM前缀指定:

    + +

        msacm.l3acm=L3codeca.acm

    + + +

    这是MP3编码格式。现在你有了所有必要的信息(fourcc,解码器文件,AVI样本),把你的解码器支持要求通过邮件提交, +并把相关文件上载到我们的FTP站点:

    + +

        ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/

    + + +

    2.2.3.2 DirectShow codecs

    + +

    DirectShow是较新的视频API,比它的前辈更恶劣。对于DirectShow事情变的困难了,

    + + + +

    新方法:使用微软的GraphEdit(快速)

    +
      +
    1. 从DirecX SDK或者Doom9中取得GraphEdit +
    2. 运行graphedit.exe +
    3. 从菜单中选择Graph -> Insert Filters +
    4. 展开DirectShow Filters项目 +
    5. 选择正确的解码器名称然后展开项目 +
    6. DisplayName一项中看反斜杠后面花括号里面的文字并把它记下来(小短横分隔开的五块,就是GUID) +
    7. 解码器的二进制文件是Filename项里指定的文件 +
    + +

    注意:如果没有Filename项而DisplayName中包含类似device:dmo的东西, +那么这是一个DMO-Codec,MPlayer目前不支持

    +

    老方法:做个深呼吸然后开始搜索注册表...

    + +
      +
    1. 运行regedit。 +
    2. Ctrl-f,禁用头两个复选框,填写解码器的fourcc(例如TM20)。 +
    3. 你应该看见一个包含路径和文件名的域(例如C:\WINDOWS\SYSTEM\TM20DEC.AX)。 +
    4. 现在你找到了文件,我们需要GUID。尝试再次搜索,但现在搜索解码器的名称,fourcc。用媒体播放器播放文件时, +察看File -> Properties -> Advanced可以获得解码器名。如果没有,你真不走运。猜猜看吧(例如搜索TrueMotion)。 +
    5. 如果找到GUID你将看见FriendlyName和CLSID域。写出16字节CLSID,这就是我们需要的GUID。 +
    + +

    注意:如果搜索失败,试试选上所有的复选框。你可能找到错误的内容,不过说不定你会走运...

    + +

    现在你有所有必要的信息(fourcc,GUID,解码器文件,AVI样本),把你的解码器支持要求通过邮件提交,并把相关文件上载到我们的FTP站点

    + +

        ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/

    + + + diff --git a/DOCS/Chinese/default.css b/DOCS/Chinese/default.css new file mode 100644 index 0000000000..7b719e5c58 --- /dev/null +++ b/DOCS/Chinese/default.css @@ -0,0 +1,5 @@ +body { + font-family : Arial, Helvetica, sans-serif; + font-size : 12px; + background : white; +} diff --git a/DOCS/Chinese/documentation.html b/DOCS/Chinese/documentation.html new file mode 100644 index 0000000000..4f199fcf0b --- /dev/null +++ b/DOCS/Chinese/documentation.html @@ -0,0 +1,1433 @@ + + + + + 文档 - MPlayer - Linux的电影播放器 + + + + + + +

    MPlayer - Linux的电影播放器

    + +

    © 2000-2002 Arpad Gereoffy (A'rpi/ESP-team)
    + http://www.mplayerhq.hu

    + +

    [汉语] + [英语] + [匈牙利语] + [德语] + [法语] + [波兰语] + [意大利语]

    + +


    + +

    目录

    + +
    + + + +
    + + + +

    0. 如何阅读本文档

    + +

    如果你是首次安装:请一定要阅读从这里到安装部分末端的每件事,并且追踪你将遇到的链接。 +如果你有任何其它问题,返回到目录并搜索主题,读取FAQ,或者试图grepping整个文件。

    + +

    这个文件的主要原则:如果一个功能没有被编入文档,那么它不存在。如果我不说你能 +用电视选台器音频编码,你一定不能。不过健康程度的综合能力还是受欢迎的。祝你好运。你将需要它的:), +让我引用mplayer-users邮件列表中 +Chris Phillips的话作为另一个好的建议:

    + +

    “我以前说过新手和白痴之间的区别在于:无论,你实际上对一个系统(Linux,汽车,女孩:D) +了解多少,你应该总能够退一步想想并且保持客观,否则,你是公认的白痴IMHO。跟我住在一起的女孩认定吸 +尘器坏了因为它不吸进东西,而从不想更换袋子,因为她以前从来没有做过...那就是愚蠢,而不仅仅是不 +知道做什么...仅仅因为不是那么熟悉你的环境不是你的a)懒惰和b)忽视的借口。如此多人们似乎看到“error” +就停止...极少数似乎真正上读取了在冒号的另一边的东西”。

    + + +

    1. 介绍

    + +

    MPlayer是Linux 上的电影播放器(也能跑在许多其它Unices上,甚至non-x86CPU上, +参见移植部分)。它能使用众多的本地的,XAnim,RealPlayer,和Win32 DLL codecs, +播放大多数MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,FLI,RM,NuppelVideo,yuv4mpeg,FILM,RoQ文件。 +你还能观看VideoCDSVCDDVD3ivxRealMedia,和DivX格式 +的电影(你根本不需要avifile库)。mplayer的另一个大的特色是广泛的输出设备支持。它可以在X11,Xv,DGA, +OpenGL,SVGAlib,fbdev,AAlib,DirectFB下工作,而且你也能使用GGI和SDL(由此可以使用他们支持的各种驱动模式) +和一些低级的硬件相关的驱动模式(比如Matrox,3Dfx和Radeon,Mach64,Permedia3)!他们大多数支持软件或者硬件缩放, +因此你能在全屏下享受电影。MPlayer还支持通过硬件MPEG解码卡显示,诸如DVB +和DXR3与Hollywood+。可以使用european/ISO 8859-1,2(匈牙利语,英语,捷克语等等), +Cyrillic,朝鲜字体的清晰放大并且反锯齿的字幕(支持10种格式),和on screen display(OSD)你又觉得如何?

    + +

    MPlayer以GPL v2许可证发行。

    + +

    这个播放器能够稳如泰山的播放被破坏的MPEG文件(对一些VCD有用),而它能播放著名的windows media player +都打不开的的坏的AVI文件。甚至,没有索引部分的AVI文件可播放,你能暂时由重建他们的索引-idx选择, +或者用MEncoder永久重建,使你能够seek!如你所见,稳定和质量是最重要的事情,而且他的速度是也惊人的。

    + + +

    1.1 历史

    + +

    这一年以前开始的... +我(A'rpi)已尝试Linux下的许多播放器(mtv,xmps,dvdview,livid/oms,videolan,xine,xanim,avifile,xmmp), +但是他们全都有一些问题。多半与特殊的文件或音频与视频的同步有关。他们中大多数不能同时播放MPEG1,MPEG2和AVI(DivX)文件。 +许多播放器也有图象质量或者速度的问题。因此,我已决定自己写/修改一个...

    + + + +

    1.2 安装

    + +

    在这章中我将试图指引你通过编译和配置MPlayer的过程,它不大容易的,不过也见得一定很难的。 +如果你遇到不同于我所解释的现象,请的通过搜索这篇文件来查找你的回答。如果你遇到链接,请跟踪他们并且细心读取他们包含的内容。 +它将花费一些时间,但是它确实是值得的。

    + +

    你需要一个相当新的系统。在Linux上,推荐2.4.x的内核。

    + +

    软件要求:

    + + + +

    解码器:

    + + + +

    显卡

    + +

    一般地显卡可分为两种。一种(较新的显卡)支持硬件缩放和YUV加速,另一种卡没有。

    + +

    YUV显卡

    + +

    他们能在他们显存可以的范围中用任何分辨率显示和缩放(zoom)图像,只有很小CPU使用量(缩放不会使它增加!),所以你能得到清晰快速的全屏播放。

    + + + +

    非YUV卡片

    + +

    播放Fullscreen能被任一个可以使用软件缩放(使用-zoom或者-vop scale参数,但是我先警告你: +这会非常非常慢!),或者切换成较小的的分辨率,例如352x288。如果你没有YUV加速,我们推荐使用后一种方法。在MPlayer中, +这种方法通过-vm参数打开,它能用于下列驱动:

    + + + +

    某些显卡:

    + + + +

    声卡

    + + + +

    特性

    + + + +

    接着编译MPlayer

    + +
    +    ./configure
    +    make
    +    make install
    +
    + +

    到此为止,MPlayer就可以使用了。$PREFIX/share/mplayer目录下包含了codecs.conf文件, +程序通过它来了解所拥有的codecs和他们的能解的码。该文件应该与主程序一起更新!
    +检查在你的home目录(~/.mplayer/codecs.conf)中是否有旧的MPlayer版本留下的codecs.conf,如果有就删掉它!

    + +

    Debian的用户能自己制作.deb安装包,这十分简单。直接在MPlayer的根目录执行fakeroot debian/rules binary。 +详尽的步骤请看这里

    + +

    ./configure的输出请务必一定阅读,还有configure.log文件,其中的信息会告诉你将什么将被编译,什么不编译。 +你也可能需要查看config.hconfig.mak文件。
    +如果你已经安装一些库文件,却没有被./configure发现,那么检查你是否也安装了正确的头文件(通常在-dev包中)以及他们的版本符合要求。 +configure.log 通常会告诉你缺了什么。

    + +

    尽管并非必需,你确实应该安装字体以使用OSD和字幕功能。下载mp-arial-iso-8859-*.zip和/或者可选(如果存在的话)的其他语言的更新。 +阅读字幕和OSD一节来了解其细节。

    + +
    +    mkdir ~/.mplayer/font
    +    cd ~/.mplayer/font
    +    unzip mp-arial-iso-8859-1.zip
    +    ln -s ~/.mplayer/font/arial-24 font
    +
    + +

    1.3 GUI有吗?

    + +

    GUI需要GTK(它不是GTK写成的,但是面板是的)。skin被保存为PNG格式,因此你需要安装gtk,libpng(和他们的devel包)。 +你必须在运行./configure时使用--enable-gui来编译它的代码。然后,你可以用下列方法之一打开GUI方式

    + + +

    由于技术原因,目前你不能在命令行下使用-gui选项。

    + +
    + 提示
    + 使用鼠标的中间键(2键鼠标则同时按下左右两键),会弹出一个有DVD播放选项的GTK菜单! +
    + +

    因为MPlayer不自带skin,所以如果你想要使用GUI,你必须自己下载他们。参见下载页。 +他们应该被解压到系统通用的目录($PREFIX/share/mplayer/Skin),或者解压到$HOME/.mplayer/Skin。 +MPlayer在默认情况下会在这些的目录里寻找一个叫default的目录, +但是你能使用-skin newskin选项或在config文件中添加skin=newskin来强制使用*/Skin/newskin下的skin。

    + +

    1.4 字幕和OSD

    + +

    + MPlayer能在播放电影的同时显示字幕。目前支持下列格式:

    + + +使用不同格式的命令行选项稍有不同: + +

    VobSub字幕

    +

    VobSub字幕包括一个大的(几兆).sub文件,和可选的.idx和/或者.ifo文件。
    +用法: 如果你有类似sample.subsample.ifosample.idx之类的文件 + -- 你必需使用-vobsub sample -vobsubid <id>的参数(当然必要时加上路径)。 + -vobsubid 选择类似于播放DVD时的-sid,用它你可以选择不同的字幕轨道(语言)。

    + +

    其它字幕

    +

    其它格式由一个单一的包含时间,位置和正文信息的文本文件组成。
    +用法: 如果你有类似sample.txt之类的文件,你必须使用-sub sample.txt +(当然必要时加上路径)。

    + +

    调整字幕的时间和位置

    + +
    +
    -subdelay<sec>
    +
    延迟字幕< sec >秒。可以是负数。
    + +
    -subfps<rate>
    +
    规定字幕文件按每秒多少帧速度显示(浮点数)
    + +
    -subpos<0-100>
    +
    规定字幕显示的位置。
    +
    + +

    如果你使用MicroDVD字幕文件时遇到电影和字幕之间的延迟不断增加的问题,很有可能你的电影文件和字幕文件的帧速度不同。
    +请注意,MicroDVD字幕格式用绝对帧数来计时,因此-subfps选项不能用于这种格式。因为MPlayer没法猜测 +字幕文件的帧速度,你必须手工修改它。在MPlayer的FTP站点的contrib目录中有一个小的perl脚本可以替你做这种转化。

    + +

    关于DVD字幕,请看DVD一节。

    + +

    1.4.1 MPlayer自己的字幕格式(MPsub)

    + +

    MPlayer引入一种称为MPsub的新的字幕格式。它是我(Gabucino)设计。基本上,其主要的特性是基于动态时间 +(虽然它有基于帧的模式)。例如(引自DOCS/tech/mpsub.sub):

    + +

    # first number : wait this much after previous subtitle disappeared
    + # second number : display the current subtitle for this many seconds
    +
    + 15 3
    + A long long, time ago...
    +
    + 0 3
    + in a galaxy far away...
    +
    + 0 3
    + Naboo was under an attack.
    +

    + +

    因此如你所见,主要的目标是使字幕的编辑/计时/合并/分割变得容易。同时,如果你 -- 比方说 -- 有一个SSA字幕但是它 +与你的电影却有严重的时间/延迟问题,你只要简单运行mplayer dummy.avi -sub source.ssa -dumpmpsub。 +在当前目录中将生成一个dump.mpsub文件,它包含源字幕的正文,但是使用MPsub格式。 +然后,你就能字幕中自由地添加或减去任意秒。

    + +

    字幕的显示使用一种称为'OSD', On Screen Display的技术。OSD被用来显示当前的时间,音量条,进度条等等。

    + +

    1.4.2 安装OSD和字幕

    + +

    你需要一个MPlayer字体包来使用OSD和字幕功能。有许多方法获得它:

    + + + +

    下载字体之后,把你下载的文件UNZIP到~/.mplayer或者$PREFIX/share/mplayer。 +然后将其中之一改名或者符合链接为font(例如:ln -s ~/.mplayer/arial-24 ~/.mplayer/font)。 +你现在应该在电影的左上角看见一个计时器(用"o"键可以关上它)。

    + +

    OSD有3种状态:(用'o'键切换)

    + + +

    你能通过在config文件中设置变量osdlevel=来改变默认行为。

    + + +

    1.5 RTC

    + +在MPlayer中有三种计时方法。 + + + + +注意:永远不要将setuid root的MPlayer安装在多用户系统上!这显然会让任何人得到root权限。 + + +

    2. 特性

    + + +

    2.1 支持格式

    + + +

    2.2 支持的codecs

    + + +

    2.3 视频音频输出模式

    + + +

    2.4 MEncoder -- 全功能编码器

    + + +

    2.5 电视输入

    + + +

    这段将要如何能够使用V4L兼容的电视选台器观看与截取

    + +

    这些代码目前没有继续开发!不要指望它不经过修改或实验就能正常工作!

    + + +

    2.5.1 编译

    + +
      +
    1. 首先,你必须重新编译。./configure将自动检测v4l的内核头文件和/dev/video* + 输入的存在。如果他们存在,电视支持将被编译(查看./configure的输出)。
    2. +
    3. 用另一个Linux中的电视软件确保你的调音器工作,例如xawtv。
    4. +
    + +
    + 提示
    + 颜色是混乱的吗?那么,你的选台器不能在YV12颜色格式中显示。尝试一下I420(-vc rawi420)或者YUY2, +UYVY,RGB32 (-vo sdl)颜色格式。你可以用outfmt=YV12选项来指定它,参见下面。

    +
    + + +

    2.5.2 可用的选项

    + +
    +
    on
    +
    使用电视输入。
    + +
    noaudio
    +
    没有声音,谢谢。
    + +
    driver
    +
    dummy -- 空电视输入:)仅仅用于测试,产生伪输入。
    + v4l -- 用标准的V4L接口(缺省为/dev/video0)捕捉图象。
    + +
    device
    +
    指定缺省的/dev/video0之外的设备。
    + +
    input
    +
    指定电视选台器输入中你希望截取的输入(比如电视s-videocomposite,...)
    + 在初始化时会显示可用的选项。
    + +
    freq
    +
    把选台器设置到指定的频率(例如511.250)。
    + +
    outfmt
    +
    规定选台器把图象传送到我们时应该使用的输出格式(rgb32rgb24yv12uyvy, +i420(对于i420你必须使用-vc rawi420参数,否则会有fourcc冲突))。
    + +
    width
    +
    输出窗口的宽度,以象素为单位
    + +
    height
    +
    输出窗口的高度,以象素为单位的
    + +
    norm
    +
    可用选项:PAL,SECAM,NTSC
    + +
    channel
    +
    把选台器设置到指定的频道。
    + +
    chanlist
    +
    可用选项:us-bcast, us-cable, europe-west, europe-east, 等等
    +
    + +

    2.5.3 键盘控制

    + + + + + +
      h/k  选择前一个/下一个频道
    n切换制式
    b切换chanlist
    + +

    2.5.4 例子

    + +

    伪输出,到AAlib:)
    +     mplayer -tv on:driver=dummy:width=640:height=480 -vo aa
    +
    + 从标准的V4L输入
    +     mplayer -tv on:driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv

    + +

    注:
    + 如果你的电视卡有一个有外部音频设备而只出现黑屏,但xawtv或类似的东西对输入的信号却工作正常,那么试试-noaudio选项。对于上述的例子命令是:
    + +

    3. 用法

    + +

    3.1 命令行

    + +

    MPlayer使用一个复杂playtree格式。它包括写在最前面作为全局设置的选项(例如mplayer -vfm 5),和写在文件名之后, +仅仅作用于给定的文件名或URL或whatever的选项(例如mplayer -vfm 5 movie1.avi movie2.avi -vfm 4)。
    +你能使用{和}给文件名与URL分组。它对-loop选项很有用:mplayer { 1.avi -loop 2 2.avi } -loop 3命令将按以下顺序播放文件: +1 1 2 1 1 2 1 1 2
    +

    + + + + + + + +
      单一文件  mplayer [options] [path/]filename
    多个文件mplayer [default options] [path/]filename1 [options for filename1] filename2 [options for filename2] ...
    VCDmplayer [options] -vcd trackno [-cdrom-device /dev/cdrom]
    DVDmplayer [options] -dvd titleno [-dvd-device /dev/dvd]
    网址mplayer [options] http://site.com/file.asf (也可以使用playlist)
    + +

    + 最新版本的MPlayer也可以象Xine一样接受URL风格的VCD和DVD轨道,就做: mplayer dvd://1或者mplayer vcd://1

    + +
    +  mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
    +  mplayer -vcd 2
    +  mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
    +  mplayer -dvd 1 -dvd-device /dev/hdc
    +  mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi
    +
    + +

    3.2 控制

    + +

    MPlayer有一个完全可配置的,命令驱动的控制层使你可以键盘,鼠标,游戏杆或遥控器(使用LIRC)控制MPlayer

    + +

    3.2.1 默认控制方法

    + +

    从终端的键盘控制

    + + + + + + + + + + + + + + + + + + + + + +
      <- or ->  快进/后退10秒
    up or down快进/后退1分钟
    pgup/pgdown快进/后退10分钟
    < or >在播放列表中选下一个/上一个
    p or SPACE暂停(按任意键)
    q or ESC停止播放并退出
    + or -调整音频延迟+/-0.1秒
    / or *减少/增加音量
    f切换全屏
    o切换OSD: none/seek/seek+timer
    z or x调整字幕延迟+/-0.1秒
    r or t调整字幕位置
    HOME or END选择上一级列表中的下一个/上一个playtree命令
    INSERT or DELETE下一个/上一个替代source(只用于asx播放列表)

    (下列的控制键只有当使用-vo xv时是有效的)

    1 or 2调整对比
    3 or 4调整亮度
    5 or 6调整hue
    7 or 8调整饱和
    + +

    GUI键盘控制

    + + + + + + + + + + + + + + +
      , and .  上一个/下一个文件
    gray - or +减少/增加音量
    enter开始播放
    space暂停
    s停止
    aabout
    l打开文件
    bskin browser
    eequalizer对话框
    pplaylist对话框
    f切换全屏
    m切换静音
    + +

    TV输入的键盘控制

    + + + + + +
      h or l  选择上一个/下一个频道
    n切换制式
    b切换频道列表
    + +

    3.2.2 配置控制方法

    + +

    MPlayer允许你使用一个简单的config文件把任何键或按钮绑定为任何一个MPlayer控制命令。 +句法是键名后加命令。缺省config文件是$HOME/.mplayer/input.conf但是-input conf +选项可以重新指定(相对路径是相对于$HOME/.mplayer的)。 + +

    例子:

    + +
    +##
    +## MPlayer input control file
    +##
    +
    +RIGHT seek +10
    +LEFT seek -10
    +- audio_delay 0.100
    ++ audio_delay -0.100
    +q quit
    +> pt_step 1
    +< pt_step -1
    +ENTER pt_step 1 1
    +
    + +

    3.2.2.1 键名

    + +

    运行mplayer -input keylist你将得到一个完整的列表

    + +

    键盘:

    + + + +

    鼠标(只在X下支持):

    + + + +

    游戏杆(编译时必须打开对游戏杆的支持)

    + + + + +

    3.2.2.2 控制命令

    + +

    通过运行"mplayer -input cmdlist"你可以得到一个完整的已知命令的列表

    + + +

    3.2.3 用LIRC控制

    + +

    Linux红外遥控 -- 使用一个容易制作的home-brewn红外线接收器,(几乎)任意一个的遥控器然后就可以用它来控制你的Linux box了! +更多内容见www.lirc.org

    + +

    如果你已安装了lirc-package,configure将自动检测到它。如果一切顺利,MPlayer在启动时将显示 +"Setting up lirc support..."之类的信息。如果发生错误它将会显示。如果它不显示关于LIRC的任何信息则对LIRC的支持没有编译。就是这样:-)

    + +

    MPlayer的程序名是 -- 嗯,让我想想看 -- 'mplayer'。你能使用任何mplayer命令甚至传递超过一种命令只要用\n分开他们。 +不要忘记当有意义的时候(搜索,音量等等),在.lircrc中开启repeat标记。这是我的.lircrc的摘录:

    + +
    +begin
    +     button = VOLUME_PLUS
    +     prog = mplayer
    +     config = volume 1
    +     repeat = 1
    +end
    +
    +begin
    +    button = VOLUME_MINUS
    +    prog = mplayer
    +    config = volume -1
    +    repeat = 1
    +end
    +
    +begin
    +    button = CD_PLAY
    +    prog = mplayer
    +    config = pause
    +end
    +
    +begin
    +    button = CD_STOP
    +    prog = mplayer
    +    config = seek 0 1\npause
    +end
    +
    + +

    如果你不喜欢lirc-config文件的标准位置(~/.lircrc)使用-lircconf <filename>选项指定别的文件。

    + + +

    3.2.4 Slave方式

    + +

    Slave方式把允许你为MPlayer建立简单的frontend。当它开启(用-slave选项)时MPlayer +将从stdin读取用new line(\n)分开的命令。

    + + +

    3.3 网络或管道的流媒体

    + +

    MPlayer支持通过HTTP或者MMS协议播放网络上的文件。

    + +

    只要直接把URL地址加到命令行中就可以进行播放。MPlayer也支持http_proxy环境变量, +并且在可能的情况下使用代理。也可以强行指定使用代理:

    + +

    mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf

    + +

    MPlayer能从stdin(不称为管道)输入。例如这样能从FTP上播放:

    +

      wget ftp://micorsops.com/something.avi -O - | mplayer -

    + +

    注:当使用网络播放功能时推荐打开cache功能:

    + +

      wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -

    + + +

    4. FAQ部分

    + + +

    5. CD与DVD部分

    + + +

    6. 移植

    + + +

    6.1 Debian安装包的制作

    + +

    为了制作安装包,下载cvs版本,或者.tgz和并把它解压缩,然后进入程序的目录:

    + +
    +    cd main
    +    fakeroot debian/rules binary
    +
    + +

    (... mplayer检测软硬件, 编译自己然后.. ) + dpkg-deb: building package 'mplayer' in '../mplayer_0.90-1_i386.deb'.

    + +

    现在,成为root,然后:

    + +
    +    dpkg -i ../mplayer_0.90-1_i386.deb as root.
    +
    + +

    你将会看到下面这样的信息:

    + +
    +	eyck@incubus:/src/main$ sudo dpkg -i ../mplayer_0.90-1_i386.deb
    +	Password:
    +	(Reading database ... 26946 files and directories currently installed.)
    +	Preparing to replace mplayer 0.50-1 (using ../mplayer_0.90-1_i386.deb)
    +	Unpacking replacement mplayer ...
    +	Setting up mplayer (0.90-1) ...
    +
    + + +

    6.2 FreeBSD

    + +

    为编译它你需要GNU make(gmake,/usr/ports/devel/gmake),本地的BSD make不能正常工作。

    + +

    为了运行MPlayer你将需要打开"options USER_LDT"重新编译内核(除非你使用-CURRENT,这一项在其中是默认的)。 +如果你有支持SSE的CPU也用"options CPU_ENABLE_SSE"选项来使用它(需要FreeBSD-STABLE,或者使用内核补丁)。

    + +

    如果MPlayer报告"CD-ROM Device '/dev/cdrom' not found!",那么请做一个符号链接: +ln -s /dev/(your_cdrom_device) /dev/cdrom

    + +

    目前对FreeBSD没有DVD支持。

    + +

    6.3 Solaris

    + +

    MPlayer在Solaris 2.6或者更新的系统上应该能够正常运行。

    + +

    AVI文件的回放在Solaris x86上的效果最好,因为在x86平台上你可以选择使用win32 codecs,或者使用MMX/MMX2/3DNow等指令集 +来播放MP3/DivX/DVD或者其他什么。在Solaris SPARC上,你将发现许多AVI文件的视频和/或者音频playback无法正常播放, +因为它们的视频与音频codecs使用Win32 DLL的不可用的。然而,DivX/OpenDivX电影应该可以使用libavcodec播放。

    + +

    UltraSPARC上,MPlayer利用他们的VIS扩展(相当于MMX)的优势,目前只应用于libmpeg2, +libvo以及libavcodec ,但mp3lib没有。你能在400MHz CPU上观看VOB文件。你需要安装mLib

    + +

    为编译它你需要GNU make(gmake,/opt/sfw/gmake),native的Solaris make不能正常工作。你用Solaris的make代替GNU make时的典型的错误信息为:

    + +
    +   % /usr/ccs/bin/make
    +   make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
    +
    + +

    在Solaris SPARC上,你需要GNU C/C++编译器;GNU C/C++编译器是否设置使用GNU汇编程序没有什么关系。

    + +

    在Solaris x86上,你需要GNU汇编程序和GNU C/C++编译器,设置使用GNU的汇编程序!在x86平台上的mplayer代码大量使用MMX,SSE和3DNOW! +指令集,使用Sun的汇编程序/usr/ccs/bin/as不能编译通过。

    + +

    configure脚本将试图查找你的"gcc"命令使用的汇编程序(如果自动检测失败,使用"--as=/whereever/you/have/installed/gnu-as" +选项告诉configure脚本你的系统的GNU的"as"在哪里)。

    + +

    在Solaris x86系统上使用没有GNU汇编程序的GCC时configure的出错信息为:

    + +
    +   % configure
    +   ...
    +   Checking assembler (/usr/ccs/bin/as) ... , failed
    +   Please upgrade(downgrade) binutils to 2.10.1...
    +
    + +

    (解决方法:安装并且使用配置了"--with-as=gas"的gcc)

    + +

    当不使用GNU as的GNU C编译程序时的典型出错信息是:

    + +
    +   % gmake
    +   ...
    +   gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
    +	-fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
    +   Assembler: mplayer.c
    +   "(stdin)", line 3567 : Illegal mnemonic
    +   "(stdin)", line 3567 : Syntax error
    +   ... more "Illegal mnemonic" and "Syntax error" errors ...
    +
    + +

    关于DVD支持你必须安装打过补丁的libcss。补丁在: +http://www.tools.de/solaris/mplayer/

    + +

    因为Solaris8 x86的两个bug,不能可靠地播放容量>4GB的DVD:

    + + + +

    在使用UltraSPARC CPU的Solaris上,对有些耗时的操作使用CPU的VIS指令能获得额外的速度提升。 +在MPlayer中通过Sun的mediaLib中的函数使用VIS加速功能。

    + +

    mediaLib的VIS加速功能用于mpeg2视频解码和视频输出驱动的颜色转换。

    + + +

    6.4 StrongARM

    + +

    据报告MPlayer可以在StrongARM上编译。使用下列命令:

    + +
    +  ./configure --target=arm-linux --disable-css --with-x11libdir=/usr/arm/lib
    +	      --with-x11incdir=/usr/arm/lib --disable-gcc-checking
    +
    + + +

    6.5 Silicon Graphics / IRIX

    + +

    据称可以工作正常。你可能必须使用SGIao驱动。谁有较确切的信息?

    + + +

    6.6 QNX

    + +

    能工作。你需要下载SDL for QNX并安装它。然后使用-vo sdl:photon-ao sdl:nto +选项运行MPlayer,速度应该很快。

    + +

    -vo x11输出将比Linux更加缓慢,因为QNX只有一个十分缓慢的的X仿真。使用SDL。

    + + +

    6.7 OpenBSD

    + +

    为编译它你需要GNU make(gmake,/usr/port/devel/gmake),native的BSD make不能正常工作,还要一个最近的binutils(包括objcopy)。

    + +

    因为gas的版本不同(relocation vs mmx)的限制,你需要分两步编译: 首先确保non-native的汇编程序当前在PATH中并运行gmake -k, +然后在确保使用native版本情况下运行gmake

    + +

    要想MPlayer使用Win32 DLL你要用"option USER_LDT"重新编译内核。

    + +

    如果MPlayer报告找不到'/dev/cdrom'或'/dev/dvd',请做一个符号链接,例如ln -s /dev/rcd0c /dev/dvd

    + +

    我们中不那么hardcore的黑客可以想要使用移植版本(/usr/port/x11/mplayer)。

    + +

    6.8 Cygwin

    + +

    你必须到MPlayer的目录下,拷贝或者symlinketc/cygwin-inttypes.h/usr/include/inttypes.h来使 +MPlayer顺利编译。否则,它将报告找不到intypes.h

    + + +

    附录A -- 邮件列表

    + +

    有一些关于MPlayer的公开的邮件列表。用户能在下列的地址完成订阅:

    + + + +

    注意:在列表上的语言必须是英语,除非另有明确说明。请不要使用其它语言发送信息!

    + +

    注意:http://www.mplayerhq.hu/cgi-bin/htsearch有可供检索的邮件列表文档。 + + +

    附录B -- 如何报告bug

    + +

    附录C -- 已知bug

    + +

    特殊的系统或CPU相关的bug或问题:

    + + +

    各种各样A-V同步和其它音频问题:

    + +一般的音频延迟或者急跳声音(对所有或者大部分文件存在): + + +特定的某一个或一些文件的音频延迟/不同步: + + +完全没有声音: + + +完全没有图画(全灰/全绿窗口): + + +

    视频输出问题:

    + +

    首先注意: -fs -vm和-zoom选项只是推荐,(目前)不是所有驱动器都支持。因此,如果它不起作用那不是bug。 +只有少数驱动支持缩放,对x11或dga不要指望这个。

    + +

    OSD与字幕闪烁:
    +-- x11驱动器: 抱歉,它现在不能被修正
    +-- xv驱动器: 使用-double选项

    + +

    使用mga_vid时的绿色图象(-vo mga/-vo xmga):
    +-- mga-vid没有正确检测你的显卡的显存大小,使用mga_ram_size选项重新载入

    + + +

    附录D - MPlayer skin的格式

    + + + +

    附录E - 开发者的痛楚

    + + + diff --git a/DOCS/Chinese/encoding.html b/DOCS/Chinese/encoding.html new file mode 100644 index 0000000000..1424c455aa --- /dev/null +++ b/DOCS/Chinese/encoding.html @@ -0,0 +1,274 @@ + + + + + 编码 -- MEncoder -- Linux的电影编码器 + + + + + + + +

    2.4 用MEncoder编码

    + +

    MEncoder(MPlayer的电影编码器)是一个简单的电影编码器,设计用来把MPlayer可播放的电影(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/ +VIV/FLI/RM/NUV/NET)编码成其它MPlayer可播放的格式(见下面)。它能以各种各样的编码格式进行编码,像DivX4(1或者2 pass),libavcodec, +PCM/MP3/VBR MP3音频。同时也有强大的插件系统来操控视频。

    + + +

    2.4.1 编缉

    + + + +

    准备完毕。正如你可能知道的,其它编码的工具需要安装avifile的库。MEncoder根本不需要。

    + + +

    2.4.2 MEncoder特性

    + + + +

    计划中的特性:

    + + + + +

    2.4.2.1 编码2或者3-pass的DivX4

    + +

    2-pass编码:名称来自这种方法实际把文件编码两次的事实。第一次编码(又称为pass)创建一些临时性的几兆的文件(*.log), +先不要删除他们(你可以把AVI删了)。在第二次pass中,将使用临时文件的比特率数据创建输出文件,最后产生的文件将有好得多的图象质量。如果这是你第一次听到这个, +你应该在网上查阅一些可用的指南。

    + +

    这个例子演示如何把DVD编码成为2-pass DivX4 AVI。只需要两个命令:
    +     rm frameno.avi -- 删掉这个文件,它可能来自以前的3-pass编码(它会干扰当前这个)
    +     mencoder -dvd 2 -lavcopts + -vcodec=mpeg4:more_options -o movie.avi -pass 1
    +     mencoder -dvd 2 -lavcopts vcodec=mpeg4:more_options + -o movie.avi -pass 2

    + +

    3-pass编码:这是2-pass编码的扩展,对音频的编码使用一个单独的pass。这种方法提供推荐视频比特率的估计以使之能够适合CD的容量。同时, +不同于2-pass方式,音频仅仅被编码一次。示例:

    + +
      +
    1. 删除冲突的临时性的文件: +

      rm frameno.avi

    2. +
    3. 第一次pass: +

      mencoder <file/DVD> -ovc frameno -o frameno.avi

      +

      将创建一个只有音频的avi文件,包含要求的音频流。不要忘记-lameopts,如果需要的话设置它。如果你对一部长的电影进行编码, +MEncoder在这个pass结束之后,将对于650Mb,700Mb,和800Mb的目标大小打印推荐的比特率值。

    4. +
    5. 第二次pass: +

      mencoder <file/DVD> -oac copy -pass 1 + -ovc divx4 -divx4opts br=<bitrate>

      +

      又称为DivX4视频编码的第一次pass。可以选择指定在上一步结束时MEncoder打印的视频比特率。

    6. +
    7. 第三次pass: +

      mencoder <file/DVD> -oac copy -pass 2 + -ovc divx4 -divx4opts br=<bitrate>

      +

      又称为DivX4视频编码的第二次pass。可以选择指定在上一步结束时MEncoder打印的视频比特率。在这次pass中,用frameno.avi +中的音频将被插入到目的文件中..这就全部搞定了!

    8. +
    + +

    3-pass编码的例子:

    + +

        rm frameno.avi -- 移去这个文件,它可能来自以前的3-pass编码(它会干扰当前这个)
    +     mencoder -dvd 2 -ovc frameno + -o frameno.avi
    +     mencoder -dvd 2 + -lavcopts vcodec=mpeg4:more_options -oac copy -o movie.avi -pass 1
    +     mencoder -dvd 2 + -lavcopts vcodec=mpeg4:more_options -oac copy -o movie.avi -pass 2

    + +

    使用内部的libavcodec控制器的2或者3-pass编码:你可以选择使用libavcodec内部的2或者3-pass方式, +它在使用libavcodec时可能能提供比使用外部的DivX4制作的2-pass控制器更好的最终比特率的精确度。

    + + + + +

    2.4.2.2 重新缩放电影

    + +

    把电影图象的尺寸重新设置的需要经常出现。原因可能很多,例如减小输出文件的大小,把SVCD编码为到DivX。提取的DVD多半需要重新缩放,例如一个4:3的 +DVD应该是640x480,当你希望它合适1张CD,并且同时还有不错的质量的时候。SVCD是480x480的尺寸,而他们的头部包含播放器应该使用的长宽比(例如: +480x480 + 4:3 = 640x480)。 +然而当编码成为AVI(DivX)文件时,你必须了解AVI的头部不存储这个值。这样,唯一的解决方法是重新缩放。

    + +

    缩放过程由'scale'视频滤镜处理:-vop scale=X:Y。其质量由-sws选项控制。如果它没有指定, +MEncoder将使用0:快速二次线性。

    + +

    用法:
    +     mencoder sample-svcd.mpg -lavcopts + vcodec=mpeg4:more_options -vop scale=640:480 -sws 2 -o + output.avi

    + + +

    2.4.2.3 流复制

    + +

    MEncoder能用两种方式处理输入流:编码或者复制他们。这部分是关于复制的。

    + + + + +

    2.4.2.4 修复索引或者交错损坏的AVI

    + +

    最容易的事情。我们简单地复制视频和音频流,并用MEncoder产生索引。当然这不能修复视频和/或者音频流中可能的错误。 +这同样也可以修复交错损坏的文件, +使它们不再需要-ni选项。

    + +

    命令:mencoder -idx input.avi -ovc copy -oac copy -o output.avi

    + + +

    2.4.2.5 用libavcodec编码器族编码

    + +

    libavcodec提供简单编码许多有趣的视频和音频格式(目前其音频编码器还不支持)的方法。 +你能编码下列的编码格式:

    + + + +

    第一个列包含应该传给vcodec配置的编码格式的名称,比如:-lavcopts vcodec=msmpeg4

    + +

    例如,对于使用MJPEG压缩:
    +     mencoder -dvd 2 -o title2.avi -ovc lavc + -lavcopts vcodec=mjpeg

    + + +

    2.4.2.6 从多个图象文件(JPEG,PNG或TGA)的输入编码

    + +

    MEncoder具有从一个或多个JPEG,PNG或TGA文件创建电影的能力。通过简单的framecopy它能创建MJPEG(Motion JPEG), +MPNG(Motion PNG )或MTGA(Motion TGA)文件。

    + +处理过程的解释: + +
      +
    1. MEncoder使用libjpeg解码输入图像(当解码PNG时将使用libpng)。
    2. + +
    3. MEncoder接着把解码后的图象喂给所选的的视频压缩器(DivX4,Xvid,ffmpeg msmpeg4等等)。注意因为PNG解码器 +目前只能输出RGB格式,所以不能用于要求YUV输入的编码格式,像DivX4或者ffmpeg的msmpeg4之类。
    4. +
    + +

    例子

    + +

    -mf选项的解释能在全局选项部分和manpage中被找到。

    + +

    用当前目录中的所有JPEG文件创建DivX4文件:
    +   mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o + output.avi

    + +

    用当前目录中的一些JPEG文件创建DivX4文件:
    +   mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o + output.avi

    + +

    用当前目录中的所有JPEG文件创建Motion JPEG(MJPEG)文件:
    +   mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy + -o output.avi

    + +

    用当前目录中的所有PNG文件创建一个非压缩的文件:
    +   mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw -o + output.avi

    + +

    用当前目录中的所有PNG文件创建Motion PNG(MPNG)文件:
    +   mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy + -o output.avi

    + +

    用当前目录中的所有TGA文件创建Motion TGA(MTGA)文件:
    +   mencoder \*.tga -mf on:w=800:h=600:fps=25:type=tga -ovc copy + -o output.avi

    + + +

    2.4.2.7 DVD字幕提取为Vobsub文件

    + +

    MEncoder有把DVD字幕提取到Vobsub格式的文件的能力。包括以.idx.sub结尾的一对 +文件而且通常打包在一个单一的.rar文档中。MPlayer能使用-vobsub-vobsubid +选项播放它们。

    + +

    你使用-vobsubout选项规定输出文件的基名称(就是不包括.idx或者.sub的后缀)和 +-vobsuboutindex指定字幕在输出文件中的索引号。

    + +

    如果输入不是来自DVD你必须使用-ifo来指明构造.idx文件需要的.ifo文件。

    + +

    如果输入不是来自DVD而且你也没有.ifo文件你将需要使用-vobsubid选项让它了解在.idx +文件中放置什么样的language id。

    + +

    如果.idx.sub文件已经存在,每次运行将追加运行获得的字幕。因此,你应该在开始之前删掉所有东西。

    + +

    例子

    + +

    在进行3-pass编码的同时从DVD复制两份字幕
    +   rm subtitles.idx subtitles.sub
    +   mencoder -dvd 1 -vobsubout subtitles -vobsuboutindex 0 + -sid 2 -o frameno.avi -ovc frameno
    +   mencoder -dvd 1 -oac copy -ovc divx4 -pass 1
    +   mencoder -dvd 1 -oac copy -ovc divx4 -pass 2 -vobsubout + subtitles -vobsuboutindex 1 -sid 5

    + +

    从一个MPEG文件中复制法语字幕
    +   rm subtitles.idx subtitles.sub
    +   mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles + -vobsuboutindex 0 -vobsuboutid fr -sid 1

    + + +

    2.4.3 可用的选项

    + +

    MEncoder可用的选项和例子的完全列表,请参见manpage。

    + + + diff --git a/DOCS/Chinese/faq.html b/DOCS/Chinese/faq.html new file mode 100644 index 0000000000..8d2321262e --- /dev/null +++ b/DOCS/Chinese/faq.html @@ -0,0 +1,586 @@ + + + + + FAQ -- MPlayer -- Linux的电影播放器 + + + + + + + + +

    5. FAQ

    + + + + +

    5.1 编译

    + +
    + +
    Q:编译停止并出现类似这样的出错信息: +
    +    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.
    +    
    +
    +
    A:这是gcc 3.0.4的一个已知的bug,升级到3.1就可以解决问题。如何安装gcc参阅gcc 2.96一节。
    +
     
    + +
    Q:Configure结束时出现这样的文字,MPlayer无法编译!
    + "Your gcc does not support even i386 for '-march' and '-mcpu'." +
    +
    A:你的gcc没有正确的安装,细节需要查看config.log文件。
    +
     
    + +
    Q:"No such file or directory"是什么意思?
    +
    A:有可能真的没有这样文件或目录。
    +
     
    + +
    Q:gcc2.96有什么问题?
    +
    A:我们强烈反对使用gcc 2.96!
    + 细节参见这个文件了解为什么Red Hat发布gcc 2.96,以及它有什么问题。如果你仍然 +确实确实确实确实想要使用它,总是使用最新的版本并且在configure的时候加上--disable-gcc-checking选项。记住是你自己选择这条路的。 +一定不要报告bug,一定不要到邮件列表上寻求帮助。如果你遇到问题我们将提供任何支持。
    +
     
    + +
    Q:好极了,那么我使用Red Hat/Mandrake的gcc 3.0.1,我没问题!
    +
    A:不,因为那些编译器同样有问题。为了了解当前的编译器对MPlayer的支持状况,参见安装一节。
    +
     
    + +
    Q:我试图编译MPlayer,但是我得到这样的输出: +
    +    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
    +    
    +
    +
    A:把你的glibc升级到最新的发行版。对于Mandrake,使用2.2.4-8mdk。
    +
     
    + +
    Q:... gcc 2.96 ... (是的,有些人还在为gcc 2.96上火!)
    +
    A:我们引用A'rpi发送到mplayer-users邮件列表的一封 +邮件('ideg'的意思将在下面解释): +
    +

    And we have idegs. And our idegcounter overflowed again and again.

    + +

    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.

    + +

    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.

    + +

    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.

    + +

    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.

    + +

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

    + +

    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.

    +
    +
    +
     
    + +
    Q:SDL输出不能工作或者编译。问题在...
    +
    A:SDL 1.2.x经过测试能够工作另外SDL 1.1.7+可能能工作。任何以前的版本肯定不能工作。因此如果你选择使用这样的版本,是你自己的责任。
    +
     
    + +
    Q:我在编译SDL支持的时候仍然有问题。gcc说什么"undefined reference to `SDL_EnableKeyRepeat'"。现在怎么办?
    +
    A:你把SDL库装在哪里? 如果你装在/usr/local(默认目录)中那么编辑顶层的config.mak并在"X_LIBS="之后添加"-L/usr/local/lib"。现在打make。你搞定了!
    +
     
    + +
    Q:不能编译,找不到uint64_t inttypes.h之类的东西...
    +
    A:把etc/inttypes.h复制到MPlayer目录下(cp etc/inttypes.h .)然后再试一次...
    +
     
    + +
    Q:我在Pentium III上运行Linux但是./configure 没有找到SSE...
    +
    A:只有2.4.x的内核支持SSE(或者试试2.2.19或更新的版本,但准备好出问题)。
    +
     
    + +
    Q:我有G200与G400,我如何编译使用mga_vid驱动?
    +
    A:阅读mga_vid文档
    +
     
    + +
    Q:MPlayer有rpm/deb/...之类的安装包吗?
    +
    A:你能自己制作.deb安装包,查阅Debian安装包的制作一节。 +我们网站的下载页上有官方的Red Hat的RPM包的下载链接。
    +
     
    + +
    Q:在'make'时,MPlayer报告没有X11库。我不理解,我确实装了X!?
    +
    A:...但是你没有装X的开发包。或者没有正确安装。Red Hat下面它叫XFree86-devel*,Debian下面是xlibs-dev。 +也检查是否存在/usr/X11/usr/include/X11的符号链接(在Mandrake系统上可能有这个问题)。 +他们用下列命令创建:
    +     $ ln -sf /usr/X11R6 /usr/X11
    +     $ ln -sf /usr/X11R6/include/X11 /usr/include/X11
    + 你的发行版可能不是文件系统层次标准
    +
     
    + +
    Q:我不能编译SVGAlib。我使用2.3/2.4的内核...
    +
    A:你必须编辑SVGAlib的Makefile.cfg把BACKGROUND = y注释掉。
    +
     
    + +
    Q:我的MPlayer编译了libdvdcss/libdivxdecore的支持,但是当我试图起动它时,它说:
    + > error while loading shared libraries: lib*.so.0: cannot load + shared object file: No such file or directory
    + 我检查了文件,它确实在/usr/local/lib里面...
    +
    A:在/etc/ld.so.conf里添加/usr/local/lib然后运行ldconfig
    +
     
    + +
    Q:Hmm,奇怪。我加载mga_vid.o内核模块后在log中找到这个:
    + Warning: loading mga_vid.o will taint the kernel: no license
    +
    A:最新的内核modutils要求一个标明许可证的标记(主要避免内核hackers调试非开源的驱动)。升级你的内核, +modutils和MPlayer
    +
     
    + +
    Q:编译MEncoder过程中,在连接时出现segfaults!
    +
    A:这是连接程序的问题。把binutils升级应该有用(2.11.92.*或者更新版本应该不错)。由于它不是我们的问题, +请一定不要报告!
    +
     
    + +
    Q:MPlayer在pthread check时因为segmentation fault而崩溃!
    +
    A:chmod 644 /usr/lib/libc.so
    +
     
    + +
    Q:我想在Minix上编译MPlayer
    +
    A:我也想。:)
    + +
    + + +

    5.2 一般问题

    + +
    + +
    Q:我能同时运行多个MPlayer实例吗?
    +
    A:是的。有些视频输出的驱动像xv,dga或者(x)mga是唯一的,所以你将不能够运行超过一个使用这样的视频输出驱动的MPlayer实例。 +音频驱动也在不是很严重的程度上存在这种问题。并非所有的驱动都允许在同样的设备上播放多重流。
    +
     
    + +
    Q:在左上角中有一个计时器。我怎么能去掉它?
    +
    A:按o或者使用-osdlevel选项。
    +
     
    + +
    Q:-xy或者-fs选项对x11驱动(-vo x11)不起作用...
    +
    A:它能起作用,但你必须用-zoom选项明确指定使用软件缩放(十分缓慢)。你最好是使用XF86VidMode支持: +你必须指定-vm-fs选项,然后就搞定了。确保在你的XF86Config文件中有正确设定了modelines,并且尝试使用 +DGA驱动并且SDL的DGA驱动。它快得多。如果SDL的DGA能工作就用它,它还要更快。
    +
     
    + +
    Q:状态行上的数字的是什么意思?
    +
    A:例如: + A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49% + + 他们中大多数是为了调试的,将在适当时候去掉。
    +
     
    + +
    Q:我不想要他们出现怎么办?
    +
    A:使用-quiet选项并阅读man page。
    +
     
    + +
    Q:为什么有些文件的视频输出的cpu占用是零(0%)?
    +
    A1:它不是零,但它是由解码器调用的不能被单独测量。你应该试着先用-vo null播放文件然后用-vo ...播放, +检查它们的不同来查看视频速度。
    +
    A2:你使用了直接渲染,那是由解码器自己渲染显存。在这种情况下,解码占用的百分比也包含了显示占用的百分比。
    +
     
    + +
    Q:出现关于在/usr/lib/win32/下找不到文件的错误...
    +
    A:从我们的FTP站点下载Win 32解码器 +(avifile的解码器包的DLL集不同)并安装它。
    +
     
    + +
    Q:有关于MPlayer的邮件列表吗?
    +
    A:有的。看我们的主页的信息页的底部来订阅。
    +
     
    + +
    Q:当我试图播放我最喜爱的视频时,我发现一个讨厌的bug!我应该报告谁?
    +
    A:请阅读bug报告指导并遵照上面的指令做。
    +
     
    + +
    Q:我用...解码器播放文件的时候有问题。我能使用它们吗?
    +
    A:查阅解码器状态,如果它不包含你的解码器, +阅读解码器文件,特别是解码器导入HOWTO然后联系我们。
    +
     
    + +
    Q:Umm,"IdegCounter"是什么东东?
    +
    A:匈牙利语和英语的结合。匈牙利语"Ideg"是神经质的意思,发音类似于“ydaegh”。它最初用来度量A'rpi神经质, +在一些CVS的代码(umm)“神秘的”消失之后;)
    +
     
    + +
    Q:"Faszom(C)ounter"又是什么?
    +
    A:“Fasz”是你不会想要知道的匈牙利词汇,其他的跟MPlayer开发者们的邪恶的脑袋有关。
    +
     
    + +
    Q:LIRC不工作,因为...
    +
    A:你明确你使用的是mplayer而不是mplayer-lirc吗? 注意,mplayer-lirc +使用了很长时间,包括0.60的发行版,但是它最近又变成mplayer了。
    +
     
    + +
    Q:字幕非常不错,是我见过的最漂亮的,但它们降低播放速度! 我想它是不可能的了...
    +
    A:在运行./configure之后,编辑config.h并将#undef FAST_OSD换成 +#define FAST_OSD。然后重新编译。
    +
     
    + +
    Q:onscreen display(OSD)不停的闪烁!
    +
    A:你使用单缓冲的vo驱动(x11,xv)。对于xv,使用-double选项。也试试-vop expand
    +
     
    + +
    Q:libavcodec这种东东到底是什么?
    +
    A:参见libavcodec一节。
    +
     
    + +
    Q:但是Configure告诉我"Checking for libavcodec ... no"!
    +
    A:你需要从FFmpeg的CVS中获得libavcodec。阅读libavcodec一节的指令。
    +
     
    + +
    Q:Icewm的任务条不断的挡住全屏幕的电影!
    +
    A:这不应该再发生了,但如果它确实仍然发生,使用-icelayer选项并向 +mplayer-users邮件列表报告。
    +
     
    + +
    Q:我不能访问GUI菜单。我按下右键,但我不能访问任何菜单项!
    +
    A:你使用的是FVWM吗? 试试下列方法:
    + Start -> Settings -> Configuration -> Base Configuration
    + 把"Use Applications position hints"设为"Yes"。
    +
     
    + +
    Q:我能在后台中运行MPlayer吗?
    +
    A:用法:mplayer <options> <filename> < /dev/null &
    + +
    + + +

    5.3 回放问题

    + +
    + +
    Q:我能播放某些AVI文件但是我听不到声音并且有这种出错信息: +
    +    Detected audio codec: [divx] afm:4 (DivX audio (WMA))
    +    Requested audio codec family [divx] (afm=4) not available (enable it at
    +    compile time!)
    +    
    +
    +
    A:可能文件的音频使用了一个不是MPlayer本地支持的解码器。按照README或者 +安装一节中的指示安装Win32解码器包。
    +
     
    + +
    Q:...avifile/aviplay能工作但MPlayer不能。
    +
    A:MPlayer不是avifile。它们之间唯一的共同之处Win32 DLL装载器。codecs(DLL)集,同步,信号分离等等完全不同 +所以不应该被比较。如果什么东西能用aviplay播放并不意味着MPlayer能工作,反之亦然。
    +
     
    + +
    Q:播放AVI文件时音频不同步。
    +
    A:试试-bps-nobps选项。如果还没有改善,阅读 +这个并把文件上载到FTP上。
    +
     
    + +
    Q:MPlayer在使用l3codeca.acm的时候因为一些错误而退出。
    +
    A:检查ldd /usr/local/bin/mplayer的输出。如果它包含
    +     libc.so.6 => /lib/libc.so.6 (0x4???????)
    + "?"可以是任意数字表示没有问题,错误不在这里。如果它是:
    +     libc.so.6 => /lib/libc.so.6 (0x00??????)
    + 那就表示你的内核/libc有问题。可能你使用了一些安全补丁(例如Solar Designer的OpenWall补丁)强迫把库加载到很低的内存地址。 +因为l3codeca.acm是不可重新定位的DLL,它必须被加载到0x00400000,我们没法改变它。你应该使用没有打补丁的核心, +或者使用MPlayer-afm 1选项禁用l3codeca.acm。
    +
     
    + +
    Q:我的电脑播放分辨率640x300而且是立体声的mp3的M$ DivX AVI文件时非常慢。当我使用-nosound选项时,一切正常(但没有声音)。
    +
    A:你的机器太慢或者你的声卡驱动坏了。查阅文档看你是否能提高性能。
    +
     
    + +
    Q:MPlayer由于"MPlayer interrupted by signal 4 in module: decode_video"而崩溃。
    +
    A:尝试在你用来编译MPlayer的机器上运行它。或者重新编译打开运行时CPU检测功能(./configure --enable-runtime-cpudetection)。 +如果没有使用上面提到的特性,不要在与编译它不同的CPU上使用MPlayer
    +
     
    + +
    Q:我有个关于[your window manager]跟xv/xmga/sdl/x11模式下全屏的问题...
    +
    A:读取我们的bug报告指导并送一个正确的bug报告给我们
    +
     
    + +
    Q:我播放MPEG文件时出现这样的错误: Can't find codec for video format 0x10000001!
    +
    A:你的~/.mplayer/下的codecs.conf的版本太旧。用/etc/下面的文件升级它。
    + 或者你的配置文件中包含vc=选项或者类似东西。
    +
     
    + +
    Q:当KDE下的运行MPlayer我只看到一个黑色的屏幕什么都没有。在大约一分钟之后才开始播放视频。
    +
    A:KDE的arts守护进程阻塞了声卡设备。一直等到视频开始或者在控制中心中禁用arts。如果你想使用arts的音频, +将音频输出指定为我们本地的arts音频驱动-ao arts)。如果它失败或者没有被编译进来,尝试SDL +(-ao sdl)并且确保你的SDL能处理arts的音频。还有另一个选择是用artsdsp运行MPlayer
    +
     
    + +
    Q:我有一个AVI文件,当用-vc odivx播放时时,出现灰色屏幕,用-vc divx4时,出现绿色屏幕。
    +
    A:这不是DivX文件,而是M$ MPEG4v3。更新你的codecs.conf。
    +
     
    + +
    Q:我播放电影时遇到视频音频不同步和/或者MPlayer崩溃并出现下列信息:
    + DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
    +
    A:这可能有很多原因。 +
    +
     
    + +
    Q:我有个MJPEG文件能用其它播放器播放但是MPlayer只显示一个黑色的图象。
    +
    A:在codecs.conf中禁用Windows DLL,或者使用-vc ffmjpeg选项(为此你需要为MPlayer编译libavcodec支持)。
    +
     
    + +
    Q:当我试图从我的电视选台器截取时,它能工作,但是颜色很奇怪。用其它程序没问题。
    +
    A:你的卡片有可能错误报告了它的色彩空间容量。试试YUY2而不是缺省的YV12(见电视输入文档)。
    +
     
    + +
    Q:每次我开始播放是,都遇到这种信息,但一切似乎都正常:
    + Linux RTC init: ioctl (rtc_pie_on): Permission denied
    +
    A:你需要root权限或者一个特殊设定的内核使用计时器代码。细节参见文档的RTC一节
    +
     
    + +
    Q:我的同步有问题。一些AVI我能正常播放,另外一些却是以双倍速度播放!
    +
    A:你的声卡/驱动buggy。很有可能它的固定在44100Hz,而你试图播放22050Hz的音频的文件。试试resample插件。
    +
     
    + +
    Q:我播放所有WMV (或者其它.. )文件时都只有一个绿色/灰色的窗口和声音! MPlayer报告:
    + Detected video codec: [null] drv:0 (NULL codec (no decoding))
    +
    A:更新你codecs.conf
    +
     
    + +
    Q:我用我的笔记本播放文件时得到十分奇怪的CPU百分值(太大了)。
    +
    A:这是你的笔记本的电源管理/节能系统(BIOS,不是内核)的影响。起动你的笔记本之前插上外部电源。
    +
     
    + +
    Q:当我以root权限在我的笔记本上运行MPlayer时,音频与视频完全不同步。当我作为普通用户运行它时,它工作正常。
    +
    A:这还是电源管理的结果(见上面)。起动你的笔记本之前插上外部电源或者使用-nortc选项。
    + +
    + + +

    5.4 视频与音频驱动问题(vo/ao)

    + +
    + +
    Q:我播放视频的时候没有声音并且得到类似这样的出错信息: +
    +    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 -> NOSOUND
    +    Audio: no sound!!!
    +    Start playing...
    +    
    +
    +
    A:你是运行的KDE或者GNOME,并且起动了arts或者esd音频守护进程吗? 试试禁用音频守护进程,或者使用-ao arts +选项让MPlayer使用arts。
    +
     
    + +
    Q:DGA驱动器怎么样了? 我找不到它!
    +
    A:./configure会自动检测你的DGA驱动。如果-vo help没有显示DGA,那你的X装的有问题。 +尝试./configure --enable-dga并且读取相关文档。或者,使用-vo sdl:dga +选项试试SDL的DGA驱动。
    +
     
    + +
    Q:很好,-vo help显示有DGA驱动,但是它抱怨权限。帮帮我!
    +
    A:它只能以root权限工作! 这是DGA的限制。你应该成为root(su -),然后再试一次。另一个解决方法是为 +MPlayerSUID root,但是这种方法不被推荐!
    +     chown root /usr/local/bin/mplayer
    +     chmod 755 /usr/local/bin/mplayer
    +     chmod +s /usr/local/bin/mplayer
    +
    + 警告:安全风险
    + 这是一个很大的安全风险!永远不要在除了你之外还有人可以使用的服务器上这样做,因为他们能通过SUID root的 +MPlayer获得root权限。你被警告过了。 +
    +
    +
     
    + +
    Q:当使用Xvideo时,我的Voodoo 3/Banshee报告说:
    + X Error of failed request: BadAccess (attempt to access private + resource denied)
    +   Major opcode of failed request: 147 (MIT-SHM)
    +   Minor opcode of failed request: 1 (X_ShmAttach)
    +   Serial number of failed request: 26
    +   Current serial number in output stream:27
    +
    A:XFree86 4.0.2/4.0.3的“tdfx”驱动有这个bug。已经被解决了 +bugfix #621 of the XFree86 4.1.0 CVS log解决。因此,升级到XFree86 4.1.0或者更新的版本。或者,要么是从 +DRI的主页下载(至少)0.6版本的DRI,要么使用CVS的DRI。
    +
     
    + +
    Q:OpenGL(-vo gl)输出不工作(锁死/黑色窗口/X11出错/...)。
    +
    A:你的OpenGL驱动不支持动态材质更换(glTexSubImage)。已知的是它在nVidia的二进制的家伙上不工作。同时也知道它在Utah-GLX/DRI +和Matrox G400显卡上能工作。Radeon显卡加DRI也行。其它显卡加DRI不行。它同样不能在3DFX显卡上工作,因为256x256材质大小限制。
    +
     
    + +
    Q:我有一块nVidia TNT/TNT2显卡,而我的电影的下面总有一个颜色奇怪的带子! 这个是什么故障?
    +
    A:这是nVidia二进制X驱动的一个bug。这些bug仅出现在TNT/TNT2显卡上,我们什么也干不了。要解决问题,升级到最新版本的nVidia二进制的驱动。 +如果仍然不行,对nVidia抱怨去吧!
    +
     
    + +
    Q:我使用nVidia XYZ显卡,当我单击显示GUI的显示窗口来触发GUI面板时,在我单击的地方出现一个黑色方块。我安装了最新的驱动。
    +
    A:没错,nVidia修正了上一个的错误(上面),并且引进了新的bug。让我们祝贺他们。更新:据 +nVidia说,这已经修正了。
    +
     
    + +
    Q:当我使用GUI时,如果使用SDL视频输出,会创建第二个视频窗口。
    +
    A:知道,目前还没有使GUI能使用SDL。
    +
     
    + +
    Q:啊世界真是残酷...! SDL只有x11输出,而不是xv
    +
    A:再试一次x11输出。现在尝试-vo x11 -fs -zoom。看到区别了?没有?!好,给你点启发:SDL的x11 +输出只要xv可用就会使用xv,你不必为它担心...注意:你使用-forcexv-noxv强制/禁用SDL使用xv
    + +
    + + +

    5.5 DVD回放

    + +
    + +
    Q:当播放DVD时,我遇到这个错误:
    + mplayer: ifo_read.c:1143: ifoRead_C_ADT_internal: Assertion + nfo_length / sizeof(cell_adr_t) >= c_adt->nr_of_vobs' failed.
    +
    A:这是已知的libdvdread 0.9.1/0.9.2的bug。使用libmpdvdkit,就在MPlayer的源代码中,并且缺省使用
    +
     
    + +
    Q:我能在我的Solaris下的可爱的SPARC上编译libdvdread和libdvdcss吗?
    +
    A:天知道...据说它能工作,所以请测试它并且提供反馈。也参阅libdvdread的文件及其主页。我们不是libdvdread的作者。使用libmpdvdkit, +就在MPlayer的源代码中,并且缺省使用。
    +
     
    + +
    Q:字幕怎么样? MPlayer能显示他们吗?
    +
    A:是。参见文档的DVD chapter部分。
    +
     
    + +
    Q:我怎么设置我的DVD光驱的地区代码? 我没有Windows!
    +
    A:使用regionset工具
    +
     
    + +
    Q:我一定需要(setuid) root/setuid fibmap_mplayer来播放DVD吗?
    +
    A:不,只用于老式的DVD支持。然而你必须有适当的DVD设备项目的权限(在/dev/里)。
    +
     
    + +
    Q:我在什么地方能找到libdvdread和libdvdcss包?
    +
    A:你不需要。使用libmpdvdkit,就在MPlayer的源代码中,并且缺省使用。无论如何,这些包能从 +Ogle site得到。
    +
     
    + +
    Q:可以单独播放/编码选择的chapter吗?
    +
    A:可以,试试-chapter选项。
    +
     
    + +
    Q:我的DVD回放慢的要死!
    +
    A:使用-cache选项(在man page中介绍)并尝试用hdparm工具为了DVD光驱开启DMA(在文档 +CD部分介绍)。
    + +
    + + +

    5.6 特性要求

    + +
    + +
    Q:如果MPlayer暂停之后我试图搜索或者按任意键,MPlayer会停止暂停。我愿意能够在暂停时在电影中搜索。
    +
    A:很难在不失去A/V同步的情况下实现这项功能。迄今为止所有尝试都失败了,但补丁是受欢迎的。
    +
     
    + +
    Q:我想要+/- 1帧来搜索而不是10秒。
    +
    A:这不会被我们实现。它曾被实现过,但是它弄乱了A/V同步。如果你愿意就实现它,并且发送补丁。不要要求它。
    +
     
    + +
    Q:哪里有Windows版本?
    +
    A:它还没有发行,并且将来也不会。看看Windows的情况(开源的ASF分析器,开源的ASF编码器等等)然后你就知道为什么了。 +我们不想进监狱。顺便说一下,你可以自己编译它,在Cygwin下。
    +
     
    + +
    + + +

    5.7 编码

    + +
    + +
    Q:我怎么编码?
    +
    A:读取MEncoder文件
    +
     
    + +
    Q:我怎么创建VCD?
    +
    A:试试TOOLS目录下的mencvcd脚本。使用它你能把DVD或者其它电影编码成为VCD或者 +SVCD格式甚至直接把它们刻到CD上。
    +
     
    + +
    Q:我的电视选台器工作,我能用MPlayer听到声音观看视频,但是MEncoder不把音频编码!
    +
    A:Linux的电视音频编码目前还没有实现,我们正在努力。目前它只在BSD上工作。
    +
     
    + +
    Q:我不能把DVD字幕编码成AVI!
    +
    A:你必须正确设定-sid选项!
    +
     
    + +
    Q:MEncoder启动时出现segfaults!
    +
    A:升级DivX4Linux。
    +
     
    + +
    Q:我如何仅对一张DVD中选定的chapter进行编码?
    +
    A:正确使用-chapter选项,像这样: + -chapter 5-7
    +
     
    + +
    Q:我试图在VFAT文件系统上处理2GB+的文件。能行吗?
    +
    A:不,VFAT不支持2GB+的文件。
    +
     
    + +
    Q:为什么MEncoder显示的推荐比特率都是负的?
    +
    A:因为你编码的音频的比特率太大,在任何CD上不能用于电影。检查你是否正确安装了libmp3lame。
    + +
    + + + diff --git a/DOCS/Chinese/formats.html b/DOCS/Chinese/formats.html new file mode 100644 index 0000000000..90d1fc8139 --- /dev/null +++ b/DOCS/Chinese/formats.html @@ -0,0 +1,185 @@ + + + + + 格式 -- MPlayer -- Linux的电影播放器 + + + + + + + +

    2.1 支持的格式

    + +

    首先澄清一个普遍的错误是非常重要的。 当人们看到以.AVI为扩展名的文件时,他们立即得出结论,认定它不是MPEG文件。 +那种看法是不对的。至少不完全对。与一般人的看法相反这种文件包含MPEG1视频。

    + +

    如你所见,一种编码方式与一种文件格式是不一样的。
    + 视频编码格式的例子有:MPEG1,MPEG2,DivX,Indeo5,3ivx。
    + 文件格式的例子有:MPG,AVI,ASF。

    + +

    在理论上,你能把OpenDivX视频和MP3音频放到MPG格式的文件中。然而,大多数播放器将无法播放它, +由于他们期待的是MPEG1视频和MP2音频(不同于AVI格式,MPG没有必要的区域来描述其视频和音频流)。 +或者你可以把MPEG1视频放到AVI文件中。FFmpeg和 +MEncoder就能建立这样的文件。

    + + + +

    2.1.1 视频格式

    + + +

    2.1.1.1 MPEG文件

    + +

    MPEG文件会以不同的形式出现:

    + + + +

    MPEG文件中的帧序列组成独立的组。这意味着你能用标准的文件工具(像ddcut)切割和合并MPEG文件, +并且得到的文件还是完全可用的。

    + +

    MPG的一个重要的特性是它们有一个描述视频流长宽比的区域。例如SVCD有480x480的分辨率的视频,而在文件头中的那个区域被置为4:3, +这样它以640x480的分辨率被播放。AVI文件没有这个区域,因此他们必须在编码或者播放时用-aspect重新缩放。

    + + +

    2.1.1.2 AVI文件

    + +

    由微软设计,AVI(Audio Video Interleaved)是一种普遍的多用途格式,目前被大多数DivX和DivX4视频所使用。 +它有许多已知的弊端和缺点(比如在流播放时)。它支持1个视频流和0到99个音频流。文件大小限制是2GB,但是现在存在一种扩展格式 +称为OpenDMS允许更大的文件。微软目前强烈反对使用它并鼓励使用ASF与WMV。不过没有什么人在乎。

    + +

    有一个hack允许AVI文件包含Ogg Vorbis音频流的,但这使他们与标准的AVI不兼容。MPlayer支持播放这种文件。 +搜索功能也被植入,但由于编码糟糕的文件的混乱的文件头使这项功能被严重限制了。遗憾地是,目前唯一能建立这种文件的编码器, +NanDub,就存在这个问题。

    + +

    注意:DV照相机建立的未经加工的DV流被DV grabbing utilities转换成两种不同类型的AVI文件。所以AVI将或者包含 +MPlayer可以播放的分离的音频与视频流,或者是未经加工的DV流,它的支持正在开发中的。

    + +

    有两种类型的AVI文件:

    + + +

    MPlayer支持两种AVI文件的计时方式:

    + + +

    任何视频和音频的编码格式都允许使用,但注意大多数播放器对VBR音频的支持都不好。文件格式允许使用VBR音频,但是大多数播放器期待CBR音频, +这样它们无法播放VBR。VBR是常见而且和微软AVI说明仅描述CBR音频。大多数AVI编码器/多路复用器在使用VBR音频时会创建坏的文件。目前已知的 +只有两个例外:NanDub和MEncoder

    + + +

    2.1.1.3 ASF与WMV文件

    + +

    ASF(active streaming format)格式来自微软。他们开发了ASF的两个变种,v1.0和v2.0. v1.0被他们的媒体工具(Windows媒体播放器和 +Windows媒体编码器)使用并且是保密的. v2.0被公开并申请专利:)。当然,他们是不同的,完全没有任何兼容性(那只是另一个法律游戏)。 +MPlayer只支持v1.0格式因为没有任何人见过v2.0格式的文件:)。注意,ASF文件现在常以.WMA或者.WMV的扩展名出现。

    + + +

    2.1.1.4 QuickTime与MOV文件

    + +

    这些格式是由苹果设计的,能包含任何编码格式,CBR或者VBR。他们通常使用.QT或者.MOV的扩展名。自从MPEG4组织选择QuickTime作为 +MPEG4的推荐文件格式后,他们的MOV文件以.MPG或.MP4的扩展名(有趣的是这些文件的视频和音频流是真正的MPG和AAC文件。你甚至能用 +-dumpvideo-dumpaudio选项提取他们。)。

    + +

    注意:大多数新的QuickTime文件使用Sorenson视频和QDesign Music音频。参见我们的 +Sorenson编码格式一节。QDesign Music音频目前不能播放。

    + + +

    2.1.1.5 VIVO文件

    + +

    MPlayer乐于解码VIVO文件格式。这个格式的最大缺陷在于它没有索引块,也没有一个固定的包大小或者同步字节和大多数文件 +甚至缺乏关键帧,所以别想着搜索了!

    + +

    VIVO/1.0文件的视频编码格式是标准的h.263。VIVO/2.0文件的视频编码格式是一个经过修改的,非标准的h.263v2。 +音频也使一样,它可以是g.723(标准的),或Vivo Siren

    + +

    关于安装指导参见VIVO视频编码格式 +VIVO音频编码格式两节。

    + + +

    2.1.1.6 FLI文件

    + +

    FLI被Autodesk Animator使用的一种很老的文件格式,但是它是网上小动画普遍使用的一种文件格式。MPlayer +能读取并解码FLI电影寻求在它们中搜索(当使用-loop选项循环播放时有用)。FLI文件没有关键帧, +因此图画在搜索后短时间内将是混乱的。

    + + +

    2.1.1.7 RealMedia(RM)文件

    + +

    是的,MPlayer能读取(demux)RealMedia(.rm)文件。搜索功能能工作,但是你必须明确地指定-forceidx选项 +(这种格式支持关键帧)。这里是被支持的RealVideo +RealAudio编码格式的列表。

    + + +

    2.1.1.8 NuppelVideo文件

    + +

    NuppelVideo是电视截取工具(据我所知:)。MPlayer +能读取它的.NUV文件(只能是NuppelVideo 5.0)。那些文件能包含未压缩的YV12,压缩的YV12+RTJpeg,压缩的YV12+lzo和压缩的YV12 RTJpeg+lzo帧。 +MPlayer能解码所有这些格式(并且用MEncoder把它们编码成DivX/etc!)。搜索功能能工作。

    + + +

    2.1.1.9 yuv4mpeg文件

    + +

    yuv4mpeg/yuv4mpeg2是用于mjpegtools programs +的文件格式。你能用这些工具进行这种格式的视频截取,制作,过滤或编码。这种文件格式是一个非压缩的YUV 4:2:0图象序列。

    + + +

    2.1.1.10 FILM文件

    + +

    这种格式用于老的世嘉土星CD-ROM游戏。

    + + +

    2.1.1.11 RoQ文件

    + +

    RoQ文件是用于ID的一些游戏例如Quake III和Return to Castle Wolfenstein的多媒体文件。

    + + +

    2.1.1.12 OGG文件

    + +

    这是Xiphophorus的一个新的文件格式。它能包含任何视频或者音频编码格式, +CBR或者VBR。要想播放它,你需要在编译MPlayer之前安装libogglibvorbis

    + + +

    2.1.2 音频格式

    + +

    MPlayer是一个电影播放器而不是媒体播放器,虽然它能播放一些音频文件(他们将在下面的 +部分中列出)。不推荐这种使用MPlayer的方法,你最好使用xmms

    + + +

    2.1.2.1 MP3文件

    + +

    你可能在播放有些MP3文件时遇到问题,MPlayer将它们错误的检测为MPEG文件并且不能正常播放或者完全不能播放。 +如果要修正这个问题就必须放弃对有些被破坏的MPEG文件的支持,所以在可以预见的将来仍然会是这样。manpage中描述的 +-demuxer标签在这些情况下可能会帮助你。

    + + +

    2.1.2.2 WAV文件

    + + +

    2.1.2.3 OGG文件(Vorbis)

    + +

    要求正确的安装libogglibvorbis

    + + +

    2.1.2.4 WMA与ASF文件

    + + +

    2.1.2.5 MP4文件

    + + + diff --git a/DOCS/Chinese/skin.html b/DOCS/Chinese/skin.html new file mode 100644 index 0000000000..7c2fe8ea39 --- /dev/null +++ b/DOCS/Chinese/skin.html @@ -0,0 +1,768 @@ + + + + +制作Skin -- MPlayer -- Linux的电影播放器 + + + + + + +

    MPlayer的Skin的格式

    + +
    + +

    内容

    + + + +
    + +
    +最后修改: 2002/05/24
    + +
    + +

    1 介绍

    + +本文件的目的是描述MPlayer的skin的格式。这里所包含的信息可能不对,因为 + +
      +
    1. GUI不是我写的
    2. +
    3. GUI还没有完成
    4. +
    5. 我可能搞错了
    6. +
    + +因此如果某个功能与它在这里被描述的工作方式不一样,不用大惊小怪。 + +

    +谢谢Zolt醤 Ponekker的帮助。 +

    + +

    +Andr醩 Mohari <mayday@freemail.hu> +

    + + +

    2 综述

    + +这虽然与skin的格式扯不上什么关系,但是你应该了解MPlayer没有内建的皮肤, +因此为了能够使用GUI必须安装至少一种皮肤。 + +

    2.1 目录

    + +skin的搜索目录(按顺序)是: +
    +    $(DATADIR)/Skin/
    +    $(PREFIX)/share/mplayer/Skin/
    +    ~/.mplayer/Skin/
    +
    + +

    +注意,第一个路径倚赖于MPlayer的安装配置(见configure脚本 +的--prefix--datadir的参数)。 +

    + +所有的skin被安装到上面列出的一个目录下的自己的目录中,例如: +
    +    $(PREFIX)/share/mplayer/Skin/default/
    +
    + + +

    2.2 图象格式

    + +图象必须是真彩的(24或者32bpp)可以是BMP,PNG或者非压缩TGA格式。最理想的格式是PNG因为它的压缩得很好。 + +

    +在主窗口(见下面)中你能使用包含“透明色”的图象:用颜色#FF00FF(深红) +填充的区域在MPlayer看来是完全透明的。这意味着你甚至能改变窗口外形如果你的X服务器有XShape扩展。 +

    + + +

    2.3 皮肤组成部分

    + +Skin的格式是十分自由的(不是像Winamp/XMMS的那种固定格式的皮肤),所以能不能做出些东西取决于你。 + +

    +目前有三个要被修饰的窗口:主窗口副窗口和 +Skin菜单(右键单击弹出)。 +

    + + + +

    +还有一件重要的事情没有提到:为了使按钮,滑动条和菜单项工作,MPlayer必须知道如果他们被点击 +的话应该做什么。这是利用消息(事件)机制完成的。对于这些项目,你必须定义当 +他们被点击时将会产生的消息。 +

    + +

    2.4 文件

    + +你需要制作下列的文件构成一个skin: + + +除了skin的配置文件之外,你能给其它文件起随便什么名字(但字体描述文件必须以.fnt为扩展名)。 + + +

    3 skin文件

    + +

    +如上所述,这是skin的配置文件。 +它是基于行的;注释行必须以';'开头(只有空格和tab可以放在';'之前)。 +

    + +

    +文件由section组成。每一段描述一个程序的skin,使用下列的形式: +

    + +
    +section = section name
    +.
    +.
    +.
    +end
    +
    + +

    +目前只有一个程序,所以你只需要一个section: +它的名称是movieplayer。 +

    + +

    +这个段中每个窗口用下列形式的块描述: +

    + +
    +window = window name
    +.
    +.
    +.
    +end
    +
    + +

    +其中window name可以是下面各字串中的一项: +

    + + + +

    +(副窗口和skin菜单块是可选的 -- 你不一定要建立菜单或者修饰副窗口 )。 +

    + +

    +在一个窗口的描述块内,你能用下列形式的一行定义窗口中的每一项目: +

    + +
    +
    +item = parameter +
    +
    +其中item是定义GUI项目的类型的字串,parameter是一个数字或者文字值 +(或者一组用逗号分开的值的列表)。 +
    +
    + +

    +把上述的放在一起,整个文件看起来就有点像这样: +

    + +
    +section = movieplayer
    +  window = main
    +  ; ... items for main window ...
    +  end
    +  
    +  window = sub
    +  ; ... items for subwindow ...
    +  end
    +  
    +  window = menu
    +  ; ... items for skin menu ...
    +  end
    +end
    +
    + +

    +图象文件的名称必须不带目录名 -- 图象在Skin目录中被搜索。你能(但是并不需要)规定扩展名。 +如果文件不存在,MPlayer将试图装载<filename>.<ext>文件, +<ext>可以是tgaTGAbmpBMP, +png或者PNG(按这个顺序尝试)。第一个匹配文件将被使用。 +

    + +

    +最后是一些用来定位的语句。主窗口和副窗口可以放置在屏幕的不同的角落,通过给定XY坐标。 +0代表顶端或左端,-1代表中心然后-2代表右边或底部: +

    + +
    +
    +(0, 0)----(-1, 0)----(-2, 0)
    +  |          |          |
    +  |          |          |
    +(0,-1)----(-1,-1)----(-2,-1)
    +  |          |          |
    +  |          |          |
    +(0,-2)----(-1,-2)----(-2,-2)
    +
    +
    + +
    +这里有个例子可以把这个搞清楚。假设你有个叫main.png的图像用来做主窗口: +
    +
    +    base = main, -1, -1
    +
    +
    + +MPlayer将尝试加载mainmain.tgamain.TGA, +main.bmp等等,所以将找到main.png。 +
    +如果你(碰巧)写了 +
    +
    +    base = main.bmp, -1, -1
    +
    +
    +那么main.bmpmain.bmp.tgamain.bmp.TGA, +main.bmp.bmp将被搜索而且MPlayer将最终放弃搜索,因为当前目录中只有 +main.png没有main.bmp。 +
    + + +

    3.1 主窗口

    + +下面是所有能用于'window = main' . . . 'end'块中的项目的列表。 + +
    +
    +base = image, X, Y +
    +
    +指定用于主窗口的背景图象。窗口将显示在屏幕上的X,Y位置,窗口的大小与图像相同。 +
    + +警告:图象中的透明区域(彩色的#FF00FF )在没有XShape扩展的X服务器上是黑色的。 + +
    +
    + +
    +button = image, X, Y, width, height, message
    +
    +将一个大小为width*height的按钮放置在XY的位置。 +指定的message将在按钮被点击时产生。被image制定的图象必须有从上到下三个部分 +(根据按钮的可能状态),像这样: +
    ++------------+
    +|  pressed   |
    ++------------+
    +|  released  |
    ++------------+
    +|  disabled  |
    ++------------+
    +
    +
    + +
    +decoration = enable|disable +
    +
    +允许或禁止window manager修饰主窗口。缺省设定是禁止。 +
    + +
    + + +hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message + + +
    +
    +在XY位置放置一个大小为width*height的水平滑动条。 +所用的图象可以划分成不同的部分用来显示滑动条的不同状态(例如,你能做一个音量滑动条,当音量从最小变到最大时, +滑动条的颜色从绿色变成红色。)。hpotmeter可以有一个能被水平拖曳的按钮。 + +
    参数是:
    + + + +注意:将来也会有一个vpotmeter项目,但是它目前还没有被实现。 + +
    + +
    +potmeter = phases, numphases, default, X, Y, width, height, message +
    +
    +没有按钮的hpotmeter。(我猜它是用来旋转,但它只对水平拖拽作出反应)。 +描述参数参见hpotmeterphases能设为NULL, +但这实在没什么用处,因为那样你就看不到potmeter在哪里了。 +
    + +
    +font = fontfile, fontid +
    +
    +定义一个字体。fontfile是以.fnt为扩展名的字体描述文件的名字(不要加上扩展名)。 +fontid用来代表这种字体(见dlabelslabel)。 +可以定义25个字体。 +
    + +
    +slabel = X, Y, fontid, "text" +
    +
    +在XY位置放置一个静态的标签。text将用fontid代表的字体显示。 +text只能是无格式文本($x之类的变量不起作用)而且必须封在一对双引号中(但是"字符不能是text的一部分)。 +标签使用由fontid代表的字体显示。 +
    + +
    +dlabel = X, Y, length, align, fontid, "text" +
    +
    +在XY位置放置一个动态的标签。标签被称为动态的,因为它的text周期性地刷新。标签的最大限度长度由 +leghth给定(它的高度是字符的高度)。如果将要显示的text比给定的宽度宽,它将滚动显示,否则它将在指定的空间之内按 +align参数的值对齐显示:0表示靠右对齐,1表示居中对齐,2 表示靠左对齐。 +
    +要显示的文本由text给定:text必须封在一对双引号中(但是"字符不能是text的一部分)。标签使用由 +fontid代表的字体显示。你能在文本中使用下列变量: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VariableMeaning
    $1hh:mm:ss格式的播放时间
    $2mmmm:ss格式的播放时间
    $3hh(小时)格式的播放时间
    $4mm(分)格式的播放时间
    $5ss(秒)格式的播放时间
    $6hh:mm:ss格式的电影长度
    $7mmmm:ss格式的电影长度
    $8h:mm:ss格式的电影长度
    $vxxx.xx%格式的音量
    $Vxxx.x格式的音量
    $bxxx.xx%格式的声道平衡
    $Bxxx.x格式的声道平衡
    $$$字符
    $a一个代表音频格式的字母(none: n,mono: m,stereo: t)
    $ttrack号(在播放列表中)
    $o文件名
    $f 小写格式文件名
    $F 大写格式文件名
    $T一个代表媒体流类型的字幕(文件: f,Video CD: v,DVD: d,URL: u)
    $p"p"字符(如果电影正在播放并且字体中有"p"这个字符)
    $s "s"字符(如果电影停止播放并且字体中有"s"这个字符)
    $e"e"字符(如果playback被暂停并且字体中有"e"这个字符)
    + + +注意:$a$T$p$s$e变量都返回应该被显示作为特殊的符号 +(例如,"e"通常代表像||这样的暂停符号)的字符。你应该有一个正常字符的字体以及另一个用于符号的不同的字体。 +更多信息参见符号部分。 + +
    +
    + + +

    3.2 副窗口

    + +下列的项目能用于'window = sub' . . . 'end'块。 + +
    +
    +base = image, X, Y, width, height +
    +
    +在副窗口中将要显示的图象。窗口将在屏幕给定的XY位置出现(0,0 是左上角)。 +你能用-1指定中心-2指定右边(X)和底部(Y)。窗口将和图象一样大。 +widthheight指定窗口的大小; 他们是可选的(如果没有他们,窗口是与图象同样的大小)。 +
    + +
    +background = R, G, B +
    +
    +让你设置背景颜色。它在图象小于窗口时有用。 +RGB规定颜色的的红,绿和蓝色的组成部分(它们中每一个都是从0到255的十进制数字)。 +
    +
    + + +

    3.3 skin菜单

    + +如前所述,菜单用两个图象显示。 +正常的菜单条目从base项指定的图象中获得,当前选择的条目则从selected项指定的图象中获得。 +你必须通过menu项定义每个菜单条目的位置和大小。 + +

    +这些是能用于'window = menu'. . . 'end'之间的项目。 +

    + +
    +
    +base = image +
    +
    +正常的菜单条目的图象。 +
    + +
    +selected = image +
    +
    +所有条目都被选择的菜单的图象。 +
    + +
    +menu = X, Y, width, height, message +
    +
    +定义图像中一个菜单条目的X,Y位置和大小。当鼠标在该条目上被释放时产生message消息。 +
    +
    + + +

    4 字体

    + +就象在关于skin的各部分的一节中论及的,字体由一个图象和一个描述文件定义。你能将字符放置在图象中的任何地方, +但是必须确保他们的位置和大小被精确的提交给描述文件。 + +

    +字体描述文件随着(以.fnt为扩展名)能有以';'开始的注释行。文件必须有像这样的行

    + +
    +
    +image = image +
    +
    +其中image是用于字体的图象文件的名字(你不必制定扩展名)。 +
    + +
    +"char" = X, Y, width, height +
    +
    +这里XY指定char字符在图象中的位置(0,0表示左上角)。 +widthheight是字符的尺寸,以象素为单位。 +
    +
    + +这个例子中用font.png定义A,B,C三个字符。 +
    +; Can be "font" instead of "font.png".
    +image = font.png
    +
    +; Three characters are enough for demonstration purposes :-)
    +"A" =  0,0, 7,13
    +"B" =  7,0, 7,13
    +"C" = 14,0, 7,13
    +
    + + +

    4.1 符号

    + +dlabel中使用的一些变量返回的一些字符有特殊的意义。这些字符应该被显示为符号, +使得播放DVD时显示一个漂亮的DVD logo而不是字符‘d’。 + +

    +下列的表格列出所有能被用来显示符号的字符(所以要求另一种字体)。 +

    + + + + + + + + + + + + + + + + + + + + + + + +
    字符符号
    p播放
    s停止
    e暂停
    n无声
    m单声道
    t立体声
    f媒体流是文件
    v媒体流是Video CD
    d媒体流是DVD
    u媒体流是URL
    + +

    +注意:当前只有'p', 's', 'e', 'n', 'm'和't'能被使用。 +

    + +

    附录A: GUI信息

    + +这些是能被按钮,滑动条和菜单项产生的消息。 + +

    +注意:一些信息可能不像所预想的那样工作(或者根本不工作)。你也知道,GUI还在开发中。

    + + +

    Playback控制:

    +
    +
    +
    evNext +
    跳到播放列表中下一个track。 + +
    evPause +
    暂停播放。 + +
    evPauseSwitchToPlay +
    evPlaySwitchToPause一起形成开关。他们能用来实现普通的播放/暂停按钮。两条信息应该被分配到 +窗口中同一位置的两个按钮上。这条信息暂停播放并使evPlaySwitchToPause按钮的图象显示出来(表明点击按钮能继续播放)。 + +
    evPlay +
    开始播放。 + +
    evPlaySwitchToPause +
    evPauseSwitchToPlay对应的消息。这条信息开始播放并使evPauseSwitchToPlay +按钮的图象显示出来(表明点击按钮能暂停播放)。 + +
    evPrev +
    跳到播放列表中上一个track。 + +
    evStop +
    停止播放。 +
    +
    + + +

    搜索:

    +
    +
    +
    evBackward10sec +
    evBackward1min +
    evBackward10min +
    向后搜索10秒/1分钟/10分钟。 + +
    evForward10sec +
    evForward1min +
    evForward10min +
    向前搜索10秒/1分钟/10分钟。 + +
    evSetMoviePosition +
    搜索到制定位置(能被滑动条使用;使用与滑动条相关的值( 0-100% ))。 +
    +
    + + +

    视频控制:

    +
    +
    +
    evDoubleSize化 +
    把电影窗口置为双倍大小。 + +
    evFullScreen +
    切换全屏方式。 + +
    evNormalSize化 +
    把电影窗口置为正常大小。 +
    +
    + + +

    音频控制:

    +
    +
    +
    evDecAudioBufDelay +
    减少音频缓冲延迟。 + +
    evDecBalance +
    减少声道平衡。 + +
    evDecVolume +
    减少音量。 + +
    evIncAudioBufDelay +
    增加音频缓冲延迟。 + +
    evIncBalance +
    增加声道平衡。 + +
    evIncVolume +
    增加音量。 + +
    evMute +
    禁音/取消禁音。 + +
    evSetBalance +
    设置声道平衡(能被滑动条使用;使用与滑动条相关的值( 0-100% ))。 + +
    evSetVolume +
    设置音量(能被滑动条使用;使用与滑动条相关的值( 0-100% ))。 +
    +
    + + +

    其他:

    +
    +
    +
    evAbout +
    打开关于窗口。 + +
    evEqualizer +
    打开/关闭均衡器。 + +
    evExit +
    退出程序。 + +
    evIconify +
    窗口图标化。 + +
    evLoad +
    装载文件(打开一个文件浏览窗口,你能在其中选择文件)。 + +
    evLoadPlay +
    功能与evLoad一样,但是它在文件之后装载自动地开始播放。 + +
    evNone +
    空信息,它没有效果(也许CVS版本除外:-))。 + +
    evPlayList +
    打开/关闭播放列表窗口。 + +
    evPreferences +
    打开选项设置窗口。 + +
    evSkinBrowser +
    打开skin浏览器窗口。 +
    +
    + + + diff --git a/DOCS/Chinese/sound.html b/DOCS/Chinese/sound.html new file mode 100644 index 0000000000..3e9db6a46d --- /dev/null +++ b/DOCS/Chinese/sound.html @@ -0,0 +1,230 @@ + + + + + 声音-- MPlayer -- Linux的电影表演者 + + + + + + + +

    2.3.2 音频输出设备

    + +

    MPlayer的音频接口称为libao2。它目前包含这些驱动:

    + + + + + + + + + + +

    一般:

       oss  OSS(ioctl)驱动(支持硬件AC3中转)
    sdlSDL驱动(支持升/降采样率,ESDARTS等等)
    nasNAS(Network Audio System)驱动
    alsa5本地的ALSA 0.5驱动
    alsa9本地的ALSA 0.9驱动(支持硬件AC3中转)
    sunBSD和Solaris8用户的SUN音频驱动(/dev/audio)
    arts本地的ARTS驱动(主要针对KDE用户)
    + +

    事实上,Linux声卡驱动有兼容问题。可能需要一定时间找到你最理想的设置。

    + + + +

    Solaris和FreeBSD系统上,用-ao sun选项使用SUN的音频驱动,否则视频音频都无法工作。

    + + +

    2.3.2.1 声卡体验,推荐

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VIA板载芯片(via82cxxx)只能48kHz
    驱动:sourceforge.net
    Aureal Vortex 2
        OSS:没有驱动
    OSS/Pro:OK
    ALSA:没有驱动
    Max kHz:48
    驱动:aureal.sourceforge.net
    驱动2:Pontscho的主页
    + (缓冲大小增加到32k)
    GUS PnP
    OSS:没有驱动
    OSS/Pro:OK
    ALSA:OK
    Max kHz:48
    SB Live!
    OSS:模拟方式很好,SP与DIF不能工作
    ALSA:两个都很好
    Max kHz:192
    SB AWE 64
    OSS:max 44kHz
    ALSA:48kHz听起来很糟
    Max kHz:48
    Gravis UltraSound ACE
    OSS:不是很好
    ALSA:OK
    Max kHz:44
    Gravis UltraSound MAX
    OSS:OK
    ALSA:OK(?)
    Max kHz:48
    ESS 688
    OSS:OK
    ALSA:OK(?)
    Max kHz:48
    C-Media声卡(那种?)
    OSS:不是很好(有嘶嘶声) (?)
    ALSA:OK(?)
    Max kHz:
    Yamaha声卡(*ymf*)
    OSS:不是很好(?)(-ao sdl)
    ALSA:仅在使用ALSA 0.5的OSS仿真-ao sdl(!)(?)时很好
    Max kHz:
    使用envy24芯片(Terratec EWS88MT之类)的声卡
    OSS:
    OSS/Pro:OK
    ALSA:
    Max kHz:
    PC Speaker或者DAC
    OSS:OK(使用SDL驱动:-ao sdl)
    ALSA:没有驱动
    Max kHz:驱动模拟44.1,也许更高。
    驱动:ftp://ftp.infradead.org/pub/pcsp
    + +

    在Linux上,高度推荐2.4.x的内核。2.2的内核没有经过测试。

    + +

    如果从CD-ROM播放时声音跳跃,开启IRQ unmasking,例如。hdparm -u1 /dev/cdrom(man hdparm)。 +这在大多数情况下有好处,更详细的描述在CD-ROM部分

    + +

    与另一个像XMMS一样的程序共享你的声卡是强烈不推荐的!如果其它音频程序使用ESD,用-vo sdl:esd选项 +启动MPlayer可以把两个音频流混合起来。事实上,选项-vo sdl:esd甚至在单独播放Mplayer时也可以对ESD使用。

    + +

    对这个文件的反馈是受欢迎的。请告诉我们你的声卡是如何与MPlayer共同工作的。

    + + +

    2.3.2.2 音频插件

    + +

    MPlayer支持音频插件。音频插件s用于在声音到达声卡之前改变音频数据的属性。他们用-aop开关加上 +list=插件1,插件2,...参数打开。必须有list参数用来确定应该使用哪些插件,以及他们执行的顺序。例如:

    + +

      mplayer media.avi -aop list=resample,format

    + +

    将让声音先通过重新采样插件然后再经过格式化插件。

    + +

    插件也有改变他们行为的开关。这些开关在下面将详细地解释。如果开关被省略,插件将按照默认设置运行。 +这是一个关于如何组合使用指定参数的插件的例子:

    + +

      mplayer media.avi -aop + list=resample,format:fout=44100:format=0x8

    + +

    这将会将重新采样插件的输出频率设为44100Hz格式化插件的输出格式设置为AFMT-U8。

    + +

    目前音频插件不能用于MEncoder

    + + +
    2.3.2.2.1 升/降采样率
    + +

    MPlayer完全支持对声音升/降采样率。如果你使用固定采样率的声卡或者如果你被只兼容 +最大44.1kHz的老声卡郁闷时可以使用这个插件。你硬件的限制是不能自动检测的,因此你必须明确地规定采样频率。 +这个插件有一个参数:fout用于设置期望的输出的采样率。默认是48kHz,单位是<Hz>。

    + +

    用法:
    +   mplayer media.avi -aop list=resample:fout=<required + frequency in Hz, like 44100>

    + +

    注意输出频率不能从默认值升高。因为升高会导致音频和视频流播放缓慢而且音频也会扭曲。

    + + +
    2.3.2.2.2 环绕音效解码
    + +

    MPlayer有一个能解码矩阵编码的环绕音效的音频插件。杜比环绕是矩阵编码格式的一个例子。 +大多数2通道音频的文件实际上包含了矩阵编码的环绕音效。为使用这个特性你需要至少支持4个声道的声卡。

    + +

    用法:
    +   mplayer media.avi -aop list=surround

    + + +
    2.3.2.2.3 采样格式转换
    + +

    如果你的声卡驱动不支持带符号的16位int数据类型,这个插件能被用来把它转换为一个你的 +声卡能理解的格式。它有一个参数,format,可以设置为你在libao2/afmt.h中找到的数字。 +这个插件几乎很少会用到而且是面向高级用户的。记住这个插件仅仅改变采样格式而不改变采样频率或者声道数。

    + +

    用法:
    +   mplayer media.avi -aop + list=format:format=<required output format>

    + + +
    2.3.2.2.4 延迟
    + +

    这个插件将声音延迟,被计划当做如何开发新的插件的例子。它不能用于任何以用户观点来说有用的东西, +在这里被提到只是为了完整的缘故。不要使用这个插件除非你是开发者。

    + + +
    2.3.2.2.5 软件音量控制
    + +

    这个插件是音量控制功能的软件替代,用于哪些使用蹩脚的混音设备的机器。如果你想要改变MPlayer +的输出音量而不改变混音器中PCM音量的设置也可以使用这个插件。它有一个volume参数初始的音量水平。 +初始音量水平能取0到255之间的值,默认值是101相当于放大0分贝。谨慎使用这个插件因为它会降低声音的信噪比。 +在大多数情况下最好是把PCM音量设为最大是,放弃这个插件并且通过混音器的主音量控制来控制你的扬声器输出水平。 +如果有连接到计算机的外部功放(这几乎是普遍情况),噪音水平能通过调整在主音量级别和功放上的旋钮而最大限度的减少, +直到去除嘶嘶的背景噪音。

    + +

    Usage:
    +   mplayer media.avi -aop + list=volume:volume=<0-255>

    + +

    这插件也有压缩器或称为“软控制”的功能。 + 压缩用于声音的动态范围十分高或者如果扬声器的动态范围十分低的的情况。注意这个特性将造成扭曲并且应该 +是最后一种被考虑的手段。

    + +

    Usage:
    +   mplayer media.avi -aop + list=volume:softclip

    + + +
    2.3.2.2.6 加强立体声
    + +

    这个插件(线性地)增加左右声道的差别(像XMMS的extrastereo插件一样)使回放产生某种“现场”效果。

    + +

    Usage:
    +   mplayer media.avi -aop list=extrastereo
    +   mplayer media.avi -aop list=extrastereo:mul=3.45

    + +

    默认参数(mul)是默认值为2.5的浮点数。如果你把它设置到0.0,你将获得单声道(两个声道的平均值)。 +如果你把它设置到1.0,声音不变,如果你把它设置为-1.0,左右声道将被交换。

    + + +
    2.3.2.2.7 音量正则化
    + +

    这个插件能没有变形的最大化音量。

    + +

    用法:
    +   mplayer media.avi -aop list=volnorm
    + + +

    2.3.2.2.8 环绕
    + +

    谁应该在什么时候写点什么。

    + + + diff --git a/DOCS/Chinese/users_against_developers.html b/DOCS/Chinese/users_against_developers.html new file mode 100644 index 0000000000..a71ba73256 --- /dev/null +++ b/DOCS/Chinese/users_against_developers.html @@ -0,0 +1,117 @@ + + + + + 开发者的痛楚 -- MPlayer -- Linux的电影播放器 + + + + + + + +

    附录 E -- 开发者的痛楚

    + +

    总在mplayer-users邮件列表上引起巨大争吵和怒火的主题主要有两个。第一个主题是关于

    + + +

    GCC 2.96

    + +

    背景:GCC2.95系列是GNU官方发行版而GCC的2.95.3版本是这个系列中bug最少的。我们从来没有遇到过可以归罪于GCC 2.95.3的编译问题。 +从RedHat Linux 7.0开始,Red Hat在他们的发行版里包括了一个打满补丁的CVS版本的GCC,命名为2.96。Red Hat在他的发行版中包括这个版本是因为 +当时GCC 3.0还没有完成,而他们需要一个在所有他们支持的平台上,包括IA64和s390都正常工作的编译器。Linux发行版Mandrake也照着Red Hat的例子开始 +在他们的Linux-Mandrake 8.0系列中搭载GCC 2.96。

    + +

    声明:GCC小组否认于GCC 2.96有任何联系并对GCC 2.96发表了一份官方回应。世界各地的开发者 +开始遇到GCC 2.96的问题,并开始推荐其他的编译程序。 +Apache, +MySQLavifile和 +Wine。 +其他你会感兴趣的链接有: +Real time Linux, +Linux kernel news flash about kernel 2.4.17和 +Voy Forum。 +MPlayer同样经受这些时有时无的只要换个不同版本的GCC就可以全部解决的问题。有些项目开始为一些2.96的问题实现绕过的方法,但是我们拒绝修正别人的bug, +尤其是其中一些绕过的方法意味着降低性能。

    + +

    你能在这个站点的读到故事的另一面。GCC 2.96不允许在汇编程序中出现|(管道)字符因为它同时支持 +Intel和AT&T的语法而|字符在Intel版本中是个符号。问题是它一声不吭的忽略了整个汇编程序块。这个问题现在应该被修正了,GCC会显示一个警告 +而不是直接跳过。

    + +

    现状:Red Hat说2.96-85以上的GCC都已经修正了。情况确实好了很多,但我们在我们的邮件列表里仍然遇到一些换了编译器之后就不存在了的问题。 +在任何情况下它都不再重要了。希望一个成熟的GCC 3.x将很好的解决这个问题。如果你想要用2.96编译的话在configure的时候加上--disable-gcc-checking +标记。记住你要自己负责而且不要报告任何bug。如果你报告,你只会被我们的邮件列表封掉,因为对于GCC 2.96我们已经有够多的争吵了。请让它平息下来。

    + +

    如果你的GCC 2.96有问题,你能从Red Hat的ftp服务器得到2.96-85的包,或者直接去找7.2或更高版本里面提供的 +3.0.4的包。你也能用gcc-3.1的包(非官方的,但是工作地不错)和你能把他们跟你已经有的2.96 +装在一起。MPlayer检测到它并且使用3.1取代2.96。如果你不想要或者无法使用二进制包,下面教你怎么从源代码编译GCC 3.1:

    + +
      +
    1. GCC mirrors page网页并下载gcc-core-3.1.tar.gz。这包括了完整的C编译程序, +对MPlayer是足够了。如果你也想要C++,Java或其它一些GCC的高级特性gcc-3.1.tar.gz 可能更适合你。
    2. +
    3. 用下列命令解开文档
      + tar -xvzf gcc-core-3.1.tar.gz
    4. +
    5. GCC不像大多数程序一样的在自己的源码目录内编译,而是需要一个源码目录之外的编译目录。所以你需要这样创建这个目录
      + mkdir gcc-build
    6. +
    7. 然后,你能继续在GCC编译目录中配置GCC,但你需要源码目录中的configure:
      + cd gcc-build
      + ../gcc-3.1/configure
    8. +
    9. 在编译目录中运行下列命令来编译GCC:
      + 做依靠自己力量
    10. +
    11. 现在你可以运行下列命令安装GCC(以root身份)
      + make install
    12. +
    + + +

    二进制发行版

    + +

    这以前是第二大的问题从0.90-pre1之后已经解决。MPlayer以前包含来自OpenDivX工程的源代码,那是不能以二进制形式再分发的。这个代码已经被去掉, +现在如果你觉得合适的话欢迎你制作二进制的包。

    + +

    二进制分发的另一个阻碍是针对CPU结构的编译优化。 MPlayer运行时CPU检测(在编译时指定--enable-runtime-cpudetection)。 +它默认是禁用的因为它意味着小小的速度牺牲,现在可以创建在能在Intel CPU家族的不同的成员上运行的二进制文件了。

    + + +

    nVidia

    + +

    我们讨厌nVidia仅仅提供二进制的驱动(用于XFree86)的作法,他们通常都很buggy。我们在 +mplayer-users上已有许多关于这些封闭源代码的驱动和他们的低质量,不稳定以及糟糕的用户和专家 +支持的报告。这里有一个来自 +nVidia的Linux论坛的例子。许多这样的问题与异常持续不断重复的出现。我们最近跟nVidia接触过,而他们说这些错误不存在,不稳定是由于质量不好的AGP芯片造成的 +,而他们没有收到驱动bug(例如紫色条纹)的报告。因此如果你的nVidia显卡有问题,建议你升级nVidia驱动和/或者购买新的主板或者要求nVidia提供开源的驱动。 +在任何情况下,如果你使用nVidia的二进制的驱动并遇到驱动相关的问题,请你明白你几乎不能从我们这里得到帮助,因为我们在这个问题上无能为力。

    + + +

    Joe Barr

    + +

    Joe Barr因为写了一篇一点都不讨人喜欢的MPlayer评论而变得 +声名狼籍。他发现MPlayer难以安装,但是然而他由不太喜欢阅读文档 +。他同样得出结论认为开发者是不友好的,文件是不完整和侮辱性的。你自己判断吧。他继续在他的 +2002年的Linux十大预言中否定mplayer,接下来在 +xine的评论中他继续扇风点火。富有讽刺意味的是在那篇文章结束时他引用的 +他与xine原作者的G黱ter Bartsch的争论,完美地总结整个情况:

    + +
    + 然而,他也继续说他对我写的Mplayer的专题感到“惊讶”并觉得那是不公平的,他提醒我那是一个免费软件工程。“如果你不喜欢它,”Bartsch说,“你有不使用它的自由”。 +
    + +

    他不答复我们的邮件。他的编辑也不答复了我们的邮件。这里引用一些不同的人关于Joe Barr的评论,方便你形成你自己的观点:

    + +

    Marc Rassbach有些针对这个人的评论

    + +
    + 你们都记得在LinuxWorld 2000的时候他说Linus T说‘FreeBSD只是一小撮程序员’。Linus从没说过任何这类东西。当Joe因此被讯问时, +他的反应是说BSD的支持者是白痴和蠢才。 +
    + +

    一段来自mplayer-users邮件列表上的Robert Munro的 +引文

    + +
    +

    他挺有意思,但不善于避免,um ...争论。 Joe Barr以前是Compuserve上的Will Zachmann上的Canopus论坛的常客。他那时是OS/2的拥护者(我也是OS/2迷)。

    + +

    他常常说话过头,骂人,我怀疑他有没有经历过什么困难。以他最近的专栏看来,他软化了些。 适当的阴险的幽默不是他早年的方式,完全不是。

    +
    + + + diff --git a/DOCS/Chinese/video.html b/DOCS/Chinese/video.html new file mode 100644 index 0000000000..1eb5c893a8 --- /dev/null +++ b/DOCS/Chinese/video.html @@ -0,0 +1,1016 @@ + + + + + 视频 -- MPlayer -- Linux的电影播放器 + + + + + + + +

    2.3.1 视频输出设备

    + + +

    2.3.1.1 MTRR的设置

    + +

    强烈建议你检查你的MTRR注册是否正确的设定了,因为他们能极大的提高性能。

    + +

    运行'cat /proc/mtrr':

    + +

    + --($:~)-- cat /proc/mtrr
    + reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
    + reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1

    + +

    这是正确的,显示我的Matrox G400有16MB显存存。我从XFree 4.x.x得到这个,它会自动地设定MTRR注册。

    + +

    如果没有什么自动工作,你将不得不手工做。首先,你必须找到基地址。你有3种方法找它:

    + + + +

    接着让我们来确定显存大小。这十分容易,只要把显存大小变为十六进制,或者使用这个表格:

    + + + + + + + + +
      1 MB0x100000
    2 MB0x200000
    4 MB0x400000
    8 MB0x800000
    16 MB0x1000000
    32 MB0x2000000
    + + +

    你知道了基地址和显存大小,下面让我们进行MTRR注册!例如,对于上述32MB显存( size=0x2000000 )的Matrox显卡(base=0xd8000000)就执行:

    + + +

      echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr

    + + +

    并非所有CPU都支持MTRR。比如较老的K6-2[266MHz左右,步进值0]不支持MTRR,但是步进值12的就支持(用'cat /proc/cpuinfo'命令检查)。

    + + +

    2.3.1.2 Xv

    + +

    在XFree86 4.0.2或者更新的版本下,你能使用XVideo扩展来使用你的显卡的硬件YUV例程。这是就是'-vo xv'所使用的。同时, +这是支持调节亮度/对比度/色相/等等的驱动(除非你使用旧的,缓慢的DirectShow DivX解码器,什么驱动它都支持),参见man page。

    + +

    为了使它工作,确信做如下检查:

    + + + + +
    2.3.1.2.1 3dfx显卡
    + +

    老的的3dfx驱动存在XVideo加速的问题,它不支持YUY2或者YV12,诸如此类。确定你的XFree86版本在4.2.0以上, +它在YV12和YUY2模式下工作很好。以前的版本,包括4.1.0,会在YV12下崩溃。如果你使用-vo xv时遇到奇怪的问题, +尝试使用SDL(它也有XVideo)看是否有帮助。细节请察看SDL部分。

    + +

    或者,试试新的-vo tdfxfb驱动! 参见tdfxfb部分。

    + + +
    2.3.1.2.2 S3显卡
    + +

    S3 Savage3D应该能正常工作,不过对于Savage4,请使用XFree86 4.0.3或更新的版本(如果图象有问题,试试16bpp)。 +至于S3 Virge,虽然有xv支持,但是这种显卡实在太慢,因此你最好买了它。

    + +

    注意:Savage显卡能显示YV12图像但是速度很慢(它需要做YV12->YUY2转化,因为Savage的硬件不能显示YV12)。 +因此当这个文档在什么地方说“这个有YV12输出,用这个,它快”的时候,并不完全是这样。试试 +这个驱动, +它使用MMX2完成这个任务,比X自己的驱动快。

    + + +
    2.3.1.2.3 nVidia显卡
    + +

    nVidia在Linux下不是很好的选择(nVidia认为,这并非真实情况).. +你将不得不使用二进制的非开源的nVidia驱动,nVidia的网站可以找到。标准XFree86驱动没有这些显卡的XVideo支持, +因为nVidia没有公开源码/规格。

    + +

    据我所知最新的XFree86驱动包含了GeForce2和3的XVideo支持。

    + +

    Riva128显卡即使用nVidia的驱动也没有XVideo支持:(向nVidia抱怨去吧。

    + + +
    2.3.1.2.4 ATI显卡
    + + + + +
    2.3.1.2.5 NeoMagic显卡
    + +

    这些显卡能在许多笔记本电脑里找到。不幸的是,X 4.2.0的驱动不能使用Xv,但是我们为你准备了一个经过修改,能够使用Xv的驱动。 +到这里下载。 +这个驱动是由Stefan Seyfried提供的。

    + +

    像这样修改你的XF86Config使之能进行DVD大小的内容的回放:

    + +

    Section "Device"
    +     [...]
    +     Driver "neomagic"
    +     Option "OverlayMem" "829440"
    +     [...]
    + EndSection

    + + +
    2.3.1.2.6 Trident显卡
    + +

    如果你想要在Trident显卡上使用xv,它在4.1.0下不工作,尝试XFree最新的CVS或者等候XFree 4.2.0。最新的CVS加入了Cyberblade XP显卡的全屏xv支持。

    + + +

    2.3.1.3 DGA

    + + +
    2.3.1.3.1 总论
    + +

    这篇文件试图花些篇幅来解释DGA大概是什么以及MPlayer的DGA视频输出驱动能做什么(以及不能做什么)。

    + + +
    2.3.1.3.2 DGA是什么
    + +

    DGA是Direct Graphics Access的简称,是一种使程序绕过X-服务器直接修改帧缓冲显存的方法。从技术角度说这是通过把帧缓冲显存映射到你的处理器的内存范围之内。 +只有你有超级用户权限的时候内核才允许这种操作。用root登录或者给MPlayer的执行文件设置SUID位(推荐使用!)可以做到这一点。

    + +

    DGA有两种版本: DGA1用于XFree 3.x.x和DGA2从XFree 4.0.1开始引入。

    + +

    DGA1只提供了前述的帧缓冲直接操作功能。你不得不使用XVidMode扩展来切换视频信号的分辨率。

    + +

    DGA2结合了XVidMode扩展的特性而且也允许切换显示的色彩深度。因此,虽然一般使用32位色X服务器,你也能切换到15位色深,反之亦然。

    + +

    然而DGA也有一些弊端。它似乎有些依赖于你使用的图形芯片和X服务器中控制该芯片的视频驱动。因此,它并不是对所有的系统都起作用...

    + + +
    2.3.1.3.3 为MPlayer安装DGA支持
    + +

    首先确保X装载了DGA扩展,察看/var/log/XFree86.0.log:

    + +

        (II) Loading extension XFree86-DGA

    + +

    可见,强烈推荐XFree86 4.0.x或更高版本,MPlayer的DGA驱动在./configure时会自动检测到,否则你可以用--enable-dga强行编译它。

    + +

    如果你的驱动不能切换到一个较小的分辨率,尝试使用选项-vm(只用于X 3.3.x),-fs,-bpp,-zoom找一个你的电影适合的视频模式。目前没有转换功能:(

    + +

    成为root。DGA需要root权限来直接写显存。如果你想用普通用户运行它,给MPlayer设置SUID root权限:

    + +

    +     chown root /usr/local/bin/mplayer
    +     chmod 750 /usr/local/bin/mplayer
    +     chmod +s /usr/local/bin/mplayer

    + +

    它现在也能被普通用户使用了。

    + +
    + 警告:安全风险
    + 这是一个很大的安全风险!永远不要在除了你之外还有人可以使用的服务器上这样做,因为他们能通过SUID root的MPlayer获得root权限。 +
    + +

    现在使用-vo dga选项,开始使用(如此希望:))! + 你也应该尝试看看-vo sdl:dga选项能否正常工作。它快得多。

    + + +
    2.3.1.3.4 切换分辨率
    + +

    DGA驱动允许切换输出信号的分辨率。这样能避免使用(缓慢的)软件缩放同时又提供全屏图象。理想情况下,它将精确切换成视频数据的分辨率(除了为了保持长宽比), +但是X服务器仅允许切换到/etc/X11/XF86Config(XFree 4.0.X使用/etc/X11/XF86Config-4用于区别)中预定义的分辨率。 +它们被所谓的modelines定义并且依赖于你的视频硬件的能力。X服务器启动时扫描这个配制文件并且禁用那些不适用于你的硬件的modelines。你能通过X11的log文件找出 +哪些方式可用。它能在这里找到: +/var/log/XFree86.0.log

    + +

    modeline定义分辨率的一些例子参见附录A。

    + + +
    2.3.1.3.5 DGA & MPlayer
    + +

    MPlayer在两个地方使用DGA:SDL驱动能使用它(-vo sdl:dga)以及在DGA驱动(-vo dga)中使用。上面说的内容对两者都有效; +在下列的几段中我将解释MPlayer中DGA驱动是如何工作的。

    + + +
    2.3.1.3.6 DGA驱动的特性
    + +

    DGA驱动通过命令行中的-vo dga选项调用。默认操作是转换成与原来的视频尽可能接近的分辨率。它将忽略-vm和-fs选项(开启视频模式切换和全屏方式) +-- 它总试图通过切换显示模式尽可能多的覆盖你的屏幕,这样阻碍你的CPU使用一个单一的附加的周期来放大图像。 +如果你不喜欢它选择的模式你能强迫它选择最接近于你通过-x和-y选项规定的分辨率的模式。使用-v选项,DGA驱动将在一大堆别的东西中打印出你 +当前XF86-Config文件支持的所有分辨率的列表。 +如果是DGA2你也能通过使用-bpp选项强迫它使用一定的色彩深度。有效的色深是15,16,24和32。这取决于你的硬件对这些色深是否本地支持, +还是通过某种(有可能很慢)的转化来完成的。

    + +

    如果你非常幸运,有足够显存的屏外缓冲区来存放整个图象,DGA驱动将使用双重缓冲,这能使电影播放更加平滑。它会告诉你双重缓冲是否被打开。

    + +

    双重缓冲的意思是在你的视频的当前帧被显示时,下一帧在屏外缓冲区中被绘制。当下一帧准备完毕时, +图形芯片被告知下一帧在显存中的位置并且直接从那里将要显示的数据读出来。在此期间其它在记忆中的缓冲器将再一次被装满新的视频数据。

    + +

    双重缓冲可以用-double选项开启也可以用-nodouble选项禁止。目前缺省选项是禁用双重缓冲。屏幕显示功能(OSD)在使用DGA驱动模式时必须打开双重缓冲功能。 +然而,使用双重缓冲可能导致较大的速度下降(在我的K6-II+ 525上它多占用20%的CPU时间!),下降程度取决于DGA操作你的硬件的方法。

    + + +
    2.3.1.3.7 速度问题
    + +

    一般来说,DGA帧缓冲至少应该跟X11驱动一样快同时还有全屏图象的附加好处。对MPlayer打印出的百分比速度的评价应该小心, +比如X11驱动它们并不包括X-服务器真正绘制所用的时间。开一个终端连到你的机器的串口上运行top命令看看你的机器真正在干什么...

    + +

    一般来说,使用DGA相对“普通的”使用X11所产生的速度提高高度依赖于你的显卡,以及X-服务器中它的模块做了多少优化。

    + +

    如果你的系统较慢,最好使用15或者16bit色深,因为他们仅仅要求32bit显示的显存带宽的一半。

    + +

    即使你的显卡自身就支持32bit色深,使用24bit的色深也是个好主意,因为它被32/32方式少传输25%的数据。

    + +

    我曾见过一些AVI文件能在Pentium MMX 266上播放。AMD K6-2 CPU在400 MHZ以上的应该可以工作。

    + + +
    2.3.1.3.8 已知的bug
    + +

    嗯,据一些XFree的开发者说,DGA像头野兽。他们告诉你不要使用它。并非对任何芯片的驱动它的操作都是没有瑕疵的。

    + + + + +
    2.3.1.3.9 未来的工作
    + + + + +
    2.3.1.3.A 一些modelines
    + +
    +  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
    +
    + +

    这些条目在我的Riva128芯片上工作的很好,使用nv.o的X服务器驱动模块。

    + + +
    2.3.1.3.B 报告bug
    + +

    如果你在使用DGA驱动时遇到麻烦请别介意,发一个bug报告给我(e-mail地址在下面)。请用-v选项启动MPlayer并且在bug报告中包括所有以vo-dga开始的输出行:

    + +

    请一并附带你使用的X11的版本,显卡和你的CPU类型。X11驱动模块(在XF86-Config中定义)也可能有帮助。谢谢!

    + +

    Acki (acki@acki-netz.de,www.acki-netz.de)

    + + +

    2.3.1.4 SDL

    + +

    SDL(Simple Directmedia Layer)基本上是一种统一的视频/音频接口。使用它的程序只要知道SDL,而不需要了解SDL实际上使用的视频或音频驱动。 +例如使用SDL的Doom移植能在svgalib,aalib,X,fbdev,和其他东西上使用,你仅需要用环境变量SDL_VIDEODRIVER规定(例如)使用的视频驱动。嗯,至少在理论上。

    + +

    MPlayer中,我们使用它的X11驱动的软件缩放功能,用于不支持XVideo的芯片/显卡,直到我们做出我们自己的(更快,更好)的软件缩放代码。 +同时我们使用它的aalib输出,但是现在我们自己的更合适的了。它的DGA模式比我们的好,直到最近。现在明白了? :)

    + +

    它对一些buggy的驱动/显卡也有帮助,例如视频跳跃(不是系统缓慢的问题),或者音频延迟。

    + +

    SDL视频输出支持在电影下面,(如果出现)的黑条上显示字幕。

    + +

    这里是一些关于SDL输出的控制选项:

    + +
    +
    -vo sdl:name
    +
    规定使用的sdl视频驱动(例如aalib,dga,x11)
    + +
    -ao sdl:name
    +
    规定使用的sdl音频驱动(例如dsp,esd,arts)
    + +
    -noxv
    +
    禁用XVideo硬件加速
    + +
    -forcexv
    +
    尝试强制XVideo加速
    + +
    + + + + + + +

    SDL控制键:

    F切换全屏/窗口方式
    C循环切换可用的全屏方式
    W与S*和/的映射(音量控制)
    + +

    已知的bug:

    + + + + +

    2.3.1.5 SVGAlib

    + +

    安装

    +

    你必须安装svgalib和它的开发包来使MPlayer编译它的SVGAlib驱动(自动检测,但是也能强制使用), +别忘了编辑/etc/vga/libvga.config来配合你的显卡&监视器。

    + +

    注意

    +

    一定不要用-fs选项,因为它将导致使用软件缩放,速度会很慢,如果你确实需要,使用-sws 4选项, +质量会有点差,但是无论如何它更快。

    + +

    EGA(4bpp)支持

    +

    SVGAlib结合了EGAlib,使得MPlayer有可能用16种颜色播放任何电影,下列的配制中可以使用:

    + + + +

    bpp(每象素比特数)的值必须手工设为4:
    +     -bpp 4
    + 电影可能必须被按比例缩小到EGA适合的模式:
    +    -vop scale=640:350或者
    +    -vop scale=320:200
    + 为做到这一点我们需要使用快速但低质量的例程:
    +    -sws 4
    + 也许自动纠正长宽比的功能需要关闭:
    +    -noaspect

    + + +

    2.3.1.6 帧缓冲输出(FBdev)

    + +

    是否编译FBdev目标是在./configure期间自动检测的。阅读内核源码中的帧缓冲的文档(Documentation/fb/*)来了解更多信息。

    + +

    如果你的显卡不支持VBE 2.0标准(较旧的ISA与PCI显卡,诸如S3 Trio64),仅支持VBE 1.2(或者更老的?): +嗯,VESAfb仍然是可用的,但是你将必须在启动Linux之前装载SciTech Display Doctor(从前叫UniVBE )。 +用DOS启动盘或随便什么。同时,别忘了注册你的UniVBE ;))

    + +

    FBdev输出有些除了以前说过的参数外的附加参数:

    + +
    +
    -fb
    +
    规定使用的帧缓冲设备(/dev/fb0)
    + +
    -fbmode
    +
    使用的模式名(按照/etc/fb.modes文件)
    + +
    -fbmodeconfig
    +
    模式的配置文件方式(默认为/etc/fb.modes)
    + +
    -monitor_hfreq
    +
    -monitor_vfreq
    +
    -monitor_dotclock
    +
    重要的参数,参见example.conf
    +
    + +

    如果你想要切换到某个具体模式,那么使用

    + +

        mplayer -vm -fbmode (NameOfMode) filename

    + + + +

    注意:使用VESA 帧缓冲时FBdev视频方式不能改变,也不要要求这个功能,因为它不是由于MPlayer自身的限制。

    + + +

    2.3.1.7 Matrox 帧缓冲(mga_vid)

    + +

    这一段是关于Matrox G200/G400/G450/G550 BES (Back-End Scaler)的支持,mga_vid内核驱动。它现在是由我(A'rpi)开发的, +它有三重缓冲的硬件VSYNC支持。它在帧缓冲控制台下和X下都可以工作。

    + +

    警告:在非Linux系统上,使用VIDIX 实现mga_vid!

    + + +

    安装:

    +
      +
    1. 为了使用它,你首先必须编译mga_vid.o:

      +

      cd drivers
      + make

    2. +
    3. 然后创建/dev/mga_vid设备: +

          mknod /dev/mga_vid c 178 0

      +

      然后这样加载驱动

      +

      insmod mga_vid.o

    4. +
    5. 你应该使用'dmesg'命令检查显存大小的检测结果。如果不对,那么使用mga_ram_size选项(先rmmod mga_vid),以MB为单位指定显卡的显存大小: +

          insmod mga_vid.o mga_ram_size=16

    6. +
    7. 为了使它在需要时自动地加载/卸载,首先在/etc/modules.conf的末尾加上下面这一行: +

          alias char-major-178 mga_vid

      +

      然后把mga_vid.o模块复制到/lib/modules/<kernel version>/somewhere下的适当位置。

      +

      然后运行

      +

      depmod -a

    8. +
    9. 你现在需要(重新)编译MPlayer,./configure将发现/dev/mga_vid并且编译'mga'驱动。如果你使用matroxfb控制台, + 在MPlayer中用'-vo mga'使用它,或者在XFree86 3.x.x或者4.x.x下的使用'-vo xmga'。

      +
    + +

    mga_vid驱动能与Xv协同工作。

    + +

    可以阅读/dev/mga_vid设备文件(例如cat /dev/mga_vid)来查找一些信息, +也可以通过写它来调整亮度:echo "brightness=120" > /dev/mga_vid

    + + +

    2.3.1.8 3dfx YUV支持(tdfxfb)

    + +

    这个驱动使用内核的tdfx帧缓冲驱动来利用YUV加速播放电影。你需要一个支持tdfxfb的内核, +然后用./configure --enable-tdfxfb重新编译

    + + +

    2.3.1.9 OpenGL输出

    + +

    MPlayer支持使用OpenGL显示电影,但是如果你的平台/驱动支持xv,就象使用linux的PC机那样,就使用xv,OpenGL的效果与它相比相当坏。 +如果你只有没有xv支持的X11程序,OpenGL是可用的选择。

    + +

    不幸的是并非所有驱动都支持这个特性。Utah-GLX驱动(针对XFree86 3.3.6)对所有显卡都支持它。访问 +http://utah-glx.sourceforge.net了解安装它的细节问题。

    + +

    XFree86(DRI)>= 4.0.3支持Matrox和Radeon显卡的OpenGL,4.2.0或更新版本支持Rage128。 +访问http://dri.sourceforge.net以寻找下载和安装指导。

    + + +

    2.3.1.11 AAlib -- 文本方式显示

    + +

    AAlib 是一个用于在文本模式下显示图形的库,它使用强大的ASCII渲染器。有许多程序提供对它的支持,像Doom,Quake等等。 +MPlayer包含一个针对它的实用的驱动。如果./configure发现安装了aalib,aalib的libvo驱动将被编译。

    + + + + + + + + + + + +

    你能在AA窗口中使用一些控制键来改变渲染参数:

      1  减少对比度
    2增加对比度
    3减少亮度
    4增加亮度
    5打开/关闭快速渲染
    6设置抖动方式(不抖动, 误差分布算法, Floyd Steinberg算法)
    7反转图象
    a转换aa和MPlayer的控制键
    + +

    下列的命令行选项能够使用:

    +
    +
    -aaosdcolor=V
    +
    改变OSD颜色
    + +
    -aasubcolor=V
    +
    改变字幕颜色 +

    V的值可以是:(0/正常,1/暗色,2/粗体,3/粗体字体,4/反转,5/特殊)

    +
    + +

    AAlib自身也提供了大量的选项。这里是一些重要的:

    +
    +
    -aadriver
    +
    设置推荐aa的驱动( X11,curses,Linux )
    + +
    -aaextended
    +
    使用所有的256个字符
    + +
    -aaeight
    +
    使用8比特的ASCII
    + +
    -aahelp
    +
    列出所有的aalib选项
    +
    + +

    注意:渲染效果是十分消耗CPU的,特别是使用AA-on-X(在X上使用aalib),在标准的非帧缓冲控制台上的CPU消耗是最小的, +用SVGATextMode设置一个大的文本模式,然后再欣赏电影!(大力神显卡的第二个接口就不错:))(任何人能加强fbdev做hgafb? +的转化与抖动的效率将是不错的:)

    + +

    如果你的计算机速度不足以渲染所有帧就使用-framedrop选项

    + +

    在终端中播放电影时使用Linux驱动你将会得到更好的速度和画面质量,不要用curses(-aadriver Linux)。 +但是为此你需要/dev/vcsa<terminal>的写权限。那是aalib不能自动检测的,但vo_aa会尝试搜索最佳模式, +进一步的调节问题参见http://aa-project.sourceforge.net/tune/

    + + +

    2.3.1.12 VESA -- 输出到VESA BIOS

    + +

    这个驱动被设计并引入作为一个通用的驱动用于任何有VESA VBE 2.0兼容的BIOS的显卡。这驱动的另一个优点是能试图迫使在其上进行电视输出。
    + VESA BIOS EXTENSION(VBE)3.0版 日期:1998年九月16日(第70页)说:

    + +
    + 双重控制器设计
    + VBE 3.0支持双重控制器设计基于如下假设,由于两个控制器一般是同样的OEM提供的,被同一块显卡上的一个的BIOS ROM,所以可以对程序隐藏有两个 +控制器在作用的事实。这限制了同时的使用独立的控制器的功能,但是允许VBE 3.0发布前的程序能正常工作。VBE函数00h(返回控制器信息)返回经过合并的 +两个控制器的信息,包括经过合并的可供使用的方式的列表。当程序选择一个方式时,相应的控制器被激活。然后剩下的VBE函数都作用在激活的控制器上。 +
    + +

    因此,你有可能通过这个驱动得到电视输出。
    + (我猜想电视至少经常地是使用独立的头或者独立的输出)。

    + +

    优点:

    + + + +

    缺点:

    + + + +

    使用GCC 2.96就不要使用这个驱动!它将不能工作!

    + +

    这些命令行的选项目前可用于VESA:

    +
    +
    -vo vesa:opts
    +
    当前能识别的: dga强迫dga方式,nodga禁用dga方式。注意:你能省略这些参数来开启自动检测dga方式。 + (在未来也将设定诸如刷新率,交错式,双重扫描式诸如此类的模式参数。例如: i43,85,d100)
    + +
    -screenw, -screenh, -bpp
    +
    强制使用用户自定义的模式
    + +
    -x, -y
    +
    设置用户自定义模式的预采数 + +
    -zoom
    +
    使用用户自定义模式的预采数
    + +
    -fs
    +
    把图像缩放到全屏幕
    + +
    -fs -zoom
    +
    将用户自定义的预采数缩放到全屏幕
    + +
    -double
    +
    使用双重缓冲。(只用于DGA方式)。会比单一缓冲慢,但没有闪烁。
    +
    + +

    已知的问题和绕过办法:

    + + + + +

    2.3.1.13 X11

    + +

    尽量避免使用它。输出到X11(使用共享内存扩展),完全没有硬件加速。支持(MMX/3DNow与SSE加速,但是仍然缓慢的)软件缩放, +使用选项-fs -zoom。大多数显卡有硬件缩放支持,使用-vo xv对他们输出,或者对于Matroxes使用-vo xmga

    + +

    问题在于大多数显卡的驱动在第二个接口/电视接口上不支持硬件加速。在那些情况下,你将看到绿色和蓝色的彩色窗口而不是电影。 +这是这个驱动方便利用的地方,但是你需要强大的CPU来使用软件缩放。不要使用SDL驱动的软件输出+缩放,它的图象质量太差!

    + +

    软件缩放是十分缓慢的,你最好尝试用改变视频模式的方法代替它。它十分简单。参见DGA一节的modelines, +并且将他们插入到你的XF86Config。

    + + + +

    如果你调整不到你设定的模式,检查XFree86的输出。有些驱动不能使用低分辨率视频方式所需要的低的像素频率。

    + + +

    2.3.1.14 VIDIX

    + +

    VIDIX是VIDeo Interface for *niX的缩写。
    + VIDIX被设计和引入作为快速的用户空间驱动的接口提供类似mga_vid为了Matrox显卡提供的这样视频性能的。它也十分易于移植。

    + +

    这个接口被设计来作为一个将存在的视频加速接口(就是mga_vid,rage128_vid,radeon_vid,pm3_vid )统一到一个固定的系统的尝试。 +它给芯片提供BES(BackEnd scalers)或OV(Video Overlays)之类的高层接口。它不为那些图像服务器该做的事情提供底层接口。 +(我不想跟X11开发组在切换图像模式上竞争)。即这接口的主要目的是充分提高视频回放的速度。

    + +

    用法

    + + + +实际上什么视频输出驱动与VIDIX配合使用并不重要。 + +

    要求

    + + + +我希望可能MPlayer所有的视频输出驱动都能识别:vidix副驱动。 + +

    使用方式

    + +

    当VIDIX被用作副驱动时(-vo vesa:vidix)视频方式的配置由视频输出设备执行(简单来说就是vo_server)。 +因此,你能对MPlayer使用与vo_server同样的命令行指令。此外,它能使用-double作为全局的参数。 +(我建议至少在使用ATI显卡时对VIDIX使用这个参数)。
    + 至于-vo xvidix:目前它能识别下列的选项: -fs -zoom -x -y -double

    + +

    你还能在命令行中使用第三个副参数直接制定VIDIX的驱动:
    +
    +   mplayer -vo xvidix:mga_vid.so -fs -zoom -double + file.avi
    + or
    +   mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp + 32 file.avi
    +
    + 但这有点危险,所以你不应该这么做。在这种情况下,被指定的驱动会被强制使用而其结果是无法预计的(它可以把你的计算机锁死)。 +只有在你绝对确信它能工作,而MPlayer没有自动选择它时,你才能这么做。请把情况报告给开发者。 +正确的使用方法是使用没有参数的VIDIX来使用驱动的自动检测。

    + +

    VIDIX是十分新的技术所以在你的系统(OS=abc CPU=xyz)上它极有可能不能正常工作。在这种情况下,你唯一的解决办法是移植它(主要libdha)。 +但它在X11能正常工作的那些系统的上有正常工作的希望。

    + +
    + 警告:安全风险
    + 不幸的是你必须ROOT权限才能使用VIDIX因为需要直接硬件写入。至少给MPlayer的可执行文件设置SUID位。

    +
    + +

    视频均衡器

    + +

    这是特别为了VIDIX植入的视频均衡器。你能通过man page里描述的1-8数字键或者命令行参数来使用它。MPlayer能识别下列的选项:

    + +
    +
    -brightness
    +
    调整视频输出的亮度。它不等同于在显示器面板上或电视上的亮度调整。它把白屏的视频信号的RGB成分逐渐改变到黑屏
    + +
    -contrast
    +
    调整视频输出的对比度。工作方式跟调整亮度差不多
    + +
    -saturation
    +
    调整视频输出的饱和度。通过使用这个选项你可以获得灰度输出。
    + +
    -hue
    +
    调整视频输出的色相。通过使用这个选项你可以获得图像的彩色负片。
    + +
    -red_intensity
    +
    调整视频信号的红色部分的强度。
    + +
    -green_intensity
    +
    调整视频信号的绿色部分的强度。
    +
    -blue_intensity
    +
    调整视频信号的蓝色部分的强度。
    +
    + +

    每一参数的取值可以从-1000+1000
    + 每一参数的默认值0

    + +

    注意:并非所有驱动都支持所有这些参数。目前只有radeon_vid.so完全支持视频均衡器。 + 其它驱动部分地仅仅部分地支持这些选择。

    + +

    例子:
    + mplayer -vo vesa:vidix -brightness -300 -contrast 200 + filename.avi
    + or
    + mplayer -vo xvidix -red_intensity -50 -saturation 400 -hue 300 + filename.vob

    + + +

    2.3.1.15 Zr

    + +

    这是用于那些MJPEG视频捕捉/回放显卡(经过DC10+和Buz的测试,对LML33,DC10应该也能工作)的显示驱动(-vo zr)。 +驱动通过把每帧图像编码成为jpeg格式和然后把它发送到显卡来工作。在jpeg编码时要使用libavcodec,而且必须使用。

    +用特殊的cinerama模式,你可以通过两个投影仪和两块MJPEG卡用真正的宽银幕方式观看电影。根据分辨率和质量的设置,这个 +驱动可能要求极强的CPU处理能力,如果你的机器太慢的话记住使用-framedrop,注意:我的AMD K6-2 350MHz(加上 +-framedrop选项)足够看VCD尺寸的东西和经过缩小的电影 + +

    这个驱动需要一个内核驱动,可以在http://mjpeg.sourceforge.net找到, +你必须先让它工作。MJPEG卡的存在能被configure脚本自动检测到,如果自动检测失败,用这个命令强制检测 + +

    +  ./configure --enable-zr
    +
    + +

    驱动的输出可以用一些选项设置,在man page里面可以找到一份长长的可用选项的描述,一个比较短的选项列表可以运行这个命令获得 + +

    +  mplayer -zrhelp
    +
    + + +

    缩放和OSD (on screen display)这类功能这个驱动不能处理,但可以用视频滤镜来完成,例如你有一个分辨率是512x272 +的电影,而你希望用你的DC10+用全屏幕观看,主要有三种可能的方法,你可以把电影宽度缩放到768384, +或者192。考虑到运行速度和质量的原因,我会选择使用快速二次线型软件缩放滤镜把电影缩放到384x204。 +命令行是这样的 + +

    +  mplayer -vo zr -sws 0 -vop scale=384:204 movie.avi
    +
    + +

    画面的切割可以用crop滤镜也可以用驱动自己完成。假设电影太宽了,在你的机器上显示不了,那么你会想要用 +-zrcrop来切割电影的宽度,那么你应该输入下面的命令 + +

    +  mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
    +
    + + 如果你想要使用crop滤镜,你可以运行 + +
    +  mplayer -vo zr -vop crop=720:320:80:0 benhur.avi
    +
    + +

    多个-zrcrop就会调用cinerama模式,你可以把电影投射到几个电视或者投影仪上来制造一个大银幕,设想你有 +两个投影仪,左边那个连到你的机器的/dev/video1而右边那个连到你的机器的/dev/video0上的DC10+上, +电影的分辨率是704x288,同时假设你希望右边的投影仪显示黑白效果而右边的投影仪显示的用质量10来显示jpeg帧 +那么你需要使用下列命令: + +

    +  mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
    +          -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi
    +
    + +

    你发现在第二个-zrcrop之前出现的选项只作用于DC10+,而第二个-zrcrop之后的选项作用于你的机器。 +在cinerama中能使用的MJPEG卡最多为4块,所以你可以制作一片2x2的视频墙

    + +

    最后还有一个重要的注意事项:不要在回放期间在回放设备上启动或停止XawTV,它将导致你的计算机崩溃。然而,首先启动XawTV, +然后启动MPlayer,等MPlayer播放结束,然后停止XawTV是没有问题的。

    + + +

    2.3.1.16 DVB

    + +

    MPlayer支持Siemens,Technotrend,Galaxis或Hauppauge提供的使用Siemens DVB芯片的显卡。 +最新的DVB驱动在Linux TV site。如果你想要软件解码你需要一个至少1GHz的CPU。

    + +

    Configure应该能检测到你的DVB显卡。如果它没有,使用下列命令强制使用 + +

    +  ./configure --enable-dvb
    +
    + +

    如果你在非标准的路径下有ost头文件,使用下列命令设置路径

    + +
    +  ./configure --with-extraincdir=<DVB source directory>/ost/include
    +
    + +

    然后就可以按正常程序编译安装。

    + +

    使用方法

    + +

    硬件解码(播放标准的MPEG1/2文件)使用下列命令:

    + +
    +  mplayer -ao mpegpes -vo mpegpes file.mpg|vob
    +
    + +

    MPEG1的软件解码或转化为其他格式使用下列命令:

    + +
    +  mplayer -ao mpegpes -vo mpegpes -vop lavc yourfile.ext
    +  mplayer -ao mpegpes -vo mpegpes -vop fame,expand yourfile.ext
    +
    + +

    注意到,DVB显卡只支持高度为288或576的PAL格式或者240或480的NTSC格式。你必须对其它的高度进行重新缩放, +通过在-vop选项中使用scale=width:height指定你想要宽度和高度。DVB显卡可以接受多种宽度, +像720,704,640,512,480,352等等,而且在水平方向上可以硬件缩放,所以大多数情况下你不需要作水平缩放。 +例如对于512x384(宽高比4:3)的DivX使用下列命令:

    + +
    +  mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=512:576
    +
    + +

    如果你使用宽银幕电影而你把它放大到整个屏幕的高度,你可以使用expand=w:h插件来增加黑带。 +为了看640x384分辨率的DivX,使用下列命令:

    + +
    +  mplayer -ao mpegpes -vo mpegpes -vop lavc,expand=640:576 file.avi
    +
    + +

    如果你的CPU对于播放720x576的DivX太慢,尝试横向缩放:

    + +
    +  mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:576 file.avi
    +
    + +

    如果速度没有提高,尝试竖直缩放:

    + +
    +  mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:288 file.avi
    +
    + +

    因为OSD和字幕使用OSD插件的扩展特性。因此,不要使用expand=w:h或者expand=w:h:x:y, +使用expand=w:h:x:y:1(第5个参数:1将开启OSD渲染)。你也许想要把图象向上移动一点来给 +字幕更大的黑色区域。如果你也想要移动字幕,因为他们可能在你电视屏幕的外面,使用-subpos <0-100>来 +调整它(-subpos 80是个不错的选择)。

    + +

    为了在PAL电视上播放非25fps的电影或者因为CPU太慢,加上-framedrop选项。

    + +

    为了保持DivX文件的宽高比并获得最理想的缩放参数(硬件水平缩放和软件垂直缩放并且保持正确宽高比),使用最新的dvbscale插件:

    + +
    +for  3:4 TV:  -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale
    +for 16:9 TV:  -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024
    +
    + +

    将来

    + +

    如果你有使用问题或想要了解特性通告或者参加这个问题的讨论,加入我们的MPlayer-DVB的邮件列表。 +请记住列表的语言是英语。

    + +

    在未来你可以期待使用DVB显卡的自带OSD特性显示OSD和字幕,还有更流畅的非25fps电影回放和实时的MPEG2和MPEG4转换(部分的解压)。

    + + +

    2.3.1.17 DXR3

    + +

    MPlayer支持Creative DXR3和Sigma Designs Hollywood Plus卡的硬件加速回放。这些卡都使用SigmaDesigns的 +em8300 MPEG解码芯片

    + +

    首先,你将需要正确地安装DXR3/H+的驱动,版本至少0.12.0或者更新的。你能在 +DXR3 & Hollywood Plus for Linux的站点找到驱动和安装指导。Configure应该自动检测到你的显卡,编译应该没有任何问题。

    + +

    用法

    + +
    +
    -vo dxr3:noprebuf:<device>
    +
    noprebuf设定关闭预缓冲。预缓冲是em8300的一个特性,是它可以同时处理一帧以上的视频。这表示当你开启 +预缓冲(默认的)运行时,MPlayer将试图保持视频缓冲区里面总是填满数据的。如果你是用的一台比较慢的机器MPlayer +大概会占用接近100%的CPU。这在你播放纯MPEG流(例如DVD,SVCD之类)的时候尤其明显,因为MPlayer不需要把它重新编码成 +MPEG所以他会以很高的速度填充缓冲区。
    + 预缓冲不是在所有的机器上都能够工作(特别是在Athlon的机器上它会被自动关闭)。如果你遇到视频/音频同步的问题就使用noprebuf +当不用预缓冲运行时em8300对CPU的占用率十分敏感,所以建议你打开MPlayer-framedrop选项来防止进一步 +的不同步
    + <device> = 使用的设备号如果你有超过一块em8300显卡。 +
    + 任何这些选择都可以被省略,但是他们必须按顺序指定,例如dxr3:fame能正常工作,dxr3:1能正常工作, +但是dxr3:1:avcodec将无法工作。
    + +
    -ao oss:/dev/em8300_ma-X
    +
    音频输出,在其中X是设备号(为0如果只有一块显卡)。
    + +
    -aop list=resample:fout=xxxxx
    +
    em8300不能工作在采样率低于44100Hz的情况。如果采样率在44100Hz之下,在44100Hz和48000Hz中选择最接近的一个。 +例如对使用22050Hz的电影,因为44100Hz/2 = 22050,所以使用44100Hz,如果是24000Hz就使用48000Hz,因为48000Hz/2 = 24000如此等等。 +这对于数字音频输出不起作用(-ac hwac3)。 + +
    -vop lace/fame
    +
    要在em8300上观看非MPEG的内容(例如DivX或者RealVideo)你必须设置一个libavcodec(lavc)或者libfame(fame)之类的MPEG1视频滤镜 +目前lavc有更好的速度还有更高的图像质量,除非你使用时遇到问题,建议你使用他。-vop lavc/fame的进一步的信息可以 +参考man page。 + +
    -ac hwac3
    +
    em8300支持使用芯片的数字音量输出来播放AC3音频(环绕音效)。阅读硬件AC3来了解AC3的 +更进一步的信息
    +
    + +

    Overlay

    + +

    为了使用overlay请在启动MPlayer之前先运行em8300包中的dxr3view。当鼠标光标在窗口上时你能通过按T键来设置 +dxr3view中的各种选项。

    + +

    MPEG1,MPEG2,VCD和DVD注意事项

    + +

    MPEG1/2格式应该能被MPlayer自动发现而且它将使用DXR3的硬件加速来播放它。否则没有,你可以使用-vc mpegpes强制硬件加速。 +同时,如果你计划使用任何后处理你必须使用滤镜-vc mpeg12

    + +

    在一些情况下,使用硬件解码(-vc mpegpes)时字幕可能与A/V流不同步。这是个已知的bug。em8300也不适于处理比较大的字幕, +可能会有1到2秒的停顿,在这种情况下,唯一的处理方法是使用-vc mpeg12来播放带有字幕的DVD。当用-vc mpeg12 +选项运行时MPlayer会把视频重新编码成MPEG(即使它已经是MPEGE了)。这表示它需要更多的CPU,同时你可能会损失一些画面质量。

    + + +

    2.3.1.A 电视输出支持

    + + +
    2.3.1.A.1 Matrox G400显卡
    + +

    在Linux下你有2种方法使G400的电视输出工作:

    + +

    注意:对于Matrox G450/G550的电视输出方法看下一节! + +

    + +
    2.3.1.A.2 Matrox G450/G550 cards
    + +

    这些显卡的电视输出支持最近刚被引入,而且还没有进入内核的主流。据我所知目前不能使用mga_vid +因为G450/G550的驱动只能工作在一种配置下面:第一个CRTC芯片(有更多特性)接第一个display(显示器),第二个 +CRTC(没有BES -- BES的解释看上面G400的部分)接电视上,所以你目前只能使用MPlayer的 +fbdev的输出设备。

    + +

    目前第一个CRTC不能传送到第二个头。内核的matroxfb驱动的作者 -- Petr Vandrovec -- 可能正在努力支持 +它,使用把第一个CRTC的输出同时显示在两个头上的方法,像目前G400推荐的一样,看上面的部分。

    + +

    需要的内核补丁和howto的细节可以从 +http://www3.sympatico.ca/dan.eriksen/matrox_tvout下载。

    + +
    2.3.1.A.2 ATI显卡
    + +
    引言
    +

    ATI目前不想对他的任何一种电视输出芯片提供Linux下的支持,主要是由于他们的授权的Macrovision技术。

    + +
    ATI显卡在Linux上电视输出的支持情况
    + + + +

    在其它显卡上,只能使用VESA驱动,没有VIDIX可用。需要强大的CPU。

    + +

    你唯一需要做的事情 -- 在启动你的电脑之前插上电视连接器的插头因为视频BIOS只在自举期间初始化一次。

    + + +
    2.3.1.A.3 Voodoo 3
    + +

    查阅这个网址

    + + +