次のコードを使用して、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
。