2. 系统准备

2.1. 硬件先决条件

流畅的 DVD 播放需要一定的处理能力。Linux 中的系统要求比 Windows 中稍高,因为许多用于硬件加速视频播放的技术仅在 Windows 中有效。

我建议最低配置如下:

2.2. 创建 /dev/dvd 符号链接

如果您还没有/dev/dvd符号链接,则运行(以 root 身份)命令
# ln -s /dev/hdc /dev/dvd
以创建从/dev/dvd到代表您的 DVD-ROM 驱动器的实际硬件设备的符号链接(在本例中是/dev/hdc,但您应该将其替换为您的驱动器使用的实际设备文件)。此/dev/dvd链接不仅仅是为了方便;本 HOWTO 中提到几乎所有的播放器软件都假定此链接存在。

如果您不知道您的 DVD-ROM 驱动器使用的设备名称,您通常可以使用 dmesg | grep DVD 命令在控制台或 shell 中(在系统启动后立即)找到它。

2.3. 设置 DVD 区域

所有 DVD 驱动器(除了 1999 年或之前制造的 RPC Phase I 驱动器)都在驱动器固件中强制执行 区域播放限制,因此应该设置为特定区域,然后才能播放来自该区域(且仅来自该区域)的光盘。实际上,大多数 Linux DVD 播放软件可以绕过 DVD 驱动器内置的区域锁定,但是软件破解区域锁定需要额外的时间,如果可以,最好避免区域锁定的复杂性。

对于拥有 RPC-I 驱动器的少数读者,您无需执行任何操作:您的驱动器已经能够处理来自所有地理区域的 DVD。这些驱动器现在已经足够老旧,以至于拥有其中一个驱动器的每个人可能都已经知道他们拥有一个。

对于拥有 RPC-II 驱动器的大多数读者,有几个选项可用:

  1. 如果您只观看来自一个区域的光盘,最简单的选择是使用 regionset 程序将您的 DVD 驱动器设置为正确的区域。

  2. 如果您想观看来自多个区域的光盘,您可以尝试在 firmware-flash.com 集合中找到适用于您的 DVD 驱动器的固件升级。请注意,这些文件中的大多数都需要您启动到 DOS 或 Windows 才能安装。

  3. 您可以为您希望使用的每个 DVD 区域购买单独的 DVD 驱动器。DVD-ROM 驱动器的价格已经降得足够低,使得此策略可行。

  4. 当然,您可以简单地什么都不做,并依赖 Linux 软件内置的绕过区域限制的能力。请注意,即使在这种情况下,您也应该使用 regionset 程序将驱动器设置为您将最常使用的区域,因为没有区域设置的 RPC-II 驱动器的行为就像所有区域都被锁定一样。

2.4. X Video Overlay

XFree86 视频叠加扩展是 XFree86 4.x 的一个文档记录非常差的标准功能,并且对于在 Linux 下进行高质量视频播放是绝对必要的。它是 Linux 中唯一广泛支持的硬件播放加速类型,并且是 Linux 系统上 DVD 播放最重要配置元素。

要检查您是否拥有此扩展,请在 X 终端中键入 xvinfo。如果该命令返回几个屏幕的重要输出,那么恭喜您,您拥有硬件视频叠加,您无需再担心它了。

另一方面,如果 xvinfo 返回否定答案,例如:
# xvinfo

X-Video Extension version 2.2
screen #0
 no adaptors present

那么这意味着您没有硬件叠加支持。请参阅 叠加故障排除,以获取有关如何使叠加支持工作的提示。

2.5. 启用 DMA

DMA 驱动器访问对于 DVD 播放至关重要,因为它降低了光盘读取的 CPU 开销,并为视频播放释放了更多的 CPU 资源。在大多数系统上,为 DVD 驱动器启用 DMA 支持意味着从卡顿播放到流畅播放的区别。

要查看是否已启用 DMA,请键入(以 root 身份)命令
# hdparm -d /dev/hdc
(替换/dev/hdc为您的 DVD 驱动器的实际设备名称)。如果 DMA 已经开启,那么您就完成了。否则,您应该通过键入 hdparm -d 1 /dev/hdc 来打开它。您可能希望将此命令添加到启动脚本中,例如/etc/rc.d/rc.local以确保每次计算机启动时 DMA 支持都是活动的。

如果即使在您键入命令以打开 DMA 后,DMA 仍然无法打开,请参阅 DMA 故障排除 部分。