可惜 Video Station 因為版權的因素,所以無法支援 DTS Stream。
網路上找了一些做法,基本上就是安裝第三方支援 DTS 的 ffmpeg 來解決這個問題,不過好像只編譯到 5.0,在更新的就沒有了。
想了一想,DSM 5.2 支援 docker,何不利用 docker 來跑 ffmpeg,省去每次都要為新版重 build 的困擾呢?
在蒐集 ffmpeg 的過程中,發現有人撰寫了 mkvdts2ac3.sh 這個工具,讓我們可以更方便更安全的將 DTS 音訊轉換為 AC3。
根據他的說明頁,需要以下三個東西:
- mkvtoolnix - Matroska tools
- ffmpeg - Audio conversion tool
- rsync - File transfer and synchronization
於是就包了這個 hialan/mkvdts2ac3 docker hub 作為自己的處女作。
Docker 如何使用在這裡就不多說了,這邊網誌主要是要說明做出來的東西如何使用。
如果想要了解的可以看原始的 github ,裡面有 Dockerfile 可以參考。
要注意的是,這個 container 有 export /data 這個掛載點,就可以直接從 container 處理 host 裡面的影片摟。
首先當然是取得這個 image
$ docker pull hialan/mkvdts2ac3然後切換到所在目錄下面,並建立一個工作目錄 tmp
$ cd "/path/to/film/"接著就是執行轉檔啦
$ mkdir tmp
$ docker run -it --rm=true -v "`pwd`":/data hialan/mkvdts2ac3 -w /data/tmp -n /data/film.mkv
其中 /data 是 container 裡面的目錄,下給 docker 的指令都必須要以 container 裡面的路徑為準。
-v 是要把我們目前所在目錄 mount 到 /data 上面
-w 是 working space,中間會擷取 wav 等暫存檔會放這裡
-n 是指不保留原本的 DTS track
--rm=true 代表指令執行完畢以後,就把執行的 container 給清掉
/data/film.mkv 是我們要轉換的檔案
接下來要說明怎麼在 DSM 下面用這個。
由於使用網頁的介面只能跑 daemon 模式,要用 command line 也只能用 sshd 連線啦。
所以需要設定以下:
- 開啟 SSH
- 允許 root 由 SSH 登入