代码之家  ›  专栏  ›  技术社区  ›  matt

如何使用afconvert将wav转换为aac caf而不重新采样

  •  1
  • matt  · 技术社区  · 14 年前

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

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

    目前我正在整理在以下网址找到的信息:

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

    请注意,当我将编码的比特率设置为默认值(~128kbs)时,这确实工作得很好,但当我将其设置为32kbps时(使用-b选项),它将重新采样,并立即循环单击。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Eric    13 年前

    它需要至少48kbps。32kbps将降低采样率以降低采样率。

        2
  •  0
  •   Daniel S.    10 年前

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

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

    当压缩到AAC并解压缩回WAV时,您将不会得到相同的音频文件,因为在AAC中,音频数据以与原始wave完全不同的格式表示。E、 你可以有几微秒的位移,这是转换成压缩格式所必需的。你不能用任何高度压缩的格式来完全解决这个问题。

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

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

    放大到波形的末端。看看那里的波形。然后放大原始偏移处的波形,并在其附近搜索波形无缝连接到波形末端的偏移。

    例如,在音频编辑器中打开未压缩的音频文件,检查波形的结尾和偏移量。