diff options
author | diego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-01-24 21:35:40 +0000 |
---|---|---|
committer | diego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-01-24 21:35:40 +0000 |
commit | f9cfd51b307d19bed4a445880f48e40a9bc6c011 (patch) | |
tree | a83756ac3a721c356e4b5144319540c3701dab47 /DOCS/Chinese | |
parent | 73efd100f65d1e666b10f10af5de8854b17c43e0 (diff) | |
download | mpv-f9cfd51b307d19bed4a445880f48e40a9bc6c011.tar.bz2 mpv-f9cfd51b307d19bed4a445880f48e40a9bc6c011.tar.xz |
sync by <hephooey@fastmail.fm>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9081 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS/Chinese')
-rw-r--r-- | DOCS/Chinese/bugreports.html | 139 | ||||
-rw-r--r-- | DOCS/Chinese/cd-dvd.html | 136 | ||||
-rw-r--r-- | DOCS/Chinese/codecs.html | 208 | ||||
-rw-r--r-- | DOCS/Chinese/documentation.html | 1156 | ||||
-rw-r--r-- | DOCS/Chinese/encoding.html | 202 | ||||
-rw-r--r-- | DOCS/Chinese/faq.html | 166 | ||||
-rw-r--r-- | DOCS/Chinese/formats.html | 109 | ||||
-rw-r--r-- | DOCS/Chinese/skin.html | 221 | ||||
-rw-r--r-- | DOCS/Chinese/sound.html | 420 | ||||
-rw-r--r-- | DOCS/Chinese/users_against_developers.html | 75 | ||||
-rw-r--r-- | DOCS/Chinese/video.html | 505 |
11 files changed, 1993 insertions, 1344 deletions
diff --git a/DOCS/Chinese/bugreports.html b/DOCS/Chinese/bugreports.html index e600dbf321..6ac459a5b4 100644 --- a/DOCS/Chinese/bugreports.html +++ b/DOCS/Chinese/bugreports.html @@ -2,65 +2,73 @@ <HTML> <HEAD> - <TITLE>bug报告 -- MPlayer -- Linux的电影播放器</TITLE> + <TITLE>Bug报告 -- MPlayer -- Linux下的电影播放器</TITLE> <LINK REL="stylesheet" TYPE="text/css" HREF="default.css"> - <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80"> + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gbk"> </HEAD> <BODY> -<H1><A NAME="B">附录B -- 如何报告bug</A></H1> +<H1><A NAME="appendix_b">附录B -- 如何报告bug</A></H1> <P>好的bug报告对任何软件项目的发展都是十分有价值的贡献。但是就象写好的软件一样,好的问题报告也需要一些工作。请明白大多数开发者忙的要死并且会收到 -多的变态的电子邮件。所以尽管你的反馈对改进<B>MPlayer</B>至关重要而且非常值得赞赏,希望你理解你必须提供我们需要的<B>所有</B>信息并且严格遵循这个 +多的变态的电子邮件。所以尽管你的反馈对改进MPlayer至关重要而且非常值得赞赏,希望你理解你必须提供我们需要的<B>所有</B>信息并且严格遵循这个 文件中的指导进行。</P> -<H2>如何修正bug</H2> +<H2><A NAME="fix">B.1 如何修复bug</A></H2> -<P>如果你觉得你有足够的技巧欢迎你尝试自己修正bug。或者也许你已经这么干了?请阅读<A HREF="tech/patches.txt">这个简短的文件</A>了解怎样让你的代码 -包括到<B>MPlayer</B>的代码中。如果你有问题可以从加入<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">mplayer-dev-eng</A> +<P>如果你觉得你有足够的技巧欢迎你尝试自己修正bug。还是你已经这么干了?请阅读<A HREF="tech/patches.txt">这个简短的文件</A>了解怎样让你的代码 +包括到MPlayer的代码中。如果你有问题可以从加入<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">mplayer-dev-eng</A> 邮件列表的人那里获得帮助。</P> -<H2>如何报告bug</H2> +<H2><A NAME="report">B.2 如何报告bug</A></H2> -<P>首先,请先尝试<B>MPlayer</B>最新的CVS版本,因为你的bug在那里可能已经被修正了。发展过程进展的相当快,官方发行版的大部分问题在几天甚至几小时之内 +<P>首先,请先尝试MPlayer最新的CVS版本,因为你的bug在那里可能已经被修正了。发展过程进展的相当快,官方发行版的大部分问题在几天甚至几小时之内 就被报告了,因此请<B>仅仅使用CVS</B>来报告bug。CVS指令能在<A HREF="http://www.mplayerhq.hu/homepage/dload.html">这个页面</A>的底部或者 -README中找到。如果这样做没有改进那么请查阅<A HREF="documentation.html#known_bugs">已知的bug列表</A>和文件的其他部分。如果你的问题我们没有提到或者 +README中找到。如果这样做没有改进那么请查阅<A HREF="documentation.html#known_bugs">已知的bug</A>和文件的其他部分。如果你的问题我们没有提到或者 按照我们提供的步骤没有解决,那么请报告bug。</P> -<P>请不要私下向单独的开发者报告bug。这是一项社区工作所以可能有若干人都对它感兴趣。有时其它用户已经遇到过你的麻烦并且知道如何绕过这个问题 -即使它是<B>MPlayer</B>代码中的bug。</P> +<P>请不要私下单独向开发者报告bug。这是一项社区工作所以可能有若干人都对它感兴趣。有时其它用户已经遇到过你的麻烦并且知道如何绕过这个问题 +即使它是MPlayer代码中的bug。</P> <P>请尽可能详细的描述你的问题。做一些小的侦探工作来确定问题发生的情况的范围。这个bug只在一定的情况中出现吗?或是具体针对特定文件或者文件类型吗? 它是针对于唯一的编码格式还是独立于编码格式的?你能用所有的输出驱动重现它吗?你提供的信息越多我们的修复你的问题的机会就越大。别忘了也要包括下面所要求的 有价值的信息,否则我们将无法正确分析你的问题。</P> -<P>有篇文采飞扬的关于如何在公共论坛上提问的极好的指导是Eric S. Raymond写的<A HREF="http://www.tuxedo.org/~esr/faqs/smart-questions.html"> -How To Ask Questions The Smart Way</A>。你照着那些指示做是没问题的。但是请明白我们大家都在我们的自由时间自愿地回复邮件列表。我们十分忙碌并且 +<P>有篇文采飞扬的关于如何在公共论坛上提问的极好的指导是<A HREF="http://www.tuxedo.org/~esr/">Eric S. Raymond</A>写的<A +HREF="http://www.tuxedo.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</A>。还有另一篇<A +HREF="http://www.chiark.greenend.org.uk/~sgtatham/">Simon Tatham</A>写的<A +HREF="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">如何有效的报告Bugs</A>。 +按照那些指示做是没有问题的。但是请明白我们大家都在我们的自由时间自愿地回复邮件列表。我们十分忙碌并且 不能保证你的问题一定能得到解决甚至得到回复。</P> -<H3>向哪里报告错误?</H3> +<H2><A NAME="where">B.3 向哪里报告错误?</A></H2> <P>订阅mplayer-users邮件列表:<BR> <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">http://mplayerhq.hu/mailman/listinfo/mplayer-users</A><BR> 同时,把你的bug发送到:<BR> <A HREF="mailto:mplayer-users@mplayerhq.hu">mplayer-users@mplayerhq.hu</A></P> -<P>这个列表使用的语言是<B>英语</B>。请遵循标准的<A HREF="http://www.ietf.org/rfc/rfc1855.txt">Netiquette标准</A>并且<B>不要发送HTML邮件</B> -到任何我们的邮件列表。你将被忽略或者封掉。如果你不知道什么是HTML邮件,以及它为什么邪恶,阅读这个<A HREF="http://expita.com/nomime.html">不错的文件</A>。 -它解释了所有细节和关掉HTML的指令。也请注意到我们不会个别地CC(抄送)给人因此最好通过订阅来保证你会收到答案。</P> +<P>这个列表使用的语言是<B>英语</B>。请遵循标准的<A HREF="http://www.ietf.org/rfc/rfc1855.txt">网络礼节指导</A>并且<B>不要发送HTML邮件</B> +到任何我们的邮件列表。你将被忽略或者封掉。如果你不知道什么是HTML邮件,以及它为什么邪恶,看看这篇<A +HREF="http://expita.com/nomime.html">写的不错的文档</A>。它解释了所有细节和关掉HTML的指令。也请注意到我们不会个别地CC(抄送)给人因此 +最好通过订阅来保证你会收到答案。</P> -<H3>报告什么?</H3> +<H2><A NAME ="what">B.4 报告什么?</A></H2> -<H4>系统信息:</H4> +<P>你可能需要在你的bug报告中包括log,配置或者样本文件。如果它们中间有什么特别大的,最好把它们以压缩格式(最好是gzip或bzip2) +上载到我们的<A HREF="ftp://mplayerhq.hu/MPlayer/incoming/">FTP服务器</A>上。我们的邮件列表上一条消息大小限制是80k, +如果你有比这更大的东西请压缩或上载它。</P> + +<H3><A NAME="system">B.4.1 系统信息</A></H3> <UL> - <LI>你的Linux发行版或者操作系统,比如:。 + <LI>你的Linux发行版或者操作系统,比如: <UL> <LI>Red Hat7.1</LI> <LI>Slackware 7.0 + devel packs from 7.1 ...</LI> @@ -77,11 +85,17 @@ How To Ask Questions The Smart Way</A>。你照着那些指示做是没问题的。但是请明白我 ld -v </CODE></LI> <LI>binutils版本:<BR> <CODE>as --version</CODE></LI> - <LI>如果你有全屏模式方面的问题: + <LI>如果是全屏模式的问题: <UL> <LI>窗口管理器类型和版本</LI> </UL> </LI> + <LI>如果是关于XVIDIX的问题: + <UL> + <LI>X色深:<BR> + <CODE>xdpyinfo | grep "depth of root"</CODE></LI> + </UL> + </LI> <LI>如果是buggy的GUI: <UL> <LI>GTK版本</LI> @@ -93,7 +107,7 @@ How To Ask Questions The Smart Way</A>。你照着那些指示做是没问题的。但是请明白我 </UL> -<H4>硬件 & 驱动:</H4> +<H3><A NAME="hardware">B.4.2 硬件和驱动</A></H3> <UL> <LI>CPU信息(仅用于Linux):<BR> @@ -119,34 +133,43 @@ How To Ask Questions The Smart Way</A>。你照着那些指示做是没问题的。但是请明白我 <LI>GUS PnP with ALSA OSS emulation</LI> </UL> </LI> - <LI>如果不放心的话对linux系统再附上<CODE>lspci -vv</CODE>的输出。</LI> + <LI>如果不放心的话对linux系统可以再附上<CODE>lspci -vv</CODE>的输出。</LI> </UL> -<H4>对于编译问题/错误</H4> +<H3><A NAME="compilation">B.4.3 编译问题</A></H3> -请包括这些文件: +请附上下列文件: <UL> - <LI>configure.log</LI> <LI>config.h</LI> <LI>config.mak</LI> - <LI>libvo/config.mak</LI> </UL> +如果编译失败发生在下面的目录,附上这些文件: + +<UL> + <LI><CODE>Gui/config.mak</CODE></LI> + <LI><CODE>libvo/config.mak</CODE></LI> + <LI><CODE>libao2/config.mak</CODE></LI> +</UL> + +<H3><A NAME="configure">B.4.4 配置问题</A></H3> + +附上<CODE>configure.log</CODE>. -<H4>对于回放问题</H4> +<H3><A NAME="playback">B.4.5 播放的问题</A></H3> -<P>请包括<B>MPlayer</B>的冗长水平为1的输出,但是记住当你把它粘贴到你的邮件中时<B>不要删减输出内容</B>。开发者们需要所有的信息来正确的分析问题。 +<P>请包括MPlayer的冗长水平为1的输出,但是记住当你把它粘贴到你的邮件中时<B>不要删减输出内容</B>。开发者们需要所有的信息来正确的分析问题。 你可以像这样把输出导入到一个文件中:</P> -<P><CODE> mplayer -v [options] [filename] &> mplayer.log</CODE></P> +<P><CODE> mplayer -v [options] [filename] > mplayer.log 2>&1</CODE></P> -<P>如果你的问题是具体对于一个或更多的文件的,那么请上传捣乱的文件:</P> +<P>如果你的问题是具体对于一个或更多的文件的,那么请上传有问题的文件:</P> <P> <A HREF="ftp://mplayerhq.hu/MPlayer/incoming/">ftp://mplayerhq.hu/MPlayer/incoming/</A></P> -<P>再上传一个小的同样文件名的文本文件加上.txt的扩展名。在其中描述对于这个特别的文件你遇到的问题加上你的电子邮件地址还有<B>MPlayer</B>冗长水平为1的输出。 +<P>再上传一个小的同样文件名的文本文件加上.txt的扩展名。在其中描述对于这个特别的文件你遇到的问题加上你的电子邮件地址还有MPlayer冗长水平为1的输出。 通常文件的前1-5MB足以重现问题,但为了以防万一我们要求你运行:</P> <P><CODE> dd if=yourfile of=smallfile bs=1024k count=5</CODE></P> @@ -156,38 +179,21 @@ How To Ask Questions The Smart Way</A>。你照着那些指示做是没问题的。但是请明白我 那么发送<STRONG>准确的</STRONG>URL就足够了。</P> -<H4>对于崩溃</H4> - -<P>如果你的崩溃有一个core dump那么继续阅读下一段,否则跳过它。</P> - - -<H4>如何从一个core dump中提取出有意义的信息</H4> - -<P>请建立下面的命令文件:</P> - -<P><CODE>disass $eip-32 $eip+32<BR> - printf "eax=%08lX\n",$eax<BR> - printf "ebx=%08lX\n",$ebx<BR> - printf "ecx=%08lX\n",$ecx<BR> - printf "edx=%08lX\n",$edx<BR> - printf "esp=%08lX\n",$esp<BR> - printf "ebp=%08lX\n",$ebp<BR> - printf "edi=%08lX\n",$edi<BR> - printf "esi=%08lX\n",$esi</CODE></P> - -<P>然后直接在你的命令行下执行下列命令:</P> +<H3><A NAME="crash">B.4.6 崩溃</A></H3> -<P> <CODE>gdb mplayer --core=core -batch --command=command_file > mplayer.bug</CODE></P> +<P>你应该在<CODE>gdb</CODE>里面运行MPlayer并把完整的输出发送给我们,或者你有一个崩溃产生的core dump,你可以从<CODE>Core</CODE>文件中提取 +有用的信息,下面教你怎么做:</P> +<P>如果你的崩溃有一个core dump那么继续阅读下一段,否则跳过它。</P> -<H4>如何保存一个可再现的崩溃的信息</H4> +<H4><A NAME="debug">B.4.6.1 如何保存一个可重复的崩溃的信息</A></H4> -开启调试代码重新编译<B>MPlayer</B>: +开启调试代码重新编译MPlayer: <P><CODE> ./configure --enable-debug=3<BR> make</CODE></P> -然后用gdb运行<B>MPlayer</B>: +然后用gdb运行MPlayer: <P><CODE> gdb mplayer</CODE></P> @@ -198,22 +204,27 @@ How To Ask Questions The Smart Way</A>。你照着那些指示做是没问题的。但是请明白我 然后再现你的崩溃。一旦你成功了,gdb将回到命令行,你需要输入 <P><CODE> bt<BR> - disass $eip-32 $eip+32</CODE></P> + disass $pc-32 $pc+32<BR> + info all-registers</CODE></P> + +<H4><A NAME="core">B.4.6.2 如何从一个core dump中提取出有意义的信息</A></H4> -然后把完整的输出发给我们。 +<P>请建立下面的命令文件:</P> +<P><CODE>disass $pc-32 $pc+32<BR> + info all-registers</CODE></P> -<H3>一般的注意事项</H3> +<P>然后直接在你的命令行下执行下列命令:</P> -<P>如果有什么东西特别大(比如log)最好把它压缩(最好是gzip或者bzip)之后上载到FTP server上并且在你的bug报告中只要包含路径和文件名。</P> +<P> <CODE>gdb mplayer --core=core -batch --command=command_file > mplayer.bug</CODE></P> -<H2>我知道我在干什么...</H2> +<H2><A NAME="advusers">B.5 我知道我在干什么...</A></H2> -<P>如果你按照上述步骤建立了一个正确的bug报告而且你充满信心它是<B>MPlayer</B>中的bug,而不是因为编译错误或者文件损坏的问题,你已经阅读了文档并且 +<P>如果你按照上述步骤建立了一个正确的bug报告而且你充满信心它是MPlayer中的bug,而不是因为编译错误或者文件损坏的问题,你已经阅读了文档并且 找不到解决方案,此外你的声卡驱动正常,那么你可能想要订阅mplayer-advusers列表并把你的bug报告发到那里以便得到更快更好的答案。<BR><BR> 请听从我们的劝告,如果你在那里问新手级的问题或者问用户手册中已经回答过的问题,你将被忽略或者被骂而不会得到答案。<BR> - 因此,不要骂我们并且仅仅当你确实知道你在干什么并且觉得你已经是高级<B>MPlayer</B>用户或者是开发者再订阅 -advusers。如果你符合这些标准找出如何 + 因此,不要骂我们并且仅仅当你确实知道你在干什么并且觉得你已经是高级MPlayer用户或者是开发者再订阅 -advusers。如果你符合这些标准找出如何 订阅应该不难...</P> </BODY> diff --git a/DOCS/Chinese/cd-dvd.html b/DOCS/Chinese/cd-dvd.html index b3bb7ab9ce..908acbd8b7 100644 --- a/DOCS/Chinese/cd-dvd.html +++ b/DOCS/Chinese/cd-dvd.html @@ -2,15 +2,15 @@ <HTML> <HEAD> - <TITLE>CD,DVD,VCD -- MPlayer -- Linux的电影播放器</TITLE> + <TITLE>CD,DVD,VCD -- MPlayer -- Linux下的电影播放器</TITLE> <LINK REL="stylesheet" TYPE="text/css" HREF="default.css"> - <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80"> + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gbk"> </HEAD> <BODY> -<H2><A NAME="drives">4.1 CD与DVD光驱</A></H2> +<H2><A NAME="drives">4.1 CD/DVD光驱</A></H2> <P>Linux文件摘录:</P> @@ -35,7 +35,8 @@ <P> <CODE>echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings</CODE></P> -<P>这把文件预读取设置为2MB,对于刮伤的CD-ROM有好处。推荐你同时也用hdparm调整你的CD-ROM光驱:</P> +<P>这把文件预读取设置为2MB,对于刮伤的CD-ROM有好处。如果你把这个值设置的太大,你的光驱会不停的转, +显著的降低效率。建议你同时也用hdparm调整你的CD-ROM光驱:</P> <P> <CODE>hdparm -d1 -a8 -u1 (cdrom device)</CODE></P> @@ -43,40 +44,133 @@ <P>为了优化你的CD-ROM请参考"<CODE>/proc/ide/[cdrom device]/settings</CODE>"。</P> +<P>SCSI驱动器没有一个统一的设置参数的方法(你知道这样一种方法?告诉我们!) 有一种工具可以用于<A +HREF="http://das.ist.org/~georg/">Plextor的SCSI驱动器</A>。</P> -<H2><A NAME="dvd">4.2 DVD回放</A></H2> - -<P><B>MPlayer</B>使用<CODE>libdvdread</CODE>和<CODE>libdvdcss</CODE>进行DVD解密和回放。这两个库包含在<B>MPlayer</B>源码树的<CODE>libmpdvdkit/</CODE> +<P>FreeBSD:</P> + +<P> Speed: <CODE>cdcontrol [-f device] speed [speed]</CODE></P> +<P> DMA: <CODE>sysctl hw.ata.atapi_dma=1</CODE></P> + +<H2><A NAME="dvd">4.2 DVD播放</A></H2> + +<P>可用选项的完整列表请查阅man page。</P> + +<H4>新式的DVD支持(mpdvdkit2)</H4> + +<P>MPlayer使用<CODE>libdvdread</CODE>和<CODE>libdvdcss</CODE>进行DVD解密和回放。这两个库包含在MPlayer源码树的<CODE>libmpdvdkit/</CODE> 子目录中,你不需要单独安装他们。我们选择这种解决方案是因为我们必须修正一个libdvdread的bug,并且给libdvdcss添加一个<B>cracked CSS keys caching support</B>的补丁。 -这带来极大的速度提升,因为不用在每次播放之前都破解密钥。破解的密钥储存在<CODE>~/.mplayer/DVDKeys</CODE>目录里面。</P> +这带来极大的速度提升,因为不用在每次播放之前都破解密钥。</P> + +<P>MPlayer也能使用系统的<CODE>libdvdread</CODE>和<CODE>libdvdcss</CODE>库,但这种解决方法<B>不</B>推荐,因为它会导致bug,库的不兼容,并且降低速度。</P> + +<H4>DVD导航菜单支持(dvdnav)</H4> + +<P>通过<CODE>dvdnav</CODE>支持DVD导航菜单的工作已经开始,但它可能永远不会完成而且现在无人维护。谁知道,它可能还能编译过去。</P> -<P><B>MPlayer</B>也能使用系统的<CODE>libdvdread</CODE>和<CODE>libdvdcss</CODE>库,但这种解决方法<B>不</B>被推荐,因为它会导致bug,库的不兼容,并且降低速度。</P> +<H4>老式DVD支持 -- 可选</H4> -<P>使用<CODE>dvdnav</CODE>DVD导航的支持正在开发,但目前还没有完成。</P> +<P>如果你想从硬盘上播放编码的VOB是有用。为此要编译并安装<B>libcss</B>0.0.1(不要更新的)(如果MPlayer检测不到它,使用<CODE>-csslib /path/to/libcss.so</CODE>选项)。为了使用它你必须是root,使用一个suid root了的MPlayer二进制程序或者让MPlayer调用suid-root了的fibmap_mplayer外壳程序。</P> + +<H4>DVD结构</H4> + +<P>DVD盘每个扇区有2048字节附带ECC/CRC。它们经常在一个音轨上使用一个UDF文件结构,包含各种文件(小的.IFO和.BUK文件和大的 +(1GB) .VOB文件)。它们是真正的文件,可以在一个mount了的未加密的DVD的文件系统上被复制/播放。</P> + +<P>.IFO文件包含电影的导航信息(chapter/title/angle map, 语言表等等)需要它来读取和解释.VOB文件的内容(电影)。.BUK文件是它们的备份。 +它们到处使用<B>扇区</B>,所以你需要使用碟片上扇区的未经处理的地址类实现DVD导航菜单和内容解密。</P> + +<P>整个的老式DVD支持使用<CODE>libcss</CODE>所以需要一个mount了的DVD文件系统和直接的基于扇区的设备访问。不幸的是(在Linux下)你必须 +是root才能得到一个文件的扇区地址。你有以下几种选择:</P> + +<UL> + <LI>成为root或者使用一个suid-root的mplayer二进制程序。</LI> + <LI>让MPlayer调用suid-root的fibmap_mplayer外壳程序来访问DVD(使用通过<CODE>libcss</CODE>的老式DVD播放方式)。</LI> + <LI>根本不使用内核的文件系统驱动而是在用户空间重新实现它。<CODE>libdvdread</CODE> 0.9.x和<CODE>libmpdvdkit</CODE> + 就是这么做的(新式DVD支持)。内核的UDF文件系统驱动是不需要的因为它们有自己内建的UDF文件系统驱动。同样DVD不需要mount + 因为只需要使用直接的基于扇区的访问。</LI> +</UL> -<H4>旧式DVD支持 -- 可选</H4> +<P>有时<CODE>/dev/dvd</CODE>用户不能读取,所以<CODE>libdvdread</CODE>的作者设计了一个模拟层把扇区地址变换为文件名 ++偏移量,用来在一个mount了的文件系统甚至硬盘上模拟直接访问。</P> -<P>如果你想从硬盘上播放编码的VOB是有用。为此要编译并安装<B>libcss</B>0.0.1(不要更新的)(如果<B>MPlayer</B>检测不到它,使用<CODE>-csslib /path/to/libcss.so</CODE>选项)。</P> +<P><CODE>libdvdread</CODE>甚至可以通过mountpoint而不是设备名,通过访问<CODE>/proc/mounts</CODE>查找设备名来进行直接访问, +这是为Solaris设计的,那里设备名是动态分配的。</P> + +<P>默认的DVD设备是<CODE>/dev/dvd</CODE>。如果你的设置不同,作一个符号链接,或者在命令行中用<CODE>-dvd-device</CODE>选项 +指定一个正确的设备。</P> + +<H4>DVD授权</H4> + +<P>新式DVD支持的授权和解密的方法是通过一个打了补丁的<CODE>libdvdcss</CODE>(见上面)来完成的。可以通过指定环境 +变量<CODE>DVDCSS_METHOD</CODE>来设置解密方法,可以设置的值为<CODE>key</CODE>, <CODE>disk</CODE>或者<CODE>title</CODE>。</P> + +<P>如果什么都没有指定它将会尝试下列方法(默认: key, title request):</P> + +<OL> + <LI><B>bus key:</B> 这个密钥在授权(一长串的ioctls和各种密钥的交换,加密的东西的混合)的过程中确定,然后在通过没有保护的 +总线之前用它加密title和disk keys(防止窃听)。需要bus key来获得加密的disk key并对其进行预解密.</LI> + <LI><B>cached key:</B> MPlayer寻找已经破解的title keys,存放在<CODE>~/.mplayer/DVDKeys</CODE>目录下(很快;).</LI> + <LI><B>key:</B> 如果没有可用的cached key,MPlayer尝试使用播放器密钥来对disk key进行解密。</LI> + <LI><B>disk:</B> 如果密钥方法失败(比如:没有自带的播放器密钥),MPlayer将会使用一种暴力算法来破解disk key。 +这个过程非常消耗CPU而且需要64 MB内存(16M的32Bit的整个hash表)来存储临时数据。这种方法总能起作用(很慢)。</LI> + <LI><B>title request:</B> 有了disk key以后MPlayer需要加密的title keys,它被用<CODE>ioctl()</CODE>储存在<I>隐藏扇区</I>里。 +RPC-2驱动器的地区保护在这一步实现,所以在这样的驱动器上可能会失败。如果成功的话,将使用bus和disk key对title keys进行解密。</LI> + <LI><B>title:</B> 这个方法在title request方法失败时使用,不依赖于与DVD驱动器的任何密钥交换。它使用一种加密破解的方法 +直接猜测title key(通过寻找已解密的VOB内容中的一种重复格式然后猜测加密部分的前几个字节是这种格式的延续)。 +这种方法也被成为"已知明文攻击"或者"DeCSSPlus"。很少的情况下,因为碟片上没有足够的加密数据来进行统计攻击或者因为密钥交换 +发生在一个title的中间,这种方法会失败。这种方法是解密一个储存在硬盘上的DVD或者在一个RPC2驱动器上读取一个地区错误的DVD +的唯一方法(很慢)。</LI> +</OL> + +<P>RPC-1 DVD驱动器只保护软件设定的区域。RPC-2驱动器有一个硬件保护,只允许5个改变。如果你有一个RPC-2 DVD驱动器, +可能需要/推荐将固件升级到RPC-1。固件升级可以在这里<A HREF="http://www.firmware-flash.com">firmware page</A>找到。 +如果没有可用于你的设备的固件升级,使用<A +HREF="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">区域设定工具</A>来设置你的 +DVD驱动器的地区(在Linux下)。<B>警告:</B> 你只有5次设置地区的机会。</P> -<P>可用选项的完全列表,请阅读man page。</P> <H2><A NAME="vcd">4.3 VCD回放</A></H2> +<P>可用选项的完整列表请阅读man page。播放一个标准的Video CD(VCD)的语法如下:</P> + <P>播放标准的Video CDs:</P> -<P><CODE>mplayer -vcd <track> [-cdrom-device device]</CODE></P> +<P><CODE>mplayer -vcd <track> [-cdrom-device <device>]</CODE></P> -<P>例子:<BR> - <CODE>mplayer --vcd 1<BR> - mplayer --fs --vcd 2 --dev / hdc </CODE></P> +<P>示例:<CODE>mplayer -vcd 2 -cdrom-device /dev/hdc</CODE></P> + +<P>默认的VCD设备是<CODE>/dev/cdrom</CODE>。如果你的设置不同,作一个符号链接,或者在命令行中用<CODE>-cdrom-device</CODE>选项 +指定一个正确的设备。</P> + +<P><B>注意:</B>至少对于Plextor和一些Toshiba的SCSI CD-ROM驱动器在读取VCD的时候慢的恐怖。这是因为CDROMREADRAW ioctl在这些 +驱动器上没有完全实现。如果你有SCSI编程方面的支持,请<A HREF="tech/patches.txt">帮助我们</A>实现普遍的SCSI设备的VCD支持。</P> + +<H4>VCD结构</H4> + +<P>VCD碟片由一个或多个音轨组成:</P> -注意: <UL> - <LI>一定<B>不要</B>mount VCD来直接播放DAT文件!在Windows下可能可以但在Linux下不行。你必须用<CODE>-vcd</CODE>选项来播放VCD。</LI> - <LI>VCD盘通常有2条轨道:数据轨道(包含autostart Windows回放程序,karaoke数据等等)和mode-2轨道(电影)。因此,试试<CODE>-vcd 2</CODE>先。</LI> - <LI>默认的VCD设备是<CODE>/dev/cdrom</CODE>。如果你的设置不同,做个符号链接,或者在命令行上用<CODE>-cdrom-device</CODE>选项指定正确的设备。</LI> + <LI>第一个轨道是一个小的2048字节/扇区的数据轨,有一个iso9660文件系统,通常包含Windows VCD播放程序可能还有其他信息 +(图像,文字等等)。</LI> + <LI>第二和之后的轨道是未处理的2324字节/扇区的MPEG(电影)轨,每个扇区包含一个MPEG PS数据包而没有文件系统。音频CD的轨道也类似。 +这些轨道是<B>无法被mount的</B>(你曾经mount一个音频CD然后播放过吗?)。大部分电影都在这个轨道,所以你应该先试试 +<CODE>-vcd 2</CODE>。</LI> + <LI>有些VCD碟片没有第一个轨道(单轨道而根本没有文件系统)。它们也可以播放,但是不能mount。</LI> </UL> +<H4>关于.DAT文件:</H4> + +<P>在mount了的VCD的第一轨上看到的~600 MB的文件不是一个真正的文件!这是所谓的ISO通道,用来使Windows能够处理这样的 +轨道(Windows根本不允许程序直接访问未处理的设备)。在Linux下你不能复制或者播放这些文件(它们里面是些垃圾)。在Windows下 +这是可以的,因为它的iso9660驱动能模拟在这个文件中读取未处理的音轨。要播放一个.DAT文件你需要Linux版的PowerDVD中的 +内核驱动。它有一个经过修改的iso9660文件系统(<CODE>vcdfs/isofs-2.4.X.o</CODE>)驱动,可以通过这个.DAT影子文件模拟 +读取未处理音轨。如果你用它们的驱动来mount,你可以复制甚至用mplayer直接播放.DAT文件。但如果用Linux内核的标准的 +iso9660驱动是<B>不会有用的</B>!应该使用<CODE>-vcd</CODE>选项。另一种复制VCD的方法是新的<A +HREF="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</A>内核驱动(不是官方内核的一部分),它能够把CD的<I>sessions</I> +显示成镜像文件,或者<A HREF="http://cdrdao.sourceforge.net/">cdrdao</A>,一个bit-by-bit的CD抓取/复制程序。</P> + + </BODY> </HTML> diff --git a/DOCS/Chinese/codecs.html b/DOCS/Chinese/codecs.html index 3a4f448eb8..6d67737fc5 100644 --- a/DOCS/Chinese/codecs.html +++ b/DOCS/Chinese/codecs.html @@ -2,27 +2,28 @@ <HTML> <HEAD> - <TITLE>编码格式 -- MPlayer -- Linux的电影播放器</TITLE> + <TITLE>编解码器 -- MPlayer -- Linux下的电影播放器</TITLE> <LINK REL="stylesheet" TYPE="text/css" HREF="default.css"> - <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80"> + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gbk"> </HEAD> <BODY> -<H2><A NAME="codecs">2.2 支持的编码格式 </A></H2> +<H2><A NAME="codecs">2.2 支持的编解码器</A></H2> -<H3><A NAME="video_codecs">2.2.1 视频编码格式</A></H3> +<H3><A NAME="video_codecs">2.2.1 视频编解码器</A></H3> -<P>看<A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">编码格式状态表格</A>来了解完整的,每日更新的列表。</P> +<P>查阅<A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">编解码器状态表</A>来了解完整的,每日更新的列表。</P> <P>所有之中最重要的:</P> <UL> <LI>MPEG1(VCD)和MPEG2(DVD)视频</LI> <LI>DivX的本地的解码器;-),OpenDivX,DivX4,DivX5,M$ MPEG4 v1,v2和其它的MPEG4变种</LI> - <LI>Windows Media Video 7(WMV1)的本地的解码器,和Windows Media Video 8(WMV2)的Win32 DLL解码器,用于.wmv文件的他们两个都</LI> + <LI>Windows Media Video 7(WMV1)的本地的解码器,和Windows Media Video 8(WMV2)的Win32 DLL解码器,它们两个都用于.wmv文件</LI> <LI><B>本地的Sorenson(SVQ1)解码器</B></LI> + <LI><B>Win32/QT Sorenson 3 (SVQ3) decoder</B></LI> <LI>3ivx解码器</LI> <LI>Cinepak和Intel Indeo解码器(3.1,3.2,4.1,5.0)</LI> <LI>MJPEG,AVID,VCR2,ASV2和其它硬件格式</LI> @@ -38,32 +39,21 @@ <H4><A NAME="divx">2.2.1.1 DivX4与DivX5</A></H4> -<P>这部分包含关于<A HREF="http://www.projectmayo.com">Mayo工程</A>的DivX4和DivX5编码格式的信息,他们的第一个可用的alpha版本是 -OpenDivX 4.0 alpha 47和48。 对它们的支持以前包括仔<B>MPlayer</B>中,并且是默认编译的。 我们也使用其后处理代码来有选择地提高MPEG1/2电影的视觉质量。 +<P>这部分包含关于<A HREF="http://www.projectmayo.com">Mayo工程</A>的DivX4和DivX5编解码器的信息,他们的第一个可用的alpha版本是 +OpenDivX 4.0 alpha 47和48。 对它们的支持以前包括在MPlayer中,并且是默认编译的。 我们也使用其后处理代码来有选择地提高MPEG1/2电影的视觉质量。 现在我们使用我们自己的,对于所有文件类型。</P> -<P>这个解码器的新一代产品称为DivX4,它甚至能解码以声名狼籍的DivX编码格式制作的电影! 此外,它比本地的Win32 DivX DLL快得多比但是比libavcodec慢。 -因此,<B>不鼓励</B>把它当解码器用。 然而,它对编码有用。 这个编码格式的缺点之一是它目前不开放源代码。</P> - -<P>解码器可以从下列URLs之一下载:</P> - -<P> <A HREF="http://avifile.sourceforge.net">http://avifile.sourceforge.net</A><BR> - <A HREF="http://divx.com">http://divx.com</A></P> - -<P>解开它,然后以root身份运行<CODE>./install.sh</CODE>。</P> - -<P><B>注意:</B>一定<B>不要</B>忘记在你的<CODE>/etc/ld.so.conf</CODE>里添加<CODE>/usr/local/lib</CODE>然后运行<CODE>ldconfig</CODE>!</P> - -<P>如果安装正确<B>MPlayer</B>会自动检测到DivX4/DivX5,然后按通常方法编译。如果没有找到,那么你没有正确地安装或配制它。</P> +<P>这个解码器的新一代产品称为DivX4,它甚至能解码以声名狼籍的DivX编解码器制作的电影! 此外,它比本地的Win32 DivX DLL快得多比但是比libavcodec慢。 +因此,<B>不鼓励</B>把它当解码器用。 然而,它对编码有用。 这个编解码器的缺点之一是它目前不开放源代码。</P> <P>DivX4Linux有两种工作方式:</P> <DL> <DT><CODE>-vc odivx</CODE></DT> - <DD>以OpenDivX方式使用解码器。在这种情况下,它在自己的缓冲中产生YV12图象,然后由<B>MPlayer</B>通过libvo做色彩空间转换。(<B>推荐,快!</B>)</DD> + <DD>以OpenDivX方式使用解码器。在这种情况下,它在自己的缓冲中产生YV12图象,然后由MPlayer通过libvo做色彩空间转换。(<B>推荐,快!</B>)</DD> <DT><CODE>-vc divx4</CODE></DT> - <DD>使用解码器的色彩空间转换。以这种方式你也能使用YUY2与UYVY。(<B>慢</B>)</DD> + <DD>使用解码器的色彩空间转换。以这种方式你也能使用YUY2与UYVY。(<B>很慢</B>)</DD> </DL> <P><CODE>-vc odivx</CODE>方式通常更快,因为它以YV12(planar YUV 4:2:0)格式传输图象数据,这样占用少的多的总线带宽。对于packed YUV方式 @@ -71,22 +61,54 @@ OpenDivX 4.0 alpha 47和48。 对它们的支持以前包括仔<B>MPlayer</B>中,并且是默认编 <P><B>注意:</B>如果你的<CODE>-vo</CODE>驱动支持直接渲染,那么<CODE>-vc divx4</CODE>可以是很快甚至最快的解决方案。</P> +<P>这个编解码器可以在<A HREF="http://avifile.sourceforge.net">avifile</A>下载,解压之后,以root权限运行<CODE>./install.sh</CODE>, +另外别忘了把<CODE>/usr/local/lib</CODE>添加到你的<CODE>/etc/ld.so.conf</CODE>中然后运行<CODE>ldconfig</CODE>。</P> + +<P>想得到核心库的CVS版本可以这样做:</P> +<OL> + <LI><CODE>cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login</CODE></LI> + <LI><CODE>cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore</CODE></LI> + <LI>核心库分为解码库和编码库必须分别编译。对于解码库,直接输入: + <PRE> + cd divxcore/decore/build/linux + make + cp libdivxdecore.so /usr/local/lib + ln -s /usr/local/lib/libdivxdecore.so /usr/local/lib/libdivxdecore.so.0 + cp ../../src/decore.h /usr/local/include + </PRE> + </LI> + <LI>唉,对于编码库没有可用的Linux的Makefile,而且MMX优化代码只能用于Windows但你仍然可以用这个<A +HREF="ftp://ftp.mplayerhq.hu/MPlayer/contrib/divx-mf/Makefile">Makefile</A>来编译它 + <PRE> + cd ../../../encore/build + mkdir linux + cd linux + cp path/Makefile . + make + cp libdivxencore.so /usr/local/lib + ln -s /usr/local/lib/libdivxdecore.so /usr/local/lib/libdivxdecore.so.0 + cp ../../src/encore.h /usr/local/include + </PRE> + </LI> +</OL> + +<P>如果正常安装了DivX4/DivX5,MPlayer会自动检测到它,只要正常编译就可以。如果没有检测到,你肯定没有正确安装或者配置它。</P> <H4><A NAME="libavcodec">2.2.1.2 FFmpeg DivX/libavcodec</A></H4> -<P><A HREF="http://ffmpeg.sourceforge.net">FFmpeg</A>包括一组<B>开源的</B>解码器包,能够以兼容方式解码以 +<P><A HREF="http://ffmpeg.sourceforge.net">FFmpeg</A>包括一组<B>开放源码的</B>解码器包,能够以兼容方式解码以 H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1编码格式编码的视频流。它不仅能对其中一些进行编码, -同时提供比Win32解码器或Mayo工程的DivX4/5库更高的速度!</P> +同时提供比Win32解码器或DivX.com的DivX4/5库更高的速度!</P> -<P>它包含很多不错的解码器,尤其重要的是MPEG4的几个变种:DivX 3,DivX 4,DivX 5,Windows Media Video 7 (WMV1)</P> +<P>它包含很多不错的解码器,尤其重要的是MPEG4的几个变种:DivX 3,DivX 4,DivX 5,Windows Media Video 7(WMV1)。另外一个有趣的东西是WMA解码器。</P> -<P>如果你使用<B>MPlayer</B>发行版,在你的源码包里就有libavcodec,正常编译。如果你使用CVS的<B>MPlayer</B> -那么你必须从FFmpeg的CVS树中提取libavcodec因为FFmpeg 0.4.5<B>不能</B>用于<B>MPlayer</B>。你应该这样来完成:</P> +<P>如果你使用MPlayer发行版,在你的源码包里就有libavcodec,正常编译即可。如果你使用CVS的MPlayer +那么你必须从FFmpeg的CVS树中提取libavcodec因为FFmpeg 0.4.5<B>不能</B>用于MPlayer。你应该这样来完成:</P> -OL> +<OL> <LI><CODE>cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login</CODE></LI> <LI><CODE>cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg</CODE></LI> - <LI>把<CODE>libavcodec</CODE>目录从FFmpeg的源代码里移到<B>MPlayer</B>的CVS树的根部。应该看起来象这样: + <LI>把<CODE>libavcodec</CODE>目录从FFmpeg的源代码里移到MPlayer的CVS树的根目录下。看起来应该象这样: <P> <CODE>main/libavcodec</CODE></P> 符号链接是<B>不</B>够的,你必须复制或移动它!</LI> <LI>编译。Configure应该在编译之前发现可能的问题。</LI> @@ -104,68 +126,64 @@ OL> XAnim的作者到目前为止没有就解码器有关的问题对着任何人采取法律行动。 </P> -<P><B>MPlayer</B>可以使用XAnim的解码器解码。按照下列指令来开启它:</P> +<P>MPlayer可以使用XAnim的解码器解码。按照下列指令来开启它:</P> <OL> - <LI>从<A HREF="http://xanim.va.pubnix.com">XAnim的站点</A>下载你想要的解码器。<B>3ivx</B>的解码器不在那里,在 -<A HREF="http://www.3ivx.com">3ivx的站点</A>。</LI> + <LI>从<A HREF="http://xanim.va.pubnix.com">XAnim的站点</A>下载你想要的解码器。<B>3ivx</B>的解码器不在那里,而是在<A +HREF="http://www.3ivx.com">3ivx的站点</A>。</LI> <LI>使用<CODE>--with-xanimlibdir</CODE>选项来告诉configure在何处可以找到XAnim的解码器。缺省的话,它在 <CODE>/usr/local/lib/xanim/mods, /usr/lib/xanim/mods and /usr/lib/xanim</CODE>里寻找。或者你可以把<I>XANIM_MOD_DIR</I>环境变量 设置为XAnim解码器所在的目录。</LI> <LI>给文件改名/做符号链接,去掉代表平台构架之类的东西,让他们看起来像这样:<CODE>vid_cvid.xa, vid_h263.xa, vid_iv50.xa</CODE>。</LI> </OL> -<P>XAnim的视频解码器族号码是10,因此你可以使用<CODE>-vfm 10</CODE>选项让<B>MPlayer</B>尽可能的使用他们。</P> +<P>XAnim的视频解码器族号码是10,因此你可以使用<CODE>-vfm 10</CODE>选项让MPlayer尽可能的使用他们。</P> <P>测试过的解码器包括:<B>Indeo 3.2</B>,<B>4.1</B>,<B>5.0</B>,<B>CVID</B>,<B>3ivX</B>,<B>h263</B>。</P> <H4><A NAME="vivo_video">2.2.1.4 VIVO视频</A></H4> -<P><B>MPlayer</B>能播放Vivo(1.0和2.0)视频。对于1.0的文件最适合的解码器是FFmpeg的H263解码器,你可以用<CODE>-vc ffh263</CODE>选项 -(默认的)来使用它(需要最新的libavcodec)。对于2.0个文件,使用<A HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/ivvideo.dll"> -ivvideo.dll</A>这个Win32 DLL文件,将它安装在<CODE>/usr/lib/win32</CODE>或者你放Win32解码器的那个什么地方。后面这个解码器不支持YV12或YUY2, -只使用BGR,只能限定在X11和OpenGL输出方式。希望ffh263将来支持VIVO 2.0的文件。</P> |