【问题标题】:Java to transcode and manipulate mp3 filesJava转码和操作mp3文件
【发布时间】:2009-03-12 19:19:29
【问题描述】:

我正在寻找一个 java 库来高效/快速地转码和操作 mp3 文件。我正在开发一个复杂的流媒体服务器,它可以混合音乐并具有一些其他功能,允许用户相互交互。例如,推荐功能应该在发送用户的流中淡出到推荐的接收者。

所有功能现在都已实现,并且使用 UPnP-AV 设备运行良好。下一步将不是像我现在那样简单地切换曲目。它应该是歌曲之间的平滑淡入淡出。

对此有什么建议吗? Mayby java 不是处理声音的正确解决方案。如果您知道更好的音频转码和处理方法,请告诉我。

(需要转码,因为并非所有音频源都可用作 mp3,但在内部我只使用 MP3)

【问题讨论】:

  • “歌曲之间应该是平滑淡入淡出”,即所谓的无间隙播放。这可能有助于您的搜索。

标签: java streaming audio-streaming upnp transcoding


【解决方案1】:

目前最好的 MP3 编码器之一是 LAME。有一个名为LAMEOnJ 的Java API 包装器,但它需要JNIEasy license,其免费版本必须每5 天重新下载一次。坦率地说,我不知道您为什么要在内部使用 MP3 而不是 WAV 文件。它可能会做更多的工作。另外,还有patent thing

您最好还是使用Java Sound API。有一个很好的开源包,叫做Tritonus。 Tritonus 仅支持 Linux 上的完整 API(特别是声音输出),但他们有一些 useful plugins 可以在任何平台上工作(包括 MP3 编码器,我无法谈论它的质量)。

【讨论】:

  • 使用mp3只是第一步。我想支持广泛的音频源和所有流媒体格式。也许在我处理数据之前在内部使用 wav 并将所有媒体转换为这种格式会更好。
  • 但是当数据流式传输到客户端时,我必须再次转码。我想为此使用 MP3,因为它被广泛采用。是否可以快速进行此转码?并与处理并行,以便在转换整个文件之前流式传输第一个读取的字节?
  • 我只是主张不要以 MP3 格式进行混音。在 WAV 中执行此操作并动态转换以进行输出更容易。您可以以任何您想要的格式输出;转码速度明显快于播放速度,您应该提前充分混音以获得良好的缓冲。
【解决方案2】:

或使用Xuggler 解码或编码 MP3 文件。它在后台使用 LAME,开源 (LGPL) 且免费,可在 Mac、Windows 和 Linux 上运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多