音楽CDイメージをbin/img/wav+cueからflac+cue形式に直接移行する

投稿日: 2018年7月12日 | 投稿者: 愛莉

島に帰れません、愛莉です。

用事で浜松のおばあちゃんのお家へ行ってたのですが、先日の大雨で広島に帰れなくなり、大阪の実家に戻ってぐてーーーっとしております。
学校も1週間丸々お休みになり時間が有り余ったので、先日音楽CD(CD-DA)データの管理をbin+cue形式からflac+cue形式に移行した話をまとめてみようと思います。
img+cueやwav+cue形式で管理されている方も同じく直接移行が可能です。
移行方法について一晩使って調べたのですが、国内外中々情報が見当たらない中、海外のフォーラムでようやく見つけたので、自分なりにオプション書き足しつつという感じで~

一括処理用のバッチも書いたので置いてあります。

したことの概要と経緯

音楽CD(CD-DA)を無損失でそのままイメージ保存する方法としてよく使われるのがbin+cue, img+cue, wav+cueといった形式ですが、これらは無損失かつ無圧縮ですので、それなりに大きいデータ容量を持っています。
これを無損失かつ圧縮可能であるFLACコーデックを組み合わせたflac+cueの形式に「直接」変換しました。
FLACに移行すると、容量を概ね6-7割くらいまで減らせます。
また、CUEシートの埋め込みが可能なので、FLACファイル単体を対応ソフトに読ませるだけでトラック分けした状態での再生が可能になります。

ただこの「直接」変換する方法が中々見当たらず、仮想ドライブにマウントして再イメージ化というのもうまくいかず、果てには一度CD-RWに書きだしてから再度イメージ化しようかとも思いました。
が、流石に枚数が多すぎる&使っているソフト群を総とっかえしないといけないため、何か方法はないかと探し回ったというわけです。
結果、FLACエンコーダに適切なオプションを付与してバッチを組むことで、ファイルをがさっとドロップするだけで変換とCUEシートの埋め込みまで一括で出来るようになりました。

自環境(Windows)での作業をそのまま記載しますが、FLACエンコーダは各プラットフォーム向けに提供されていますし、コマンドも共通のはずですので、各自適宜読み替えてください。

使用したソフトウェア

既にある元データを変換するだけの方はFLACエンコーダだけあれば良いと思います。
新規にflac+cue形式でイメージ保存をする場合にはExact Audio Copyを使うのが主流のようですが、余計にツールを増やすのが嫌だったため使っていません。
そんなわけで、イメージ作成と仮想ドライブツールに関しては各々お好みの物をお使いください。

  • FLACエンコーダ
    私はWindows環境ですので、FLAC for Windows 1.3.2を使用しました。
    各自の環境に適したものをダウンロードして下さい。
  • ImgBurn
    CD-DAイメージを抜き出すのに使用します。
    CD-DAからはbin+cue, img+cue, wav+cue等の形式でイメージ作成と、イメージから物理メディアへの書き出しが可能です。
    前まではCD Maniplatorを使っていたのですが、どうも最近のドライブとの相性が良くなく、近頃はこっちに浮気しがちです。
  • madFlac DirectShow Filter
    FLACのデコードに対応したDirectShowフィルターです。
    ImgBurnからflac+cueを物理メディアに書き出す際に必要になります。
    また、FLAC形式の音楽ファイルをWin8.1以前のWindows Media Playerで再生できるようになります。
    もしかしたらWin10以降では不要なのかもしれませんが、環境が無いため未検証です。
  • Yubsoft ImgDrive
    flac+cue形式のCD-DAイメージをマウントするのに使います。
    仮想ドライブツールとして今までMagicDiscを使っており、そちらはbin+cue形式のマウントに対応していたのですが、flac+cueには非対応のため新規に導入しました。
    逆にImgDriveはbin+cue形式のマウントに非対応のようでした、wav+cueならいけるのかもしれません(未検証)。

使用したコマンドと後始末

分かる方はこれだけあれば自分でなんとかされると思いますので、ひとまず書いておきます。

イメージがbin+cue, img+cueの場合
flac.exe -f –best –force-raw-format –endian=little –channels=2 –bps=16 –sample-rate=44100 –sign=signed –cuesheet=“C:\cuesheet.cue” “C:\image.bin”
イメージがwav+cueの場合
flac.exe -f –best –cuesheet=“C:\cuesheet.cue” “C:\image.wav”

これで元ファイルと同じディレクトリにflacファイルが書き出されるはずです。
青色太字部分には任意のファイルのフルパスを入れてください。

また、そのままではCUEシートのファイル情報が古いため、下記の書式で書き換えます。

[cuesheet.cue]
FILE “image.flac” WAVE

こちらはフルパスでなくてOKです。
ピンクの太字部分にはそのままWAVEと入力してください(BINARYとWAVEがありますが、FLACはWAVE扱いです)。
これで仮想ドライブツールにCUEシートを読み込ませると、正常にFLACファイルが参照されるようになります。
これを一つ一つ行うと手間なので、本ページ末尾にてそれぞれ一括で処理出来るバッチを公開します。
自分用な上におかしな挙動も見られたため責任は取れませんが、内容を確認の上使えそうだということであれば是非お使いください。

詳細な手順

今回の記事ではCD-DAから抽出したイメージファイルが既にあること、そしてコマンドラインでの作業が出来る事を前提に話を進めます。
新しくイメージを作成する方法は日本語でもあちこちに情報が転がってますので、そちらを参照してください。

まずはFLAC公式サイトの「download」タブからエンコーダをダウンロードします。
Windowsの場合、FLAC for Windowsのリンクから最新のZIPファイルを選んでください。

ダウンロードしたファイルを展開すると、win32とwin64に分けてバイナリが入っているので、自環境のbit数に合わせたディレクトリに入ってください。
その後、空いた場所で[Shift]+右クリックでメニューを開き、”コマンド ウインドウをここで開く(W)”を選択します。
するとそこをカレントディレクトリとしてコマンドプロンプトが開きますので、下記の書式でコマンドを入力します。

イメージがbin+cue, img+cueの場合
flac.exe -f –best –force-raw-format –endian=little –channels=2 –bps=16 –sample-rate=44100 –sign=signed –cuesheet=“C:\cuesheet.cue” “C:\image.bin”
イメージがwav+cueの場合
flac.exe -f –best –cuesheet=“C:\cuesheet.cue” “C:\image.wav”

青色太字の“C:\cuesheet.cue”の部分には埋め込みたいCUEシートファイル、“C:\image.bin”の部分には変換したいイメージファイルのフルパスを入力してください。
エクスプローラからコマンドプロンプトへファイルをドロップするとフルパスが自動入力されますので、その方が間違いないです。
CUEシートの埋め込みを行わない場合は「–cuesheet」オプション自体を省き、下記のように記述してOKです。

イメージがbin+cue, img+cueで、CUEシートを埋め込まない場合
flac.exe -f –best –force-raw-format –endian=little –channels=2 –bps=16 –sample-rate=44100 –sign=signed “C:\image.bin”
イメージがwav+cueで、CUEシートを埋め込まない場合
flac.exe -f –best “C:\image.wav”

コマンドの内容を確認したらEnterで実行します。
変換状況が表示され、プロンプトが返ってきたら変換完了です。
元のイメージファイルと同じ場所にFLACにエンコードされたファイルが出力されているはずです。

これでイメージファイルの変換は完了ですが、CUEシートは元々のイメージファイルを参照する記述のままですので、下記の書式で新しいイメージファイルを参照するよう書き換えてあげます。
CUEシートファイルをエディタで開き、青色太字部分にはファイル名(こちらはフルパスでなくてOK)を、ピンクの太字部分にはそのままWAVEと入力して下さい。
(元ファイルがbin, imgの場合BINARYになっていると思いますので、書き換えてください。)

[cuesheet.cue]
FILE “image.flac” WAVE

これで一通りの作業は完了です。
新しいイメージファイルを仮想ドライブにマウントし、正常に再生されることが確認出来たら、元のイメージファイル(bin, img, wav等)は削除しても大丈夫です。

ただし、CUEシートファイルはFLACファイルと合わせて保存しておくことを強くおすすめします
FLACファイルにCUEシートを埋め込んでも対応ソフトでしか読み出せないため、埋め込みCUEに非対応のソフトではこれまで通りCUEシートファイルを読ませる必要があります。
FLACファイルから再抽出する方法もあるにはあるのですが、その都度抽出するのは手間なので…

一括処理用バッチ

今回の移行処理に当たって作成したバッチファイル3つ

  1. [cdda_raw2flac.bat]
    CD-DAイメージをFLAC形式にエンコードするバッチ
  2. [cdda_cue2flac.bat]
    既に存在するFLAC形式イメージにCUEシートを埋め込むバッチ
  3. [cue_setfileinfo.bat]
    CUEシートの参照先とファイルタイプを更新するバッチ
    FLAC形式にエンコードした後に使うと楽に参照先を書き換えられます

を公開しておきます。
自分用に作ったものをそのまま置いているので、例外処理等あまり詰めてません。
処理内容を理解した上で使うのが好ましいですが、そうでない場合も自己責任でお願いします。

flac.exe, metaflac.exeと同じ場所に置き、処理したいファイルをまとめてバッチファイルにドロップするだけでOKです。
1.と2.にはCD-DAイメージファイル(bin, img, wav)を、3.にはCUEシートファイルを読ませて下さい。
イメージを保存しているディレクトリで検索窓に「*.bin」「*.cue」などと入力すれば一括で抽出できます。
また、イメージファイルとCUEシートファイルは同じ名前にして、同じディレクトリに置いてください(music.binとmusic.cueのような同名異拡張子)。

大量のファイルを一気に読ませるとWindows側の制限で蹴られるので、80-100ファイル毎に分けてドロップすることをおすすめします。
また、ファイル名に「&」等のパイプ記号が含まれているとコマンド処理に失敗するようです。
処理ファイルは出来るだけスペース無し・パイプ記号無しの名前・ディレクトリ下で実行して下さい。

さいごに

結構容量を削減出来て満足です。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。