当前位置 : 主页 > 编程语言 > java >

java通过Ffmpeg将上传的录音转为mp3格式

来源:互联网 收集:自由互联 发布时间:2021-06-28
java通过Ffmpeg将上传的录音转为mp3格式,Ffmpeg.exe执行文件官网下载 package com.hewei.ffmpeg;/** * @author jingzhongbao * * 2017年11月10日 下午4:40:15 (ps:百度云盘文件下载地址http://pan.baidu.com/s/1pLJYcqv
java通过Ffmpeg将上传的录音转为mp3格式,Ffmpeg.exe执行文件官网下载
package com.hewei.ffmpeg;


/**
 * @author jingzhongbao
 *
 * 2017年11月10日 下午4:40:15
 (ps:百度云盘文件下载地址http://pan.baidu.com/s/1pLJYcqv)
 */
public class Ffmpeg {
	/** 
     * 将上传的录音转为mp3格式 
     * @param webroot 项目的根目录 
     * @param sourcePath 文件的相对地址 
     */  
    public static void ToMp3(String webroot, String sourcePath){
        //File file = new File(sourcePath);
        String targetPath = sourcePath+".mp3";//转换后文件的存储地址,直接将原来的文件名后加mp3后缀名
        Runtime run = null;
        try {
            run = Runtime.getRuntime();
            long start=System.currentTimeMillis();
            String ffmpeg = "ffmpeg/";//执行文件相对路径
            String os = System.getProperty("os.name");  
            if (null != os && os.toLowerCase().startsWith("win")){  
            	ffmpeg = ffmpeg + "windows";
            } else if (null != os && os.toLowerCase().indexOf("linux") > -1) {
            	ffmpeg = ffmpeg + "linux";
            }
            //执行ffmpeg.exe,前面是ffmpeg.exe的地址,中间是需要转换的文件地址,后面是转换后的文件地址。-i是转换方式,意思是可编码解码,mp3编码方式采用的是libmp3lame
            Process p=run.exec(webroot + ffmpeg + "/ffmpeg -i "+webroot+sourcePath+" -acodec libmp3lame "+webroot+targetPath);
            //释放进程
            p.getOutputStream().close();
            p.getInputStream().close();
            p.getErrorStream().close();
            p.waitFor();
            long end=System.currentTimeMillis();
            //m_logger.info(sourcePath+" convert success, costs:"+(end-start)+"ms");
            //删除原来的文件
            //if(file.exists()){
                //file.delete();
            //}    
        } catch (Exception e) {
            e.printStackTrace();
        }finally{    
            //run调用lame解码器最后释放内存
            run.freeMemory();
        }
    }
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ToMp3("D:/ffmpeg/","talkvoice20171014164631.amr");
	}

}
网友评论