【发布时间】:2008-11-25 07:45:38
【问题描述】:
我需要一个 Java 开源 API,它可以将 *.wav 和 *.au 格式编码为 MP3,反之亦然。
我已经评估了 Java Sound API 和 LameOnJ,但它们分别不符合我的要求并且不稳定。请推荐一款免费且独立于平台的。
【问题讨论】:
我需要一个 Java 开源 API,它可以将 *.wav 和 *.au 格式编码为 MP3,反之亦然。
我已经评估了 Java Sound API 和 LameOnJ,但它们分别不符合我的要求并且不稳定。请推荐一款免费且独立于平台的。
【问题讨论】:
可能还没有适合您的答案,因为 MP3 格式要求解码器/编码器的作者从弗劳恩霍夫研究所获得许可。
我认为 LAME 库是从一个不尊重这些 IP 问题的国家/地区分发的,但要做到这一点需要大量的法律黑客攻击。
对于任何其他库 - 例如用 Java 编写的库,作者需要获得类似的许可证。成本是一个问题 - 例如。在开源项目中,这足以抑制开始。
更多详情请看wikipedia article。
如果 LAME4J 对你来说不够稳定,那么恐怕你的选择可能是:
【讨论】:
已经有一段时间了,但是 Oracle/Sun 已经发布了对 JMF 的 MP3 支持。这可以从以下网址下载: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html
将其添加到类路径将通过 AudioSystem api 启用播放。
【讨论】:
LAME4J 使用免费但有时间限制的许可证,无限许可证会花费你一些钱。
我在 SourceForge 上找到了Lamejb library,它只需要蹩脚的二进制文件,并且无需任何额外许可即可正常工作。
【讨论】:
使用Process API 调用SoX
SoX 带有源代码或作为 Windows 和 Mac 的预编译二进制文件。
【讨论】:
如果您正在搜索纯 java 版本的 lame,请查看以下来源: http://jsidplay2.cvs.sourceforge.net/viewvc/jsidplay2/jump3r/
【讨论】:
Jave2 project 是封装了 FFMPEG 的 Java 库,并通过一个相当有用的 Java API 提供了它的大部分功能*。
优点:
缺点:
*) 特别是围绕格式转换 - 过滤器功能大多没有表示。
**) 在 Java 中,启动一个进程并连接到它的标准输出和输入是可能的,但不是很舒服,并且使用命名管道(用于将 AV 与 FFMPEG 进行管道传输的 BKM)几乎是不可能的,即使你这样做了设法做到这一点,Jave2 不能很好地解决这个问题。我有一套工具来解决这些问题,基于 JNA,如果有人有兴趣 - 我可以分享。
【讨论】: