4.2. DVD回放
上一页 | 第 4 章 CD/DVD用法 | 下一页

## 4.2. DVD回放

对于完整的可用选项，请阅读man页。 播放标准DVD的语法如下：

    mplayer dvd://<track> [-dvd-device <device>]

例如：

    mplayer dvd://1 -dvd-device /dev/hdc

如果你使用dvdnav支持编译MPlayer，语法是一样的，但你要用 dvdnav://而不用dvd://。

默认的DVD设备是`/dev/dvd`。如果你的设置不同，创建 个连接或者在命令行中用`-dvd-device`指定正确的设备。

对于DVD回放及解密，MPlayer使用 `libdvdread`及`libdvdcss` 这两个库在 MPlayer的源码树中，你不必单独安装。你也可以使用 全系统可用的版本，但这种做法不被推荐，因为它能导致错误，库不兼容以及更慢的 速度。

### 注意

对于DVD解码问题，尝试禁用supermount，或者其它相应特性。一些RPC-2驱动器 可能还需要设置区域代码。

DVD结构. DVD磁盘的每个簇有带有ECC/CRC的2048字节。每个轨上采用UDF文件格式，包含各种文 件（小的.IFO及.BUK文件以极大的（1GB）的.VOB文件）。它们是真正的文件能从被挂 载的未加密的DVD中复制/播放。

.IFO文件包含电影的浏览信息（章/标题/视角图，语言表等），它们被用于读及解析 .VOB的内容（影片）。.BUK文件是它们的备份。他们到处使用簇， 所以你需要指定光盘上真正的簇地址以完成DVD浏览或对内容进行解密。

DVD支持通过原始的对设备基于簇的访问。不幸的是，（在Linux中）要得到一个文件 的簇地址，你必须是超级用户。那就是我们不使用内核的文件系统的原因，我们在用 户层对此进行了重新实现。`libdvdread` 0.9.x完成了此项 工作。我们并不需要内核中的UDF文件系统驱动因为它们已经有了自己内置的UDF文件

有时`/dev/dvd`对用户不可读，所以 `libdvdread`的作者实现了一个模拟层，其实现了将簇地址 提交到文件名+偏移量中，以模拟在挂载的文件系统甚至是硬盘上的直接访问。

`libdvdread`对于直接访问甚至支持挂载点而不是设备名并 检查`/proc/mounts`以得到设备名称。其被开发在Solaris上， 在那系统上设备名是动态分配的。

DVD解密. DVD解密通过`libdvdcss`完成。这个方法可以通过 `DVDCSS_METHOD`环境变量设置，具体细节参考man页。

RPC-1 DVD驱动器只使用软件对区域设置进行保护。RPC-2驱动器有一个硬件保护，只准 许做5次更改。你可能需要或被推荐把firmware升级到RPC-1，如果你有个RPC-2 DVD驱动 器。你可以在因特网上寻找firmware的升级， 此firmware论坛 对你的搜索可能是个好起点。如果没有针对你的设备的firmware升级，使用 区域工具 来设置你DVD的区域码（在Linux下）。 警告：你只可以设置5次区域。

上一页 | 上一级 | 下一页
4.1. CD/DVD驱动器 | 起始页 | 4.3. VCD回放