すべてのALACファイルを見つけてmp3/opus/aacに変換

すべてのALACファイルを見つけてmp3/opus/aacに変換

私はディレクトリ内のすべてのalacファイルを別の形式に再帰的に変換する方法を探しています。

問題:alacとaacはサフィックスm4aを使用しているため、find -name "*.m4a"機能しません。

答え1

m4aファイルでコーデックを検出するためのツールが必要です。そのようなツールの1つは、debianベースのLinuxのlibav-toolsパッケージで利用可能なavprobeです(私はUbuntu 14.04を使用しています)。

その後、次のことができます(ファイル名に改行文字が含まれていない場合..)。

find . -name \*.m4a | while read file; do avprobe "$file" 2>&1 |grep -q 'Audio: alac' && echo "$file"; done

明らかにecho "$file"変換コマンドを置き換えます。

そのようなツールをインストールできない場合を使用して推定できますgrep -q Halac "$file" && grep -q '$alac' "$file"。テストしたAppleロスレスファイルにはこれら2つの文字列が含まれていますが、実際のAppleロスレスコーデックではないファイルと小さい確率で一致する可能性があり、Appleロスレスファイルにこれらの文字列が含まれているかどうかはわかりません。問題がなければ上記と同じです。

find . -name \*.m4a | while read file; do grep -q Halac "$file" && grep -q '$alac' "$file" && echo "$file"; done

関連情報