PS3 Media Server對某些mkv檔,常有不能放映的狀況(啥檔案壞掉之類的),通常是因為mkv檔內有壓縮的資料造成,尤其是mkvtoolnix 4.1之後的版本,預設會壓縮,但此會造成PMS不能正常讀取mkv檔,經查通常有二種解法:
1) 使用mkvtoolnix 3.1版重新包裝
2) 使用最新版的mkvtoolnix重新包裝,但是不可使用壓縮
不知為何,使用第一種方案,有時3.1版的手動解mkv,會認不得h.264的video檔,而出現錯誤,使用最新版的(目前為4.6),只要設好不壓縮,目前看來都沒有問題。但是每個mkv檔內容不一定(有的有字型附件,有的字幕不止一個,往往手動重包時,都要先看一下內容的設定(比如FPS,Aspect Ratio...),然後每一個都要設定不壓縮,搞多後實在是累人。
參考國外論壇,有人早就弄出自動重包mkv,把壓縮拿掉的batch,懶人的我把它簡化成幾種方式:
1) 只重包一個檔案
2) 重包整個目錄
3) 重包整個目錄及子目錄
以下為說明:
必備工具:mkvtoolnix 4.6版 (這一版測試了約10個mkv檔沒問題),其它版沒試
測試環境:Windows 7 x64 SP1
以下的批次檔皆指定mkvtoolnix 放在 F:\Anime\mkvtoolnix\ 下,請自更改相關設定。
請確定你放mkv檔的硬碟空間夠大!! 可用空間,最少要是處理的「最大的mkv檔」檔案的大小的一倍以上! 因為我沒做錯誤處理,如果寫到一半硬碟沒空間,你會得到一個殘廢的mkv檔

先來說說只重包單一mkv檔案的批次檔:
產生一個批次檔案 mkfix.cmd,放在mkvtoolnix 下,內容如下:
(batch刪除,需要請發私訊)
本批次檔如果在重包完後,會檢查檔案大小,如果和舊的一模一樣,則會刪掉新轉的檔案,把舊的檔案還原!
再來說明重包整個目錄的批次檔 mkfixall.cmd:
(batch刪除,需要請發私訊)
本批次檔一樣,如果在重包完後,會檢查檔案大小,如果和舊的一模一樣,則會刪掉新轉的檔案,把舊的檔案還原!
mkfix使用方法:
把mkv檔,用滑鼠直接拉到mkfix.cmd上後,放開就行,它會把原來的mkv檔名,加上 _old 備份,新包好的檔案會保持原先的檔名,如果舊檔有壓縮,你會發現新檔會大一些,這是正常的:

mkfixall使用方法:
把該資料夾下的任一個檔案(不是mkv應該也行),拉到mkfixall.cmd上後,放開就行。它是mkfix的加強版,一次處理整個資料夾(但是不含子資料夾)
最後一種方法:重包整個目錄及子目錄,這個批次檔和kfixall.cmd基本上一樣,只要把下面這字串:
('dir /b "%~dp1/*.MKV"')
改成
('dir /b /s "%~dp1/*.MKV"')
就可以了。
如果這幾個批次檔沒有用,那還是自己手動包吧

「網路上的芳鄰」並沒有試過
另外,有個工具叫mkclean,經試過後做出來的mkv PMS不一定能吃,所以不使用。
嚴禁無斷轉載,謝謝
4/30本文內容會移除