我有一個包含約50個wav文件的目錄,我需要將其轉換爲caf,因爲AudioServicesCreateSystemSoundID()會爲其中一些(但不是全部)返回錯誤。如何使用afconvert將目錄中的所有文件從wav轉換爲caf?
這裏是我已經成功地用於單個文件的命令的例子:
afconvert -f caff -d [email protected] -c 1 whistle.wav whistle.caf
如何做到這一點很快 - 而不是一個接一個地爲每個文件?
我有一個包含約50個wav文件的目錄,我需要將其轉換爲caf,因爲AudioServicesCreateSystemSoundID()會爲其中一些(但不是全部)返回錯誤。如何使用afconvert將目錄中的所有文件從wav轉換爲caf?
這裏是我已經成功地用於單個文件的命令的例子:
afconvert -f caff -d [email protected] -c 1 whistle.wav whistle.caf
如何做到這一點很快 - 而不是一個接一個地爲每個文件?
在Windows上,使用%~ni
語法。
for %i in (*.wav) do afconvert -f caff -d [email protected] -c 1 %i %~ni.caf
對於bash類似的方法:for i in *.wav; do afconvert -f caff -d [email protected] -c 1 $i ${i%.wav}.caf; done
發現這一點:
##
## 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 converttocaf.sh'
## Any comments to '[email protected]'
##
for f in *; do
if [ "$f" != "converttocaf.sh" ]
then
/usr/bin/afconvert -f caff -d LEI16 "$f"
echo "$f converted"
fi
done
定製aconvert選項,然後將其保存爲名爲 'converttocaf.sh' 的文本文件,將其放置在目錄您要轉換並從終端運行它的文件。
它適用於名稱中帶有空格的文件。
將它與Randall的答案和我自己的轉換設置的一些語法結合起來,它工作得很好!謝謝! – horseshoe7 2011-07-25 20:19:05
如果您正在處理包含在Linux上空格的文件名,請嘗試以下代碼:
SAVEIFS=$IFS
IFS=$(echo -en "\n\b"); for i in *.wav; do afconvert -f caff -d [email protected] -c 1 $i ${i%.wav}.caf; done
OSX上的Python腳本。 .caf
的默認數據格式是ima4
。默認目錄爲'.'
建立一個叫做wav2caf.py
文件,把它在你的路徑,使其可執行,用填充:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import os
import argparse
import glob
def main():
# handle command line args
parser = argparse.ArgumentParser(description='A program that converts .wav to .caf files.', formatter_class=argparse.RawTextHelpFormatter)
parser.add_help = True
parser.add_argument('-f', '--folder', dest='folder', type=str, default='.', help='folder of files to convert')
parser.add_argument('-d', '--data', dest='data', type=str, default='ima4', help='data format of .caf')
args = parser.parse_args()
# process files in folder
os.chdir(args.folder)
for filename in glob.glob("*.wav"):
name, ext = os.path.splitext(filename)
command = 'afconvert -f caff -d ' + args.data + ' ' + filename + ' ' + name + '.caf'
os.system(command)
if __name__ == "__main__":
main()
所有的.wav轉換在當前目錄下的.caf:
wav2caf.py
所有的.wav轉換在指定目錄下的.caf:
wav2caf.py -f Desktop/wavs/
將所有.wav轉換爲數據類型'aac'.caf:
wav2caf.py -d 'aac '
您應該看看其他答案。您爲Mac問題標記了Windows特定的答案。 – 2013-10-17 04:01:39