バッチ操作でWAVをALACに変換中に問題が発生する

バッチ操作でWAVをALACに変換中に問題が発生する

次のコードを使用して、WAVをALAC(bash、macOS 10.12.1)に変換します。

find . -type f -iname "*.wav" | while read fn; do ffmpeg -i "$fn" -acodec alac "${fn%.wav}.m4a"; done

しかし、次のような警告を出力するのでバグがあるようです。

n---8085/03_Part_III.wav: No such file or directory

正しいパスは次のとおりです。

Bad_Religion/wav/Bad_Religion---8085/03_Part_III.wav

何らかの理由でパスがブロックされました。

コマンドにどのような問題がありますか?

答え1

ファイル名は実際には切り捨てられません。ここでは、ffmpeg入力ストリームからコマンドを読み取ろうとしています。残念ながら、これはファイル名を決定するために使用されたのと同じストリームなので、readそのファイル名の一部が読み取られないようです。この問題を解決するには、ffmpegこのフラグを使用して入力ストリームの対話を無効にする必要があります-nostdin

関連情報