![DVD 阅读器只能在内部读取区域 1 DVD](https://linux22.com/image/179630/DVD%20%E9%98%85%E8%AF%BB%E5%99%A8%E5%8F%AA%E8%83%BD%E5%9C%A8%E5%86%85%E9%83%A8%E8%AF%BB%E5%8F%96%E5%8C%BA%E5%9F%9F%201%20DVD.png)
我正在使用 Linux(我还没有在 Windows 上尝试过以下操作)。
我住在欧洲。我有一张可用 VLC 读取的 1 区 DVD,以及连接到旧计算机 SATA 端口的 DVD 阅读器。问题:当 DVD 阅读器在计算机外部使用时(使用 SATA/USB 转换器),它无法再读取第 1 区 DVD!我已经能够用另一个 DVD 阅读器检查这一点,结果相同:它在连接到 SATA 端口时读取 DVD,但在外部使用时则无法读取。
以下是 VLC 在标准输出上写入的内容:
libdvdnav: Using dvdnav version 5.0.3
libdvdnav: DVD Title: IDIOCRACY_SIDEA
libdvdnav: DVD Serial Number: 3554980E
libdvdnav: DVD Title (Alternative): IDIOCRACY_SIDEA
libdvdnav: DVD disk reports itself with Region mask 0x00fe0000. Regions: 1
libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient
libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000130
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x000004cd
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x000005a4
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x000011c8
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x0000fd1f
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_05_0.VOB at 0x000228bc
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_05_1.VOB at 0x0002e604
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_06_1.VOB at 0x00211ea2
libdvdread: Elapsed time 0
libdvdread: Found 6 VTS's
libdvdread: Elapsed time 0
libdvdnav: Suspected RCE Region Protection!!!
libdvdnav: Suspected RCE Region Protection!!!
libdvdnav: Suspected RCE Region Protection!!!
当外部使用其中一台 DVD 阅读器时,VLC 在此停止;当在 SATA 端口内部使用时,它可以毫无问题地开始读取 DVD。但在这两种情况下,标准输出与上面相同。
有什么想法可以解释这种行为吗?为什么 DVD 内部连接时效果更好?我相信“区域化的东西”是在 DVD 阅读器本身中编码的?
提前致谢,
于连
编辑:
更多细节。事实上,我在我的收藏中发现了另一张 1 区 DVD:“TAKEN”。旧的外部 DVD 无区域阅读器(在 USB 外部盒中)可以毫无问题地读取它:
$ sudo regionset /dev/sr1
regionset version 0.1 -- reads/sets region code on DVD drives
Current Region Code settings:
RPC Phase: II
type: NONE
vendor resets available: 4
user controlled changes resets available: 5
drive plays discs from region(s):, mask=0xFF
Would you like to change the region setting of your drive? [y/n]:n
读取 DVD 时,VLC 写入:
libdvdnav: Using dvdnav version 5.0.3
libdvdnav: DVD Title: TAKEN
libdvdnav: DVD Serial Number: 2ef5a0a4
libdvdnav: DVD Title (Alternative):
libdvdnav: DVD disk reports itself with Region mask 0x00f60000. Regions: 1 4
而我的原始帖子(“IDIOCRACY_SIDEA”)中无法读取的 DVD 是区域 1,而不是上面的“1 4”:
libdvdnav: Using dvdnav version 5.0.3
libdvdnav: DVD Title: IDIOCRACY_SIDEA
libdvdnav: DVD Serial Number: 3554980E
libdvdnav: DVD Title (Alternative): IDIOCRACY_SIDEA
libdvdnav: DVD disk reports itself with Region mask 0x00fe0000. Regions: 1
是否预期无区域 DVD 阅读器能够读取“区域 1 4”,但不能读取“区域 1”DVD?我注意到在我的收藏中随机选择的“zone 2 DVD”会产生以下 VLC 输出:
libdvdnav: Using dvdnav version 5.0.3
libdvdnav: DVD Title: OBLIVION
libdvdnav: DVD Serial Number: 42c77106
libdvdnav: DVD Title (Alternative): G7_R1
libdvdnav: DVD disk reports itself with Region mask 0x00f50000. Regions: 2 4
所以它并不是真正的“region 2”DVD,而是“region 2 4”; VLC 在我的任何 DVD 阅读器中读取它都没有问题。
令人惊讶的是,一旦直接连接到旧计算机主板的 SATA 端口,我的两个无区域 DVD 阅读器中的任何一个都可以毫无问题地读取“IDIOCRACY_SIDEA”(请参阅我原来的帖子)。
注意:另一个位于“zone 2”的 DVD 阅读器(第三个)无法读取“TAKEN”和“IDIOCRACY_SIDEA”(毫不奇怪):
$ sudo regionset /dev/sr0
regionset version 0.1 -- reads/sets region code on DVD drives
Current Region Code settings:
RPC Phase: II
type: SET
vendor resets available: 4
user controlled changes resets available: 4
drive plays discs from region(s): 2, mask=0xFD
Would you like to change the region setting of your drive? [y/n]:n
答案1
最初,第一台计算机 DVD 驱动器是所谓的“RPC I”驱动器,它可以让 CPU 处理大部分“区域化内容”。事实证明,这一点很容易规避,因此很长一段时间以来,市场上的所有计算机 DVD 驱动器都是“RPC II”驱动器,它确实会在内部处理“区域化问题”。
但即使是“RPC II”驱动器仍然需要被要求执行此操作,并且显然您的 SATA/USB 转换器无法通过必要的命令。
此外,这不仅仅是区域化问题:DVD 上的 DRM 方案的最初目的是使除授权播放器软件之外的任何其他软件都无法使用 DVD 上的多媒体数据,以阻止/阻止数字数据的轻松复制。或者至少,迫使复印机使用会导致明显质量损失的方法。
因此,转换器中缺乏对区域化相关命令的支持很可能是 DRM 方案的一部分:硬件制造商应该仅在获得适当许可并在这些许可证指定的条件下实施这些命令,否则可能会被起诉侵犯专利权和/或制造“DRM 规避设备”。
libdvdnav: Suspected RCE Region Protection!!!
这表明 libdvdnav 正在检测光盘本身可能正在使用“增强”形式的区域保护。基本上,光盘包含一些在播放器内的虚拟机中运行的代码,并且该代码还可以查询驱动器将支持哪些区域。如果它得到的答案表明多个区域,或者驱动器的区域代码未设置,它将拒绝播放其余内容。并非所有光盘都具有这种“增强型”区域保护。
$ sudo regionset /dev/sr1
regionset version 0.1 -- reads/sets region code on DVD drives
Current Region Code settings:
RPC Phase: II
type: NONE
vendor resets available: 4
user controlled changes resets available: 5
drive plays discs from region(s):, mask=0xFF
此输出表明驱动器属于我之前提到的“RPC II”类型,但看起来其区域设置从未实际设置为任何值。这可能意味着驱动器的无区域性可以通过所谓的“自动重置”固件来实现,每当断电时,该固件都会方便地忘记任何区域设置(以及以前可能已进行此类设置的事实),和/或者当驱动器托盘打开时。
如果确实如此,那么您可能需要尝试使用“regionset”将驱动器设置为区域 1,然后播放有问题的光盘。如果该设置持续存在,并且“用户控制的更改重置可用”计数器递减并保持递减,则驱动器可能根本就不是真正的无区域的。但是,如果光盘可以播放,然后在取出光盘/驱动器断电后驱动器忘记了设置,那么这可能正是您需要对 RCE 光盘执行的操作。