21762
|
1 <?xml version="1.0" encoding="utf-8"?>
|
|
2 <!-- synced with r21612 -->
|
|
3 <chapter id="cd-dvd">
|
|
4 <title>CD/DVD用法</title>
|
|
5
|
|
6 <sect1 id="drives">
|
|
7 <title>CD/DVD驱动器</title>
|
|
8
|
|
9 <para>
|
|
10 现代的CD-ROM驱动器能达到很高的速度,然而一些CD-ROM也可以在降低速度下运行。
|
|
11 有几条原因可能使你考虑改变CD-ROM的读盘速度:
|
|
12 </para>
|
|
13
|
|
14 <itemizedlist>
|
|
15 <listitem><para>
|
|
16 有报告称告诉读取可产生错误,尤其是制作恶劣的CD-ROM。降低速度可以防止这些
|
|
17 情况下的数据丢失。
|
|
18 </para></listitem>
|
|
19
|
|
20 <listitem><para>
|
|
21 许多CD-ROM驱动器有很讨厌的噪音,低俗可以降低这些噪音。
|
|
22 </para></listitem>
|
|
23 </itemizedlist>
|
|
24
|
|
25 <!-- ********** -->
|
|
26
|
|
27 <sect2 id="drives_linux">
|
|
28 <title>Linux</title>
|
|
29
|
|
30 <para>
|
|
31 你可以使用<command>hdparm</command>,<command>setcd</command>或
|
|
32 <command>cdctl</command>以减慢IDE CD-ROM的驱动器。使用方法如下:
|
|
33 <screen>hdparm -E <replaceable>[speed]</replaceable> <replaceable>[cdrom device]</replaceable></screen>
|
|
34 <screen>setcd -x <replaceable>[speed]</replaceable> <replaceable>[cdrom device]</replaceable></screen>
|
|
35 <screen>cdctl -bS <replaceable>[speed]</replaceable></screen>
|
|
36 </para>
|
|
37
|
|
38 <para>
|
|
39 如果你使用SCSI模拟,你必须把设置应用到真正的IDE驱动器,不是被
|
|
40 模拟的SCSI设备。
|
|
41 </para>
|
|
42
|
|
43 <para>
|
|
44 如果你有root权限,下面的命令也可能有帮助:
|
|
45 <screen>echo file_readahead:2000000 > /proc/ide/<replaceable>[cdrom device]</replaceable>/settings</screen>
|
|
46 </para>
|
|
47
|
|
48 <para>
|
|
49 这将预读取的文件设置为2MB,这对有划痕的CD-ROM有帮助。如果你设置
|
|
50 的太大,驱动器会不断来回转动,极大降低性能。
|
|
51 推荐你使用<command>hdparm</command>调整你的CD-ROM:
|
|
52 <screen>hdparm -d1 -a8 -u1 <replaceable>[cdrom device]</replaceable></screen>
|
|
53 </para>
|
|
54
|
|
55 <para>
|
|
56 这开启了DMA读取,预读,以及IRQ遮盖(对于详细解释阅读
|
|
57 <command>hdparm</command>man页)。
|
|
58 </para>
|
|
59
|
|
60 <para>
|
|
61 请阅读
|
|
62 "<filename>/proc/ide/<replaceable>[cdrom device]</replaceable>/settings</filename>"
|
|
63 以很好调整你的CD-ROM。
|
|
64 </para>
|
|
65
|
|
66 <para>
|
|
67 SCSI驱动器没有统一设置参数的方法(你知道?告诉我们!),有一个工具
|
|
68 <ulink url="http://das.ist.org/~georg/">Plextor SCSI drives</ulink>可参照。
|
|
69 </para>
|
|
70 </sect2>
|
|
71
|
|
72 <!-- ********** -->
|
|
73
|
|
74 <sect2 id="drives_freebsd">
|
|
75 <title>FreeBSD</title>
|
|
76
|
|
77 <para>speed:
|
|
78 <screen>
|
|
79 cdcontrol [-f <replaceable>device</replaceable>] speed <replaceable>[speed]</replaceable>
|
|
80 </screen>
|
|
81 </para>
|
|
82
|
|
83 <para>DMA:
|
|
84 <screen>
|
|
85 sysctl hw.ata.atapi_dma=1
|
|
86 </screen>
|
|
87 </para>
|
|
88
|
|
89 </sect2>
|
|
90
|
|
91 </sect1>
|
|
92
|
|
93
|
|
94 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
95
|
|
96
|
|
97 <sect1 id="dvd">
|
|
98 <title>DVD回放</title>
|
|
99
|
|
100 <para>
|
|
101 对于完整的可用选项,请阅读man页。
|
|
102 播放标准DVD的语法如下:
|
|
103 <screen>
|
|
104 mplayer dvd://<replaceable><track></replaceable> [-dvd-device <replaceable><device></replaceable>]
|
|
105 </screen>
|
|
106 </para>
|
|
107
|
|
108 <para>
|
|
109 例如:
|
|
110 <screen>mplayer dvd://1 -dvd-device /dev/hdc</screen>
|
|
111 </para>
|
|
112
|
|
113 <para>
|
|
114 如果你使用dvdnav支持编译<application>MPlayer</application>,语法是一样的,但你要用
|
|
115 dvdnav://而不用dvd://。
|
|
116 </para>
|
|
117
|
|
118 <para>
|
|
119 默认的DVD设备是<filename>/dev/dvd</filename>。如果你的设置不同,创建
|
|
120 个连接或者在命令行中用<option>-dvd-device</option>指定正确的设备。
|
|
121 </para>
|
|
122
|
|
123 <para>
|
|
124 对于DVD回放及解密,<application>MPlayer</application>使用
|
|
125 <systemitem>libdvdread</systemitem>及<systemitem>libdvdcss</systemitem>
|
|
126 这两个库在
|
|
127 <application>MPlayer</application>的源码树中,你不必单独安装。你也可以使用
|
|
128 全系统可用的版本,但这种做法不被推荐,因为它能导致错误,库不兼容以及更慢的
|
|
129 速度。
|
|
130 </para>
|
|
131
|
|
132 <note><para>
|
|
133 对于DVD解码问题,尝试禁用supermount,或者其它相应特性。一些RPC-2驱动器
|
|
134 可能还需要设置区域代码。
|
|
135 </para></note>
|
|
136
|
|
137 <formalpara>
|
|
138 <title>DVD结构</title>
|
|
139 <para>
|
|
140 DVD磁盘的每个簇有带有ECC/CRC的2048字节。每个轨上采用UDF文件格式,包含各种文
|
|
141 件(小的.IFO及.BUK文件以极大的(1GB)的.VOB文件)。它们是真正的文件能从被挂
|
|
142 载的未加密的DVD中复制/播放。
|
|
143 </para>
|
|
144 </formalpara>
|
|
145
|
|
146 <para>
|
|
147 .IFO文件包含电影的浏览信息(章/标题/视角图,语言表等),它们被用于读及解析
|
|
148 .VOB的内容(影片)。.BUK文件是它们的备份。他们到处使用<emphasis role="bold">簇</emphasis>,
|
|
149 所以你需要指定光盘上真正的簇地址以完成DVD浏览或对内容进行解密。
|
|
150 </para>
|
|
151
|
|
152 <para>
|
|
153 DVD支持通过原始的对设备基于簇的访问。不幸的是,(在Linux中)要得到一个文件
|
|
154 的簇地址,你必须是超级用户。那就是我们不使用内核的文件系统的原因,我们在用
|
|
155 户层对此进行了重新实现。<systemitem>libdvdread</systemitem> 0.9.x完成了此项
|
|
156 工作。我们并不需要内核中的UDF文件系统驱动因为它们已经有了自己内置的UDF文件
|
|
157 </para>
|
|
158
|
|
159 <para>
|
|
160 有时<filename>/dev/dvd</filename>对用户不可读,所以
|
|
161 <systemitem>libdvdread</systemitem>的作者实现了一个模拟层,其实现了将簇地址
|
|
162 提交到文件名+偏移量中,以模拟在挂载的文件系统甚至是硬盘上的直接访问。
|
|
163 </para>
|
|
164
|
|
165 <para>
|
|
166 <systemitem>libdvdread</systemitem>对于直接访问甚至支持挂载点而不是设备名并
|
|
167 检查<filename>/proc/mounts</filename>以得到设备名称。其被开发在Solaris上,
|
|
168 在那系统上设备名是动态分配的。
|
|
169 </para>
|
|
170
|
|
171 <formalpara>
|
|
172 <title>DVD解密</title>
|
|
173 <para>
|
|
174 DVD解密通过<systemitem>libdvdcss</systemitem>完成。这个方法可以通过
|
|
175 <envar>DVDCSS_METHOD</envar>环境变量设置,具体细节参考man页。
|
|
176 </para>
|
|
177 </formalpara>
|
|
178
|
|
179 <para>
|
|
180 RPC-1 DVD驱动器只使用软件对区域设置进行保护。RPC-2驱动器有一个硬件保护,只准
|
|
181 许做5次更改。你可能需要或被推荐把firmware升级到RPC-1,如果你有个RPC-2 DVD驱动
|
|
182 器。你可以在因特网上寻找firmware的升级,
|
|
183 <ulink url="http://forum.rpc-1.com/dl_all.php">此firmware论坛</ulink>
|
|
184 对你的搜索可能是个好起点。如果没有针对你的设备的firmware升级,使用
|
|
185 <ulink url="http://linvdr.org/projects/regionset/">区域工具</ulink>
|
|
186 来设置你DVD的区域码(在Linux下)。
|
|
187 <emphasis role="bold">警告</emphasis>:你只可以设置5次区域。
|
|
188 </para>
|
|
189 </sect1>
|
|
190
|
|
191
|
|
192 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
193
|
|
194
|
|
195 <sect1 id="vcd">
|
|
196 <title>VCD回放</title>
|
|
197
|
|
198 <para>
|
|
199 对于可用选项的详细列表,请阅读man页。对于标准视频CD (VCD)的语法如下:
|
|
200 <screen>mplayer vcd://<replaceable><track></replaceable> [-cdrom-device <replaceable><device></replaceable>]</screen>
|
|
201 例如:
|
|
202 <screen>mplayer vcd://2 -cdrom-device /dev/hdc</screen>
|
|
203 默认的VCD设备是<filename>/dev/cdrom</filename>。如果你的设置不同,建
|
|
204 立个连接或者在命令行通过<option>-cdrom-device</option>选项指定正确设备。
|
|
205 </para>
|
|
206
|
|
207 <note><para>
|
|
208 至少Plextor及一些Toshiba SCSI CD-ROM驱动器对读取VCD有着恐怖的性能。这是因为
|
|
209 针对这些设备的CDROMREADRAW <systemitem>ioctl</systemitem>没有完成。如果你有
|
|
210 SCSI编程知识,请<ulink url="../../tech/patches.txt">帮我们</ulink>实现对SCSI
|
|
211 VCD的支持。
|
|
212 </para></note>
|
|
213
|
|
214 <para>
|
|
215 同时,你可以通过
|
|
216 In the meantime you can extract data from VCDs with
|
|
217 <ulink url="http://ftp.ntut.edu.tw/ftp/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink>
|
|
218 从VCD提取数据并用<application>MPlayer</application>播放最终文件。
|
|
219 </para>
|
|
220
|
|
221 <formalpara>
|
|
222 <title>VCD结构</title>
|
|
223 <para>
|
|
224 视频CD (VCD)由CD-ROM XA簇组成,例如CD-ROM 模式 2
|
|
225 表格1及2轨:
|
|
226 <itemizedlist>
|
|
227 <listitem><para>
|
|
228 第一个轨道处于模式2表格2格式下,这意味着他使用L2错误恢复。此轨道含有
|
|
229 ISO-9660文件系统,其拥有2048字节/簇。此文件系统含有VCD属性数据信息,
|
|
230 以及经常用于菜单上的静态桢。对菜单的MPEG块也能存于这第一个轨道上,但
|
|
231 MPEG不得不被分散成一系列的150个簇的块。ISO-9660文件系统可以包含其它
|
|
232 对于VCD操作不重要的文件或程序。
|
|
233 </para></listitem>
|
|
234
|
|
235 <listitem><para>
|
|
236 第二及余下的轨道通常是原始的2324字节/簇的MPEG(影片)轨道,每个簇包含
|
|
237 一个MPEG PS数据包。这些处于模式2表格1格式,所以他们没簇存储更多数据,
|
|
238 损失了一些纠错。在一个VCD的第一个轨道后也包含CD-DA轨道也是合法的。在
|
|
239 一些操作系统中,有些技巧是这些非ISO-9660轨道出现在文件系统中。在另外
|
|
240 一些操作系统中如GNU/Linux,这还(未)被实现。在此,MPEG数据
|
|
241 <emphasis role="bold">不能被挂载</emphasis>。因为大部分电影在这种轨道
|
|
242 内,你应先试<option>vcd://2</option>。
|
|
243 </para></listitem>
|
|
244
|
|
245 <listitem><para>
|
|
246 还存在没有第一个轨道的VCD(单一轨道根本没有文件系统)。他们仍然是可
|
|
247 播放的,但不能被挂载。
|
|
248 </para></listitem>
|
|
249
|
|
250 <listitem><para>
|
|
251 视频CD的定义被称为Philips"白皮书",它通常并不出现在网上因为它要从
|
|
252 Philips购买。对于视频CD更详细的资料可从
|
|
253 <ulink url="http://www.vcdimager.org/pub/vcdimager/manuals/0.7/vcdimager.html#SEC4">vcdimager文档</ulink>
|
|
254 获取。
|
|
255 </para></listitem>
|
|
256 </itemizedlist>
|
|
257 </para>
|
|
258 </formalpara>
|
|
259
|
|
260 <formalpara>
|
|
261 <title>关于.DAT文件</title>
|
|
262 <para>
|
|
263 被挂载的VCD上处于第一个轨道上的~600MB的文件并不是真正的文件!它是所谓的ISO网
|
|
264 关,其被创建以便Windows处理这些轨道(Windows根本不允许应用程序直接访问原始设
|
|
265 备)。在Linux下你不能复制或播放这些文件(它们包含垃圾)。在Windows下,这是可
|
|
266 能的因为他的iso9660驱动模拟了在文件内直接读取轨道。要播放.DAT文件,你需要内核
|
|
267 驱动,岂可再PowerDVD的Linux版本中找到。其有一个更改的iso9660文件系统
|
|
268 (<filename>vcdfs/isofs-2.4.X.o</filename>)驱动,你可以通过<application>MPlayer</application>
|
|
269 复制甚至播放.DAT文件。但在Linux内核的标准的iso9660驱动上它不能工作!另外使用
|
|
270 使用<option>vcd://</option>。对于VCD复制另外的方法是内核新的
|
|
271 <ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink>驱动(不是
|
|
272 官方内核的一部分)其将CD会话显示为镜像文件及<ulink url="http://cdrdao.sf.net/">cdrdao</ulink>,
|
|
273 一个逐位的CD抓轨/复制程序。
|
|
274 </para>
|
|
275 </formalpara>
|
|
276 </sect1>
|
|
277 </chapter>
|