mirror of https://github.com/mpv-player/mpv
288 lines
10 KiB
XML
288 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<chapter id="cd-dvd">
|
|
<title>CD/DVD usage</title>
|
|
|
|
<sect1 id="drives">
|
|
<title>CD/DVD drives</title>
|
|
|
|
<para>
|
|
Modern CD-ROM drives can attain very high head speeds, yet some CD-ROM drives
|
|
are capable of running at reduced speeds. There are several reasons that might
|
|
make you consider changing the speed of a CD-ROM drive:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
There have been reports of read errors at high speeds, especially
|
|
with badly pressed CD-ROMs. Reducing the speed can prevent data loss under
|
|
these circumstances.
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
Many CD-ROM drives are annoyingly loud, a lower speed may reduce the noise.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect2 id="drives_linux">
|
|
<title>Linux</title>
|
|
|
|
<para>
|
|
You can reduce the speed of IDE CD-ROM drives with <command>hdparm</command>,
|
|
<command>setcd</command> or <command>cdctl</command>. It works like this:
|
|
<screen>hdparm -E <replaceable>[speed]</replaceable> <replaceable>[cdrom device]</replaceable></screen>
|
|
<screen>setcd -x <replaceable>[speed]</replaceable> <replaceable>[cdrom device]</replaceable></screen>
|
|
<screen>cdctl -bS <replaceable>[speed]</replaceable></screen>
|
|
</para>
|
|
|
|
<para>
|
|
If you are using SCSI emulation, you might have to apply the settings to the
|
|
real IDE device, not the emulated SCSI device.
|
|
</para>
|
|
|
|
<para>
|
|
If you have root privileges the following command may also help:
|
|
<screen>echo file_readahead:2000000 > /proc/ide/<replaceable>[cdrom device]</replaceable>/settings</screen>
|
|
</para>
|
|
|
|
<para>
|
|
This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs.
|
|
If you set it to too high, the drive will continuously spin up and down, and
|
|
will dramatically decrease the performance.
|
|
It is recommended that you also tune your CD-ROM drive
|
|
with <command>hdparm</command>:
|
|
<screen>hdparm -d1 -a8 -u1 <replaceable>[cdrom device]</replaceable></screen>
|
|
</para>
|
|
|
|
<para>
|
|
This enables DMA access, read-ahead, and IRQ unmasking (read the
|
|
<command>hdparm</command> man page for a detailed explanation).
|
|
</para>
|
|
|
|
<para>
|
|
Please refer to
|
|
"<filename>/proc/ide/<replaceable>[cdrom device]</replaceable>/settings</filename>"
|
|
for fine-tuning your CD-ROM.
|
|
</para>
|
|
|
|
<para>
|
|
SCSI drives do not have a uniform way of setting these parameters (Do you know
|
|
one? Tell us!) There is a tool that works for
|
|
<ulink url="http://das.ist.org/~georg/">Plextor SCSI drives</ulink>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- ********** -->
|
|
|
|
<sect2 id="drives_freebsd">
|
|
<title>FreeBSD</title>
|
|
|
|
<para>speed:
|
|
<screen>
|
|
cdcontrol [-f <replaceable>device</replaceable>] speed <replaceable>[speed]</replaceable>
|
|
</screen>
|
|
</para>
|
|
|
|
<para>DMA:
|
|
<screen>
|
|
sysctl hw.ata.atapi_dma=1
|
|
</screen>
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
|
|
|
|
<sect1 id="dvd">
|
|
<title>DVD playback</title>
|
|
|
|
<para>
|
|
For the complete list of available options, please read the man page.
|
|
The syntax to play a standard DVD is as follows:
|
|
<screen>
|
|
mplayer dvd://<replaceable><track></replaceable> [-dvd-device <replaceable><device></replaceable>]
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Example:
|
|
<screen>mplayer dvd://1 -dvd-device /dev/hdc</screen>
|
|
</para>
|
|
|
|
<para>
|
|
If you have compiled <application>MPlayer</application> with dvdnav support, the
|
|
syntax is the same, except that you need to use dvdnav:// instead of dvd://.
|
|
</para>
|
|
|
|
<para>
|
|
The default DVD device is <filename>/dev/dvd</filename>. If your setup
|
|
differs, make a symlink or specify the correct device on the command
|
|
line with the <option>-dvd-device</option> option.
|
|
</para>
|
|
|
|
<para>
|
|
<application>MPlayer</application> uses <systemitem>libdvdread</systemitem> and
|
|
<systemitem>libdvdcss</systemitem> for DVD playback and decryption. These two
|
|
libraries are contained in the
|
|
<application>MPlayer</application> source tree, you do not have
|
|
to install them separately. You can also use system-wide versions of the two
|
|
libraries, but this solution is not recommended, as it can result in bugs,
|
|
library incompatibilities and slower speed.
|
|
</para>
|
|
|
|
<note><para>
|
|
In case of DVD decoding problems, try disabling supermount, or any other such
|
|
facilities. Some RPC-2 drives may also require setting the region code.
|
|
</para></note>
|
|
|
|
<formalpara>
|
|
<title>DVD decryption</title>
|
|
<para>
|
|
DVD decryption is done by <systemitem>libdvdcss</systemitem>. The method
|
|
can be specified through the <envar>DVDCSS_METHOD</envar> environment
|
|
variable, see the manual page for details.
|
|
</para>
|
|
</formalpara>
|
|
|
|
<sect2 id="region_code">
|
|
<title>region code</title>
|
|
<para>
|
|
DVD drives nowadays come with a nonsensical restriction labeled
|
|
<ulink url="http://en.wikipedia.org/wiki/DVD_region_code">region code</ulink>.
|
|
This is a scheme to force DVD drives to only accept DVDs produced for one of
|
|
the six different regions into which the world was partitioned. How a group
|
|
of people can sit around a table, come up with such an idea and expect the
|
|
world of the 21st century to bow to their will is beyond anyone's guess.
|
|
</para>
|
|
|
|
<para>
|
|
Drives that enforce region settings through software only are also known as
|
|
RPC-1 drives, those that do it in hardware as RPC-2. RPC-2 drives allow
|
|
changing the region code five times before it remains fixed.
|
|
Under Linux you can use the
|
|
<ulink url="http://linvdr.org/projects/regionset/">regionset</ulink> tool
|
|
to set the region code of your DVD drive.
|
|
</para>
|
|
|
|
<para>
|
|
Thankfully, it is possible to convert RPC-2 drives into RPC-1 drives through
|
|
a firmware upgrade. Feed the model number of your DVD drive into your favorite
|
|
search engine or have a look at the forum and download sections of
|
|
<ulink url="http://www.rpc1.org/">"The firmware page"</ulink>.
|
|
While the usual caveats for firmware upgrades apply, experience with
|
|
getting rid of region code enforcement is generally positive.
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
|
|
|
|
<sect1 id="vcd">
|
|
<title>VCD playback</title>
|
|
|
|
<para>
|
|
For the complete list of available options, please read the man page. The
|
|
Syntax for a standard Video CD (VCD) is as follows:
|
|
<screen>mplayer vcd://<replaceable><track></replaceable> [-cdrom-device <replaceable><device></replaceable>]</screen>
|
|
Example:
|
|
<screen>mplayer vcd://2 -cdrom-device /dev/hdc</screen>
|
|
The default VCD device is <filename>/dev/cdrom</filename>. If your setup
|
|
differs, make a symlink or specify the correct device on the command line
|
|
with the <option>-cdrom-device</option> option.
|
|
</para>
|
|
|
|
<note><para>
|
|
At least Plextor and some Toshiba SCSI CD-ROM drives have horrible performance
|
|
reading VCDs. This is because the CDROMREADRAW <systemitem>ioctl</systemitem>
|
|
is not fully implemented for these drives. If you have some knowledge of SCSI
|
|
programming, please <ulink url="../../tech/patches.txt">help us</ulink>
|
|
implement generic SCSI support for VCDs.
|
|
</para></note>
|
|
|
|
<para>
|
|
In the meantime you can extract data from VCDs with
|
|
<ulink url="http://ftp.ntut.edu.tw/ftp/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink>
|
|
and play the resulting file with <application>MPlayer</application>.
|
|
</para>
|
|
|
|
<formalpara>
|
|
<title>VCD structure</title>
|
|
<para>
|
|
A Video CD (VCD) is made up of CD-ROM XA sectors, i.e. CD-ROM mode 2
|
|
form 1 and 2 tracks:
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
The first track is in mode 2 form 2 format which means it uses L2
|
|
error correction. The track contains an ISO-9660 filesystem with 2048
|
|
bytes/sector. This filesystem contains VCD metadata information, as
|
|
well as still frames often used in menus. MPEG segments for menus can
|
|
also be stored in this first track, but the MPEGs have to be broken up
|
|
into a series of 150-sector chunks. The ISO-9660 filesystem may
|
|
contain other files or programs that are not essential for VCD
|
|
operation.
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
The second and remaining tracks are generally raw 2324 bytes/sector
|
|
MPEG (movie) tracks, containing one MPEG PS data packet per
|
|
sector. These are in mode 2 form 1 format, so they store more data per
|
|
sector at the loss of some error correction. It is also legal to have
|
|
CD-DA tracks in a VCD after the first track as well.
|
|
On some operating systems there is some trickery that goes on to make
|
|
these non-ISO-9660 tracks appear in a filesystem. On other operating
|
|
systems like GNU/Linux this is not the case (yet). Here the MPEG data
|
|
<emphasis role="bold">cannot be mounted</emphasis>. As most movies are
|
|
inside this kind of track, you should try <option>vcd://2</option>
|
|
first.
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
There exist VCD disks without the first track (single track and no filesystem
|
|
at all). They are still playable, but cannot be mounted.
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
The definition of the Video CD standard is called the
|
|
Philips "White Book" and it is not generally available online as it
|
|
must be purchased from Philips. More detailed information about Video
|
|
CDs can be found in the
|
|
<ulink url="http://www.vcdimager.org/pub/vcdimager/manuals/0.7/vcdimager.html#SEC4">vcdimager documentation</ulink>.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</formalpara>
|
|
|
|
<formalpara>
|
|
<title>About .DAT files</title>
|
|
<para>
|
|
The ~600 MB file visible on the first track of the mounted VCD is not a real
|
|
file! It is a so called ISO gateway, created to allow Windows to handle such
|
|
tracks (Windows does not allow raw device access to applications at all).
|
|
Under Linux you cannot copy or play such files (they contain garbage). Under
|
|
Windows it is possible as its iso9660 driver emulates the raw reading of
|
|
tracks in this file. To play a .DAT file you need the kernel driver which can
|
|
be found in the Linux version of PowerDVD. It has a modified iso9660 filesystem
|
|
(<filename>vcdfs/isofs-2.4.X.o</filename>) driver, which is able to emulate the
|
|
raw tracks through this shadow .DAT file. If you mount the disc using their
|
|
driver, you can copy and even play .DAT files with
|
|
<application>MPlayer</application>. But it will not
|
|
work with the standard iso9660 driver of the Linux kernel! Use
|
|
<option>vcd://</option> instead. Alternatives for VCD copying are the
|
|
new <ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> kernel
|
|
driver (not part of the official kernel) that shows CD sessions as image files
|
|
and <ulink url="http://cdrdao.sf.net/">cdrdao</ulink>, a bit-by-bit
|
|
CD grabbing/copying application.
|
|
</para>
|
|
</formalpara>
|
|
</sect1>
|
|
</chapter>
|