libdvdcss 1.4.3
libdvdcss开发人员文档

介绍

libdvdcss是一个简单的库,用于像块设备一样访问DVD,而无需费心解密。重要功能包括:

  • 可移植性:当前支持的平台有GNU/Linux、FreeBSD、NetBSD、OpenBSD、Haiku、Mac OS X、Solaris、QNX、OS/2和Windows 2000或更高版本。
  • 适应性:与大多数类似项目不同,libdvdcss不需要设置驱动器的区域,即使在区域不匹配的情况下,也会尽力从光盘读取。
  • 简单性:DVD播放器可以围绕libdvdcssAPI使用不超过4或5个库调用。

libdvdcss是根据GNU通用公共许可证发布的自由软件。这确保了libdvdcss仍然是免费的,只与自由软件一起使用。

libdvdcss API

完整的libdvdcss编程接口记录在dvdcs。小时文件。

环境变量

一些环境变量可用于更改libdvdcss无需修改使用它的程序。这些变量为:

  • DVDCSS_服务器:设置详细级别。
    • 0根本没有输出消息。
    • 1将错误消息输出到stderr。
    • 2将错误消息和调试消息输出到stderr。
  • DVDCSS_方法:设置身份验证和解密方法libdvdcss将用于读取加扰光盘。可以是其中之一标题,钥匙圆盘.
    • 钥匙是默认方法。libdvdcss将使用一组经过计算的播放器密钥来尝试获取光盘密钥。如果驱动器无法识别任何播放器密钥,则此操作可能会失败。
    • 圆盘是后备方法,当钥匙已失败。不使用播放器键,libdvdcss将使用暴力算法破解光盘密钥。此进程占用大量CPU,需要64 MB内存来存储临时数据。
    • 标题是所有其他方法都失败时的回退。它不依赖于与DVD驱动器的密钥交换,而是使用加密攻击来猜测标题密钥。在极少数情况下,这可能会失败,因为光盘上没有足够的加密数据来执行统计攻击,但另一方面,这是解密存储在硬盘上的DVD或RPC2驱动器上具有错误区域的DVD的唯一方法。
  • DVDCSS_RAW_DEVICE:指定要使用的原始设备。具体用法取决于您的操作系统,用于设置原始设备的Linux实用程序是原始(8)例如。请注意,在大多数操作系统上,使用原始设备需要高度对齐的缓冲区:Linux需要2048字节对齐(即DVD扇区的大小)。
  • DVDCSS_CACHE:指定要在其中缓存标题键值的目录。这将加快缓存中DVD的解扰速度。如果DVDCSS_CACHE目录不存在,则会创建该目录,并创建以DVD标题或制造日期命名的子目录。如果DVDCSS_CACHE未设置或为空,libdvdcss将使用Unix下的默认值“${HOME}/.dvdcss/”和Win32下的“C:\Documents and Settings\$USER\Application Data\dvdcs\”。特殊值“off”禁用缓存。