comparison DOCS/cd-dvd.html @ 7992:39d486e8836d

fixes
author gabucino
date Thu, 31 Oct 2002 05:07:43 +0000
parents 34a59cff6f29
children 2222dd8d8b18
comparison
equal deleted inserted replaced
7991:75943da5f402 7992:39d486e8836d
90 suid-root fibmap_mplayer wrapper program.</P> 90 suid-root fibmap_mplayer wrapper program.</P>
91 91
92 <H4>DVD structure</H4> 92 <H4>DVD structure</H4>
93 93
94 <P>DVD disks use all 2048 b/s sectors with ecc/crc. They usually have an UDF 94 <P>DVD disks use all 2048 b/s sectors with ecc/crc. They usually have an UDF
95 filesystem on a single track, containing various files (small .IFO and .BUK 95 filesystem on a single track, containing various files (small .IFO and .BUK
96 files and big (1GB) .VOB files). They are real files and can be copied/played 96 files and big (1GB) .VOB files). They are real files and can be copied/played
97 from a mounted file system of an unencrypted DVD.</P> 97 from a mounted file system of an unencrypted DVD.</P>
98 98
99 <P>The .IFO files contain the movie navigation informations (chapter/title/angle 99 <P>The .IFO files contain the movie navigation informations (chapter/title/angle
100 map, language table, etc) and is needed to read and interpret the .VOB content 100 map, language table, etc) and is needed to read and interpret the .VOB content
101 (movie). The .BUK files are backups of them. They use <B>sectors</B> everywhere, 101 (movie). The .BUK files are backups of them. They use <B>sectors</B> everywhere,
102 so you need to use raw addressing of sectors of the disc to implement DVD 102 so you need to use raw addressing of sectors of the disc to implement DVD
103 navigation. It's also needed to decrypt the content.</P> 103 navigation. It's also needed to decrypt the content.</P>
104 104
105 <P>The whole old-style DVD support with libcss needs therefore a mounted DVD 105 <P>The whole old-style DVD support with libcss needs therefore a mounted DVD
106 filesystem and a raw sector-based access to the device. Unfortunately you must 106 filesystem and a raw sector-based access to the device. Unfortunately you must
107 be root (under Linux) to get the sector address of a file. You got the 107 be root (under Linux) to get the sector address of a file. You got the
108 following choices:</P> 108 following choices:</P>
109 109
110 <UL> 110 <UL>
111 <LI>Force the user to be root or use a suid-root mplayer binary.</LI> 111 <LI>Force the user to be root or use a suid-root mplayer binary.</LI>
112 <LI>Let MPlayer call the suid-root fibmap_mplayer wrapper program to access 112 <LI>Let MPlayer call the suid-root fibmap_mplayer wrapper program to access
113 the DVD (used in the old-style DVD playback over libcss).</LI> 113 the DVD (used in the old-style DVD playback over libcss).</LI>
117 have their own, built-in udf fs driver. Also the dvd, doesn't needs to be 117 have their own, built-in udf fs driver. Also the dvd, doesn't needs to be
118 mounted as only the raw sector-based access is used.</LI> 118 mounted as only the raw sector-based access is used.</LI>
119 </UL> 119 </UL>
120 120
121 <P>Sometimes /dev/dvd can't be read by users, so the libdvdread authors 121 <P>Sometimes /dev/dvd can't be read by users, so the libdvdread authors
122 implemented an emulation layer which transfers sector addresses to 122 implemented an emulation layer which transfers sector addresses to
123 filenames+offsets, to emulate raw access on the top of a mounted filesystem 123 filenames+offsets, to emulate raw access on the top of a mounted filesystem
124 or even on a hard disk.</P> 124 or even on a hard disk.</P>
125 125
126 <P>libdvdread even accepts the mountpoint instead of the device name for raw 126 <P>libdvdread even accepts the mountpoint instead of the device name for raw
127 access and checks in <CODE>/proc/mounts</CODE> to get the device name. It was 127 access and checks in <CODE>/proc/mounts</CODE> to get the device name. It was
128 developed for Solaris, where device names are dynamically allocated.</P> 128 developed for Solaris, where device names are dynamically allocated.</P>
129 129
130 <P>The default DVD device is <CODE>/dev/dvd</CODE>. If your setup differs, 130 <P>The default DVD device is <CODE>/dev/dvd</CODE>. If your setup differs,
131 make a symlink, or specify the correct device on the command line with the 131 make a symlink, or specify the correct device on the command line with the
132 <CODE>-dvd-device</CODE> option.</P> 132 <CODE>-dvd-device</CODE> option.</P>
133 133
134 <H4>DVD authentication</H4> 134 <H4>DVD authentication</H4>
135 135
136 <P>The authentication and decryption method of the new-style DVD support is done 136 <P>The authentication and decryption method of the new-style DVD support is done
137 using a patched libdvdcss (see above). The method can be specified over the 137 using a patched libdvdcss (see above). The method can be specified over the
144 <OL> 144 <OL>
145 <LI><B>bus key:</B> This key is negotiated during authentication (a long mix 145 <LI><B>bus key:</B> This key is negotiated during authentication (a long mix
146 of ioctls and various key exchanges, crypto stuff) and is used to encrypt 146 of ioctls and various key exchanges, crypto stuff) and is used to encrypt
147 the title and disk keys before sending them over the unprotected bus 147 the title and disk keys before sending them over the unprotected bus
148 (to prevent eavesdropping). The bus key is needed to get and predecrypt the 148 (to prevent eavesdropping). The bus key is needed to get and predecrypt the
149 crypted disk key. 149 crypted disk key.</LI>
150 <LI><B>cached key:</B> MPlayer looks for eventually already cracked 150 <LI><B>cached key:</B> MPlayer looks for eventually already cracked
151 title keys which are stored in the <CODE>~/.mplayer/DVDKeys</CODE> directory 151 title keys which are stored in the <CODE>~/.mplayer/DVDKeys</CODE> directory
152 (fast ;).</LI> 152 (fast ;).</LI>
153 <LI><B>key:</B> If no cached key is available, MPlayer tries to 153 <LI><B>key:</B> If no cached key is available, MPlayer tries to
154 decrypt the disk key with a set of included player keys. 154 decrypt the disk key with a set of included player keys.</LI>
155 <LI><B>disk:</B> If the key method fails (e.g. no included player keys), 155 <LI><B>disk:</B> If the key method fails (e.g. no included player keys),
156 MPlayer will crack the disk key using a brute force algorithm. 156 MPlayer will crack the disk key using a brute force algorithm.
157 This process is CPU intensive and requires 64 MB of memory (16M 32bit 157 This process is CPU intensive and requires 64 MB of memory (16M 32bit
158 entries hash table) to store temporary data. This method should always 158 entries hash table) to store temporary data. This method should always
159 work (slow).</LI> 159 work (slow).</LI>
160 <LI><B>title request:</B>With the disk key MPlayer requests the crypted title 160 <LI><B>title request:</B> With the disk key MPlayer requests the crypted title
161 keys, which are inside <I>hidden sectors</I> using <CODE>ioctl()</CODE>. 161 keys, which are inside <I>hidden sectors</I> using <CODE>ioctl()</CODE>.
162 The region protection of RPC-2 drives is performed in this step and may 162 The region protection of RPC-2 drives is performed in this step and may
163 fail on such drives. If it succeeds, the title keys will be decrypted with 163 fail on such drives. If it succeeds, the title keys will be decrypted with
164 the bus and disk key. 164 the bus and disk key.</LI>
165 <LI><B>title:</B> This method is used if the title request failed and does 165 <LI><B>title:</B> This method is used if the title request failed and does
166 not rely on any key exchange with the DVD drive. It uses a crypto attack to 166 not rely on any key exchange with the DVD drive. It uses a crypto attack to
167 guess the title key directly (by finding a repeating pattern in the 167 guess the title key directly (by finding a repeating pattern in the
168 decrypted VOB content and guessing that that the plain text for first 168 decrypted VOB content and guessing that that the plain text for first
169 encrypted bytes are a continuation of that pattern). 169 encrypted bytes are a continuation of that pattern).
187 187
188 188
189 <H2><A NAME="vcd">4.3 VCD playback</A></H2> 189 <H2><A NAME="vcd">4.3 VCD playback</A></H2>
190 190
191 <P>For the complete list of available options, please read the man page. 191 <P>For the complete list of available options, please read the man page.
192 The Syntax for a standard Video CD (VCD) is as followed: 192 The Syntax for a standard Video CD (VCD) is as followed:
193 <CODE>mplayer -vcd &lt;track&gt; [-cdrom-device &lt;device&gt;]</CODE>.<BR> 193 <CODE>mplayer -vcd &lt;track&gt; [-cdrom-device &lt;device&gt;]</CODE>.<BR>
194 Example: <CODE>mplayer -vcd 2 -cdrom-device /dev/hdc</CODE></P> 194 Example: <CODE>mplayer -vcd 2 -cdrom-device /dev/hdc</CODE></P>
195 195
196 <H4>VCD structure</H4> 196 <H4>VCD structure</H4>
197 197
198 <P>VCD disks consists of 2 or more track:</P> 198 <P>VCD disks consists of 2 or more track:</P>
199 199
212 </UL> 212 </UL>
213 213
214 <P>About .DAT files:</P> 214 <P>About .DAT files:</P>
215 215
216 <P>The ~600 MB file visible on the first track of the mounted vcd isn't a real 216 <P>The ~600 MB file visible on the first track of the mounted vcd isn't a real
217 file! It's a so called iso gateway, created to allow Windows to handle such 217 file! It's a so called iso gateway, created to allow Windows to handle such
218 tracks (Windows doesn't allow raw device access to applications at all). 218 tracks (Windows doesn't allow raw device access to applications at all).
219 Under linux, you cannot copy or play such files (they contain garbage). 219 Under linux, you cannot copy or play such files (they contain garbage).
220 Under Windows it is possible as its iso9660 driver emulates the raw reading of 220 Under Windows it is possible as its iso9660 driver emulates the raw reading of
221 tracks in this file. To play a .DAT file you need a kernel driver which can be 221 tracks in this file. To play a .DAT file you need a kernel driver which can be
222 found in the Linux version of PowerDVD. It has a modified iso9660 filesystem 222 found in the Linux version of PowerDVD. It has a modified iso9660 filesystem
223 (vcdfs/isofs-2.4.X.o) driver, which is able to emulate the 223 (vcdfs/isofs-2.4.X.o) driver, which is able to emulate the
224 raw tracks through this shadow .DAT file. If you mount the disc using their 224 raw tracks through this shadow .DAT file. If you mount the disc using their
225 driver, you can copy and even play .DAT files with mplayer. But it <B>won't 225 driver, you can copy and even play .DAT files with mplayer. But it <B>won't
226 work</B> with the standard iso9660 driver of the kernel! It is recommended to 226 work</B> with the standard iso9660 driver of the kernel! It is recommended to
227 use the <CODE>-vcd</CODE> option instead. Alternate options for VCD copy are 227 use the <CODE>-vcd</CODE> option instead. Alternate options for VCD copy are
228 the new cdfs kernel driver (shows CD <I>sessions</I> as image files) and 228 the new cdfs kernel driver (shows CD <I>sessions</I> as image files) and
229 cdrdao (a bit-to-bit cd grabber/copier application).</P> 229 cdrdao (a bit-to-bit cd grabber/copier application).</P>
230 230
231 <P>The default VCD device is <CODE>/dev/cdrom</CODE>. If your setup differs, 231 <P>The default VCD device is <CODE>/dev/cdrom</CODE>. If your setup differs,
232 make a symlink, or specify the correct device on the command line with the 232 make a symlink, or specify the correct device on the command line with the
233 <CODE>-cdrom-device</CODE> option.</P> 233 <CODE>-cdrom-device</CODE> option.</P>
234 234
235 </BODY> 235 </BODY>
236 </HTML> 236 </HTML>