请确保您正在运行 XFree86 4.1 或更高版本。您可以通过在命令提示符下输入 X -version 来查看您的 XFree86 版本。
为您的显卡使用合适的驱动程序。一些 Linux 发行版默认使用通用的 XFree86 VESA 驱动程序,而不是您显卡的专用驱动程序。您需要使用特定于您硬件的显卡驱动程序才能获得硬件 overlay 支持。
ATI 用户应尝试从 GATOS 首页或 ATI 官方 Linux 支持页面 下载改进的 ATI XFree86 驱动程序。
NVidia 用户应尝试从 NVidia 官方 Linux 驱动程序 下载适用于他们显卡的驱动程序。
有时升级 XFree86 可以为您提供具有硬件 overlay 支持的改进驱动程序,但此类升级超出了本 HOWTO 的范围。
overlay 输出混乱或丢失的问题通常意味着您的显存不足以同时容纳常规桌面显示和视频 overlay 显示。通常,在给定的视频分辨率下,您需要两倍于正常情况的显存才能使用硬件视频 overlay。在某些情况下,由于显卡内部缓冲,您甚至可能需要 3 到 5 倍的 RAM。
降低显存要求的唯一简单方法是在播放视频时切换到较低的视频分辨率。
如果您在 DVD 驱动器上使用命令 hdparm -d1 后返回如下消息,则可以判断 DMA 是否已损坏
# hdparm -d1 /dev/hda /dev/hda: setting using_dma to 1 (on) HDIO_SET_DMA failed: Operation not permitted using_dma = 0 (off) |
解决此问题的唯一方法是编译一个内核,其中包含对您特定芯片组的 DMA 支持。如何编译内核超出了本 HOWTO 的范围,但与 DMA 支持特别相关的步骤如下:
下载一个较新的内核,以便您有最大的可能在您的芯片组上获得 DMA 支持。
解压您的内核,并在内核构建目录中键入 make xconfig。在 "ATA/IDE/MFM/RLL support"(ATA/IDE/MFM/RLL 支持) 下,选择 "IDE, ATA, and ATAPI Block devices"(IDE、ATA 和 ATAPI 块设备) 并启用 "Generic PCI bus-master DMA support"(通用 PCI 总线主控 DMA 支持) 和 "Use DMA by default when available"(在可用时默认使用 DMA)。
在同一页面上,有几十个特定于芯片组的 DMA 驱动程序,这些驱动程序在向下延伸的几个屏幕中。找到并选择一个与您的芯片组相关的驱动程序(如果有)。例如,如果您使用的是基于 AMD Athlon 的 VIA 芯片组,请启用 "VIA82CXXX chipset support"(VIA82CXXX 芯片组支持) 项。
有关编译内核的更多信息,请参阅 Kernel HOWTO 以及 Linux Ultra-DMA Mini-Howto。
在足够快的计算机上(例如,超过 1 GHz),视频播放卡顿通常意味着您的 overlay 支持或 DMA 支持配置错误。请参阅之前的故障排除项。
在非常慢的计算机上(例如,0-500 MHz),除了硬件升级之外,您无法做任何事情来使 DVD 播放良好运行。
对于性能介于两者之间的计算机(任何介于两者之间的计算机),通过从 kernel 2.2 升级到 kernel 2.4 并使用像 MPlayer 这样的 SSE 优化播放器程序,您可以获得适度的(约 10%)性能提升。
最后,如果所有其他方法都失败了,请使用 mplayer -framedrop 选项运行 MPlayer,以弥补视频播放中偶尔出现的故障。
声音播放问题最常见的原因是声卡不支持 48 kHz 音频播放。对于属于此类的人,我强烈建议您购买新的声卡。即使是一块廉价的 PCI 声卡,也可以为您带来音质的显著提升,而成本甚至低于两张 DVD。
如果这不起作用,您可以通过不使用声音守护程序(如 ESounD 或 aRts)并将 DVD 音频直接播放到 OSS 驱动程序来减轻声音播放系统的负担。要使用 MPlayer 执行此操作,请运行 mplayer -ao=oss 以及您通常使用的任何其他选项。