你如何使用afconvert从wav转换为aac caf而不用重新绑定

时间:2010-02-26 01:31:49

标签: iphone audio aac

我正在制作Iphone游戏,我们需要使用压缩格式的声音,我们希望能够无缝地循环回到音频文件中的特定样本(所以有一个介绍,然后它循环回来抵消)

目前我发现的唯一导出过程将允许无缝循环(报告正确的启动和填充帧数,在循环时没有点击等)正在使用apple的afconvert到caf文件中的aac格式。

但是当我们尝试编码以降低比特率时,它会自动重新采样声音!我们不希望声音被重新采样,我遇到的每个其他编码器都有一个设置输出采样率的选项,但我找不到这个。

另一方面,如果有人对使用音频队列无缝循环压缩文件格式感到幸运,请告诉我。

目前我正在处理以下信息:

http://developer.apple.com/mac/library/qa/qa2009/qa1636.html

请注意,当我在默认情况下保留编码的比特率(~128kbs)时,此DID完全正常工作,但是当我将其设置为32kbps时 - 使用-b选项 - 它会重新采样,并现在循环点击。

2 个答案:

答案 0 :(得分:1)

它至少需要48kbps。 32kbps将下采样到较低的采样率。

答案 1 :(得分:0)

我认为你混淆了采样率(典型值:32kHz,44.1kHz,48kHz)和比特率(典型值:128kbps,160kbps,192kbps)。

对于比特率,32kbps非常低。此比特率的声音质量会很差。您可能打算将采样率设置为32kHz,这也不是典型的,但更有意义。

当压缩到AAC并解压缩回WAV时,您将无法获得相同的音频文件,因为在AAC中,音频数据的表示格式与原始波形完全不同。例如。你可以移动几微秒,这是转换为压缩格式所必需的。使用任何高度压缩的格式都无法完全解决这个问题。

咔哒声源于两个直接连续播放的样本之间的突然变化。这很可能发生,因为你在循环中跳回的偏移量最终不会与AAV文件中的位置完全相同(如上所述,可以移动微秒)。

压缩时,您不会绕过这些微小的变化。相反,您必须通过调整偏移量来在压缩后补偿它们。这意味着你必须在音频编辑器中打开压缩的声音文件,例如Audacity,并手动查找接近原始偏移的另一个偏移,这适合于循环。

如何找到适合循环的偏移?

放大波形的结尾。看看波形在那里的样子。然后放大原始偏移处的波形,并在其邻域中搜索波形无缝连接到波形末端的偏移。

有关这个问题的示例,请在音频编辑器中打开未压缩的音频文件,然后检查波形的结尾和那里的偏移。