【问题标题】:Convert sound file into wav with specific bitrate and cut specific part of the file将声音文件转换为具有特定比特率的 wav 并剪切文件的特定部分
【发布时间】:2011-07-07 10:44:02
【问题描述】:

我有一些声音文件(基本上是 mp3,但它可以是任何比特率)。我需要将输入文件的指定部分(不超过 40 秒)提取为 8 位单声道 wav 输出的方法。 在选择 java 库来做这件事时,我会很感激任何帮助或建议。

【问题讨论】:

    标签: java mp3 wav


    【解决方案1】:

    您可以使用JavaLayer 将mp3 解码为wav。从 wav 中剪下 40 秒的剪辑应该不是问题。

    您可以在这里找到一些关于将立体声混音到单声道的提示:http://www.jsresources.org/examples/SingleChannelStereoConverter.html

    将 16 位音频转换为 8 位只是删除高 8 位:Convert 16 bit pcm to 8 bit

    编辑:更多关于提取 40 秒部分:

    解码器的输出是 pcm 样本。如果您的输入是 16 位立体声 44100Hz,那么每帧是 16 位 * 2 通道 = 4 字节,每秒是 44100 * 4 字节。在所需部分开始之前跳过所需数量的输出字节,然后在 40 秒内转储 44100 * 4 * 40 字节。您甚至可以对单声道进行混音,然后随时切割为 8 位。

    【讨论】:

    • 是的,我也已经看过 JavaLayer,现在我正在尝试实现一些原型。但我仍然有如何切割的问题。不是按帧剪切,而是按秒剪切
    • 主要问题是我可能有可变比特率的 mp3。
    • @Fedor Skrynnikov:没关系,pcm 总是固定比特率。
    【解决方案2】:

    我已经看到了很多与您所询问的相反意义的转换链接,我的意思是您通常得到的是使用 java 将 WAV 转换为 MP3 的信息,但也许您可以尝试 Java Media Framework API 获得一些想法(JMF)

    http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html.

    他们宣布了对 MP3 的新支持

    http://www.oracle.com/technetwork/java/javase/download-137625.html

    ,也许您可​​以找到将 MP3 转换为 WAV 的替代方法。

    抱歉,我无法提供具体的帮助

    埃梅卡斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 2021-05-29
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多