转载自:http://www.yifeiyang.net/iphone-development-skills-of-tool-papers-4-wav-file-conversion-using-afconvert/
程序中经常使用 .WAV 的音效文件,虽然可以直接使用它,但是最好转换为 apple 推荐的 .CAF 格式。
这个时候我们就可以使用 afconvert 命令。其基本的语法如下:
- 用 -d 指定频率格式
1 2 3 4 | { -d | --data } data_format[@sample_rate_hz][/format_flags][#frames_per_packet] : [-][BE|LE]{F|[U]I}{8|16|24|32|64} (PCM) e.g. BEI16 F32@44100 or a data format appropriate to file format |
可以指定的 .WAV 文件格式有以下5种:
1 | UI8 LEI16 LEI24 LEI32 LEF32 |
比如 -d LEI16@22050 就代表 16位 22050Hz。
另外可以用 -c 指定声道。用 -f 指定格式。比如:
1 | $afconvert -f WAVE -d LEI16@22050 -c 1 < destinate file >
|
比如改变当前目录及子目录下的 .wav 文件格式,如下命令:
1 | $find . -name '*.wav' -exec afconvert -f WAVE -d LEI16@22050 -c 1 {} ; |
如果要转换为用 ima4 压缩的 .caf 文件则用下面的命令:
1 | $find . -name '*.wav' -exec afconvert -f caff -d ima4 {} ; |
其中支持的格式如下所示:
1 2 3 4 5 6 7 8 9 10 | { -f | --file } file_format: ....... 'caff' = Apple CAF (.caf) data_formats: '.mp1' '.mp2' '.mp3' 'MAC3' 'MAC6' 'QDM2' 'QDMC' 'Qclp' 'Qclq' 'aac ' 'aacl' 'agsm' 'alac' 'alaw' 'drms' 'dvca' 'dvi ' 'dvi8' 'ilbc' 'ima4' 'lpc ' I8 BEI16 BEI24 BEI32 BEF32 BEF64 LEI16 LEI24 LEI32 LEF32 LEF64 'msx00x02' 'msx00x11' 'msx001' 'msx00U' 'samr' 'ulaw' 'vdva' |