在做遊戲音效的時候,通常會使用.wav格式的音頻文件,但是Apple通常推薦我們使用.CAF格式的,同時也提供了afconvert工具可以方便我們對音頻文件進行轉換。
首先可以輸入如下命令來查看支持哪些格式的音頻。
afconvert -hf
或者
afconvert --help-formats
會得到如下信息,就是該工具所能支持的格式。
- '3gpp' = 3GP Audio (.3gp)
- data_formats: 'aac ' 'samr'
- '3gp2' = 3GPP-2 Audio (.3g2)
- data_formats: 'aac ' 'samr'
- 'adts' = AAC ADTS (.aac, .adts)
- data_formats: 'aac ' 'aach'
- 'ac-3' = AC3 (.ac3)
- data_formats: 'ac-3'
- 'AIFC' = AIFC (.aifc, .aiff, .aif)
- data_formats: I8 BEI16 BEI24 BEI32 BEF32 BEF64 UI8 'ulaw'
- 'alaw' 'MAC3' 'MAC6' 'ima4' 'QDMC' 'QDM2'
- 'Qclp' 'agsm'
- 'AIFF' = AIFF (.aiff, .aif)
- data_formats: I8 BEI16 BEI24 BEI32
- 'amrf' = AMR (.amr)
- data_formats: 'samr'
- 'caff' = Apple CAF (.caf)
- data_formats: '.mp1' '.mp2' '.mp3' 'QDM2' 'QDMC' 'Qclp'
- 'Qclq' 'aac ' 'aach' 'aacl' 'alac' 'alaw'
- 'dvi8' 'ilbc' 'ima4' I8 BEI16 BEI24 BEI32
- BEF32 BEF64 LEI16 LEI24 LEI32 LEF32 LEF64
- 'ms\x00\x02' 'ms\x00\x11' 'ms\x001' 'samr'
- 'ulaw'
- 'm4af' = Apple MPEG-4 Audio (.m4a)
- data_formats: 'aac ' 'aach' 'aacl' 'alac'
- 'MPG1' = MPEG Layer 1 (.mp1, .mpeg, .mpa)
- data_formats: '.mp1'
- 'MPG2' = MPEG Layer 2 (.mp2, .mpeg, .mpa)
- data_formats: '.mp2'
- 'MPG3' = MPEG Layer 3 (.mp3, .mpeg, .mpa)
- data_formats: '.mp3'
- 'mp4f' = MPEG-4 Audio (.mp4)
- data_formats: 'aac ' 'aach' 'aacl'
- 'NeXT' = NeXT/Sun (.snd, .au)
- data_formats: I8 BEI16 BEI24 BEI32 BEF32 BEF64 'ulaw'
- 'Sd2f' = Sound Designer II (.sd2)
- data_formats: I8 BEI16 BEI24 BEI32
- 'WAVE' = WAVE (.wav)
- data_formats: UI8 LEI16 LEI24 LEI32 LEF32 LEF64 'ulaw'
- 'alaw'
afconvert命令的格式如下:
afconvert [option...] input_file [output_file]
其中[option...]主要有以下幾個操作:
-f 指定文件格式
-d 數據格式
-c 聲道
比如命令:
afconvert -f caff -d LEI16@44100 -c 1 input.wav output.caf
用於將input.wav轉換爲output.caf
其中-f指定文件格式爲caff,即採用ima4壓縮的.caf文件格式;
其中-d指定數據格式,LEI16@44100則表示16位44100Hz;
其中-c就是聲道數了。
下面是常用的兩個命令:
//改變當前目錄及子目錄中所有.wav文件的數據格式爲LEI16@44100
$find . -name '*.wav' -exec afconvert -f WAVE -d LEI16@44100 -c 1 {} \;
//將.wav轉換爲.caf格式
$find . -name '*.wav' -exec afconvert -f caff -d LEI16@44100 {} \;
更多使用方法請輸入“afconvert -h”。