Afplay, AFConvert, and AFInfo
转换音频在Mac是相当简单的,因为在Mac上有三条内置的命令行工具:afplay、afconvert、afinfo。
使用最简单的是afplay,仅需要在终端里输入你的音频名字,它将会播放。当在听不同比特率下的压缩音频文件有什么差别时,这是相当方便的。
接下来是afinfo, 仅需输入你音频的名字,之后就可以看到这份文件的文件格式、数据格式、比特率和其他一些有用的信息。例子如下:
File type ID: caff
Num Tracks: 1
----
Data format: 2 ch, 44100 Hz, 'aac ' (0x00000000) 0 bits/channel, 0 bytes/packet, 1024 frames/packet, 0 bytes/frame
no channel layout.
estimated duration: 16.000000 sec
audio bytes: 256728
audio packets: 692
bit rate: 127819 bits per second
packet size upper bound: 699
maximum packet size: 699
audio data file offset: 4096
optimized
audio 705600 valid frames + 2112 priming + 896 remainder = 708608
上面的例子向你说明了这份文件的文件类型是CAF,数据格式是16位低字节序有符号整型(LEI16),采样频率是44100Hz,比特率是705600比特/秒。
最后,让我们讨论下里面最好的工具:afconvert。afconvert使用相当简单,只需要一个像下面的命令行:
afconvert -d [out data format] -f [out file format] [in file] [out file]
因此将一份文件转化为iPhone首选的无压缩音频编码(提醒:linear PCM的低字节序整型16位转化,也就是LEI16(the little-endian integer 16-bit variant of Linear PCM)),和iPhone首选的文件格式(提醒:核心音频文件格式,也就是CAFF),你可以输入如下命令行:
afconvert -d LEI16 -f 'caff' input_file.xxx output_file.caf
注意:我没有指出这个输入文件的扩展名,因为afconvert可以智能地检测音频文件的类型并且做相应的转换,因此输入的文件可以是任何数据格式和音频文件格式的文件。
O还有一点需要注意:你可以在输入或者输出文件之前增加一个“-b”的选项来设置比特率。因此就像这个例子,我们使用32bit/sec来保存这个文件,然后使用128bit/sec来保存:
afconvert -d aac -f 'caff' -b 131072 background-music-lei.caf test_128.caf
afconvert -d aac -f 'caff' -b 32768 background-music-lei.caf test_32.caf