Music Albums

Photo by Natalie Perea on Unsplash

TAK 好像是近年興起的無損音樂格式,在拿到 TAK 格式的音檔後知道有這種格式,但是什麼軟體都開不了,竟然連 PotPlayer 這種萬能播放器也播不了,去查了一下才發現支援 TAK 播放的軟體非常稀少,不知道這作者不知道在想什麼,竟然沒有開源解碼器,讓 TAK 的編輯、播放相當受限。

為了找出轉換的方式,在網路上找了很多資料,經過多番嘗試後總算成功將 TAK 格式轉換成常見的無損音樂格式 FLAC。

首先準備工具:

  1. TAK SDK: 官方釋出的解碼器,內含有 TAK 解碼器、簡易轉檔器還有 Winamp 的播放外掛
  2. ffmpeg/Libav: 轉換影音格式的瑞士軍刀,Libav 是 ffmpeg 的 fork,兩者指令大同小異

先把 TAK 工具包載回來,在 bin 資料夾裡面有個 takc.exe 可以解碼 TAK 格式並以標準格式輸出,可把 takc.exe 的路徑放到環境變數裡,這樣就能直接在終端機內執行 takc 指令。

TAK 官方轉檔程式

壓縮檔裡面還有個 tak.exe,有簡單的 GUI,「Compress」可以把 WAV 壓縮成 TAK,「Decompress」則是能把 TAK 還原成 WAV。

tak.exe 基本界面

「Options」可以設定一些優化選項。

轉換參數

可以一次加入多個檔案,加入檔案後點「Decompress」就好。

Decompress

TAK SDK 搭配 FFmpeg/Libav

雖然官方提供的程式可以做簡易的轉換,但這樣只能轉 WAV,而且沒有什麼技術要求,接下來才是這本篇文章的重點。

載完 ffmpeg(或 libav) 後,可以加入環境變量,然後開啟終端機,輸入下面指令,指令的功能是先用 takc 解碼,再用 pipeline 串流給 libav 做轉檔(也可換成 ffmpeg),輸出成 flac 格式。

1
takc -d disc1.tak - | avconv -i - disc1.flac

要是出現以下錯誤訊息,請把檔案名稱取的簡單一點,盡量不要有特殊字符,像是中文、日文,還有我發現別跟 .cue 檔放在同一目錄下執行指令,不然也會出錯。

1
2
[tak @ 03af5860] unsupported codec: 0
Error while decoding stream #0:0: Not yet implemented in FFmpeg, patches welcome
1
1 files with read/write errors.
1
pipe:: Invalid data found when processing input

雖然 TAK 號稱擁有優秀的壓縮率,但轉成 flac 後也才多了 7 MB,真不知道把音樂弄成這格式的意義在哪裡?

foobar200 + TAK Decoder

TAK 官網上列出的支援軟體其中一個就是 foobar2000,裝上了 foobar2000 的 TAK Decoder 元件便能在 foobar2000 中享受高碼率無損音樂。不愧是最優質的音訊播放軟體。

轉檔過程剛上次教學一樣,將 TAK 音訊加入 foobar2000 播放清單後,選取歌曲點右鍵,轉換 > 快速轉換,選擇要輸出的格式轉換就好,不過我習慣將整軌版音訊用 CUE 分割工具分成多軌,可以自訂 ID3 標籤和檔名,比較偏好第二種方式。

選擇輸出格式

至於在 Linux 下該怎麼轉檔改天我再研究,今天為了打這篇文章實驗了好久,有夠累的,對了今天是聖誕節,祝大家聖誕快樂。

聖誕絆愛祝大家聖誕快樂!

繪師:森倉円,原圖取自推特

Reference