2012-01-07 71 views
9

我正在做一個iPhone應用程序,我有一噸的.wav文件,我需要轉換爲.caf轉換多個.WAV到的.caf

我可以用這爲每個文件:

afconvert -f caff -d [email protected] walking.wav walking.caf 

但會採取年齡,所以我想對所有文件轉換用:

for i in *.wav; do afconvert -f -caff -d [email protected] -c 1 $i ${i%.wav}.caf; done 

但我得到這個錯誤:

Error: ExtAudioFileCreateWithURL failed ('typ?') 

編輯:錯誤實際上會發生,因爲在上面顯示的for循環錯字。它應該是​​而不是-caff。正確的代碼片段將會是。

for i in *.wav; do afconvert -f caff -d [email protected] -c 1 $i ${i%.wav}.caf; done 

可能還有其他問題,接受的答案是有效的,只是想幫助明確問題。 /編輯

回答

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 '[email protected]' 
## 

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

你可以簡單地做'afconvert -f caff -d ima4 file.wav' – 2014-09-05 07:04:38

4

嘗試在afconvert之前在腳本中添加echo $i;以獲取命令失敗的聲音文件的名稱。然後嘗試手動轉換它,它可能也會失敗。

我懷疑你的一個文件不是實際的wav,而是格式不可識別的afconvert