Java音频格式转换,支持amr、aud、slk、silk转成mp3

说明:仅支持Windows系统下,amr、aud、slk、silk转成mp3。转换之前先下载转换工具,https://pan.baidu.com/s/1r4qNzW-7Hdaw0NzaARgvJQ   提取码:2olq


import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
 * 支持在windows系统下,amr、aud、slk、silk转成mp3格式
 */
public class AudioConversion {
	public static void main(String[] args) {
		String audioType = "amr";//源音频文件类型,amr、aud、slk、silk
		String source = "E:\\audio\\audio." + audioType;//源音频文件
		String target = "E:\\audio\\audio.mp3";//目标音频文件
		String path = "E:\\audio\\";//音频转换工具存放路径
		
		File sourceFile = new File(source);
		if(sourceFile.exists()) {
			String pcmPath = path + "audio.pcm";
			processPcm(path, source, pcmPath);//先转成pcm格式
			File file=new File(pcmPath);
			if(file.exists()) {
				processMp3(path, pcmPath, target);//再由pcm转成mp3
			} else {
				processFfmpegMp3(path, source, target);//直接转成mp3
			}
		} else {
			System.out.println("源文件不存在");
		}
		
	}
	
	// 调用sile_v3_decoder.exe,转成pcm格式
	private static void processPcm(String path, String source, String pcmPath){
    	List<String> commend = new ArrayList<String>();  
        commend.add(path+"silk_v3_decoder.exe");   
        commend.add(source);  
        commend.add(pcmPath);         
        try {  
            ProcessBuilder builder = new ProcessBuilder();  
            builder.command(commend);  
            Process p=builder.start();
            p=Runtime.getRuntime().exec("taskkill -f -t -im silk_v3_decoder.exe");
            p.waitFor();     
        } catch (Exception e) {
        	e.printStackTrace();
        }
    }
	
	// 调用ffmpeg,pcm转mp3 
    private static void processMp3(String path, String pcmPath, String target) {
    	//ffmpeg -y -f s16le -ar 24000 -ac 1 -i 源文件 目标文件
    	List<String> commend = new ArrayList<String>();  
    	commend.add(path+"ffmpeg.exe");   
        commend.add("-y");  
        commend.add("-f");  
        commend.add("s16le");  
        commend.add("-ar");  
        commend.add("24000");  
        commend.add("-ac");  
        commend.add("1");  
        commend.add("-i");  
        commend.add(pcmPath);  
        commend.add(target);   
        try {  
            ProcessBuilder builder = new ProcessBuilder();  
            builder.command(commend);
            Process p=builder.start();
            p.waitFor();
        } catch (Exception e) {
        	e.printStackTrace();
        }
    }
    
    // 调用ffmpeg.exe,转MP3 
 	private static void processFfmpegMp3(String path, String source, String target){
     	List<String> commend = new ArrayList<String>();  
         commend.add(path+"ffmpeg.exe");  
         commend.add("-i");  
         commend.add(source);  
         commend.add(target);         
         try {  
             ProcessBuilder builder = new ProcessBuilder();  
             builder.command(commend);  
             Process p=builder.start();
             p=Runtime.getRuntime().exec("taskkill -f -t -im ffmpeg.exe");
             p.waitFor();     
         } catch (Exception e) {  
        	 e.printStackTrace();
         }
     }
}

转换下面这些音频和视频,压缩包有包和源码,还有文档api. 整理资料不易,不喜欢可以自己百度 Audio decoders adpcm_4xm adpcm_adx adpcm_ct adpcm_ea adpcm_ea_r1 adpcm_ea_r2 adpcm_ea_r3 adpcm_ea_xas adpcm_ima_amv adpcm_ima_dk3 adpcm_ima_dk4 adpcm_ima_ea_eacs adpcm_ima_ea_sead adpcm_ima_qt adpcm_ima_smjpeg adpcm_ima_wav adpcm_ima_ws adpcm_ms adpcm_sbpro_2 adpcm_sbpro_3 adpcm_sbpro_4 adpcm_swf adpcm_thp adpcm_xa adpcm_yamaha alac ape atrac 3 cook dca dsicinaudio flac g726 imc interplay_dpcm liba52 libamr_nb libamr_wb libfaad libgsm libgsm_ms mace3 mace6 mp2 mp3 mp3adu mp3on4 mpc sv7 mpc sv8 mpeg4aac nellymoser pcm_alaw pcm_mulaw pcm_s16be pcm_s16le pcm_s16le_planar pcm_s24be pcm_s24daud pcm_s24le pcm_s32be pcm_s32le pcm_s8 pcm_u16be pcm_u16le pcm_u24be pcm_u24le pcm_u32be pcm_u32le pcm_u8 pcm_zork qdm2 real_144 real_288 roq_dpcm shorten smackaud sol_dpcm sonic truespeech tta vmdaudio vorbis wavpack wmav1 wmav2 ws_snd1 xan_dpcm Audio encoders ac3 adpcm_adx adpcm_ima_wav adpcm_ms adpcm_swf adpcm_yamaha flac g726 libamr_nb libamr_wb libfaac libgsm libgsm_ms libmp3lame libvorbis mp2 pcm_alaw pcm_mulaw pcm_s16be pcm_s16le pcm_s24be pcm_s24daud pcm_s24le pcm_s32be pcm_s32le pcm_s8 pcm_u16be pcm_u16le pcm_u24be pcm_u24le pcm_u32be pcm_u32le pcm_u8 pcm_zork roq_dpcm sonic sonicls vorbis wmav1 wmav2 Video decoders 4xm 8bps VMware video aasc amv asv1 asv2 avs bethsoftvid bmp c93 camstudio camtasia cavs cinepak cljr cyuv dnxhd dsicinvideo dvvideo dxa ffv1 ffvhuff flashsv flic flv fraps gif h261 h263 h263i h264 huffyuv idcinvideo indeo2 indeo3 interplayvideo jpegls kmvc loco mdec mjpeg mjpegb mmvideo mpeg1video mpeg2video mpeg4 mpegvideo msmpeg4 msmpeg4v1 msmpeg4v2 msrle msvideo1 mszh nuv pam pbm pgm pgmyuv png ppm ptx qdraw qpeg qtrle rawvideo roqvideo rpza rv10 rv20 sgi smackvid smc snow sp5x svq1 svq3 targa theora thp tiertexseqvideo tiff truemotion1 truemotion2 txd ultimotion vb vc1 vcr1 vmdvideo vp3 vp5 vp6 vp6a vp6f vqavideo wmv1 wmv2 wmv3 wnv1 xan_wc3 xl zlib zmbv Video encoders asv1 asv2 bmp dnxhd dvvideo ffv1 ffvhuff flashsv flv gif h261 h263 h263p huffyuv jpegls libtheora libx264 libxvid ljpeg mjpeg mpeg1video mpeg2video mpeg4 msmpeg4 msmpeg4v1 msmpeg4v2 pam pbm pgm pgmyuv png ppm qtrle rawvideo roqvideo rv10 rv20 sgi snow svq1 targa tiff wmv1 wmv2 zlib zmbv
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值