在Linux使用藍光燒錄機-影片播放篇

在Linux底下播放藍光(Blu-Ray Disk)影片,雖不完美但已非難事
在今年8月底,我終於購入妄想已久的藍光(Blu-Ray Disk,BD)光碟機。除了收看高畫質影片,也是解決大量資料的備份方案。雖然可選用硬碟,但仍希望在光儲存媒體多存一份。以照片為例,目前每年拍攝的大小超過20GB(今年已47GB),DVD已非適合的媒體。

這次以2990元購入Pioneer BDR-S08XLT,是今年的最新機種,支援雙層燒錄。這個價格已非天價,但也稱不上便宜。除了韌體必須透過Windows更新外,CD、DVD功能在Linux上與一般DVD燒錄機無異,可以放心使用。

這篇文章將介紹如何在Linux播放藍光影片,以及我這邊的使用狀況。由於假設讀者對Linux圖形界面有一定認識,因此會省略部份步驟,抓圖也不全為中文。此外,我不保證本文適用於任何電腦

2013/12/30 Update:
 新推出的BD影片很可能遇到AACS版本較新而無法播放,需要找其他替代方案。

It works, but not perfect.
簡單來說,只要安裝對應套件,在Linux下觀看藍光影片已非難事。在舊版本我不保證,但在Ubuntu 13.04已收錄這些套件,OpenSUSE 12.3則透過packman套件庫,也可以直接安裝而不用經過編譯。

要讓影片「跑起來」,至少手邊測試的三張片子都很順利。然而美中不足的是BD選單有時無法操作,導致特別收錄(特典映像)開不起來,算是仍待加強的部份。至於3D影片我就不知道了,應該是......還不行吧?

電腦環境
這台電腦是去年組的,使用Intel Pentium G840的內顯。雖僅是第二世代的HD Graphics,4K解析度影片跑起來頗吃力,但對1080的Full HD影片來說游刃有餘。目前藍光影片以Full HD為主流,4K螢幕也尚未普及,這樣的規格其實已經很足夠。驅動程式是安裝系統時自動裝上的開源驅動,跑起來也沒問題。

一、安裝VLC Media Player
其實VLC應該不是Linux下唯一能播放BD的軟體,但因強大功能與簡潔界面,一直是我的首選。
Ubuntu使用者若要安裝,可至VLC官網的網頁按下「Download for Ubuntu」按鈕直接安裝,或輸入以下指令
$sudo apt-get install vlc
OpenSUSE使用者則可至這個網頁,選擇目前的系統版本進行「一鍵安裝」。或是加入packman套件庫後,執行以下指令
$sudo zypper install vlc
要特別注意VLC 2.0以後才支援BD,若系統安裝的版本較舊,請考慮尋找其他套件庫或升級系統。

二、安裝相關套件
根據網路上的文章,需要安裝的套件大致是這三個:libaacs0、libbluray-bdj、libbluray1。在安裝前,稍微就個人微薄的認知介紹一下。
libbluray: 提供電腦播放BD的能力
libbluray-bdj: 讓電腦支援BD-J,一種讓BD選單更多樣化的技術
libaacs: AACS是BD光碟採用的加密技術,此套件可供研究用途
若是Ubuntu使用者,只要輸入以下指令即可
$sudo apt-get install libaacs0 libbluray-bdj libbluray1
若是OpenSUSE,由於內建套件庫未包含,故請手動加入packman套件庫後執行以下指令。也因packman一樣沒有BD-J套件,若還想找找看,「libbluray-bdj」在rpm系發行版本好像叫「libbluray-java」。
$sudo zypper install libaacs0 libbluray1
三、收服野生的aacs  key
雖然前面已安裝libaacs,但若無key亦無法正常播放BD。這就好比知道門鎖如何運作,若少了鑰匙一樣開不了門。然而要注意,即使觀看正版光碟,這東西在使用上可能受限於各國法規。

此外,部份2012年以後推出的影片使用BD+保護,目前不確定libaacs對該技術的支援度,因此不保證能正常播放。

若你已充分了解前兩段內容,分別輸入以下指令
$cd ~/
$mkdir -p ~/.config/aacs/
$cd ~/.config/aacs/ && wget http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg
完成。

四、觀賞影片
完成以上步驟後,電腦應已具備播放BD的能力。當然最重要的,你需要一片正版的BD。播放時,請注意以下三點:

a、掛載後再播放
播放DVD只要放入碟片,並於VLC播放即可;但播放BD時,若未經掛載(mount)會出現「Path doesn't appear to be a bluray」、「VLC無法開啟MRL'bluray:///dev/sr0'(VLCはMRL'bluray:///dev/sr0'を開けません。)」等錯誤訊息。
當然掛載也不難,最簡單的方法是放入後以檔案管理員(如KDE的Dolphin)開啟即可。
b、換片時確實卸載(unmount)
若直接退出碟片,將無法正確解碼AACS。因此換片前務必按下螢幕上的卸載按鈕。
c、確認VLC的光碟機設定
一般來說,VLC會指定/dev/dvd為光碟機,然而BD未必在這個位置。請掛載光碟後以df指令確認,我這邊是/dev/sr0。
rail02000@Cheng-en-Shirokyun:~> df
ファイルシス   1K-ブロック      使用    使用可 使用% マウント位置
/dev/sr0          24038400  24038400         0  100% /run/media/rail02000/BDROM
接著到「工具」-「偏好設定」-「輸入/編解碼器」找到光碟機的設定
確認以上三點後,只要點擊「媒體」-「開啟光碟」,選擇Blu-ray後即可觀看BD影片。是否顯示光碟選單,請依個人需求決定。
五、使用狀況
以下是目前安裝的套件版本
vlc       :2.1.0-66.1
libaacs0  :0.6.0-1.4
libbluray1:0.2.3-2.1.1
已測試三片BD影片,本片的部份均可正常播放。
  • 787系 特急リレーつばめ/日版/2010年/正常
  • ポケモン「ビクティニと黒き英雄 ゼクロム」「ビクティニと白き英雄 レシラム」
    日版/2011年/本片正常、選單無法操作
  • 天空之城/台版/2011年/本片、選單皆正常
選單的部份,台版「天空之城」可正常選擇,因此不用等三分鐘就能看バルス(誤)。
然而Pokemon電影的選單無法操作,不但選項被滑鼠移過的動作錯誤,點擊後更會卡住。這問題也會發生在有安裝libbluray-bdj的Ubuntu下。也許該BD選單有較多互動功能,尚無法完整支援,要等待更新版本。

從終端機看到的錯誤訊息似乎是「libbluray/bluray.c:1449: bd_read(): no valid title selected! (0x7f4eec001080)」
若非仰賴互動選單的特別附錄,如無字幕OP、ED等,其實還是可以由「播放(再生)」-「標題(タイトル)」直接播放。如下圖為無字幕ED。
七、參考資料
八、閒聊
只能說欲望頗可怕,總希望追求更好的東西。看慣HD影片後,會覺得DVD畫面不夠漂亮。在網路資源豐富,TVRip幾乎都是HD的今日,「收藏」反而是購買BD或DVD的主因。既然如此,選少量的BD收藏比起DVD更有價值......吧?

這三片都不是以定價購入,其中兩片日版是暑假去日本帶回來的。リレーつばめ是在連鎖二手書店BOOKOFF看到的,由於リレーつばめ是九州新幹線全通前才有的列車,算有收藏價值。Pokemon那片則當作BD測試片(誤),出國前先在Amazon.co.jp與其他商品一起下單,到日本後在全家取貨付款。由於特價5折,反而比台版DVD兩片加起來還便宜(當然兩版內容差異不大)。最後那片天空之城是在光華買的,BD+DVD的價格為600元。

Full HD真的很精美,影片截圖幾乎可以直接當桌布用。不過老實說......我的電腦螢幕只到1680x1050,要真正進入Full HD等以後再說吧。

原本已經作好「Linux不能用就裝Windows」的心理準備,沒想到在Linux下的問題比想像中的少。即使燒錄空白BD片,用k3b就能輕鬆解決。但疑似發生燒錄前沒塞滿,燒錄後卻容量不足的狀況(大約差了200MB),所以燒錄篇打算等下次再燒一片確認狀況,再開始撰寫。

留言