Mercurial > mplayer.hg
annotate DOCS/xml/en/cd-dvd.xml @ 10656:dc8057623941
sync with man page, 'remove dvdnav stuff, it does not work anyway'
author | nauj27 |
---|---|
date | Mon, 18 Aug 2003 10:55:40 +0000 |
parents | 9ad3a27284d9 |
children | eb339c10228e |
rev | line source |
---|---|
9675 | 1 <?xml version="1.0" encoding="iso-8859-1"?> |
2 <chapter id="cd-dvd"> | |
3 <title>CD/DVD usage</title> | |
4 | |
5 <sect1 id="drives"> | |
6 <title>CD/DVD drives</title> | |
7 <para> | |
8 Linux documentation excerpt: | |
9 </para> | |
10 | |
11 <para> | |
12 Modern CD-ROM drives can attain very high head speeds, yet some CD-ROM drives | |
13 are capable of running at reduced speeds. There are several reasons that might | |
14 make you consider changing the speed of a CD-ROM drive: | |
15 </para> | |
16 | |
17 <itemizedlist> | |
18 <listitem><para> | |
19 There have been reports of read errors at high speeds, especially | |
20 with badly pressed CD-ROMs. Reducing the speed can prevent data loss under | |
21 these circumstances. | |
22 </para></listitem> | |
23 | |
24 <listitem><para> | |
25 Many CD-ROM drives are annoyingly loud, a lower speed may reduce the noise. | |
26 </para></listitem> | |
27 </itemizedlist> | |
28 | |
29 <para> | |
30 You can reduce the speed of IDE CD-ROM drives with <command>hdparm</command> or a | |
31 program called <command>setcd</command>. It works like this: | |
9776
861a40949bf3
fixes, some by Dmitry Baryshkov <lumag@qnc.ru>, some by me
nicolas
parents:
9675
diff
changeset
|
32 <screen>hdparm -E <replaceable>[speed]</replaceable> <replaceable>[cdrom device]</replaceable></screen> |
861a40949bf3
fixes, some by Dmitry Baryshkov <lumag@qnc.ru>, some by me
nicolas
parents:
9675
diff
changeset
|
33 <screen>setcd -x <replaceable>[speed]</replaceable> <replaceable>[cdrom device]</replaceable></screen> |
9675 | 34 </para> |
35 | |
36 <para> | |
37 You can also try | |
9776
861a40949bf3
fixes, some by Dmitry Baryshkov <lumag@qnc.ru>, some by me
nicolas
parents:
9675
diff
changeset
|
38 <screen>echo current_speed:4 > /proc/ide/<replaceable>[cdrom device]</replaceable>/settings</screen> |
9675 | 39 but you will need root privileges. The following command may also help: |
9776
861a40949bf3
fixes, some by Dmitry Baryshkov <lumag@qnc.ru>, some by me
nicolas
parents:
9675
diff
changeset
|
40 <screen>echo file_readahead:2000000 > /proc/ide/<replaceable>[cdrom device]</replaceable>/settings</screen> |
9675 | 41 </para> |
42 | |
43 <para> | |
44 This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs. | |
45 If you set it to too high, the drive will continuously spin up and down, and | |
46 will dramatically decrease the performance. | |
47 It is recommended that you also tune your CD-ROM drive with <command>hdparm</command>: | |
48 <screen>hdparm -d1 -a8 -u1 <replaceable>cdrom device</replaceable></screen> | |
49 </para> | |
50 | |
51 <para> | |
52 This enables DMA access, read-ahead, and IRQ unmasking (read the <command>hdparm</command> | |
53 man page for a detailed explanation). | |
54 </para> | |
55 | |
56 <para> | |
9776
861a40949bf3
fixes, some by Dmitry Baryshkov <lumag@qnc.ru>, some by me
nicolas
parents:
9675
diff
changeset
|
57 Please refer to "<filename>/proc/ide/<replaceable>cdrom device</replaceable>/settings"</filename> |
9675 | 58 for fine-tuning your CD-ROM. |
59 </para> | |
60 | |
61 <para> | |
62 SCSI drives do not have a uniform way of setting these parameters (Do you know one? | |
63 Tell us!) There is a tool that works for | |
64 <ulink url="http://das.ist.org/~georg/">Plextor SCSI drives</ulink>. | |
65 </para> | |
66 | |
67 <para>FreeBSD:</para> | |
9776
861a40949bf3
fixes, some by Dmitry Baryshkov <lumag@qnc.ru>, some by me
nicolas
parents:
9675
diff
changeset
|
68 <para>Speed: <command>cdcontrol [-f <replaceable>device</replaceable>] speed <replaceable>speed</replaceable></command></para> |
9675 | 69 <para>DMA: <command>sysctl hw.ata.atapi_dma=1</command></para> |
70 </sect1> | |
71 | |
72 <sect1 id="dvd"> | |
73 <title>DVD playback</title> | |
74 <para> | |
75 For the complete list of available options, please read the man page. | |
76 The Syntax for a standard Digital Versatile Disc (DVD) is as follows: | |
10184
b6c63ab184a4
Changed a few remaining -dvd and -vcd options to dvd:// and vcd://.
diego
parents:
9776
diff
changeset
|
77 <screen>mplayer dvd://<replaceable><track></replaceable> [-dvd-device <replaceable><device></replaceable>]</screen> |
9675 | 78 </para> |
79 | |
80 <para> | |
81 Example: | |
10184
b6c63ab184a4
Changed a few remaining -dvd and -vcd options to dvd:// and vcd://.
diego
parents:
9776
diff
changeset
|
82 <screen>mplayer dvd://1 -dvd-device /dev/hdc</screen> |
9675 | 83 </para> |
84 | |
85 <para> | |
86 The default DVD device is <filename>/dev/dvd</filename>. If your setup | |
87 differs, make a symlink or specify the correct device on the command | |
88 line with the <option>-dvd-device</option> option. | |
89 </para> | |
90 | |
91 <formalpara> | |
92 <title>New-style DVD support (mpdvdkit2)</title> | |
93 <para> | |
94 <application>MPlayer</application> uses <systemitem>libdvdread</systemitem> and | |
95 <systemitem>libdvdcss</systemitem> for DVD decryption and playback. These two | |
96 libraries are contained in the <filename class="directory">libmpdvdkit2/</filename> | |
97 subdirectory of the MPlayer source tree, you do not have to install them separately. | |
98 We opted for this solution because we had to fix a <systemitem>libdvdread</systemitem> | |
99 bug and apply a patch which adds | |
100 <emphasis role="bold">cracked CSS keys caching support</emphasis> to | |
101 <systemitem>libdvdcss</systemitem> This results in a large speed increase because the | |
102 keys do not have to be cracked every time before playing. | |
103 </para> | |
104 </formalpara> | |
105 | |
106 <para> | |
107 <application>MPlayer</application> can also use system-wide <systemitem>libdvdread</systemitem> | |
108 and <systemitem>libdvdcss</systemitem> libraries, but this solution is | |
109 <emphasis role="bold">not</emphasis> recommended, as it can result in bugs, | |
110 library incompatibilities and slower speed. | |
111 </para> | |
112 | |
113 <formalpara> | |
114 <title>Old-style DVD support - OPTIONAL</title> | |
115 <para> | |
116 Useful if you want to play encoded VOBs from <emphasis role="bold">hard disk</emphasis>. | |
117 Compile and install <emphasis role="bold">libcss</emphasis> 0.0.1 (not newer) for this | |
118 (If MPlayer fails to detect it, use the <option>-csslib /path/to/libcss.so</option> | |
119 option). To use it, you need to be root, use a suid root MPlayer binary or let | |
120 MPlayer call the suid-root fibmap_mplayer wrapper program. | |
121 </para> | |
122 </formalpara> | |
123 | |
124 <formalpara> | |
125 <title>DVD structure</title> | |
126 <para> | |
127 DVD disks have 2048 bytes per sector with ECC/CRC. They usually have an UDF | |
128 filesystem on a single track, containing various files (small .IFO and .BUK | |
129 files and big (1GB) .VOB files). They are real files and can be copied/played | |
130 from the mounted filesystem of an unencrypted DVD. | |
131 </para> | |
132 </formalpara> | |
133 | |
134 <para> | |
135 The .IFO files contain the movie navigation information (chapter/title/angle | |
136 map, language table, etc) and are needed to read and interpret the .VOB content | |
137 (movie). The .BUK files are backups of them. They use | |
138 <emphasis role="bold">sectors</emphasis> everywhere, so you need to use raw | |
139 addressing of sectors of the disc to implement DVD navigation or decrypt the | |
140 content. | |
141 </para> | |
142 | |
143 <para> | |
144 The whole old-style DVD support with <systemitem>libcss</systemitem> therefore | |
145 needs a mounted DVD filesystem and raw sector-based access to the device. | |
146 Unfortunately you must (under Linux) be root to get the sector address of a | |
147 file. You have the following choices: | |
148 | |
149 <itemizedlist> | |
150 <listitem><para> | |
151 Be root or use a suid-root <application>MPlayer</application> binary. | |
152 </para></listitem> | |
153 | |
154 <listitem><para> | |
155 Let <application>MPlayer</application> call the suid-root fibmap_mplayer | |
156 wrapper program to access the DVD (used in the old-style DVD playback over | |
157 <systemitem>libcss</systemitem>). | |
158 </para></listitem> | |
159 | |
160 <listitem><para> | |
161 Don't use the kernel's filesystem driver at all and reimplement it in | |
162 userspace. <systemitem>libdvdread</systemitem> 0.9.x and <systemitem>libmpdvdkit</systemitem> | |
163 do this (new-style DVD support). The kernel UDF filesystem driver is not | |
164 needed as they already have their own builtin UDF filesystem driver. | |
165 Also the DVD does not have to be mounted as only the raw sector-based | |
166 access is used. | |
167 </para></listitem> | |
168 </itemizedlist> | |
169 </para> | |
170 | |
171 <para> | |
172 Sometimes <filename>/dev/dvd</filename> cannot be read by users, so the | |
173 <systemitem>libdvdread</systemitem> authors implemented an emulation layer | |
174 which transfers sector addresses to filenames+offsets, to emulate raw | |
175 access on top of a mounted filesystem or even on a hard disk. | |
176 </para> | |
177 | |
178 <para> | |
179 <systemitem>libdvdread</systemitem> even accepts the mountpoint instead of | |
180 the device name for raw access and checks <filename>/proc/mounts</filename> | |
181 to get the device name. It was developed for Solaris, where device names | |
182 are dynamically allocated. | |
183 </para> | |
184 | |
185 <para> | |
186 The default DVD device is <filename>/dev/dvd</filename>. If your setup differs, | |
187 make a symlink, or specify the correct device on the command line with the | |
188 <option>-dvd-device</option> option. | |
189 </para> | |
190 | |
191 <formalpara> | |
192 <title>DVD authentication</title> | |
193 <para> | |
194 The authentication and decryption method of the new-style DVD support is done | |
195 using a patched <systemitem>libdvdcss</systemitem> (see above). The method can | |
196 be specified through the environment variable <envar>DVDCSS_METHOD</envar>, | |
197 which can be set to key, disk or title. | |
198 </para> | |
199 </formalpara> | |
200 | |
201 <para> | |
202 If nothing is specified it tries the following methods (default: key, | |
203 title request): | |
204 </para> | |
205 | |
206 <orderedlist> | |
207 <listitem><para> | |
208 <emphasis role="bold">bus key</emphasis>: This key is negotiated during | |
209 authentication (a long mix of ioctls and various key exchanges, crypto | |
210 stuff) and is used to encrypt the title and disk keys before sending them | |
211 over the unprotected bus (to prevent eavesdropping). The bus key is needed | |
212 to get and predecrypt the crypted disk key. | |
213 </para></listitem> | |
214 | |
215 <listitem><para> | |
216 <emphasis role="bold">cached key</emphasis>: <application>MPlayer</application> | |
217 looks for already cracked title keys which are stored in the | |
218 <filename class="directory">~/.mplayer/DVDKeys</filename> directory (fast ;). | |
219 </para></listitem> | |
220 | |
221 <listitem><para> | |
222 <emphasis role="bold">key</emphasis>: If no cached key is available, | |
223 <application>MPlayer</application> tries to decrypt the disk key with a set | |
224 of included player keys. | |
225 </para></listitem> | |
226 | |
227 <listitem><para> | |
228 <emphasis role="bold">disk</emphasis>: If the key method fails | |
229 (e.g. no included player keys), <application>MPlayer</application> | |
230 will crack the disk key using a brute force algorithm. This process | |
231 is CPU intensive and requires 64 MB of memory (16M 32Bit entries hash | |
232 table) to store temporary data. This method should always work (slow). | |
233 </para></listitem> | |
234 | |
235 <listitem><para> | |
236 <emphasis role="bold">title request</emphasis>: With the disk key | |
237 <application>MPlayer</application> requests the crypted title keys, | |
238 which are inside <emphasis>hidden sectors</emphasis> using <systemitem>ioctl()</systemitem>. | |
239 The region protection of RPC-2 drives is performed in this step and may fail on such drives. | |
240 If it succeeds, the title keys will be decrypted with the bus and disk key. | |
241 </para></listitem> | |
242 | |
243 <listitem><para> | |
244 <emphasis role="bold">title</emphasis>: This method is used if the title | |
245 request failed and does not rely on any key exchange with the DVD drive. | |
246 It uses a crypto attack to guess the title key directly (by finding a | |
247 repeating pattern in the decrypted VOB content and guessing that the | |
248 plain text corresponding to the first encrypted bytes is a continuation | |
249 of that pattern). The method is also known as "known plaintext attack" | |
250 or "DeCSSPlus". In rare cases this may fail because there is not | |
251 enough encrypted data on the disk to perform a statistical attack or because | |
252 the key changes in the middle of a title. This method is the only way to | |
253 decrypt a DVD stored on a hard disk or a DVD with the wrong region on an | |
254 RPC2 drive (slow). | |
255 </para></listitem> | |
256 </orderedlist> | |
257 | |
258 <para> | |
259 RPC-1 DVD drives only protect region settings through software. RPC-2 drives | |
260 have a hardware protection that allows 5 changes only. It might be | |
261 needed/recommended to upgrade the firmware to RPC-1 if you have a RPC-2 DVD | |
262 drive. Firmware upgrades can be found on this | |
263 <ulink url="http://www.firmware-flash.com">firmware page</ulink>. If there is | |
264 no firmware upgrade available for your device, use the | |
265 <ulink url="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">regionset tool</ulink> | |
266 to set the region code of your DVD drive (under Linux). | |
267 <emphasis role="bold">Warning</emphasis>: You can only set the region 5 times. | |
268 </para> | |
269 </sect1> | |
270 | |
271 <sect1 id="vcd"> | |
272 <title>VCD playback</title> | |
273 <para> | |
274 For the complete list of available options, please read the man page. The Syntax for a | |
275 standard Video CD (VCD) is as follows: | |
10203 | 276 <screen>mplayer vcd://<replaceable><track></replaceable> [-cdrom-device <replaceable><device></replaceable>]</screen> |
9675 | 277 Example: |
10184
b6c63ab184a4
Changed a few remaining -dvd and -vcd options to dvd:// and vcd://.
diego
parents:
9776
diff
changeset
|
278 <screen>mplayer vcd://2 -cdrom-device /dev/hdc</screen> |
9675 | 279 The default VCD device is <filename>/dev/cdrom</filename>. If your setup |
280 differs, make a symlink or specify the correct device on the command line | |
281 with the <option>-cdrom-device</option> option. | |
282 </para> | |
283 | |
284 <note><para> | |
285 At least Plextor and some Toshiba SCSI CD-ROM drives have horrible performance | |
286 reading VCDs. This is because the the CDROMREADRAW <systemitem>ioctl</systemitem> | |
287 is not fully implemented for these drives. If you have some knowledge of SCSI | |
288 programming, please <ulink url="../../tech/patches.txt">help us</ulink> | |
289 implement generic SCSI support for VCDs. | |
290 </para></note> | |
291 | |
292 <para> | |
293 In the meantime you can extract data from VCDs with | |
294 <ulink url="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink> | |
295 and play the resulting file with <application>MPlayer</application>. | |
296 </para> | |
297 | |
298 <formalpara> | |
299 <title>VCD structure</title> | |
300 <para>VCD disks consist of one or more tracks:</para> | |
301 </formalpara> | |
302 | |
303 <itemizedlist> | |
304 <listitem><para> | |
305 The first track is a small 2048 bytes/sector data track with an iso9660 | |
306 filesystem, usually containing Windows VCD player programs and maybe other | |
307 information (images, text, etc). | |
308 </para></listitem> | |
309 | |
310 <listitem><para> | |
311 The second and other tracks are raw 2324 bytes/sector MPEG (movie) | |
312 tracks, containing one MPEG PS data packet per sector instead of a | |
313 filesystem. Similar to audio CD tracks, these tracks <emphasis role="bold">cannot | |
314 be mounted</emphasis> (Did you ever mount an audio CD to play it?). | |
10184
b6c63ab184a4
Changed a few remaining -dvd and -vcd options to dvd:// and vcd://.
diego
parents:
9776
diff
changeset
|
315 As most movies are inside this track, you should try <option>vcd://2</option> first. |
9675 | 316 </para></listitem> |
317 | |
318 <listitem><para> | |
319 There exist VCD disks without the first track (single track and no filesystem | |
320 at all). They are still playable, but cannot be mounted. | |
321 </para></listitem> | |
322 </itemizedlist> | |
323 | |
324 <formalpara> | |
325 <title>About .DAT files</title> | |
326 <para> | |
327 The ~600 MB file visible on the first track of the mounted VCD is not a real | |
328 file! It is a so called ISO gateway, created to allow Windows to handle such | |
329 tracks (Windows does not allow raw device access to applications at all). | |
330 Under Linux you cannot copy or play such files (they contain garbage). Under | |
331 Windows it is possible as its iso9660 driver emulates the raw reading of | |
332 tracks in this file. To play a .DAT file you need the kernel driver which can | |
333 be found in the Linux version of PowerDVD. It has a modified iso9660 filesystem | |
334 (<filename>vcdfs/isofs-2.4.X.o</filename>) driver, which is able to emulate the | |
335 raw tracks through this shadow .DAT file. If you mount the disc using their | |
9776
861a40949bf3
fixes, some by Dmitry Baryshkov <lumag@qnc.ru>, some by me
nicolas
parents:
9675
diff
changeset
|
336 driver, you can copy and even play .DAT files with <application>MPlayer</application>. But it will not |
10184
b6c63ab184a4
Changed a few remaining -dvd and -vcd options to dvd:// and vcd://.
diego
parents:
9776
diff
changeset
|
337 work with the standard iso9660 driver of the Linux kernel! Use |
b6c63ab184a4
Changed a few remaining -dvd and -vcd options to dvd:// and vcd://.
diego
parents:
9776
diff
changeset
|
338 <option>vcd://</option> instead. Alternatives for VCD copying are the |
9675 | 339 new <ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> kernel |
340 driver (not part of the official kernel) that shows CD sessions as image files and | |
341 <ulink url="http://cdrdao.sourceforge.net/">cdrdao</ulink>, a bit-by-bit | |
342 CD grabbing/copying application. | |
343 </para> | |
344 </formalpara> | |
345 </sect1> | |
346 </chapter> |