從終端將 .ape 與 .cue 批次轉換並分割為各個資料夾中的 .flac

從終端將 .ape 與 .cue 批次轉換並分割為各個資料夾中的 .flac

我有一個 44GB(是的,四十四個).apeCD 資料夾。每張.ape都是一張完整的 CD,並且通常.cue每個.ape.我需要轉換但不分割它們,因為沒有提示資料可供參考。裡面還有一些.jpgs和.logs,我不關心。如果tree命令輸出有助於視覺化這一點,那麼您可以:

├── Philips Mozart Collection - 180 CD
│   │   ├── box01-Symphonies
│   │   │   ├── 1B.jpg
│   │   │   ├── 1F.jpg
│   │   │   ├── cd01
│   │   │   │   ├── CDImage.ape
│   │   │   │   ├── CDImage.ape.cue
│   │   │   │   ├── Complete Mozart Edition, Vol. 01, Early Symphonies (Disc 1) - Neville Mariner, Academy of St. Martin in the Fields.log
│   │   │   │   ├── img421.jpg
│   │   │   │   └── img422.jpg
│   │   │   ├── cd02
│   │   │   │   └── CDImage.ape
│   │   │   ├── cd03
│   │   │   │   ├── CDImage.ape
│   │   │   │   ├── CDImage.ape.cue
│   │   │   │   ├── Complete Mozart Edition, Vol. 01, Early Symphonies (Disc 2) - Sir Neville Marinner - Acadamy of St Martin in the Fields.log
│   │   │   │   ├── img426.jpg
│   │   │   │   └── img427.jpg
│   │   │   ├── cd04

等等...一直到180 CDS。

基本上,我想將所有.ape文件拆分為多個.flac文件,並從 複製標籤信息.cue,保持目錄結構(最好在一個全新的不同目錄中)。如果可能的話,我更喜歡單行命令而不是腳本。我該怎麼辦呢?感謝任何知道如何做到這一點的人!

在有人將這個問題標記為與此問題重複之前: 將不同子資料夾中的所有 .ape 檔轉換為 .flac,我想指出該用戶不需要將 .ape 拆分為多個 .flac。

答案1

我會分多個步驟來完成此操作,因為您很少這樣做。在這裡,透明度比自動化更重要。但單行也是可能的。我假設如果您每一步僅對所有文件使用一個命令,這就是您的意圖。

您需要有ffmpeg(或avconv),shntoolcuetools安裝。

要將所有.ape內容轉換.flac為:

find . -name "*.ape" -exec sh -c 'exec ffmpeg -i "$1" "${1%.ape}.flac"' _ {} \;

如果您安裝了 APE 檔案的修補 MAC 編碼器和解碼器 http://shnutils.freeshell.org/shntool/,這第一步是不必要的。但你需要自己編譯g++yasm。文件也是如此.tta,它們也常用來代替.ape.

分裂和名字 .flac文件:

find . -name "*.cue" -exec sh -c 'exec shnsplit -f "$1" -o flac -t "%n_%p-%t" "${1%.cue}.flac"' _ {} \;

如果shnsplit也用於轉換,請將.flacin替換"${1%.cue}.flac"為要轉換的格式的副檔名。

  • %n- 追蹤號碼
  • %p– 表演者
  • %t– 曲目名稱

.cue從文件中取得.flac檔案名稱。若要標記產生的分割.flac檔:

find . -name "*.cue" -execdir sh -c 'exec cuetag "$1" *.flac' _ {} \;

您可以隨意刪除剩餘的CDImage.ape.cueCDImage.flac、 和檔案。CDImage.ape這些名字是獨一無二的,所以一個簡單的名字find . -name "CDImage*" -delete就足夠了,除非莫札特創作了一首CDImage我不知道的作品。

為了shnsplit工作,需要安裝所有必要的編碼器/解碼器,以便它可以讀取和寫入檔案。 APE(以及 TTA 格式)的模組需要從原始碼編譯,其他模組則需要透過安裝套件(即 FLAC)進行編譯。

這適用於所有標準情況,其中.cue.tta//檔案具有相同的名稱(副檔名除外).flac.ape


對其他人的旁注:如果您處理此轉換,您的原始檔案可能源自日本,其中 APE 和 TTA 比其他地方更受歡迎。如果.cue檔案最初是 SHIFT-JIS 編碼,現在以 UTF-8 打開,則shnsplit步驟會打破。您需要將.cue文件重新命名為

find . -name "*.cue" -exec rename 's/\.cue$/.cux/' -- {} +

並將中間文件轉換為 UTF-8

find . -name "*.cux" -exec sh -c 'exec iconv -f SHIFT-JIS -t UTF-8 -o "${1%.cux}.cue" -- "$1"' _ {} \;

在嘗試執行上述步驟之前。.cux完成以下操作後,不要忘記刪除這些檔案:

find . -name "*.cux" -delete

相關內容