Initial import of MPlayer SVN rev 28382 and FFmpeg SVN rev 16846.
[vaapi:miks-mplayer.git] / DOCS / xml / en / cd-dvd.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- $Revision: 26990 $ -->
3 <chapter id="cd-dvd">
4 <title>CD/DVD usage</title>
5
6 <sect1 id="drives">
7 <title>CD/DVD drives</title>
8
9 <para>
10 Modern CD-ROM drives can attain very high head speeds, yet some CD-ROM drives
11 are capable of running at reduced speeds. There are several reasons that might
12 make you consider changing the speed of a CD-ROM drive:
13 </para>
14
15 <itemizedlist>
16 <listitem><para>
17   There have been reports of read errors at high speeds, especially
18   with badly pressed CD-ROMs. Reducing the speed can prevent data loss under
19   these circumstances.
20 </para></listitem>
21
22 <listitem><para>
23   Many CD-ROM drives are annoyingly loud, a lower speed may reduce the noise.
24 </para></listitem>
25 </itemizedlist>
26
27 <!-- ********** -->
28
29 <sect2 id="drives_linux">
30 <title>Linux</title>
31
32 <para>
33 You can reduce the speed of IDE CD-ROM drives with <command>hdparm</command>,
34 <command>setcd</command> or <command>cdctl</command>. It works like this:
35 <screen>hdparm -E <replaceable>[speed]</replaceable> <replaceable>[cdrom device]</replaceable></screen>
36 <screen>setcd -x <replaceable>[speed]</replaceable> <replaceable>[cdrom device]</replaceable></screen>
37 <screen>cdctl -bS <replaceable>[speed]</replaceable></screen>
38 </para>
39
40 <para>
41 If you are using SCSI emulation, you might have to apply the settings to the
42 real IDE device, not the emulated SCSI device.
43 </para>
44
45 <para>
46 If you have root privileges the following command may also help:
47 <screen>echo file_readahead:2000000 &gt; /proc/ide/<replaceable>[cdrom device]</replaceable>/settings</screen>
48 </para>
49
50 <para>
51 This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs.
52 If you set it to too high, the drive will continuously spin up and down, and
53 will dramatically decrease the performance.
54 It is recommended that you also tune your CD-ROM drive
55 with <command>hdparm</command>:
56 <screen>hdparm -d1 -a8 -u1 <replaceable>[cdrom device]</replaceable></screen>
57 </para>
58
59 <para>
60 This enables DMA access, read-ahead, and IRQ unmasking (read the
61 <command>hdparm</command> man page for a detailed explanation).
62 </para>
63
64 <para>
65 Please refer to
66 "<filename>/proc/ide/<replaceable>[cdrom device]</replaceable>/settings</filename>"
67 for fine-tuning your CD-ROM.
68 </para>
69
70 <para>
71 SCSI drives do not have a uniform way of setting these parameters (Do you know
72 one? Tell us!) There is a tool that works for
73 <ulink url="http://das.ist.org/~georg/">Plextor SCSI drives</ulink>.
74 </para>
75 </sect2>
76
77 <!-- ********** -->
78
79 <sect2 id="drives_freebsd">
80 <title>FreeBSD</title>
81
82 <para>speed:
83 <screen>
84 cdcontrol [-f <replaceable>device</replaceable>] speed <replaceable>[speed]</replaceable>
85 </screen>
86 </para>
87
88 <para>DMA:
89 <screen>
90 sysctl hw.ata.atapi_dma=1
91 </screen>
92 </para>
93
94 </sect2>
95
96 </sect1>
97
98
99 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
100
101
102 <sect1 id="dvd">
103 <title>DVD playback</title>
104
105 <para>
106 For the complete list of available options, please read the man page.
107 The syntax to play a standard DVD is as follows:
108 <screen>
109 mplayer dvd://<replaceable>&lt;track&gt;</replaceable> [-dvd-device <replaceable>&lt;device&gt;</replaceable>]
110 </screen>
111 </para>
112
113 <para>
114 Example:
115 <screen>mplayer dvd://1 -dvd-device /dev/hdc</screen>
116 </para>
117
118 <para>
119 If you have compiled <application>MPlayer</application> with dvdnav support, the
120 syntax is the same, except that you need to use dvdnav:// instead of dvd://.
121 </para>
122
123 <para>
124 The default DVD device is <filename>/dev/dvd</filename>. If your setup
125 differs, make a symlink or specify the correct device on the command
126 line with the <option>-dvd-device</option> option.
127 </para>
128
129 <para>
130 <application>MPlayer</application> uses <systemitem>libdvdread</systemitem> and
131 <systemitem>libdvdcss</systemitem> for DVD playback and decryption. These two
132 libraries are contained in the
133 <application>MPlayer</application> source tree, you do not have
134 to install them separately. You can also use system-wide versions of the two
135 libraries, but this solution is not recommended, as it can result in bugs,
136 library incompatibilities and slower speed.
137 </para>
138
139 <note><para>
140 In case of DVD decoding problems, try disabling supermount, or any other such
141 facilities. Some RPC-2 drives may also require setting the region code.
142 </para></note>
143
144 <formalpara>
145 <title>DVD decryption</title>
146 <para>
147 DVD decryption is done by <systemitem>libdvdcss</systemitem>. The method
148 can be specified through the <envar>DVDCSS_METHOD</envar> environment
149 variable, see the manual page for details.
150 </para>
151 </formalpara>
152
153 <sect2 id="region_code">
154 <title>region code</title>
155 <para>
156 DVD drives nowadays come with a nonsensical restriction labeled
157 <ulink url="http://en.wikipedia.org/wiki/DVD_region_code">region code</ulink>.
158 This is a scheme to force DVD drives to only accept DVDs produced for one of
159 the six different regions into which the world was partitioned. How a group
160 of people can sit around a table, come up with such an idea and expect the
161 world of the 21st century to bow to their will is beyond anyone's guess.
162 </para>
163
164 <para>
165 Drives that enforce region settings through software only are also known as
166 RPC-1 drives, those that do it in hardware as RPC-2. RPC-2 drives allow
167 changing the region code five times before it remains fixed.
168 Under Linux you can use the
169 <ulink url="http://linvdr.org/projects/regionset/">regionset</ulink> tool
170 to set the region code of your DVD drive.
171 </para>
172
173 <para>
174 Thankfully, it is possible to convert RPC-2 drives into RPC-1 drives through
175 a firmware upgrade. Feed the model number of your DVD drive into your favorite
176 search engine or have a look at the forum and download sections of
177 <ulink url="http://www.rpc1.org/">"The firmware page"</ulink>.
178 While the usual caveats for firmware upgrades apply, experience with
179 getting rid of region code enforcement is generally positive.
180 </para>
181 </sect2>
182
183 </sect1>
184
185
186 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
187
188
189 <sect1 id="vcd">
190 <title>VCD playback</title>
191
192 <para>
193 For the complete list of available options, please read the man page. The
194 Syntax for a standard Video CD (VCD) is as follows:
195 <screen>mplayer vcd://<replaceable>&lt;track&gt;</replaceable> [-cdrom-device <replaceable>&lt;device&gt;</replaceable>]</screen>
196 Example:
197 <screen>mplayer vcd://2 -cdrom-device /dev/hdc</screen>
198 The default VCD device is <filename>/dev/cdrom</filename>. If your setup
199 differs, make a symlink or specify the correct device on the command line
200 with the <option>-cdrom-device</option> option.
201 </para>
202
203 <note><para>
204 At least Plextor and some Toshiba SCSI CD-ROM drives have horrible performance
205 reading VCDs. This is because the CDROMREADRAW <systemitem>ioctl</systemitem>
206 is not fully implemented for these drives. If you have some knowledge of SCSI
207 programming, please <ulink url="../../tech/patches.txt">help us</ulink>
208 implement generic SCSI support for VCDs.
209 </para></note>
210
211 <para>
212 In the meantime you can extract data from VCDs with
213 <ulink url="http://ftp.ntut.edu.tw/ftp/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink>
214 and play the resulting file with <application>MPlayer</application>.
215 </para>
216
217 <formalpara>
218 <title>VCD structure</title>
219 <para>
220 A Video CD (VCD) is made up of CD-ROM XA sectors, i.e. CD-ROM mode 2
221 form 1 and 2 tracks:
222 <itemizedlist>
223 <listitem><para>
224   The first track is in mode 2 form 2 format which means it uses L2
225   error correction. The track contains an ISO-9660 file system with 2048
226   bytes/sector. This file system contains VCD metadata information, as
227   well as still frames often used in menus. MPEG segments for menus can
228   also be stored in this first track, but the MPEGs have to be broken up
229   into a series of 150-sector chunks. The ISO-9660 file system may
230   contain other files or programs that are not essential for VCD
231   operation.
232 </para></listitem>
233
234 <listitem><para>
235   The second and remaining tracks are generally raw 2324 bytes/sector
236   MPEG (movie) tracks, containing one MPEG PS data packet per
237   sector. These are in mode 2 form 1 format, so they store more data per
238   sector at the loss of some error correction. It is also legal to have
239   CD-DA tracks in a VCD after the first track as well.
240   On some operating systems there is some trickery that goes on to make
241   these non-ISO-9660 tracks appear in a file system. On other operating
242   systems like GNU/Linux this is not the case (yet). Here the MPEG data
243   <emphasis role="bold">cannot be mounted</emphasis>. As most movies are
244   inside this kind of track, you should try <option>vcd://2</option>
245   first.
246 </para></listitem>
247
248 <listitem><para>
249   There exist VCD disks without the first track (single track and no file system
250   at all). They are still playable, but cannot be mounted.
251 </para></listitem>
252
253 <listitem><para>
254   The definition of the Video CD standard is called the
255   Philips "White Book" and it is not generally available online as it
256   must be purchased from Philips. More detailed information about Video
257   CDs can be found in the
258   <ulink url="http://www.vcdimager.org/pub/vcdimager/manuals/0.7/vcdimager.html#SEC4">vcdimager documentation</ulink>.
259 </para></listitem>
260 </itemizedlist>
261 </para>
262 </formalpara>
263
264 <formalpara>
265 <title>About .DAT files</title>
266 <para>
267 The ~600 MB file visible on the first track of the mounted VCD is not a real
268 file! It is a so called ISO gateway, created to allow Windows to handle such
269 tracks (Windows does not allow raw device access to applications at all).
270 Under Linux you cannot copy or play such files (they contain garbage). Under
271 Windows it is possible as its iso9660 driver emulates the raw reading of
272 tracks in this file. To play a .DAT file you need the kernel driver which can
273 be found in the Linux version of PowerDVD. It has a modified iso9660 file system
274 (<filename>vcdfs/isofs-2.4.X.o</filename>) driver, which is able to emulate the
275 raw tracks through this shadow .DAT file. If you mount the disc using their
276 driver, you can copy and even play .DAT files with
277 <application>MPlayer</application>. But it will not
278 work with the standard iso9660 driver of the Linux kernel! Use
279 <option>vcd://</option> instead. Alternatives for VCD copying are the
280 new <ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> kernel
281 driver (not part of the official kernel) that shows CD sessions as image files
282 and <ulink url="http://cdrdao.sf.net/">cdrdao</ulink>, a bit-by-bit
283 CD grabbing/copying application.
284 </para>
285 </formalpara>
286 </sect1>
287 </chapter>