annotate DOCS/zh/cd-dvd.html @ 14715:1fab95e4513c

Improved NV12/NV21 support. - Fixed PlanarToNV12Wrapper() and made it handle NV21. - Added yuv2nv12XinC() to handle software scaling. - Added NV12/NV21 handling to various places. - Removed NV12 from vf_hue and vf_spp as they don't look like they can actually handle it.
author syrjala
date Wed, 16 Feb 2005 23:47:00 +0000
parents a5785a0b9ee1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
2 <HTML>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
3
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
4 <HEAD>
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
5 <TITLE>CD,DVD,VCD -- MPlayer -- Linux下的电影播放器</TITLE>
9512
883f38591d47 now all translations link to ../default.css
gabucino
parents: 9332
diff changeset
6 <LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
7 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gbk">
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
8 </HEAD>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
9
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
10 <BODY>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
11
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
12
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
13 <H2><A NAME="drives">4.1 CD/DVD光驱</A></H2>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
14
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
15 <P>Linux文件摘录:</P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
16
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
17 <P>现代的CD-ROM光驱能达到十分高的头速度,还有一些CD-ROM光驱能运行在被正常情况低的速度上。你考虑改变CD-ROM光驱的速度可能有若干原因:</P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
18
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
19 <UL>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
20 <LI>在告诉情况下发生读取错误,尤其对于压制不好的CD-ROM。降低速度能防止这种情况下的数据丢失。</LI>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
21 <LI>很多CD-ROM光驱的声音吵的讨厌,低的速度可以降低噪音。</LI>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
22 </UL>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
23
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
24 <P>你能使用hdparm或一个叫setcd的程序来降低光驱的速度。它是这样工作的:</P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
25
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
26 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>hdparm -E [speed] [cdrom device]</CODE></P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
27
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
28 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>setcd -x [speed] [cdrom device]</CODE></P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
29
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
30 <P>你也可以试试</P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
31
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
32 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>echo current_speed:4 &gt; /proc/ide/[cdrom device]/settings</CODE></P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
33
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
34 <P>但这样你需要root权限。下面这个命令也有用处:</P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
35
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
36 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>echo file_readahead:2000000 &gt; /proc/ide/[cdrom device]/settings</CODE></P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
37
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
38 <P>这把文件预读取设置为2MB,对于刮伤的CD-ROM有好处。如果你把这个值设置的太大,你的光驱会不停的转,
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
39 显著的降低效率。建议你同时也用hdparm调整你的CD-ROM光驱:</P>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
40
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
41 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>hdparm -d1 -a8 -u1 (cdrom device)</CODE></P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
42
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
43 <P>这开启DMA存取,预读取,和IRQ unmasking(细节解释请阅读hdparm的man page)。</P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
44
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
45 <P>为了优化你的CD-ROM请参考"<CODE>/proc/ide/[cdrom device]/settings</CODE>"。</P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
46
9869
49f639c73367 Translation update
luran
parents: 9614
diff changeset
47 <P>SCSI驱动器没有一个统一的设置参数的方法(你知道这样一种方法?告诉我们!) 有一种工具可以用于<A
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
48 HREF="http://das.ist.org/~georg/">Plextor的SCSI驱动器</A>。</P>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
49
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
50 <P>FreeBSD:</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
51
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
52 <P>&nbsp;&nbsp;&nbsp;&nbsp;Speed: <CODE>cdcontrol [-f device] speed [speed]</CODE></P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
53 <P>&nbsp;&nbsp;&nbsp;&nbsp;DMA: <CODE>sysctl hw.ata.atapi_dma=1</CODE></P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
54
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
55 <H2><A NAME="dvd">4.2 DVD播放</A></H2>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
56
9268
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
57 <P>可用选项的完整列表参见man page。播放标准的数字多功能碟片(DVD)的语法如下:</P>
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
58
10405
a5785a0b9ee1 -dvd -> dvd:// and -vcd -> vcd://
jonas
parents: 9869
diff changeset
59 <P><CODE>mplayer dvd://&lt;track&gt; [-dvd-device &lt;device&gt;]</CODE></P>
9268
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
60
10405
a5785a0b9ee1 -dvd -> dvd:// and -vcd -> vcd://
jonas
parents: 9869
diff changeset
61 <P>示例:<CODE>mplayer dvd://1 -dvd-device /dev/hdc</CODE></P>
9268
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
62
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
63 <P>默认的DVD设备是<CODE>/dev/dvd</CODE>。如果你的设置不同,作一个符号链接,或者在命令行中用<CODE>-dvd-device</CODE>选项
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
64 指定一个正确的设备。</P>
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
65
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
66 <H4>新式的DVD支持(mpdvdkit2)</H4>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
67
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
68 <P>MPlayer使用<CODE>libdvdread</CODE>和<CODE>libdvdcss</CODE>进行DVD解密和回放。这两个库包含在MPlayer源码树的<CODE>libmpdvdkit/</CODE>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
69 子目录中,你不需要单独安装他们。我们选择这种解决方案是因为我们必须修正一个libdvdread的bug,并且给libdvdcss添加一个<B>cracked CSS keys caching support</B>的补丁。
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
70 这带来极大的速度提升,因为不用在每次播放之前都破解密钥。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
71
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
72 <P>MPlayer也能使用系统的<CODE>libdvdread</CODE>和<CODE>libdvdcss</CODE>库,但这种解决方法<B>不</B>推荐,因为它会导致bug,库的不兼容,并且降低速度。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
73
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
74 <H4>DVD导航菜单支持(dvdnav)</H4>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
75
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
76 <P>通过<CODE>dvdnav</CODE>支持DVD导航菜单的工作已经开始,但它可能永远不会完成而且现在无人维护。谁知道,它可能还能编译过去。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
77
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
78 <H4>老式DVD支持 -- 可选</H4>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
79
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
80 <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>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
81
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
82 <H4>DVD结构</H4>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
83
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
84 <P>DVD盘每个扇区有2048字节附带ECC/CRC。它们经常在一个音轨上使用一个UDF文件结构,包含各种文件(小的.IFO和.BUK文件和大的
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
85 (1GB) .VOB文件)。它们是真正的文件,可以在一个mount了的未加密的DVD的文件系统上被复制/播放。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
86
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
87 <P>.IFO文件包含电影的导航信息(chapter/title/angle map, 语言表等等)需要它来读取和解释.VOB文件的内容(电影)。.BUK文件是它们的备份。
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
88 它们到处使用<B>扇区</B>,所以你需要使用碟片上扇区的未经处理的地址类实现DVD导航菜单和内容解密。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
89
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
90 <P>整个的老式DVD支持使用<CODE>libcss</CODE>所以需要一个mount了的DVD文件系统和直接的基于扇区的设备访问。不幸的是(在Linux下)你必须
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
91 是root才能得到一个文件的扇区地址。你有以下几种选择:</P>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
92
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
93 <UL>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
94 <LI>成为root或者使用一个suid-root的mplayer二进制程序。</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
95 <LI>让MPlayer调用suid-root的fibmap_mplayer外壳程序来访问DVD(使用通过<CODE>libcss</CODE>的老式DVD播放方式)。</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
96 <LI>根本不使用内核的文件系统驱动而是在用户空间重新实现它。<CODE>libdvdread</CODE> 0.9.x和<CODE>libmpdvdkit</CODE>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
97 就是这么做的(新式DVD支持)。内核的UDF文件系统驱动是不需要的因为它们有自己内建的UDF文件系统驱动。同样DVD不需要mount
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
98 因为只需要使用直接的基于扇区的访问。</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
99 </UL>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
100
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
101 <P>有时<CODE>/dev/dvd</CODE>用户不能读取,所以<CODE>libdvdread</CODE>的作者设计了一个模拟层把扇区地址变换为文件名
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
102 +偏移量,用来在一个mount了的文件系统甚至硬盘上模拟直接访问。</P>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
103
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
104 <P><CODE>libdvdread</CODE>甚至可以通过mountpoint而不是设备名,通过访问<CODE>/proc/mounts</CODE>查找设备名来进行直接访问,
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
105 这是为Solaris设计的,那里设备名是动态分配的。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
106
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
107 <P>默认的DVD设备是<CODE>/dev/dvd</CODE>。如果你的设置不同,作一个符号链接,或者在命令行中用<CODE>-dvd-device</CODE>选项
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
108 指定一个正确的设备。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
109
9869
49f639c73367 Translation update
luran
parents: 9614
diff changeset
110 <H4>DVD认证</H4>
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
111
9869
49f639c73367 Translation update
luran
parents: 9614
diff changeset
112 <P>新式DVD支持的认证和解密的方法是通过一个打了补丁的<CODE>libdvdcss</CODE>(见上面)来完成的。可以通过指定环境
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
113 变量<CODE>DVDCSS_METHOD</CODE>来设置解密方法,可以设置的值为<CODE>key</CODE>, <CODE>disk</CODE>或者<CODE>title</CODE>。</P>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
114
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
115 <P>如果什么都没有指定它将会尝试下列方法(默认: key, title request):</P>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
116
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
117 <OL>
9869
49f639c73367 Translation update
luran
parents: 9614
diff changeset
118 <LI><B>bus key:</B> 这个密钥在认证(一长串的ioctls和各种密钥的交换,加密的东西的混合)的过程中确定,然后在通过没有保护的
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
119 总线之前用它加密title和disk keys(防止窃听)。需要bus key来获得加密的disk key并对其进行预解密.</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
120 <LI><B>cached key:</B> MPlayer寻找已经破解的title keys,存放在<CODE>~/.mplayer/DVDKeys</CODE>目录下(很快;).</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
121 <LI><B>key:</B> 如果没有可用的cached key,MPlayer尝试使用播放器密钥来对disk key进行解密。</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
122 <LI><B>disk:</B> 如果密钥方法失败(比如:没有自带的播放器密钥),MPlayer将会使用一种暴力算法来破解disk key。
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
123 这个过程非常消耗CPU而且需要64 MB内存(16M的32Bit的整个hash表)来存储临时数据。这种方法总能起作用(很慢)。</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
124 <LI><B>title request:</B> 有了disk key以后MPlayer需要加密的title keys,它被用<CODE>ioctl()</CODE>储存在<I>隐藏扇区</I>里。
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
125 RPC-2驱动器的地区保护在这一步实现,所以在这样的驱动器上可能会失败。如果成功的话,将使用bus和disk key对title keys进行解密。</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
126 <LI><B>title:</B> 这个方法在title request方法失败时使用,不依赖于与DVD驱动器的任何密钥交换。它使用一种加密破解的方法
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
127 直接猜测title key(通过寻找已解密的VOB内容中的一种重复格式然后猜测加密部分的前几个字节是这种格式的延续)。
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
128 这种方法也被成为"已知明文攻击"或者"DeCSSPlus"。很少的情况下,因为碟片上没有足够的加密数据来进行统计攻击或者因为密钥交换
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
129 发生在一个title的中间,这种方法会失败。这种方法是解密一个储存在硬盘上的DVD或者在一个RPC2驱动器上读取一个地区错误的DVD
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
130 的唯一方法(很慢)。</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
131 </OL>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
132
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
133 <P>RPC-1 DVD驱动器只保护软件设定的区域。RPC-2驱动器有一个硬件保护,只允许5个改变。如果你有一个RPC-2 DVD驱动器,
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
134 可能需要/推荐将固件升级到RPC-1。固件升级可以在这里<A HREF="http://www.firmware-flash.com">firmware page</A>找到。
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
135 如果没有可用于你的设备的固件升级,使用<A
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
136 HREF="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">区域设定工具</A>来设置你的
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
137 DVD驱动器的地区(在Linux下)。<B>警告:</B> 你只有5次设置地区的机会。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
138
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
139
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
140
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
141 <H2><A NAME="vcd">4.3 VCD回放</A></H2>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
142
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
143 <P>可用选项的完整列表请阅读man page。播放一个标准的Video CD(VCD)的语法如下:</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
144
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
145 <P>播放标准的Video CDs:</P>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
146
10405
a5785a0b9ee1 -dvd -> dvd:// and -vcd -> vcd://
jonas
parents: 9869
diff changeset
147 <P><CODE>mplayer vcd://&lt;track&gt; [-cdrom-device &lt;device&gt;]</CODE></P>
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
148
10405
a5785a0b9ee1 -dvd -> dvd:// and -vcd -> vcd://
jonas
parents: 9869
diff changeset
149 <P>示例:<CODE>mplayer vcd://2 -cdrom-device /dev/hdc</CODE></P>
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
150
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
151 <P>默认的VCD设备是<CODE>/dev/cdrom</CODE>。如果你的设置不同,作一个符号链接,或者在命令行中用<CODE>-cdrom-device</CODE>选项
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
152 指定一个正确的设备。</P>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
153
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
154 <P><B>注意:</B>至少对于Plextor和一些Toshiba的SCSI CD-ROM驱动器在读取VCD的时候慢的恐怖。这是因为CDROMREADRAW ioctl在这些
9614
05b3a03fdd8f Sync by <hephooey@fastmail.fm>.
diego
parents: 9512
diff changeset
155 驱动器上没有完全实现。如果你有SCSI编程方面的支持,请<A HREF="../tech/patches.txt">帮助我们</A>实现普遍的SCSI设备的VCD支持。</P>
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
156
9268
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
157 <P>此外你还可以使用<A HREF="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/">readvcd</A>提取VCD中的数据,并用
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
158 MPlayer播放获得的文件。</P>
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
159
a76b8962c0bd Sync by Lu Ran <hephooey@fastmail.fm>.
diego
parents: 9080
diff changeset
160
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
161 <H4>VCD结构</H4>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
162
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
163 <P>VCD碟片由一个或多个音轨组成:</P>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
164
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
165 <UL>
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
166 <LI>第一个轨道是一个小的2048字节/扇区的数据轨,有一个iso9660文件系统,通常包含Windows VCD播放程序可能还有其他信息
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
167 (图像,文字等等)。</LI>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
168 <LI>第二和之后的轨道是未处理的2324字节/扇区的MPEG(电影)轨,每个扇区包含一个MPEG PS数据包而没有文件系统。音频CD的轨道也类似。
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
169 这些轨道是<B>无法被mount的</B>(你曾经mount一个音频CD然后播放过吗?)。大部分电影都在这个轨道,所以你应该先试试
10405
a5785a0b9ee1 -dvd -> dvd:// and -vcd -> vcd://
jonas
parents: 9869
diff changeset
170 <CODE>vcd://2</CODE>。</LI>
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
171 <LI>有些VCD碟片没有第一个轨道(单轨道而根本没有文件系统)。它们也可以播放,但是不能mount。</LI>
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
172 </UL>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
173
9080
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
174 <H4>关于.DAT文件:</H4>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
175
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
176 <P>在mount了的VCD的第一轨上看到的~600 MB的文件不是一个真正的文件!这是所谓的ISO通道,用来使Windows能够处理这样的
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
177 轨道(Windows根本不允许程序直接访问未处理的设备)。在Linux下你不能复制或者播放这些文件(它们里面是些垃圾)。在Windows下
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
178 这是可以的,因为它的iso9660驱动能模拟在这个文件中读取未处理的音轨。要播放一个.DAT文件你需要Linux版的PowerDVD中的
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
179 内核驱动。它有一个经过修改的iso9660文件系统(<CODE>vcdfs/isofs-2.4.X.o</CODE>)驱动,可以通过这个.DAT影子文件模拟
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
180 读取未处理音轨。如果你用它们的驱动来mount,你可以复制甚至用mplayer直接播放.DAT文件。但如果用Linux内核的标准的
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
181 iso9660驱动是<B>不会有用的</B>!应该使用<CODE>-vcd</CODE>选项。另一种复制VCD的方法是新的<A
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
182 HREF="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</A>内核驱动(不是官方内核的一部分),它能够把CD的<I>sessions</I>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
183 显示成镜像文件,或者<A HREF="http://cdrdao.sourceforge.net/">cdrdao</A>,一个bit-by-bit的CD抓取/复制程序。</P>
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
184
e7aad3a3bb7c sync by <hephooey@fastmail.fm>
diego
parents: 7597
diff changeset
185
7597
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
186 </BODY>
363959276ef2 by cvs hephooey@fastmail.fm
jaf
parents:
diff changeset
187 </HTML>