How to write FLAC files in java

I have a requirement to write FLAC files in java. Earlier, I wrote an audio input to a WAV file, and then converted it to a FLAC file using an external converter

I searched JFlac to find any API through which I can write FLAC files. I found that AudioFileFormat.TYPE in java only supports the following file formats: AIFC, AIFF, SND, AU, WAVE.

I would like to have a method where I can capture audio from a microphone and, using an API such as Audiosystem.write, write it to a FLAC file instead of a WAV file.

Please suggest a method or API that can solve my problem.

+6
source share
3 answers

You can use this lib. Here is a simple example using version 0.2.3 (javaFlacEncoder-0.2.3-all.tar.gz). Extract the downloaded file and then import javaFlacEncoder-0.2.3.jar into your project. For more documentation see here :

package fr.telecomParisTech; import java.io.File; import javaFlacEncoder.FLAC_FileEncoder; public class SoundConverter { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub FLAC_FileEncoder flacEncoder = new FLAC_FileEncoder(); File inputFile = new File("hello.wav"); File outputFile = new File("hello.flac"); flacEncoder.encode(inputFile, outputFile); System.out.println("Done"); } } 
+11
source

You can record the audio stream directly to the FLAC file using javaflacencoder:

 AudioSystem.write(audioInputStream, FLACFileWriter.FLAC, new File("E:\\temp.flac")); 
+5
source

If you want to change the sampling rate, use ffmpeg like this ffmpeg -i sourcefile.wav -ar 16000 targetfile.flac

-1
source

Source: https://habr.com/ru/post/897585/


All Articles