我正在制作iPhone应用,我需要将大量.wav
个文件转换为.caf
我可以将它用于每个文件:
afconvert -f caff -d LEI8@22050 walking.wav walking.caf
但这需要很长时间,所以我试图用以下内容转换所有文件:
for i in *.wav; do afconvert -f -caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done
但是我收到了这个错误:
Error: ExtAudioFileCreateWithURL failed ('typ?')
编辑:由于上面显示的for循环中的拼写错误,实际上会发生错误。它应该是caff
而不是-caff
。那么正确的代码片段就是。
for i in *.wav; do afconvert -f caff -d LEI16@44100 -c 1 $i ${i%.wav}.caf; done
可能还有其他问题,并且接受的答案是有效的,只是想帮助解决问题。 / EDIT
答案 0 :(得分:16)
这是我一直在使用的脚本,稍微从其他来源修改过,值得所有的信任:
##
## Shell script to batch convert all files in a directory to caf sound format for iPhone
## Place this shell script a directory with sound files and run it: 'sh afconvert_wavtocaf.sh'
## Any comments to 'support@ezone.com'
##
for f in *.wav; do
if [ "$f" != "afconvert_wavtocaf.sh" ]
then
afconvert -f caff -d ima4 $f
echo "$f converted"
fi
done
将其保存在名为“afconvert_wavtocaf.sh”的文件中。看看是否有诀窍。
答案 1 :(得分:4)
尝试在脚本中echo $i;
之前添加afconvert
,以获取命令失败的声音文件的名称。然后尝试手动转换它,它也可能会失败。
我怀疑你的某个文件不是真正的wav,但afconvert
无法辨认格式。