【问题标题】:Which audio file format is easiest to manipulate?哪种音频文件格式最容易操作?
【发布时间】:2011-02-08 17:08:55
【问题描述】:

你好漂亮的电脑人士,

对于question I had earlier concerning accessing the samples in an audio file,我现在意识到核心音频格式可能不是要走的路。

特别是因为on page 15 of the spec 它提到了使用 C 是一种“符号方便”,即你不能只用一些 c 函数打开它,然后用它做你想做的事。

也就是说,如果我想打开一个音频文件,然后在其上运行一些 C、C++ 或 Objective-C 代码来播放样本值,那么哪种格式最适合:WAV?国际电影节?其他的?

请记住,我希望它能够在 iOS 上运行。

谢谢!

【问题讨论】:

  • 请注意,带有未压缩 LinearPCM 的 CAF 文件(如规范的表 2-2 所示)实际上与未压缩的 WAV 相同,并且应该同样易于编辑。
  • @AShelly。有趣的。我能否获得您对关于演示文稿“符号方便”的评论的意见(框的第 15 页。在规范中)。很高兴听到你的想法:)
  • 我相信这是说您不能直接将文件二进制读取到文档描述的结构中。有诸如填充和可变大小字段之类的东西,需要解析文件。我的观点是,一旦你得到任何一种格式的 DATA 块,你所拥有的是原始 PCM,这是最容易编辑的格式。

标签: c++ c ios audio


【解决方案1】:

未压缩的 WAV 文件。它们由标题和原始样本组成。

【讨论】:

    【解决方案2】:

    我曾经通过 C++ 操作 WAV,这很容易。 我使用这个规范来编写我的代码:https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ 有了这个文档和对数字音频的一点了解,您就可以轻松地操作 WAV 文件。

    【讨论】:

      【解决方案3】:

      未压缩的 WAV 是音频编辑的事实标准。您可以使用各种库来轻松操作它们。如果您只是想要完整的原始样本,甚至没有 WAV 标头与 PCM 一起使用,但是您必须提前知道您的采样率、频率等,因为您不会拥有通常在 WAV 标头中的所有信息是未压缩的样本。

      【讨论】:

      • 我的频率、采样率等永远不会改变,所以是的,我只需要原始样本。您能否具体说明“使用 PCM”是什么意思?
      • PCM(脉冲编码调制)是一种原始的未压缩音频格式...诸如 Adob​​e Audition 和其他音频编辑、采样、母带处理等程序将识别 PCM 文件扩展名。具体来说,我以前在电信中使用文本到语音合成时使用了 PCM。基本上它是一个没有标题的 WAV 文件。
      【解决方案4】:

      最简单的未压缩 WAV 文件格式只有一个 44 字节的标头(它告诉您采样率、每个采样的位数以及数据是立体声对还是单声道),然后是原始 PCM 数组(通常) 短整数。

      在 little-endian CPU(例如 Intel 或大多数 ARM)上,您可以将此文件格式直接映射到 16 位 short 的 C 数组中,并使用与标头适当的偏移量对其进行索引。

      【讨论】:

        【解决方案5】:

        未压缩的 WAV 将是最容易处理的,因为您不必在操作之前对它们进行解码,因此您可能希望从它开始,直到您确定您的操作例程/代码。

        但是,除非您计划只制作一些现场效果或相当大的结果捆绑包,否则从长远来看,使用 IMA ADPCM 之类的东西可能会更好。解码算法已经存在(请查看 http://wiki.multimedia.cx/index.php?title=IMA_ADPCM 了解更多信息),实现起来相对简单,它可以让您在产品中加入更多声音。

        【讨论】:

          猜你喜欢
          • 2010-11-08
          • 1970-01-01
          • 2010-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-22
          相关资源
          最近更新 更多