【问题标题】:Audio (mp3) editing in C用 C 语言编辑音频 (mp3)
【发布时间】:2011-02-20 15:23:44
【问题描述】:

我希望将 .mp3 文件“拆分”为两个单独的文件,以持续时间作为参数来指定第一个文件的长度。
但是,我不完全确定如何在 C 中实现这一点。是否有特定的库可以帮助解决这个问题?提前致谢。

【问题讨论】:

    标签: c audio mp3


    【解决方案1】:

    我认为您应该为此目的使用 gstreamer 框架。因此,您可以编写一个应用程序,您可以在其中使用现有插件来完成这项工作。我不确定,但你可以试一试。查看http://gstreamer.freedesktop.org/ 与 gstreamer 相关的查询:http://gstreamer-devel.966125.n4.nabble.com/

    如果你最终没有找到任何库,那么了解一个 mp3 文件的标题,并将原始文件分成任意数量的部分,并为它们添加单独的标题。这并不容易,但有可能。

    【讨论】:

      【解决方案2】:

      它可以像在由 mp3 比特率和请求的持续时间确定的位置剪切文件一样简单。但是:

      • 您的文件应该是 CBR - 该方法不适用于 ABR 或 VBR 文件,因为它们具有不同的密度
      • 您的播放器应该足够强大,不会在开始时出现部分 mp3 帧时中断。大多数播放库都会以这种方式非常优雅地处理 mp3 分割。

      如果您需要更多信息,请直接询问,我正在使用手机,稍后可以为您获取更多信息。

      如果你想在切割时更加精确,你可以使用一些库来解析 mp3 帧头,然后编写你需要的帧。这样,以及之前提到的方式,您将只获得最低限度的帧对齐,并且您必须忍受那是 40 毫秒。

      如果这还不够,您必须将 mp3 解码为 PCM,在样本边界处拆分,然后再次重新压缩为 mp3。

      祝你好运

      附言

      当你说分裂时,我希望你不要指望他们一个接一个地演奏而没有听得见的“神器”。 Mp3 帧不是自给自足的,因为它们携带前一帧的信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多