在windows系统上使用java代码在ffmpeg环境对音频进行转换wav,pcm,ogg

本文介绍如何利用Java编程语言结合FFmpeg工具进行音频格式转换的过程,特别是从WAV到PCM的转换方法,并提供了详细的代码示例。

1.先装一个ffmpeg环境,安装方法请自行百度。

2.建一个类FfmpegTest

public class FfmpegTest {

	public static void main(String[] args) {
        String sPath = "d:\\music\\test.wav";
        String tPath = "c:\\music\\test.pcm";
        try {
            new FfmpegTest().changeAmrToMp3(sPath,tPath);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void changeAmrToMp3(String sourcePath, String targetPath) throws Exception {
        String webroot = "c:\\ffmpeg\\bin";
        Runtime run = null;
        try {
            run = Runtime.getRuntime();
            long start=System.currentTimeMillis();
            System.out.println(new File(webroot).getAbsolutePath());
            //执行ffmpeg.exe,前面是ffmpeg.exe的地址,中间是需要转换的文件地址,后面是转换后的文件地址。-i是转换方式,意思是可编码解码,mp3编码方式采用的是libmp3lame
            //wav转pcm
            //Process p=run.exec(new File(webroot).getAbsolutePath()+"/ffmpeg -y -i "+sourcePath+" -acodec pcm_s16le -f s16le -ac 1 -ar 16000 "+targetPath);
            //mp3转pcm
            Process p=run.exec(new File(webroot).getAbsolutePath()+"/ffmpeg -y -i "+sourcePath+" -acodec pcm_s16le -f s16le -ac 1 -ar 16000 "+targetPath);
            //释放进程
            p.getOutputStream().close();
            p.getInputStream().close();
            p.getErrorStream().close();
            p.waitFor();
            long end=System.currentTimeMillis();
            System.out.println(sourcePath+" convert success, costs:"+(end-start)+"ms");
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            //run调用lame解码器最后释放内存
            run.freeMemory();
        }
    } 


 详情参考百度语音音频转码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值