linux下使用ffmpeg将flv、mp4、rmvb转换为libx264的mp4

本文介绍了在Linux系统中如何使用ffmpeg工具将flv、mp4、rmvb等格式的视频文件转换为libx264编码的mp4格式。通过示例命令和java批量转换方法,详细解析了转换过程。

1.示例

       ffmpeg -i  testrmvb.rmvb  -c:v libx264 -strict -2 testrmvb.mp4

2.java批量转换

  

public static void dirGoThrough(){
File baseDir=new File("/home/wwwroot/www/shs/upload/file/");//遍历的文件夹
File[] fs = baseDir.listFiles();
int total = 0;
int mp4total = 0;
        if(fs!=null){
	        for(File dir:fs){
	        	File[] files = dir.listFiles();
	        	for(File f:files){
	        		if(f.isFile()){
	        			if(f.getName().toLowerCase().endsWith(".flv")||f.getName().toLowerCase().endsWith(".mp4")||
	        					f.getName().toLowerCase().endsWith(".rmvb")){
	        				boolean flag = ffmpegTransfer(f.getAbsolutePath());
	        				if(!flag){
	        					LogWriteDao.WriteLog(f.getAbsolutePath(), "transfererror", "/pdf/log/");
	        				}
	        				total++;
	        			}
//	        			if(f.getName().toLowerCase().endsWith(".mp4")){
//	        				mp4total++;
//	        			}
	        		}
	        		
	        	}
	        }
        }
        System.out.println("总数量:"+total+"--mp4的总数量:"+mp4total);
        LogWriteDao.WriteLog("total:"+total, "transferfinished", "/pdf/log/");
	}
	
	public static boolean ffmpegTransfer(String infile) {  
		String outfile = infile.replace(".mp4", "_libx264.mp4").replace(".flv", "_libx264.mp4")
				.replace(".rmvb", "_libx264.mp4");
		String avitoflv = "ffmpeg -i "+infile+" -c:v libx264 -strict -2 "+outfile;  
		try {  
			Runtime rt = Runtime.getRuntime();  
			Process proc = rt.exec(new String[]{"sh","-c",avitoflv});  
			InputStream stderr = proc.getErrorStream();  
			InputStreamReader isr = new InputStreamReader(stderr);  
			BufferedReader br = new BufferedReader(isr);  
			String line = null;  
			
			while ( (line = br.readLine()) != null)  
				System.out.println(line);  
	            int exitVal = proc.waitFor();  
	            System.out.println("Process exitValue: " + exitVal);  
		} catch (Throwable t) {  
			t.printStackTrace();  
			return false;  
		}  
		return true;  
	} 

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值