
44GB (そう、44GB) の.ape
CD ファイルのフォルダがあります。それぞれが.ape
完全な CD で、通常は.cue
各 にファイルがあります.ape
。これらを変換する必要がありますが、分割する必要はありません。キュー データがないためです。また、 と もいくつかありますが.jpg
、.log
これは気にしません。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
ディレクトリ構造を維持したまま (できれば完全に新しい別のディレクトリに)、 からタグ情報をコピーします。可能であれば、スクリプトではなく 1 行のコマンドを使用します。どうすればよいでしょうか? 方法を知っている方がいらっしゃいましたら、ぜひ教えてください。
そして、誰かがこの質問をこの質問と重複していると報告する前に: すべての .ape ファイルを異なるサブフォルダ内の .flac に変換するただし、そのユーザーは .ape を複数の .flac に分割する必要がなかったことに注意してください。
答え1
これを複数ステップで実行します。これはめったに実行されないためです。ここでは自動化よりも透明性が重要です。ただし、1 行でも可能です。各ステップですべてのファイルに対して 1 つのコマンドのみを使用する場合、これが意図したとおりであると考えられます。
ffmpeg
(またはavconv
)、shntool
およびがインストールされている必要がありますcuetools
。
すべて.ape
を.flac
その場で変換するには:
find . -name "*.ape" -exec sh -c 'exec ffmpeg -i "$1" "${1%.ape}.flac"' _ {} \;
APEファイル用のパッチを当てたMACエンコーダとデコーダを 参考: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
も変換に使用される場合は、.flac
の部分を"${1%.cue}.flac"
変換元の形式の拡張子に置き換えます。
%n
- トラック番号%p
– パフォーマー%t
– トラック名
.cue
ファイル名はファイルから取得されます.flac
。分割された.flac
ファイルにタグを付けるには、次のようにします。
find . -name "*.cue" -execdir sh -c 'exec cuetag "$1" *.flac' _ {} \;
残りのCDImage.ape.cue
、、CDImage.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