当前功能包括:
程序中给出了java的实现方式。
x1.转MP3为wav
ffmpeg -i input.mp3 -acodec pcm_s16le -ac 2 -ar 44100 output.wav
2.转m4a为wav
ffmpeg -i input.m4a -acodec pcm_s16le -ac 2 -ar 44100 output.wav
3.wav转PCM
ffmpeg -i input.wav -f s16le -ar 44100 -acodec pcm_s16le output.raw
4.PCM转wav
ffmpeg -i input.raw -f s16le -ar 44100 -ac 2 -acodec pcm_s16le output.wav
xxxxxxxxxx
# ffmpeg -i INPUT -ac CHANNELS -ar FREQUENCY -acodec PCMFORMAT OUTPUT
-i 设定输入流
-f 设定输出格式 (s16le为16位,f32le为32位)
-ar 设定采样率
-ac 设定声音的Channel数 (1表示单声道)
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
xxxxxxxxxx
...
//wav sample rate 参数转换
AudioConversionUtils.convert("src/test/resources/test.wav", "build/output/test_.wav", avcodec.AV_CODEC_ID_PCM_S16LE, 8000, 1);
//wav转mp3编码示例
AudioConversionUtils.convert("src/test/resources/test.wav", "build/output/test.mp3", avcodec.AV_CODEC_ID_MP3, 8000, 1);
//mp3转wav编码示例
AudioConversionUtils.convert("src/test/resources/test.mp3", "build/output/test.wav", avcodec.AV_CODEC_ID_PCM_S16LE, 16000, 1);
//音频的float数组
logger.info("audio float array: {}", Arrays.toString(AudioArrayUtils.frameData("src/test/resources/test.wav")));
...