Linux可以播放蓝光光盘吗?

所以我最近购买了一个蓝光光驱,因为我开始收集了一堆以这种格式存储的电影和节目,我想知道Linux/Ubuntu是否能够播放它们?如果不能,没关系,我可以重新启动进入Windows,但是我有VLC播放器、受限制的附加组件和播放DVD所需的软件,而且我的Ubuntu分区可以很好地播放DVD。我在澳大利亚(4区),如果有什么不同,请说明。


2所以等一下,你家里有蓝光光盘,还有装有Ubuntu系统的笔记本电脑?我不明白为什么你要问这个问题,而不是直接尝试一下... - GuyfromAmsterdam
1我为我的台式电脑买了一个蓝光驱动器,但它还没有到货。 - wolfguy
5个回答

开源蓝光播放是一场猫捉老鼠的游戏,需要不断等待黑客发现最新密钥以播放更新的影片。但还有另一种选择,涉及部分专有闭源软件,在Linux上(目前)可以免费使用。
MakeMKV是一个解码蓝光光盘并将其保存为无DRM文件的应用程序 - 它们要么有自己的官方解密密钥,要么通过黑客攻击某些OEM设备找到了一个未公开的密钥,以避免被撤销,因此它始终可以解码最新的影片。它最终将成为付费应用程序,但在测试版期间可以免费使用(每30天需要输入一个新的临时激活码,可在此处找到:http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053)。它已经在测试版中运行了几年,所以希望它能像GMail一样成功。
MakeMKV的奇妙之处在于它可以“模拟”libaacs和libdplus——这意味着任何与这些库链接的应用程序的调用,原本期望使用默认的开源解码器,现在将会经过MakeMKV的闭源解码器处理。因此,任何使用这些库的视频播放软件都将自动使用MakeMKV的解码器,并能够播放最新的影片。

安装和设置MakeMKV:

步骤1:安装它
(我是从源代码构建的,所以实际上没有尝试过这些软件包)

sudo add-apt-repository ppa:heyarje/makemkv-beta
sudo apt-get update
sudo apt-get install makemkv-bin makemkv-oss

第二步:卸载开源的libaacs。
sudo apt-get remove libaacs0

第三步:使用符号链接将MakeMKV的libmmbd模拟成libaacs和libdplus (/usr/lib可能不是你的正确目录-请搜索"libmmbd.so")
cd /usr/lib
sudo ln -s libmmbd.so.0 libaacs.so.0
sudo ln -s libmmbd.so.0 libbdplus.so.0

就这样,VLC(您可能需要在从设备读取之前挂载它 - 例如/dev/sr0)和其他配置为使用libbluray的播放器将能够播放任何蓝光光盘,不会出现任何“未找到有效的AACS密钥”错误。
注意:可能需要重新启动(sudo shutdown -r now)才能使VLC与libmmbd.so.0配合工作。

1太棒了!我已经花了三个小时四处寻找解决方案。将xubuntu 14.04投入虚拟机,开始尝试各种方法。按照您发布的内容逐字逐句地操作,问题立即得到解决!非常感谢您抽出时间提供如此详细的回复。 - Dave
你真是个天才!太厉害了! - Tek
1无法使用“攻壳机动队”蓝光光盘。VLC报告“蓝光错误:蓝光光盘已损坏。”而不是缺少AACS。 - mrt181
1使用Ubuntu 18.04进行工作。libmmdb.so文件位于/usr/lib/x86_64-linux-gnu/ - dgreene
1耶稣,该死的基督! 它成功了!!! 我不能点赞,因为我的等级不够高 但是我可以评论并向R160K和Philipe Gachoude表示非常感谢 :) 现在我将尝试找到在Windows上实现这一点的方法,我的大部分蓝光光盘已经可以使用,但有些不能。 - viflaiban
适用于Ubuntu 20.04,尽管符号链接可能不再需要(不确定是否是由于其他VLC测试失败的原因)。 - Dennis Nolte
这个完美运作!你应该得到不止一个赞,我尝试了几种方法都是死胡同。即使makemkv收费,我也愿意买它。 - Eman
我在一台带蓝光刻录机的台式电脑上运行着Mint 20(“una”)操作系统,所有硬件都是全新的。我按照这些说明进行操作,但是在观看2009年《飘》70周年纪念版蓝光碟时出现了相同的“蓝光错误:蓝光碟片已损坏”的错误提示。根据Rinzwind于2014-12-26发布的解决方案,通过访问http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg,问题似乎得到了解决。按照那些说明后,我可以正常观看该碟片。 - Myke Carter

用这个命令安装蓝光支持:
sudo apt-get install vlc libaacs0 libbluray-bdj libbluray1

这两个命令会创建一个隐藏目录,并下载一个用于VLC的AACS密钥文件。
mkdir -p ~/.config/aacs/
cd ~/.config/aacs/ && wget http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg

VLC可以播放蓝光光盘。 来源
查看关于BD+支持的http://www.videolan.org/developers/libbdplus.htmllibbdplus添加了对BD+的支持(但不包括加密密钥)。因此,变成如下内容:
sudo apt-get install vlc libaacs0 libbluray-bdj libbluray1 libbdplus

哎呀,对我来说好像不起作用。我按了“打开光盘”和“播放”,但是它却给我一个错误提示 :c - wolfguy
什么错误?可能与一个仍需要密钥的加密磁盘有关。 - Rinzwind
在AACS配置文件中找不到有效的处理密钥。 - wolfguy
我放入了另一张光盘,出现了“蓝光错误:AACS主机证书已撤销。无法打开您的输入:VLC无法打开MRL 'bluray:///dev/sr0'。请检查日志获取详细信息。”我确保在按下打开光盘时选择了蓝光。 - wolfguy
2@wolfguy的意思是光盘尚未解密,我们还没有有效的AACS密钥(暂时)。请尝试另一张(稍旧的)蓝光光盘。 - Rinzwind
按照上述指示在Zesty上操作,但出现以下错误:蓝光错误:您的系统BD+解码库无法工作。是否缺少配置? - Gringo Suave
请访问http://www.videolan.org/developers/libbdplus.html。 - Rinzwind
在Ubuntu 19.04中找不到2个软件包。只有这些正确安装了:sudo apt install vlc libaacs0 libbluray-bdj。但这已足够在VLC中播放蓝光ISO文件。谢谢! - naXa stands with Ukraine
@wolfguy 我遇到了同样的错误。我需要将 ~/.config/aacs 中的 keydb.cfg 重命名为 KEYDB.cfg(在点之前使用大写字母)。似乎有些地方是区分大小写的。 - Yeti
我需要在安装命令中将库的名称更改为“libbluray2”。我在一台带蓝光刻录机的塔式个人电脑上运行Mint 20(“una”),所有硬件都是新的。通过测试2009年的《飘》70周年纪念版,这个解决方案对我有效。按照这些说明后,我可以观看那张光盘。谢谢! - Myke Carter

是的,但有一些注意事项。

蓝光ROM上的电影根据AACS标准进行加密,该标准规定使用多个密钥进行多层加密,包括一个物理打印在磁盘上的“卷ID”,防止复制工作副本。(维基百科这里提供了非常好的解释。)每个经过批准的OEM蓝光播放器或驱动器都会获得一个密钥,每部电影都有自己的“标题密钥”用于解密和播放电影。每个电影的标题密钥都使用所有当前有效的OEM密钥进行加密,因此它们中的任何一个都可以解密它(这个过程还需要读取驱动器读取的物理卷ID)。

在Linux世界中,据我所知,没有第三方应用程序具备官方蓝光功能(即拥有自己的批准解密密钥)。因此,VLC等软件依赖于一个不断更新的泄露密钥数据库 - 包括可以用来解密特定电影的“标题密钥”,以及允许解密任何磁盘上的标题密钥的OEM密钥,从而可以解密电影。然而,蓝光领域的权威人士对此表示不满,并通过不使用这些被泄露的OEM密钥来加密标题密钥来吊销受损的OEM密钥:这意味着使用这些密钥的播放器或应用程序将无法解密吊销后发布的任何蓝光(尽管它们仍然可以播放旧的蓝光)。因此,那些希望在VLC或其他Linux软件上观看蓝光电影的人需要等待一些仁慈的黑客找到并发布在电影发布时仍然有效的密钥。在Linux上使用蓝光基本上是一场猫捉老鼠的游戏。
还要注意的是,由于光驱在解密过程中起着积极作用,所以它(据我所知)也会有一个密钥,因此,即使是您的物理驱动器,如果其密钥被破解、泄露和吊销,对于更新的电影来说也可能变得无用。
希望这解释了一些人们报告的错误。

2这是否意味着那些购买了合法播放器的人可能会因为播放器的密钥泄露而被取消播放正版蓝光光盘的能力?如果我购买了一台播放器,然后它不能播放新的光盘,我会非常生气。 - localhost
3@localhost 是的,那基本上就是这样。荒谬的数字版权管理水平是蓝光光盘从未像DVD或流媒体那样大受欢迎的原因之一。 - R160K
1我很生气,我买了一个播放器,结果它无法播放光盘。 - ThorSummoner

在第一个答案的最后一个终端命令之后,我不得不下载KEYBD.cfg并手动将其复制到~/.config/aacs中,具体操作请参考http://vlc-bluray.whoknowsmy.name/。我有一台MacBook Pro,三重启动系统,包括Mac OS X El Capitan、Windows 8.1 Pro和Ubuntu 15.04;还有一台富士通笔记本电脑,运行Windows 8.1和Mint 17.1(这两台笔记本电脑都使用同一台外置蓝光播放器);以及一台台式电脑,内置LG蓝光刻录机。在所有这些操作系统中,我都进行了这个配置,都可以使用VLC播放蓝光碟片,但在Linux发行版中,播放会出现卡顿和像素化的问题。

我有一台内置蓝光播放器的索尼VAIO VGN-FW373J笔记本电脑,而在我的Ubuntu 14.04上播放蓝光电影只需要安装VLC,打开它,选择媒体/蓝光,然后就可以愉快地观赏了。非常方便。