一括.flac --> .mp3トランスコーディング:ID3タグ情報を保存するシェルスクリプトを書くには?

一括.flac --> .mp3トランスコーディング:ID3タグ情報を保存するシェルスクリプトを書くには?

ここ数週間、私は.flac --> .mp3トランスコーディングへのかなり「直接」アプローチから「設定して忘れてしまう」アプローチに切り替えました。

最初のステップは、GUIフロントエンド(LAMEプラグインを使用したAudacity)の使用を中止し、代わりに私が説明したアプローチを使用することです。ここ

2番目のステップは、コマンドループが再帰的に機能するように指示して、多くのサブディレクトリを含むディレクトリを簡単な1つのステップにコード変換できるようにするbashシェルスクリプトを見つけることです。それ回答askubuntu.comユーザーが投稿しました。

さて、ID3タグ情報が保持されるようにさらに具体化する方法を学びたいと思います。これらの方法は上記のストライプID3タグデータにリンクされ、最小限のデータ(つまりヘッダーフィールドのみ)を残します。

誰でもこのようなシェルスクリプトを書く方法を教えてもらえますか?


シェルスクリプトが次のように更新されました。

#!/bin/bash
file="$1"
flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"
id3cp "$file" "${file%.flac}.mp3"

~/Desktop/stackで操作を実行すると、find . -name '*.flac' -exec ~/bin/flac2mp3 '{}' \;次のような結果が出力されます。

01 - Amon Tobin - Chomp Samba.flac: done         
LAME 3.98.4 64bits (http://www.mp3dev.org/)
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding <stdin> to ./01 - Amon Tobin - Chomp Samba.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
Parsing ./01 - Amon Tobin - Chomp Samba.flac: done.  Copying to ./01 - Amon Tobin - Chomp Samba.mp3: done

id3info元の.flacと生成された.mp3に対して別々に提供されます。

*** Tag information for 01 - Amon Tobin - Chomp Samba.flac

(つまり、何もない)

*** Tag information for 01 - Amon Tobin - Chomp Samba.mp3
*** mp3 info
MPEG1/layer III
Bitrate: 128KBps
Frequency: 44KHz

.flacには確かにタグ情報があります。 EasyTAGを開いて確認できます。 EasyTAGはこれを「FLAC Vorbisタグ」と呼びますが、.mp3を「ID3タグ」と呼びます。これは問題ですか?

ベストアンサー1

#!/bin/sh

file="$1"
outfile=${file%.flac}.mp3

eval $(metaflac --export-tags-to - "$file" | sed "s/=\(.*\)/='\1'/")

flac -cd "$file" | lame --preset fast extreme \
        --add-id3v2 --tt "$TITLE" --ta "$ARTIST" --tl "$ALBUM" \
        --ty "$DATE" --tn "$TRACKNUMBER" --tg "$GENRE" \
        - "$outfile"

おすすめ記事