2008-11-25 9 views
10

Ich brauche eine OpenSource API in Java, die * .wav und * .au Formate in MP3 und umgekehrt kodieren kann.MP3 Kodierung in Java

Ich habe Java Sound API und LameOnJ ausgewertet, aber sie erfüllen nicht meine Anforderungen und sind nicht stabil bzw.. Bitte schlagen Sie eine kostenlose und plattformunabhängige Lösung vor.

Antwort

6

Vielleicht gibt es keine passende Antwort, denn das MP3-Format verlangt von den Autoren von Decodern/Encodern eine Lizenz vom Fraunhofer-Institut.

Ich denke, dass die LAME-Bibliothek von einem Land verteilt wird, das diese IP-Probleme nicht respektiert, aber es dauerte eine beträchtliche Menge an legalen Hackereien, um so weit zu kommen.

Für alle anderen Bibliotheken - zum Beispiel eine in Java geschrieben - müssen die Autoren eine ähnliche Lizenz erhalten. Wo Kosten ein Problem sind - z.B. In einem Open-Source-Projekt ist dies genug, um davon abzuraten.

Für weitere Details siehe wikipedia article.

Wenn LAME4J nicht stabil genug für Sie ist, dann sind ich fürchte, Ihre Optionen wahrscheinlich:

  • Warten auf Sonne das Format für den Kern JRE zu lizenzieren. Dies, glaube ich, haben sie kürzlich gemacht, aber ich kenne keine Veröffentlichungsdaten (vielleicht mit JavaFX zu tun)
  • implementieren Sie Ihre eigenen in Java, und zahlen Sie die Lizenz. Ich würde das auch nicht mögen.
  • Schreiben Sie Ihren eigenen Java-Wrapper zu LAME, über JNA oder SWIG
  • beitragen zu Lame4J.
  • Wählen Sie ein anderes Format. OGG und FLAC sind ziemlich gut und relativ gut unterstützt.
+0

Danke Jamesh! Ich denke, ich habe etwas gefunden, was dem ähnlich ist, was Sie vorgeschlagen haben. –

+3

@Mohit: Würde es Ihnen etwas ausmachen, Ihre Auswahl zu teilen? Es könnte für andere nützlich sein, die sich für das Thema interessieren. – Rekin

+0

@Rekin: Ich sehe hier, ich hätte das tun sollen .. jetzt seit 3 ​​Jahren und ich habe diesen Code nicht mehr. Ich habe völlig vergessen, was ich benutzt habe. :( –

1

Verwenden Sie die Process APISoX

SoX mit Quelle kommt aufzurufen oder als vorkompilierte Binaries für Windows und Mac.

2

Der LAME4J verwendet die kostenlose, aber zeitlich begrenzte Lizenz und die unbegrenzte Lizenz kostet Sie etwas Geld.

Ich habe die Lamejb library auf der SourceForge gefunden, die nur die lahmen Binärdateien erfordert und funktioniert gut ohne zusätzliche Lizenzierung.

+0

Wenn du "zeitlich begrenzt" sagst, wie lange meinst du das? – Pacerier

+0

Wenn Sie LAMEOnJ verwenden, sollten Sie Ihren kostenlosen Lizenzschlüssel jeden Monat manuell verlängern. Sie können also kein stabiles Produkt mit LAMEOnJ-Bibliothek erstellen, ohne einen kommerziellen Schlüssel zu kaufen. –