AAC encoding capabilities for the JVM
This library provides AAC encoding capabilities for the JVM. It utilizes the FDK AAC library via JNA in order to do so.
Important! While this library uses LGPL-3, please see the FDK AAC license for additional information regarding re/distribution and licensing limitations.
Enjoying my work? A show of support would be much obliged :grin:
Artifacts are available on maven central:
Maven
<dependency>
<groupId>org.sheinbergon</groupId>
<artifactId>jna-aac-encoder</artifactId>
<version>2.1.0</version>
</dependency>
Gradle
compile 'org.sheinbergon:jna-aac-encoder:2.1.0'
2.0.x
versions of FDK-AAC might work, but haven't been tested.2.0.0
of this library0.1.6
/0.1.5
FDK-AAC support and Windows 32 bit support, please use version 0.1.9
of this libraryAudioInputStream input = AudioSystem.getAudioInputStream(...);
File output = new File(...);
AudioSystem.write(input, AACFileTypes.AAC_LC, output);
Performance benchmarks comparing JNA to a BINARY application(aac-enc
) are available using JMH and JMH Visualizer:
To run the benchmarks locally:
libfdk-aac.so
2.0.2 library installed (either from an external repository or manually compiled)aac-enc
binary installed (either from an external repository or manually compiled)./gradlew -b benchmark.gradle jmh jmhReport
-PaacEncBin=/CUSTOM/PATH/TO/AAC-ENC
build/reports/benchmark/index.html
in your browser.Currently, libfdk-aac itself supports only the pcm_s16le WAV input format, meaning:
While this form of input formatting seems to be the common raw-audio formatting, it's important to note that providing input audio with different formatting will cause the encoding process to fail.
Additional restrictions: