# HG changeset patch # User diego # Date 1044348898 0 # Node ID a76b8962c0bd8330a950ca569f67c56e3fe47e70 # Parent 46d15316cf9aca0abb9fed8e79d98514c80236e4 Sync by Lu Ran . diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/bugreports.html --- a/DOCS/Chinese/bugreports.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/bugreports.html Tue Feb 04 08:54:58 2003 +0000 @@ -137,7 +137,14 @@ -

B.4.3 编译问题

+

B.4.3 配置问题

+ +

如果你在运行./configure时有问题,或者什么东西的自动检测失败,检查configure.log。你可能会在那里找到 +答案,比如你的机器上存在同一个库的多个版本混合存在的问题。或者你忘记安装开发包(那些-dev后缀的)。如果你认为有bug,在你的bug报告 +中附上configure.log

+ + +

B.4.4 编译问题

请附上下列文件: @@ -154,10 +161,6 @@
  • libao2/config.mak
  • -

    B.4.4 配置问题

    - -附上configure.log. -

    B.4.5 播放的问题

    请包括MPlayer的冗长水平为1的输出,但是记住当你把它粘贴到你的邮件中时不要删减输出内容。开发者们需要所有的信息来正确的分析问题。 @@ -211,7 +214,8 @@

    请建立下面的命令文件:

    -

    disass $pc-32 $pc+32
    +

    bt
    + disass $pc-32 $pc+32
    info all-registers

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

    diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/cd-dvd.html --- a/DOCS/Chinese/cd-dvd.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/cd-dvd.html Tue Feb 04 08:54:58 2003 +0000 @@ -54,7 +54,14 @@

    4.2 DVD播放

    -

    可用选项的完整列表请查阅man page。

    +

    可用选项的完整列表参见man page。播放标准的数字多功能碟片(DVD)的语法如下:

    + +

    mplayer -dvd <track> [-dvd-device <device>]

    + +

    示例:mplayer -dvd 1 -dvd-device /dev/hdc

    + +

    默认的DVD设备是/dev/dvd。如果你的设置不同,作一个符号链接,或者在命令行中用-dvd-device选项 +指定一个正确的设备。

    新式的DVD支持(mpdvdkit2)

    @@ -147,6 +154,10 @@

    注意:至少对于Plextor和一些Toshiba的SCSI CD-ROM驱动器在读取VCD的时候慢的恐怖。这是因为CDROMREADRAW ioctl在这些 驱动器上没有完全实现。如果你有SCSI编程方面的支持,请帮助我们实现普遍的SCSI设备的VCD支持。

    +

    此外你还可以使用readvcd提取VCD中的数据,并用 +MPlayer播放获得的文件。

    + +

    VCD结构

    VCD碟片由一个或多个音轨组成:

    diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/codecs.html --- a/DOCS/Chinese/codecs.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/codecs.html Tue Feb 04 08:54:58 2003 +0000 @@ -15,16 +15,19 @@

    2.2.1 视频编解码器

    -

    查阅编解码器状态表来了解完整的,每日更新的列表。

    +

    检查codec status table来获得完整的,每日更新的 +列表。大部分的编解码器可以从我们的主页下载,在我们的编解码器页可以找到他们。

    +

    所有之中最重要的:

    @@ -370,7 +374,7 @@

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

    +那么这是一个DMO-Codec。

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

      diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/documentation.html --- a/DOCS/Chinese/documentation.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/documentation.html Tue Feb 04 08:54:58 2003 +0000 @@ -65,6 +65,7 @@
    1. 2.1.1.12 OGG/OGM文件
    2. 2.1.1.13 SDP文件
    3. 2.1.1.14 PVA文件
    4. +
    5. 2.1.1.15 GIF文件
    6. 2.1.2 音频格式 @@ -130,6 +131,7 @@
    7. 2.3.1.2.1.4 ATI显卡
    8. 2.3.1.2.1.5 NeoMagic显卡
    9. 2.3.1.2.1.6 Trident显卡
    10. +
    11. 2.3.1.2.1.7 Kyro/PowerVR显卡
    12. 2.3.1.2.2 DGA
    13. @@ -142,7 +144,14 @@
    14. 2.3.1.2.9 AAlib -- 文本方式显示
    15. 2.3.1.2.10 VESA -- VESA BIOS的输出
    16. 2.3.1.2.11 X11
    17. -
    18. 2.3.1.2.12 VIDIX
    19. +
    20. 2.3.1.2.12 VIDIX + +
    21. 2.3.1.2.13 DirectFB
    22. 2.3.1.2.14 DirectFB/Matrox(dfbmga)
    23. @@ -277,39 +286,21 @@
    24. 7. 用MEncoder编码
    25. 附录A -- 邮件列表
    26. -
    27. Appendix B -- 如何报告bugs - -
    28. +
    29. 附录B -- 如何报告bugs
    30. 附录C -- 已知bug
    31. 附录D - MPlayer skin的格式
        @@ -401,8 +392,7 @@
      • 编码/多路传输成具有适当索引的交错的AVI文件
      • 从外部音频流创建文件
      • 1, 2或3 pass编码
      • -
      • VBR的MP3音频 - 重要提示: VBR MP3音频不总是能被Windows的播放器正常的播放!另一方面,目前MEncoder的 - CBR编码文件在Win32播放器上完全无法播放:)
      • +
      • VBR的MP3音频 - 重要提示: VBR MP3音频不总是能被Windows的播放器正常的播放!
      • PCM音频
      • 流复制
      • 输入的自动A/V同步(基于PTS,使用-mc 0选项来禁用)
      • @@ -471,7 +461,7 @@
        • binutils -- 建议版本2.11.x。这个程序负责生成MMX/3DNow!/etc指令,因此十分重要。
        • -
        • gcc -- 建议版本是:2.95.32.95.43.1永远不要使用2.96或者3.0.x! +
        • gcc -- 建议版本是:2.95.3(或者2.95.4)和3.2+永远不要使用2.96或者3.0.x! 他们产生错误的MPlayer的代码。如果你决定更换2.96的gcc,那么不要只是因为新而决定采用3.0.x!3.0.x的早期版本甚至比2.96更buggy。 因此不如降级到2.95.x(也把libstdc++降级,其它程序可能需要它)或者根本不升/降级(但这种情况下请对运行时的问题作好准备)。 如果你一定要使用3.x.x请使用最新的版本,早先的发行版本有各种各样的错误,确信你使用的至少是3.1,它通过测试且工作正常。 @@ -655,7 +645,7 @@

          1.3 GUI有吗?

          -

          GUI需要GTK(它不是GTK的,但是面板是的)。skin被保存为PNG格式,因此你需要安装gtk,libpng(和他们的devel包)。 +

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

          • 在你的config文件中添加gui=yes
          • @@ -675,6 +665,8 @@ MPlayer能在播放电影的同时显示字幕。目前支持下列格式:

            • VobSub
            • +
            • OGM
            • +
            • CC (closed caption)
            • Microdvd
            • SubRip
            • SubViewer
            • @@ -687,7 +679,7 @@
            • JACOsub
            -

            MPlaye可以把上面列出的字幕格式转换成下列的格式,使用下列选项:

            +

            MPlaye可以把上面列出的字幕格式(除了前三个)转换成下列的格式,使用下列选项:

            • MPsub: -dumpmpsub
            • @@ -737,7 +729,7 @@

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

              -

              MPlayer引入一种称为MPsub的新的字幕格式。它是我(Gabucino)设计。基本上,其主要的特性是基于动态时间 +

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

              # first number : wait this much after previous subtitle disappeared
              @@ -806,12 +798,14 @@

              1.4.3 OSD菜单

              -

              MPlayer有一个完整的用户可定义的OSD菜单接口。

              +

              MPlayer有一个完全用户自定义的OSD菜单接口。

              + +

              注意:Preferences菜单目前不能使用!

              安装

                -
              1. 编译MPlayer时在./configure时加上--enable-new-conf --enable-menu参数
              2. +
              3. 编译MPlayer时在./configure时加上--enable-menu参数
              4. 确保你安装了OSD字体
              5. etc/menu.conf复制到你的.mplayer目录
              6. etc/input.conf复制到你的.mplayer目录,或者系统通用的MPlayer配置目录(默认为:/usr/local/etc/mplayer)
              7. @@ -1361,7 +1355,7 @@

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

                -

                6.5 Silicon Graphics / IRIX

                +

                6.4 Silicon Graphics / IRIX

                你可以安装GNU的install程序,并且(如果你没有把它放在你的系统路径中)指定它的位置:

                @@ -1394,7 +1388,7 @@

                然后继续编译和安装。

                -

                6.6 QNX

                +

                6.5 QNX

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

                @@ -1402,7 +1396,7 @@

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

                -

                6.7 Cygwin

                +

                6.6 Cygwin

                Cygwin的移植仍然很不成熟。目前还不支持Win32 DLLs和OpenGL。SDL据说会扭曲声音和图像或者在某些系统上导致崩溃。补丁总是欢迎的。最好的效果是使用本地的DirectX视频输出驱动(-vo directx) @@ -1426,7 +1420,7 @@

                DVD同样可以,用下面的命令DVD设备设置成你的CD-ROM驱动器:

                -

                mplayer -dvd <title> -dvd-device d:

                +

                mplayer -dvd <title> -dvd-device '\\.\d:'

                QuickTime DLL据说也能工作。用--enable-qtx-codecs编译并把编解码器放到默认的Windows DLL位 置,C:\WINNT\system32或者C:\Windows\system取决于你的Windows的版本。

                diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/encoding.html --- a/DOCS/Chinese/encoding.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/encoding.html Tue Feb 04 08:54:58 2003 +0000 @@ -61,8 +61,22 @@     mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi

                +

                7.2 编码为MPEG格式

                -

                7.2 电影再缩放

                +

                MEncoder可以生成MPEG(MPEG-PS)格式的输出文件。它们可能只能用于libavcodec的mpeg1video编解码器,因为一般播放器 - +- 除了MPlayer -- 认为MPEG文件中包含的是MPEG1视频流和MPEG1 layer 2(MP2)音频流。

                + +

                这个特性目前来说没有什么用处,而且可能还有很多bug,其重要性在于目前MEncoder无法编码MPEG1 layer 2 (MP2)的音频,而它正是别的播放 +器认为MPEG文件中应该有的。

                + +

                要改变MEncoder的输出文件格式,可以使用-of mpeg选项。

                + +

                示例:
                +   mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video + -oac copy <other options> media.avi -o output.mpg

                + + +

                7.3 电影再缩放

                把电影图象的尺寸重新设置的需要经常出现。原因可能很多,例如减小输出文件的大小,网络带宽等等,很多人甚至再把DVD或SVCD编码为到DivX 的AVI的时候也重新缩放,这是错误的。在这么做之前,请先阅读保持屏幕高宽比部分。

                @@ -76,7 +90,7 @@ output.avi

                -

                7.3 流复制

                +

                7.4 流复制

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

                @@ -90,7 +104,7 @@
            -

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

            +

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

            最容易的事情。我们简单地复制视频和音频流,并用MEncoder产生索引。当然这不能修复视频和/或者音频流中可能的错误。 这同样也可以修复交错损坏的文件, @@ -98,8 +112,17 @@

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

            +

            7.5.1 合并多个AVI文件

            -

            7.5 用libavcodec编解码器族编码

            +

            作为修复损坏的AVI文件的副产物,MEncoder可以用来修复两个或多个AVI文件合并生成的文件:

            + +

            命令:cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi -

            + +

            注意:这要求1.avi和2.avi使用同样的编解码器,分辨率,流速率等等,并且至少1.avi不是损坏的。你可能需要先修复你的 +AVI输入文件,按照上面所说的方法。

            + + +

            7.6 用libavcodec编解码器族编码

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

            @@ -122,7 +145,7 @@ -lavcopts vcodec=mjpeg -oac copy

            -

            7.6 用输入的多幅图象文件(JPEG,PNG或TGA)进行编码

            +

            7.7 用输入的多幅图象文件(JPEG,PNG或TGA)进行编码

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

            @@ -144,27 +167,24 @@ output.avi

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

            +   mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o output.avi \*.jpg

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

            +   mencoder -mf on:w=800:h=600:fps=25 -ovc copy -o output.avi \*.jpg

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

            +   mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb -o output.avi \*.png

            + +

            注意:宽度必须是4的整数倍,这是RAW RGB AVI格式的一个限制。

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

            +   mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy -o output.avi \*.png

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

            +  mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy -o output.avi \*.tga

            -

            7.7 将DVD字幕提取为Vobsub文件

            +

            7.8 将DVD字幕提取为Vobsub文件

            MEncoder有把DVD字幕提取到Vobsub格式的文件的能力。包括以.idx.sub结尾的一对 文件而且通常打包在一个单一的.rar文档中。MPlayer能使用-vobsub-vobsubid @@ -195,7 +215,7 @@   mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles -vobsuboutindex 0 -vobsuboutid fr -sid 1

            -

            7.8 保持屏幕高宽比

            +

            7.9 保持屏幕高宽比

            DVD和SVCD(也就是MPEG1/2)文件通常包含屏幕高宽比的值,它描述播放器如何正确缩放视频流,保证人不会长鸡蛋脑袋 (ex.: 480x480 + 4:3 = 640x480)。但当编码成AVI(DivX)文件时,你必须清醒的认识到AVI的文件头中没有储存这个数据。重新缩放电影 diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/formats.html --- a/DOCS/Chinese/formats.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/formats.html Tue Feb 04 08:54:58 2003 +0000 @@ -166,6 +166,23 @@

            PVA规格的描述可以在下面地址下载http://www.technotrend.de/download/av_format_v1.pdf

            +

            2.1.1.15 GIF files

            + +

            GIF格式是网页图象的普遍格式,有两种版本的GIF规格,GIF87a和GIF89a。主要的区别在于GIF89a允许动画。MPlayer通过 +使用libungif库或者另一个libgif-compatible的库支持这两种规格。非动画的GIF显示为单帧的视频。(使 +用-loop-fixed-vo选项来显示更长的时间。)

            + +

            MPlayer目前不支持在GIF文件中搜索。GIF文件并不一定有一个固定的帧大小,或者帧速率。而且,每一帧都有独立的大小并且 +应该被放在一个固定的地方并且有固定的尺寸。帧速率是通过使用每一帧前面的一个控制块以百分之一秒为单位控制这一帧显示 +的时间长短来实现的。

            + +

            标准的GIF文件包含24-bit的RGB帧和最多8-bit的索引调色板。这些帧大多以LZW格式压缩,但有些GIF编码器生成未压缩的 +帧以避免LZW压缩的专利问题。

            + +

            如果你的发行版没有包含libungif,可以从libungif主页 +下载。技术细节你可以参考GIF89a规格.

            + +

            2.1.2 音频格式

            diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/skin.html --- a/DOCS/Chinese/skin.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/skin.html Tue Feb 04 08:54:58 2003 +0000 @@ -1,22 +1,22 @@ - -制作Skin -- MPlayer -- Linux下的电影播放器 + + 制作Skin -- MPlayer -- Linux下的电影播放器 - +

            附录D - MPlayer skin的格式

            -本文件的目的是描述MPlayer的skin的格式。这里所包含的信息可能不对,因为 +

            本文件的目的是描述MPlayer的skin的格式。这里所包含的信息可能不对,因为

            1. GUI不是我写的
            2. @@ -24,37 +24,31 @@
            3. 我可能搞错了
            -因此如果某个功能与它在这里被描述的工作方式不一样,不用大惊小怪。 +

            因此如果某个功能与它在这里被描述的工作方式不一样,不用大惊小怪

            。 -

            -谢谢Zolt醤 Ponekker的帮助。 -

            +

            谢谢Zolt醤 Ponekker的帮助。

            -

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

            +

            Andr醩 Mohari <mayday@freemail.hu>

            D.1 综述

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

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

            D.1.1 目录

            -skin的搜索目录(按顺序)是: +

            skin的搜索目录(按顺序)是:

                 $(DATADIR)/Skin/
                 $(PREFIX)/share/mplayer/Skin/
                 ~/.mplayer/Skin/
             
            -

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

            +

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

            -所有的skin被安装到上面列出的一个目录下的自己的目录中,例如: +

            所有的skin被安装到上面列出的一个目录下的自己的目录中,例如:

                 $(PREFIX)/share/mplayer/Skin/default/
             
            @@ -62,161 +56,135 @@

            D.1.2 图像格式

            -图像必须是真彩的(24或者32bpp)PNG图片 +

            图像必须是真彩的(24或者32bpp)PNG图片。

            -

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

            +

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

            D.1.3 Skin的组成部分

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

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

            -

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

            +

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

              -
            • -主窗口和/或者播放条是你控制MPlayer的地方。窗口的背景是图像。各种项目可以(而且必须)被放置在这里: -按钮滑动条标签。对于每一个项目,你都必须指定其位置和大小。 +
            • 主窗口和/或者播放条是你控制MPlayer的地方。窗口的背景是图像。各种项目可以(而且必须)被放置在这里: +按钮滑动条标签。对于每一个项目,你都必须指定其位置和大小。

              -

              -一个按钮有三种状态(按下,释放,禁止),所以按钮图像必须垂直地划分成三部分。 -细节参见按钮项目。 -

              +

              一个按钮有三种状态(按下,释放,禁止),所以按钮图像必须垂直地划分成三部分。 +细节参见按钮项目。

              -

              -滑动条(主要用于搜寻条和音量/平衡控制)可以有任意多的状态只要你把图像分成上下排列的足够多份。 -细节参见hpotmeterpotmeter。 -

              +

              滑动条(主要用于搜寻条和音量/平衡控制)可以有任意多的状态只要你把图像分成上下排列的足够多份。 +细节参见hpotmeterpotmeter

              -

              -标签有一点特殊:字符需要从图像文件中绘制,而图像中的字符用字体描述文件描述。 +

              标签有一点特殊:字符需要从图像文件中绘制,而图像中的字符用字体描述文件描述。 后者一个纯文本文件规定图像中每一字符的x,y坐标和大小(图像文件和他的字体描述文件共同 -组成一个字体)。细节参见dlabelslabel。 -

              +组成一个字体)。细节参见dlabelslabel

              + +

              注意:所有图像都能像图像格式一节中说明的使用透明色。如果X Server不支持 +XShape扩展,透明的部分将显示为黑色。如果你想使用这个特性,主窗口背景图像的宽度应该能被8整除。

              +
            • -

              - -注意:所有图像都能像图像格式一节中说明的使用透明色。如果X Server不支持 -XShape扩展,透明的部分将显示为黑色。如果你想使用这个特性,主窗口背景图像的宽度应该能被8整除。 - -

              - +
            • subwindow是电影显示的地方。如果没有载入电影它将显示一个指定的图像(空的窗口太无聊了:-)) +注意:在这里不允许使用透明色。

              +
            • -
            • -subwindow是电影显示的地方。如果没有载入电影它将显示一个指定的图像(空的窗口太无聊了:-)) -注意:在这里不允许使用透明色。 -
            • - -
            • -skin菜单仅仅是提供一个通过菜单控制MPlayer的方法。菜单需要两个图像:一个是基础图像 +
            • skin菜单仅仅是提供一个通过菜单控制MPlayer的方法。菜单需要两个图像:一个是基础图像 用来显示菜单的正常状态,另一个用来显示被选择的项目。当菜单弹出时,显示第一个图像。如果你把鼠标在 菜单条目上移动,当前选择的项目从第二个图像中复制并覆盖到当前鼠标指针下面的菜单项目上。 -(第二个图像从来不作为整体来显示)。 -

              -一个菜单选项用图像中的位置和大小定义(细节参见skin菜单)。 -

              -
            • +(第二个图像从来不作为整体来显示)。

              + +

              一个菜单选项用图像中的位置和大小定义(细节参见skin菜单)。

              +
            -

            -还有一件重要的事情没有提到:为了使按钮,滑动条和菜单项工作,MPlayer必须知道如果他们被点击 +

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

            +他们被点击时将会产生的消息。

            D.1.4 文件

            -你需要制作下列的文件构成一个skin: +

            你需要制作下列的文件构成一个skin:

            +
              -
            • -一个配置文件称为skin,告诉MPlayer如何将skin的不同部分放在一起, -以及如果你在窗口中某处点击的话应该做什么。 -
            • -
            • 主窗口的背景图像。
            • -
            • 主窗口上代表物件的图像(包括一个或更多字体描述文件用来显示标签)。
            • -
            • 在副窗口中显示的图像(可选)。
            • -
            • skin菜单的两个图像(仅当你想要创建菜单时才需要他们)。
            • +
            • 一个配置文件称为skin,告诉MPlayer如何将skin的不同部分放在一起, +以及如果你在窗口中某处点击的话应该做什么。
            • +
            • 主窗口的背景图像。
            • +
            • 主窗口上代表物件的图像(包括一个或更多字体描述文件用来显示标签)。
            • +
            • 在副窗口中显示的图像(可选)。
            • +
            • skin菜单的两个图像(仅当你想要创建菜单时才需要他们)。
            -除了skin的配置文件之外,你能给其它文件起随便什么名字(但字体描述文件必须以.fnt为扩展名)。 +

            除了skin的配置文件之外,你能给其它文件起随便什么名字(但字体描述文件必须以.fnt为扩展名)。

            -

            D.2 skin文件

            +

            D.2 skin文件

            + +

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

            -

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

            +

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

            -

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

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

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

            +

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

            + +

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

            -

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

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

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

            +

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

              -
            • main -- 对于主窗口
            • -
            • sub -- 对于副窗口
            • -
            • menu -- 对于skin菜单
            • -
            • playbar - 播放条
            • +
            • main -- 对于主窗口
            • +
            • sub -- 对于副窗口
            • +
            • menu -- 对于skin菜单
            • +
            • playbar - 播放条
            -

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

            +

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

            -

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

            +

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

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

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

            +

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

            - + +
            +
            +  
            +    
            +
             section = movieplayer
               window = main
               ; ... items for main window ...
            @@ -234,18 +202,17 @@
               ; ... items for playbar ...
               end
             end
            -
            +
            +
            -

            -图像文件的名称必须不带目录名 -- 图像在Skin目录中被搜索。你能(但是并不需要)规定扩展名。 +

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

            +<ext>可以是png或者PNG(按这个顺序尝试)。第一个匹配文件将被使用。

            -

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

            +

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

             
            @@ -259,44 +226,34 @@
             
             
            - + +
            -这里有个例子可以把这个搞清楚。假设你有个叫main.png的图像用来做主窗口: -
            + + +
            这里有个例子可以把这个搞清楚。假设你有个叫main.png的图像用来做主窗口: +
                 base = main, -1, -1
             
            -
            - -MPlayer将尝试装载mainmain.pngmain.PNG文件。 -
            -
            +
            + MPlayer将尝试装载mainmain.pngmain.PNG文件。
            +

            D.2.1 主窗口和播放条

            -下面是所有能用于'window = main' . . . 'end'和'window = playbar'  . . 'end'块中的项目的列表。 +

            下面是所有能用于'window = main' . . . 'end'和'window = playbar'  . . 'end'块中的项目的列表。

            -
            -base = image, X, Y -
            -
            -指定用于主窗口的背景图像。窗口将显示在屏幕上的X,Y位置,窗口的大小与图像相同。 -
            - -注意:这些参数目前对显示窗口不起作用。 - -
            - -警告:图像中的透明区域(彩色的#FF00FF )在没有XShape扩展的X服务器上是黑色的。图像的宽度必须能被8整除。 - -
            -
            +
            base = image, X, Y
            +
            指定用于主窗口的背景图像。窗口将显示在屏幕上的X,Y位置,窗口的大小与图像相同。 +
            注意:这些参数目前对显示窗口不起作用。
            + 警告:图像中的透明区域(彩色的#FF00FF )在没有XShape扩展的X服务器上是黑色的。图像的宽度必须能被8整除。 +
            +
            -
            -button = image, X, Y, width, height, message
            -
            -将一个大小为width*height的按钮放置在XY的位置。 +
            button = image, X, Y, width, height, message
            +
            将一个大小为width*height的按钮放置在XY的位置。 指定的message将在按钮被点击时产生。被image制定的图像必须有从上到下三个部分 (根据按钮的可能状态),像这样:
            @@ -308,41 +265,26 @@
             |  disabled  |
             +------------+
             
            -
            + -
            -decoration = enable|disable -
            -
            -允许或禁止window manager修饰主窗口。缺省设定是禁止。 -
            -
            - -注意:这对显示窗口无效,它们不需要。 - -
            -
            +
            decoration = enable|disable
            +
            允许或禁止window manager修饰主窗口。缺省设定是禁止

            + 注意:这对显示窗口无效,它们不需要。
            +
            -
            - - -hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message -
            -vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message -
            -
            -
            -
            -在XY位置放置一个大小为width*height的水平滑动条。 +
            hpotmeter = button, bwidth, bheight, phases, numphases, default, + X, Y, width, height, message
            vpotmeter = button, bwidth, bheight, phases, numphases, default, + X, Y, width, height, message
            +
            XY位置放置一个大小为width*height的水平滑动条。 所用的图像可以划分成不同的部分用来显示滑动条的不同状态(例如,你能做一个音量滑动条,当音量从最小变到最大时, 滑动条的颜色从绿色变成红色。)。hpotmeter可以有一个能被水平拖曳的按钮。 -
            参数是:
            +
            参数是:
            -
              -
            • button -- 用于按钮的图像(必须有从上到下三部分,跟button中一样)
            • -
            • bwidthbheight -- 按钮的大小
            • -
            • phases -- 用于hpotmeter的不同的状态的图像。如果你想不要这样的图像可以使用一个特殊的值NULL。 +
                +
              • button -- 用于按钮的图像(必须有从上到下三部分,跟button中一样)
              • +
              • bwidthbheight -- 按钮的大小
              • +
              • phases -- 用于hpotmeter的不同的状态的图像。如果你想不要这样的图像可以使用一个特殊的值NULL。 图像必须像这样被垂直划分成numphases个部分:
                 +------------+
                @@ -355,202 +297,156 @@
                 |  phase #n  |
                 +------------+
                 
                -
              • -
              • numphases -- phase图像中储存的状态的数量
              • -
              • default -- hpotmeter的缺省值(范围0到100)
              • -
              • XY -- hpotmeter的位置
              • -
              • widthheight -- hpotmeter的宽度和高度
              • -
              • message -- 当hpotmeter的值改变时产生的消息
              • -
              +
            • +
            • numphases -- phase图像中储存的状态的数量
            • +
            • default -- hpotmeter的缺省值(范围0到100)
            • +
            • XY -- hpotmeter的位置
            • +
            • widthheight -- hpotmeter的宽度和高度
            • +
            • message -- 当hpotmeter的值改变时产生的消息
            • +
            -
            + -
            -potmeter = phases, numphases, default, X, Y, width, height, message -
            -
            -没有按钮的hpotmeter。(我猜它是用来旋转,但它只对水平拖拽作出反应)。 +
            potmeter = phases, numphases, default, X, Y, width, height, message
            +
            没有按钮的hpotmeter。(我猜它是用来旋转,但它只对水平拖拽作出反应)。 描述参数参见hpotmeterphases能设为NULL, -但这实在没什么用处,因为那样你就看不到potmeter在哪里了。 -
            +但这实在没什么用处,因为那样你就看不到potmeter在哪里了。 -
            -font = fontfile, fontid -
            -
            -定义一个字体。fontfile是以.fnt为扩展名的字体描述文件的名字(不要加上扩展名)。 +
            font = fontfile, fontid
            +
            定义一个字体。fontfile是以.fnt为扩展名的字体描述文件的名字(不要加上扩展名)。 fontid用来代表这种字体(见dlabelslabel)。 -可以定义25个字体。 -
            +可以定义25个字体。 -
            -slabel = X, Y, fontid, "text" -
            -
            -在XY位置放置一个静态的标签。text将用fontid代表的字体显示。 +
            slabel = X, Y, fontid, "text"
            +
            XY位置放置一个静态的标签。text将用fontid代表的字体显示。 text只能是无格式文本($x之类的变量不起作用)而且必须封在一对双引号中(但是"字符不能是text的一部分)。 -标签使用由fontid代表的字体显示。 -
            +标签使用由fontid代表的字体显示。 -
            -dlabel = X, Y, length, align, fontid, "text" -
            -
            -在XY位置放置一个动态的标签。标签被称为动态的,因为它的text周期性地刷新。标签的最大限度长度由 +
            dlabel = X, Y, length, align, fontid, "text"
            +
            XY位置放置一个动态的标签。标签被称为动态的,因为它的text周期性地刷新。标签的最大限度长度由 leghth给定(它的高度是字符的高度)。如果将要显示的text比给定的宽度宽,它将滚动显示,否则它将在指定的空间之内按 -align参数的值对齐显示:0表示靠右对齐,1表示居中对齐,2表示靠左对齐。 -
            +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"这个字符)
            $x电影宽度
            $y电影高度
            $C使用的编解码器的名字
            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            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"这个字符)
            $x电影宽度
            $y电影高度
            $C使用的编解码器的名字
            - -注意:$a$T$p$s$e变量都返回应该被显示作为特殊的符号 + 注意:$a$T$p$s$e变量都返回应该被显示作为特殊的符号 (例如,"e"通常代表像||这样的暂停符号)的字符。你应该有一个正常字符的字体以及另一个用于符号的不同的字体。 -更多信息参见符号部分。 - -
            +更多信息参见符号部分。 +

            D.2.2 副窗口

            -下列的项目能用于'window = sub' . . . 'end'块。 +

            下列的项目能用于'window = sub' . . . 'end'块。

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

            D.2.3 Skin菜单

            -如前所述,菜单用两个图像显示。 +

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

            -

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

            +

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

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

            D.3 字体

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

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

            -

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

            +

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

            -
            -image = image -
            -
            -其中image是用于字体的图像文件的名字(你不必制定扩展名)。 -
            +
            image = image
            +
            其中image是用于字体的图像文件的名字(你不必制定扩展名)。
            -
            -"char" = X, Y, width, height -
            -
            -这里XY指定char字符在图像中的位置(0,0表示左上角)。 -widthheight是字符的尺寸,以象素为单位。 -
            +
            "char" = X, Y, width, height
            +
            这里XY指定char字符在图像中的位置(0,0表示左上 +角)。widthheight是字符的尺寸,以象素为单位。
            -这个例子中用font.png定义A,B,C三个字符。 - + +
            +

            这个例子中用font.png定义A,B,C三个字符。

            + + +
            +
             ; Can be "font" instead of "font.png".
             image = font.png
             
            @@ -558,193 +454,193 @@
             "A" =  0,0, 7,13
             "B" =  7,0, 7,13
             "C" = 14,0, 7,13
            -
            +
            +

            D.3.1 符号

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

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

            -

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

            +

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

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

            D.4: GUI信息

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

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

            -

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

            +

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

            Playback控制:

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

            搜索:

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

            视频控制:

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

            音频控制:

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

            其他:

            -
            -
            evAbout -
            打开关于窗口。 +
            +
            evAbout
            +
            打开关于窗口。 -
            evEqualizer -
            打开/关闭均衡器。 +
            evEqualizer
            +
            打开/关闭均衡器。
            -
            evExit -
            退出程序。 +
            evExit
            +
            退出程序。
            -
            evIconify -
            窗口图标化。 +
            evIconify
            +
            窗口图标化。
            -
            evLoad -
            装载文件(打开一个文件浏览窗口,你能在其中选择文件)。 +
            evLoad
            +
            装载文件(打开一个文件浏览窗口,你能在其中选择文件)。
            -
            evLoadPlay -
            功能与evLoad一样,但是它在文件之后装载自动地开始播放。 +
            evLoadPlay
            +
            功能与evLoad一样,但是它在文件之后装载自动地开始播放。
            -
            evNone -
            空信息,它没有效果(也许CVS版本除外:-))。 +
            evNone
            +
            空信息,它没有效果(也许CVS版本除外:-))。
            -
            evPlayList -
            打开/关闭播放列表窗口。 +
            evPlayList
            +
            打开/关闭播放列表窗口。
            -
            evPlayDVD -
            尝试打开指定的DVD-ROM驱动器中的碟片。 +
            evPlayDVD
            +
            尝试打开指定的DVD-ROM驱动器中的碟片。
            -
            evPlayVCD -
            尝试打开指定的CD-ROM驱动器中的碟片。 +
            evPlayVCD
            +
            尝试打开指定的CD-ROM驱动器中的碟片。
            -
            evPreferences -
            打开选项设置窗口。 +
            evPreferences
            +
            打开选项设置窗口。
            -
            evSetAspect -
            设置显示图像的屏幕高宽比。 +
            evSetAspect
            +
            设置显示图像的屏幕高宽比。
            -
            evSetURL -
            显示URL对话窗口。 +
            evSetURL
            +
            显示URL对话窗口。
            -
            evSkinBrowser -
            打开skin浏览器窗口。 -
            +
            evSkinBrowser
            +
            打开skin浏览器窗口。
            +
            diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/sound.html --- a/DOCS/Chinese/sound.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/sound.html Tue Feb 04 08:54:58 2003 +0000 @@ -21,7 +21,7 @@
            OSS(ioctl)驱动(支持硬件AC3输出)
            sdl
            -
            SDL驱动(支持ESDARTS等等)
            +
            SDL驱动(支持ESDARTS之类的音频守护进程)
            nas
            NAS(Network Audio System)驱动
            @@ -42,14 +42,14 @@
            本地的ESD驱动(主要针对GNOME用户)
            -

            事实上,Linux声卡驱动有兼容问题。这是因为MPlayer使用一个正常编码的声卡驱动实现的特性来实现音频/视频同步。遗憾的是有些驱动的作者 +

            Linux下的声卡驱动有兼容问题。这是因为MPlayer使用一个正确编码的声卡驱动内建的特性来实现音频/视频同步。遗憾的是有些驱动的作者 不在乎这个功能,它在播放MP3和实现声音效果时并不需要。

            -

            别的媒体播放器比如aviplay或者xine可能在这些驱动上工作没有问题因为他们使用内部计时器的“简单”方法。注意:时间表明他们的方法没有 -MPlayer的方法有效率。

            +

            别的媒体播放器比如aviplay或者xine可能在这些驱动上工作没有问题因为他们使用内部计时器的“简单”方法。 +测试表明他们的方法没有MPlayer的方法有效率。

            -

            使用一个正确编制的音频驱动的时候MPlayer将永远不会产生音频相关的A/V不同步,除非你的文件完全损坏。有些用来绕过这些问题的选项 -在man page里面有描述)。

            +

            使用一个正确编制的音频驱动的时候MPlayer将永远不会产生音频相关的A/V不同步,除非你的文件制作的相当糟糕。(man page里面有解决的办法)。

            如果你碰巧遇到一个不好的音频驱动,尝试使用-autosync选项,它应该可以解决你的问题。详细的信息参见man page。

            @@ -57,90 +57,187 @@
            • 如果你有OSS驱动,先尝试-ao oss(这是默认的)。如果你遇到毛刺,停止或者任何不正常的事情, -尝试-ao sdl(注意:你需要安装SDL库和头文件)。许多情况下SDL的音频驱动都会有帮助,也支持ESD, -ARTS,和升/降采样率。(ESD是GNOME的音频守护进程,ARTS是KDE的)。
            • +尝试-ao sdl(注意:你需要安装SDL库和头文件)。许多情况下SDL的音频驱动都会有帮助,也支持ESD(GNOME),ARTS(KDE)。
            • 如果你使用ALSA 0.5的版本,那么你几乎总是不得不使用-ao alsa5,因为ALSA 0.5的OSS仿真很buggy, 会导致MPlayer崩溃并出现这样的信息:
              DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
            • +
            • 在Solaris上,用-ao sun选项选择使用SUN的音频驱动,否则视频音频都无法工作。
            • +
            • 如果从CD-ROM上播放时声音跳跃,打开IRQ unmasking,也就是使用命令hdparm -u1 /dev/cdrom(man hdparm)。这 +一般来说时有益的,进一步的描述在CD-ROM部分
            -

            Solaris上,必须用-ao sun选项,否则视频音频都无法工作。

            -

            2.3.2.2 声卡体验,推荐

            - - - +

            Linux下的声卡驱动主要是自由版本的OSS。这些驱动在2.5的开发树中已经被ALSA(Advanced + Linux Sound Architecture)取代,如果你的发行版中还没有使用ALSA,而你的声卡又有问题你可能应该试试。ALSA的驱动一般来说,在 +兼容性,表现和特性方面都比OSS要好,但也有些声卡只有4Front Technologies的商业版本的 +OSS驱动才支持,他们也支持一些非Linux系统。

            + +
            VIA板载芯片(via82cxxx)只能48kHz
            驱动:sourceforge.net
            + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + - - - - + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + - - - - -
            声卡驱动最大kHz最大声道数最大打开数
            Aureal Vortex 2
                OSS:没有驱动
            OSS/Pro:OK
            ALSA:没有驱动
            Max kHz:48
            驱动:aureal.sourceforge.net
            驱动2:Pontscho的主页
            - (缓冲大小增加到32k)
            OSS/FreeALSAOSS/Pro其他
            VIA板载芯片(via82cxxx)只能48kHzvia82cxxx_audiosnd-via82xx  4-48 kHz或者只能使用48 kHz,取决于芯片  
            GUS PnP
            OSS:没有驱动
            OSS/Pro:OK
            ALSA:OK
            Max kHz:48
            Aureal Vortex 2没有没有OKLinux Aureal Drivers
            + 缓冲大小增加到32k
            484.15+
            SB Live!
            OSS:模拟方式很好,SP与DIF不能工作
            ALSA:两个都很好
            Max kHz:192
            SB Live!模拟方式OK,SP与DIF不能工作都OK都OKCreative的OSS驱动(支持SP/DIF)1924.0/5.132
            SB AWE 64
            OSS:max 44kHz
            ALSA:48kHz听起来很糟
            Max kHz:48
            SB 128 PCI(es1371)OK?  48立体声2
            SB AWE 64最大44kHz48kHz听起来很糟  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
            GUS PnP没有OKOK 48  
            Gravis UltraSound ACE不OKOK  44  
            Gravis UltraSound MAXOKOK (?)  48  
            ESS 688OKOK(?)  48  
            C-Media声卡(那种?)
            OSS:不是很好(有嘶嘶声) (?)
            ALSA:OK(?)
            Max kHz:
            Yamaha声卡(*ymf*)
            OSS:不是很好(?)(-ao sdl)
            ALSA:仅在使用ALSA 0.5的OSS仿真-ao sdl(!)(?)时很好
            Max kHz:
            C-Media声卡(哪一种?)不OK(有咝咝声)(?)OK(?)  ?  
            Yamaha声卡(*ymf*)不OK(?)(可能应该用-ao sdl)只有使用ALSA 0.5的OSS模拟并使用-ao sdl(!)(?)时OK  ?  
            使用envy24芯片的声卡(比如Terratec EWS88MT)??OK ?  
            使用envy24芯片(Terratec EWS88MT之类)的声卡
            OSS:
            OSS/Pro:OK
            ALSA:
            Max kHz:
            PC扬声器或者DACOK (使用SDL驱动:-ao sdl)none Linux PC扬声器的OSS驱动驱动可以模拟到44.1,可能更高。单声道1
            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部分

            - +

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

            2.3.2.3 Audio filters

            @@ -154,15 +251,15 @@

            声音将先通过resample滤镜然后通过pan滤镜。注意列表中不能包含任何空格,否则它将会失败。

            -

            滤镜通常有开关用来改变他们的行为。这些开关在下面的章节会详细的解释。当开关被省略是滤镜将执行默认的设置。这里是一个 -使用带相应开关的滤镜的例子:

            +

            滤镜通常有选项用来改变他们的行为。这些选项在下面的章节会详细的解释。当选项被省略是滤镜将执行默认的设置。这里是一个 +使用带相应选项的滤镜的例子:

              mplayer -af resample=11025,pan=1:0.5:0.5 -channels 1 -srate 11025 media.avi

            将resample滤镜的输出频率设置为11025Hz并使用pan滤镜把音频混合到一个声道。

            -

            这个滤镜层的运行由-af-adv开关控制。这个开关有两个子选项:

            +

            这个滤镜层的运行由-af-adv选项控制。这个选项有两个子选项:

            force
            @@ -190,22 +287,22 @@
            list
            -
            是-af开关的别名。
            +
            是-af选项的别名。
            -

            滤镜层同样会影响下面的一般开关: +

            滤镜层同样会影响下面的一般选项:

            -v
            增加冗余级别使大部分滤镜显示处附加的状态信息。
            -channels
            -
            这个选项设置你的声卡使用的输出声道数。它同样会影响从媒体解码处的声道数。如果媒体包含的声道数少于要求的声道数 +
            这个选项设置你想让你的声卡使用的输出声道数。它同样会影响从媒体解码处的声道数。如果媒体包含的声道数少于要求的声道数 channels插件(见下面)将自动插入。定向将使用channels滤镜的默认定向。
            -srate
            -
            这个选项选择你的声卡的采样率,如果你的声卡的采样率与当前媒体不同,resample插件(见下面)将插入到音频滤镜层中 +
            这个选项选择你想让你的声卡使用的采样率,如果你的声卡的采样率与当前媒体不同,resample插件(见下面)将插入到音频滤镜层中 来补偿这个差别。
            -format
            -
            这个选项设置声卡和音频滤镜层的采样格式,如果你的声卡要求的采样格式域当前媒体不同,一个format插件(见下面)将自动插入 +
            这个选项设置声卡和音频滤镜层之间使用的采样格式,如果你的声卡要求的采样格式域当前媒体不同,一个format滤镜(见下面)将自动插入 来进行调整。
            @@ -213,15 +310,15 @@
            2.3.2.3.1 升/降采样率

            MPlayer完全支持使用resample插件进行声音的升/降采样率。当你使用固定采样率的声卡或者被只兼容 -最大44.1kHz的老声卡郁闷时可以使用它。这个滤镜会在需要时自动开启,但它也可以用命令行显式的开启。他有三个开关:

            +最大44.1kHz的老声卡郁闷时可以使用它。这个滤镜会在需要时自动开启,但它也可以用命令行显式的开启。他有三个选项:

            srate <8000-192000>
            -
            是一个整数用来设置输出的采样频率,以Hz为单位。有效范围从8kHz到192kHz。如果输入输出的采样频率相同或者这个参数 +
            是一个整数用来设置输出的采样频率,以Hz为单位。有效范围从8kHz到192kHz。如果输入输出的采样频率相同或者这个选项 被省略滤镜降自动卸载。高的采样频率通常会提高声音的质量,特别是跟别的滤镜一起使用的时候。
            sloppy
            -
            是一个可选的二进制参数使输出频率可以与srate给定的频率稍有不同。这个开关用于开始播放的过程非常慢的情况。 +
            是一个可选的二进制选项使输出频率可以与srate给定的频率稍有不同。这个选项用于开始播放的过程非常慢的情况。 它是默认打开的。
            type <0-2>
            @@ -240,14 +337,14 @@
            2.3.2.3.2 改变声道数

            channels滤镜用来添加和去除声道,它也可以用来实现声道的定向与复制。当音频滤镜层的输出与输入层不同 -或者当别的滤镜需要它是它将自动开启。当不需要是这个滤镜会自行卸载。开关的数目是可变的:

            +或者当别的滤镜需要它是它将自动开启。当不需要是这个滤镜会自行卸载。选项的数目是可变的:

            nch <1-6>
            -
            16间的整数用来设定输出的声道数。这个开关的必须的,不设置会导致运行时错误。
            +
            16间的整数用来设定输出的声道数。这个选项的必须的,不设置会导致运行时错误。
            nr <1-6>
            -
            16之间的整数用来指定定向的数量,这个参数是可选的,如果省略将使用默认的定向。
            +
            16之间的整数用来指定定向的数量,这个选项是可选的,如果省略将使用默认的定向。
            from1:to1:from2:to2:from3:to3...
            05之间的一对数定义每个声道被定向到哪里。
            @@ -275,13 +372,13 @@
            bps <number>
            -
            可以是1, 2或者4代表样本的字节数。这个开关是必须的,不设置会 +
            可以是1, 2或者4代表样本的字节数。这个选项是必须的,不设置会 导致运行时错误。
            f <format>
            是描述样本格式的字符串。字符串应该是下面这些东西的组合:alaw, mulaw或者imaadpcm, float或者int, unsigned或者signed, le或者be -(低位优先或高位优先)。这个开关是必须的,不设置会导致运行时错误。
            +(低位优先或高位优先)。这个选项是必须的,不设置会导致运行时错误。

            示例:
            @@ -293,7 +390,7 @@

            2.3.2.3.4 延迟

            delay滤镜延迟声音到达扬声器的时间使得不同的声道能同时到达听众的位置。这个功能只当你有两个以上的扬声器 -才有用,这个滤镜的参数的数目是可变的:

            +才有用,这个滤镜的选项的数目是可变的:

            d1:d2:d3...
            @@ -320,9 +417,9 @@
            2.3.2.3.5 软件音量控制

            软件音量控制通过volume音频滤镜实现,小心使用这个滤镜因为他会降低声音的信噪比。在大多数情况下最好是 -把PCM音量开到最大,不使用这个滤镜而是通过混音器的主音量控制来控制你的扬声器的输出级别。如果你的电脑连有外部放大器。 -(这几乎是普遍现象),可以通过调节主音量和放大器上的音量旋钮直到背景的咝咝声消失来使噪音级别达到最小。 -这个滤镜有两个开关:

            +把PCM音量开到最大,不使用这个滤镜而是通过混音器的主音量控制来控制你的扬声器的输出级别。如果你的声卡使用数字PCM混音器而不是 +模拟的,而你又听到有扭曲现象,就改用主混音器。如果你的电脑连有外部放大器。(这几乎是普遍现象),可以通过调节主音量和放大器 +上的音量旋钮直到背景的咝咝声消失来使噪音级别达到最小。这个滤镜有两个选项:

            v <-200 - +60>
            @@ -330,7 +427,7 @@
            c
            二进制控制项用来打开和关闭软修饰。软修饰可以在使用很高音量的时候使声音变得更加平滑。如果扬声器的动态区域很低 -可以打开这个开关。但你必须明白这个特性会造成扭曲而且应该使作为最终手段。
            +可以打开这个选项。但你必须明白这个特性会造成扭曲而且应该使作为最终手段。

            示例:
            @@ -365,7 +462,7 @@ 最高频带的中心频率的时候,最高频带的特性不是对称的。这个问题可以通过使用resample滤镜在声音到达本滤镜之前 升高样本频率来解决。

            -

            这个滤镜有10个参数:

            +

            这个滤镜有10个选项:

            g1:g2:g3...g10
            @@ -388,11 +485,11 @@
          • 在一个环绕音效系统中改变中央扬声器的“宽度”。
    -

    这个滤镜很难使用,而且在获得想要的效果之前需要动些脑筋。这个滤镜的开关数取决于输出的声道数:

    +

    这个滤镜很难使用,而且在获得想要的效果之前需要动些脑筋。这个滤镜的选项数取决于输出的声道数:

    nch <1-6>
    -
    16之间的整数,用来设置输出的声道数。这个开关是必须的,如果省略将导致 +
    16之间的整数,用来设置输出的声道数。这个选项是必须的,如果省略将导致 运行时错误。
    l00:l01:l02:..l10:l11:l12:...ln0:ln1:ln2:...
    @@ -414,7 +511,7 @@

    sub插件给音频增加一个副低音声道。用来产生副低音声道的数据是0声道和1声道音频数据的平均混合。 混合后的声音进过4阶Butterworth滤波器低通过滤,默认去掉60Hz以上的声音,然后添加到音频流的一个单独声道中。 -警告:当你播放5.1杜比数字音效的DVD时禁用这个滤镜,否则它使副低音的声音发生混乱。这个滤镜有两个参数:

    +警告:当你播放5.1杜比数字音效的DVD时禁用这个滤镜,否则它使副低音的声音发生混乱。这个滤镜有两个选项:

    fc <20-300>
    @@ -434,7 +531,7 @@
    2.3.2.3.9 环绕音效解码

    矩阵编码的环绕音效可以通过surround滤镜解码。杜比环绕就是矩阵编码格式的一个例子。很多两声道的音频 -实际上包含了矩阵编码。为了使用这个特性你需要一个至少支持4声道的声卡。这个滤镜有1个参数:

    +实际上包含了矩阵编码。为了使用这个特性你需要一个至少支持4声道的声卡。这个滤镜有1个选项:

    d <0-1000>
    @@ -454,15 +551,15 @@

    注意:音频插件已经被音频滤镜取代,很快会被删去。

    2.3.2.4 音频滤镜(已过时)

    -

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

    +

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

      mplayer media.avi -aop list=resample,format

    将让声音先通过resample插件然后再经过format插件。

    -

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

    +

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

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

    @@ -475,8 +572,8 @@
    2.3.2.4.1 升/降采样率

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

    +最大44.1kHz的老声卡郁闷时可以使用这个插件。是否使用这个插件是自动检测的 +这个插件有一个选项:fout用于设置期望的输出的采样率。单位是<Hz>,默认是48kHz。

    用法:
      mplayer media.avi -aop list=resample:fout=<required @@ -497,7 +594,7 @@

    2.3.2.4.3 采样格式转换

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

    用法:
    @@ -510,15 +607,16 @@

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

    +

    如果你有一个文件总是A/V同步失败,使用+/-实时调整就可以,建议使用OSD,调节更加方便。

    2.3.2.4.5 软件音量控制
    -

    这个插件是音量控制功能的软件替代,用于哪些使用蹩脚的混音设备的机器。如果你想要改变MPlayer -的输出音量而不改变混音器中PCM音量的设置也可以使用这个插件。它有一个volume参数初始的音量水平。 +

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

    +在大多数情况下最好是把PCM音量设为最大值,放弃这个插件并且通过混音器的主音量控制来控制你的扬声器输出水平。如果你的声卡使用 +数字PCM混音器而不是模拟的,而你又听到有扭曲现象,就改用主混音器。如果有连接到计算机的外部功放(这几乎是普遍情况),噪音水平 +能通过调整在主音量级别和功放上的旋钮而最大限度的减少,直到去除嘶嘶的背景噪音。

    用法:
      mplayer media.avi -aop @@ -541,7 +639,7 @@   mplayer media.avi -aop list=extrastereo
      mplayer media.avi -aop list=extrastereo:mul=3.45

    -

    默认参数(mul)是默认值为2.5的浮点数。如果你把它设置到0.0,你将获得单声道(两个声道的平均值)。 +

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

    diff -r 46d15316cf9a -r a76b8962c0bd DOCS/Chinese/video.html --- a/DOCS/Chinese/video.html Tue Feb 04 08:52:00 2003 +0000 +++ b/DOCS/Chinese/video.html Tue Feb 04 08:54:58 2003 +0000 @@ -169,17 +169,21 @@

    2.3.1.2.1.6 Trident显卡

    -

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

    +

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

    + +

    2.3.1.2.1.7 Kyro/PowerVR cards

    + +

    如果你想在一块基于Kyro的显卡(例如Hercules Prophet 4000XT)上使用Xv,你应该从PowerVR的网站上下载驱动。

    2.3.1.2.2 DGA

    -

    2.3.1.2.2.1 总论

    +
    引言

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

    -

    2.3.1.2.2.2 DGA是什么

    +
    DGA是什么

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

    @@ -190,10 +194,10 @@

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

    -

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

    +

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

    -

    2.3.1.2.2.3 为MPlayer安装DGA支持

    +
    为MPlayer安装DGA支持

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

    @@ -201,7 +205,7 @@

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

    -

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

    +

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

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

    @@ -229,16 +233,29 @@ 哪些方式可用。它能在这里找到: /var/log/XFree86.0.log

    -

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

    +

    下面的例子对于一块Riva128芯片工作良好,使用X server的驱动模块nv.o

    + +
    +  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
    +
    -

    2.3.1.2.2.5 DGA & MPlayer

    +
    DGA & MPLAYER

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

    -

    2.3.1.2.2.6 DGA驱动的特性

    +
    特性

    DGA驱动通过命令行中的-vo dga选项调用。默认操作是转换成与原来的视频尽可能接近的分辨率。它将忽略-vm和-fs选项(开启视频模式切换和全屏方式) -- 它总试图通过切换显示模式尽可能多的覆盖你的屏幕,这样阻碍你的CPU使用一个单一的附加的周期来放大图像。 @@ -256,7 +273,7 @@ 然而,使用双重缓冲可能导致较大的速度下降(在我的K6-II+ 525上它多占用20%的CPU时间!),下降程度取决于DGA操作你的硬件的方法。

    -

    2.3.1.2.2.7 速度问题

    +
    速度问题

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

    @@ -270,7 +287,7 @@

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

    -

    2.3.1.2.2.8 已知的bugs

    +
    已知的BUG

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

    @@ -281,45 +298,10 @@
  • 一些驱动显示奇怪的颜色。
  • 一些驱动错误报告他们映射到处理器地址空间中的显存数量,这样vo-dga将无法使用双重缓冲(SIS?)。
  • 一些驱动好像根本找不到一个可用的模式。在这种情况下,DGA驱动将crash并报告100000x100000的无效模式之类的东西...
  • -
  • OSD只能在双重缓冲开启的时候才能工作。
  • - - - -

    2.3.1.2.2.9 未来的工作

    - -
      -
    • 为OSD提供新的X11的渲染接口
    • -
    • 我的TODO列表在什么地方????:-(((
    • +
    • OSD只能在双重缓冲开启的时候才正常工作(否则会闪烁)。
    -

    2.3.1.2.2.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.2.2.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.2.3 SDL

    SDL(Simple Directmedia Layer)基本上是一种统一的视频/音频接口。使用它的程序只要知道SDL,而不需要了解SDL实际上使用的视频或音频驱动。 @@ -356,7 +338,7 @@ W与S*和/的映射(音量控制) -

    已知的bug:

    +
    已知的BUG:
    • 在sdl:aalib控制台驱动下按下的键将永远重复。(使用-vo aa!)它是SDL中的bug,我无法改变它(用SDL 1.2.1测试)。
    • @@ -366,15 +348,17 @@

      2.3.1.2.4 SVGAlib

      -

      安装

      +
      安装
      +

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

      -

      注意

      +
      注意
      +

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

      -

      EGA(4bpp)支持

      +
      EGA(4BPP)支持

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

      @@ -392,6 +376,10 @@    -sws 4
      也许自动纠正长宽比的功能需要关闭:
         -noaspect

      +

      注意:根据我的经验用-vop eq=-20:0稍稍降低亮度可以在EGA屏幕上获得最好的图象质量。在我的 +机器上我也要降低音频采样率,因为声音在44kHz时很差:-srate 22050.

      + +

      你只有打开expand滤镜才能使用OSD和字幕。具体参数参见man page。

      2.3.1.2.5 帧缓冲输出(FBdev)

      @@ -438,10 +426,10 @@

      2.3.1.2.6 Matrox帧缓冲(mga_vid)

      -

      这一段是关于Matrox G200/G400/G450/G550 BES (Back-End Scaler)的支持,mga_vid内核驱动。它现在是由我(A'rpi)开发的, +

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

      -

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

      +

      警告:在非Linux系统(在FreeBSD上测试过)上,要使用VIDIX实现mga_vid!

      安装:

      @@ -531,8 +519,7 @@

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

    +用SVGATextMode设置一个大的文本模式,然后再欣赏电影!(大力神显卡的第二个接口就不错:))(但我建议你用-vop 1bpp选项在hgafb上获得图象;)

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

    @@ -556,7 +543,7 @@

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

    -

    优点:

    +
    优点:
    • 即使Linux不能识别你的视频硬件你或许还能看电影。
    • @@ -569,7 +556,7 @@ (使用一般的计时公式)。要启用这个特性你必须设定你的显示器的所有选项。
    -

    缺点:

    +
    缺点:
    • 它只能在x86系统上工作。
    • @@ -579,13 +566,13 @@

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

      -

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

      +
      可用于VESA命令行选项
      -vo vesa:opts
      当前能识别的: dga强迫dga方式,nodga禁用dga方式。在dga模式下你可以通过使用-double选项来使用双重缓冲。注意:你能省略这些参数来开启自动检测dga方式。
      -

      已知的问题和绕过办法:

      +
      已知的问题和绕过办法
      • 如果你在你的Linux机器上安装了NLS并且从文本方式运行VESA驱动,那么MPlayer终止后你将看到ROM字体而不是本地的字体。 @@ -620,6 +607,8 @@

        2.3.1.2.12 VIDIX

        +
        引言
        +

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

        @@ -627,7 +616,7 @@ 它给芯片提供BES(BackEnd scalers)或OV(Video Overlays)之类的高层接口。它不为那些图像服务器该做的事情提供底层接口。 (我不想跟X11开发组在切换图像模式上竞争)。即这接口的主要目的是充分提高视频播放的速度。

        -

        用法

        +
        用法
        • 你能使用独立的视频输出驱动:-vo xvidix
          @@ -640,7 +629,7 @@ 实际上什么视频输出驱动与VIDIX配合使用并不重要。 -

          要求

          +
          要求
          • 视频显卡应该工作于图形方式(我所以写应该只是因为我在文本方式下测试了它 -- 它能工作但是输出效果很可怕 ;) 对它还是使用AAlib)。
            @@ -648,7 +637,7 @@
          • MPlayer的视频输出驱动应该知道活动的视频方式和能够告诉达到VIDIX副驱动服务器的一些视频特性。
          -

          使用方式

          +
          使用方法

          当VIDIX被用作副驱动时(-vo vesa:vidix)视频方式的配置由视频输出设备执行(简单来说就是vo_server)。 因此,你能对MPlayer使用与vo_server同样的命令行指令。此外,它能使用-double作为全局的参数。 @@ -667,14 +656,52 @@ 只有在你绝对确信它能工作,而MPlayer没有自动选择它时,你才能这么做。请把情况报告给开发者。 正确的使用方法是使用没有参数的VIDIX来使用驱动的自动检测。

          -

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

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

          +

          因为VIDIX需要对硬件直接访问,所以你或者以root运行它,或者给MPlayer的二进制程序设置SUID位(警告:这有安全风险)。或者,你 +可以使用一个特别的内核模块,像这样:

          + +
            +
          1. 下载svgalib的开发版本(比如1.9.17)。
          2. +
          3. 或者这里.下载一个Alex做的 +供MPlayer使用的版本(不需要svgalib的源代码就可以编译)。
          4. +
          5. 编译svgalib_helper目录中的模块(如果你是从svgalib的网页上下载的源代码,可以在svgalib-1.9.17/kernel/目 +录下找到它),然后insmod。
          6. +
          7. svgalib_helper目录移到mplayer/main/libdha/svgalib_helper.
          8. +
          9. 如果你是从svgalib的站点下载的源代码需要:删掉libdha/Makefile中包含"svgalib_helper"字符串 +的CFLAGS行前面的注释号。
          10. +
          11. 重新编译安装libdha.
          12. +
          + + +

          2.3.1.2.12.1 ATI显卡

          + +

          目前大部分ATI显卡都实现了本地支持,从Mach64到最新的Radeon。

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

          -
          +

          编译生成两个二进制文件:用于Radeon的radeon_vid和用于Rage 128显卡的rage128_vid。你可以 +强制使用其中一个或者让VIDIX系统自动载入所有可用的驱动。

          + + +

          2.3.1.2.12.2 Matrox显卡

          + +

          Matrox G200,G400,G450和G550据报告可以工作。

          + +

          这个驱动支持视频均衡器比且应该几乎和Matrox帧缓冲一样快。

          + +

          2.3.1.12.3 Trident显卡

          + +

          有一个可用于Trident Cyberblade/i1芯片的驱动,它们一般出现在VIA的Epia主板上。

          + +

          这个驱动有Alastair M. Robinson编写并维护,他在他的主页上 +提供他的最新版本的驱动下载。这个驱动会很快被加到MPlayer中,所以CVS应该已经包含最新驱动了。

          + + +

          2.3.1.2.12.4 3DLabs显卡

          + +

          尽管有一个用于3DLabs GLINT R3和Permedia3芯片的驱动,但没有人测试过,所以欢迎报告信息。

          +

          2.3.1.2.13 DirectFB

          "DirectFB是设计用于嵌入系统的图形库。它能利用最小的资源开销提供最大的硬件加速效果。" -- 引自 -

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

          +

          然后正常编译安装。

          -

          使用方法

          +
          使用方法

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

          @@ -779,7 +806,7 @@ for 16:9 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024 -

          将来

          +
          将来

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

          @@ -799,7 +826,7 @@ HREF="http://dxr3.sourceforge.net/">DXR3 & Hollywood Plus for Linux的站点找到驱动和安装指导。Configure应该自动检测到你的显卡, 编译应该没有任何问题。

          -

          用法:

          +
          用法
          -vo dxr3:prebuf:sync:norm=x:<device>
          @@ -858,7 +885,7 @@ 驱动通过把每帧图像编码成为jpeg格式和然后把它发送到显卡来工作。在jpeg编码时要使用libavcodec,而且必须使用。

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

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

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

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

             mplayer -zrhelp
          @@ -877,14 +904,14 @@
           

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

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

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

             mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
          @@ -899,7 +926,7 @@
           

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

             mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
          @@ -914,7 +941,8 @@
           
           

          2.3.1.4.2 Blinkenlights

          -

          这个驱动可以使用Blinkenlights UPD兼容协议播放。如果你不知道Blinkenlights是什么,你就不需要这个驱动。

          +

          这个驱动可以使用Blinkenlights UPD兼容协议播放。如果你不知道Blinkenlights是什么,你就不需要这个驱动。

          2.3.1.5 电视输出支持