Mercurial > mplayer.hg
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 <track> [-cdrom-device <device>]</CODE>.<BR> | 193 <CODE>mplayer -vcd <track> [-cdrom-device <device>]</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> |