`
jlx351312
  • 浏览: 3704 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

视频格式转码器

阅读更多

import java.io.File;
import java.util.List;

public class ConvertVideo {

	// 原始文件
	private String videoPath;
	// 目标文件
	private String targetPath;

	public ConvertVideo(String videoPath, String targetPath) {
		this.videoPath = videoPath;
		this.targetPath = targetPath;
	}

	public synchronized void process() {
		int type = checkContentType();
		if (type == 0) {
			this.ffmpegTransVideo();
			this.ffmpegTransImage();
		} else if (type == 1) {
			this.mencoderTransVideo();
		}
	}

	public synchronized int checkContentType() {
		String type = videoPath.substring(videoPath.lastIndexOf(".") + 1,
				videoPath.length()).toLowerCase();
		// ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
		if (type.equals("avi")) {
			return 0;
		} else if (type.equals("mpg")) {
			return 0;
		} else if (type.equals("wmv")) {
			return 0;
		} else if (type.equals("3gp")) {
			return 0;
		} else if (type.equals("mov")) {
			return 0;
		} else if (type.equals("mp4")) {
			return 0;
		} else if (type.equals("asf")) {
			return 0;
		} else if (type.equals("asx")) {
			return 0;
		} else if (type.equals("flv")) {
			return 0;
		}
		// 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等),
		// 可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式.
		else if (type.equals("wmv9")) {
			return 1;
		} else if (type.equals("rm")) {
			return 1;
		} else if (type.equals("rmvb")) {
			return 1;
		}
		return 9;
	}

	public synchronized static boolean checkfile(String path) {
		File file = new File(path);
		if (!file.isFile()) {
			return false;
		}
		return true;
	}

	/**
	 * 使用mencoder转码
	 * 
	 * @param videoPath
	 *            源路径 — 要转换的视频文件
	 * @param targetPath
	 *            目标路径 — 转换后的视频flv
	 * @return 返回目标路径
	 */
	public synchronized String mencoderTransVideo() {
		List<String> commend = new java.util.ArrayList<String>();
		commend.add("d:\\flv\\MediaCoder\\codecs\\mencoder.exe");
		commend.add(videoPath);
		// 音频采用mp3编码
		commend.add("-oac");
		commend.add("mp3lame");
		// 采用高质DivX视频编码,视频码率为112kbps
		commend.add("-ovc");
		commend.add("lavc");
		commend.add("-lavcopts");
		commend
				.add("vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=-1:cmp=3:vb_strategy=1");
		commend.add("-lameopts");
		commend.add("abr:br=56");
		// 声音采样频率设置,现为22K
		commend.add("-srate");
		commend.add("22050");
		// -sws就是用来设置品质的,默认值为2
		commend.add("-sws");
		commend.add("3");
		// 宽度为208,高度自动调整保持比例;
		// -vf scale=-3:176宽度自动调整保持比例,高度为176;如果想保持原来的大小可以不要这个参数
		commend.add("-vf");
		commend.add("scale=512:-3");
		// 帧速率设置
		commend.add("-ofps");
		commend.add("18");
		/*
		 * mode=3:cbr:br=24单声道 音频码率为24kbps;-lameopts
		 * mode=0:cbr:br=24立体声,音频码率为24kbps; 还可设置音量,-lameopts
		 * mode=3:cbr:br=32:vol=1,设置范置为1~10,但不宜设得太高
		 */
		commend.add("-lameopts");
		commend.add("vbr=3:br=128");
		commend.add("-o");
		commend.add(targetPath);
		// 控制台显示执行的命令
		// System.out.println(commend);
		try {
			ProcessBuilder builder = new ProcessBuilder();
			builder.command(commend);
			builder.start();
			return targetPath;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	public synchronized String ffmpegTransVideo() {
		// if (!checkfile(videoPath)) {
		// System.out.println(videoPath + " is not file aaa");
		// return false;
		// }
		List<String> commend = new java.util.ArrayList<String>();
		commend.add("D:\\sosftware\\ffmpeg-20150312-git-3bedc99-win32-static\\ffmpeg-20150312-git-3bedc99-win32-static\\bin\\ffmpeg.exe");
		commend.add("-i");
		commend.add(videoPath);
		commend.add("-ab");
		commend.add("64");
		// commend.add(" -acodec ");
		// commend.add("codec");
		commend.add("-ac");
		commend.add("2");
		commend.add("-ar");
		commend.add("22050");
		// 清晰度 -qscale 4 为最好可是文件大, -qscale 6就可以了
		commend.add("-qscale");
		commend.add("6");
		// commend.add("-b");
		// commend.add("768");
		// commend.add("230");
		// commend.add("-s");
		// commend.add("352×240");
		// commend.add("-r");
		// commend.add("29.97");
		commend.add("-y");
		commend.add(targetPath);
		System.out.println(commend);
		try {
			ProcessBuilder builder = new ProcessBuilder();
			builder.command(commend);
			builder.start();
			return targetPath;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	// 生成图片 参数String newfilename, String newimg
	public synchronized boolean ffmpegTransImage() {
		List<String> commend = new java.util.ArrayList<String>();
		commend.add("d:\\flv\\MediaCoder\\codecs\\ffmpeg.exe");
		commend.add("-i");
		commend.add("d:\\test\\a.mpg");
		commend.add("-y");
		commend.add("-f");
		commend.add("image2");
		commend.add("-ss");
		commend.add("38");
		commend.add("-t");
		commend.add("0.001");
		commend.add("-s");
		commend.add("320×240");
		commend.add("d:\\test\\b.jpg");
		try {
			ProcessBuilder builder = new ProcessBuilder();
			builder.command(commend);
			builder.start();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
	
	
	public static void main(String[] args) {
		ConvertVideo cv =new ConvertVideo("","");
	}
	
}

分享到:
评论

相关推荐

    快转视频格式转换器

    "快转视频格式转换器"是一款强大的多媒体工具,主要用于视频和音频文件的处理。这款软件提供了丰富的功能,包括但不限于格式转换、视频音频截取、编辑和合并,使得用户能够根据需求自由调整和优化他们的多媒体资源。...

    艾奇视频格式转换器(白金版)注册码

    艾奇视频格式转换器(白金版)是一款强大的多媒体处理工具,专为用户解决各种视频格式转换问题。这款软件能够支持几乎所有常见的视频格式,包括但不限于MP4、AVI、MOV、WMV、MKV、FLV等,让用户可以自由地在不同设备...

    艾奇MTS视频格式转换器(MTS、M2TS视频格式转换工具)V4.11.328官方最新安装版

    艾奇MTS视频格式转换器 是一款专门针对高清DV拍摄的MTS、M2TS视频格式进行格式转换处理和简单视频编辑的专业软件软件。可以把MTS和M2TS格式的视频转换为任意一种常见视频格式。包括MP4/MPG/H.264/WMV/AVI/FLV/VOB等...

    私房高清视频格式转换器(高清视频格式转换工具)v2.10.416官方安装版

    私房高清视频格式转换器软件介绍 私房高清视频格式转换器是非常专业的高清格式转换器,支持输出高清AVI视频,高清MP4视频,MKV格式视频,高清MOV,高清TS,高清WMV,高清H.264等十余种高清视频格式,相对市场上的...

    视频格式转换器

    视频格式转换器是一种工具软件,专门用于将不同的视频文件格式转换为用户所需的其他格式。在当前的数字媒体环境中,各种设备和平台支持的视频格式各不相同,因此,拥有一款强大的视频格式转换器是非常实用的。这款...

    最新手机视频格式转换器

    "最新手机视频格式转换器"这一标题暗示了我们讨论的主题是一款专为智能手机设计的软件,它的主要功能是将不同格式的视频文件转换成适合在手机上播放的格式。随着科技的发展,手机已成为多媒体消费的主要平台,但不同...

    多功能视频格式转换器

    《多功能视频格式转换器详解与应用》 在数字化媒体日益普及的时代,视频格式转换成为许多用户日常需求的一部分。本文将围绕“多功能视频格式转换器”这一主题,详细讲解其核心功能、适用场景以及如何操作,旨在帮助...

    黑鲨鱼免费视频格式转换器

    "黑鲨鱼免费视频格式转换器"是一款专为用户设计的高效、易用的软件工具,主要用于处理各种视频文件的格式转换任务。在当今多媒体内容日益丰富的时代,视频格式的兼容性和转换问题变得至关重要。这款软件能够帮助用户...

    XV视频格式转换器

    【XV视频格式转换器详解】 XV视频格式转换器是一款专为用户设计的高效、易用的视频格式转换工具,其最新版本为XVE7s+。这款软件的主要功能是帮助用户将不同类型的视频文件转换成XV格式,以满足特定设备或平台的播放...

    佳佳全能视频格式转换器 v11.8.0.0.zip

    佳佳全能视频格式转换器是一款专业的、操作简单的、智能的视频格式转换器。佳佳全能视频格式转换器可以方便的将各种流行的视频格式转换任意相互转换。并且采用智能编码方式,转换速度和质量堪称完美。比如可以将网上...

    万能视频格式转换器

    【万能视频格式转换器】是一款强大的视频处理工具,它能够支持各种常见的视频格式之间的转换,使得用户可以轻松地将视频文件从一种格式转换为另一种,以适应不同的播放设备或满足个人需求。这款软件通常具备易用的...

    万能视频格式转换器,万能视频格式转换器

    万能视频格式转换器是一种强大的工具,用于处理各种视频文件的格式转换问题。在数字媒体领域,不同的设备、平台和应用程序支持的视频格式各不相同,这就需要一个能够兼容多种格式的转换软件来确保视频能在不同环境...

    amv视频格式转换器下载amv精灵v3·00绿色版.rar

    AMV视频格式转换器是一款专为处理AMV视频文件而设计的软件工具,主要用于将不同视频格式转换为AMV格式,适用于便携式媒体设备,如MP4播放器、儿童手表等。AMV精灵v3.00绿色版是这个转换器的一个版本,"绿色版"意味着...

    凡人ASF视频格式转换器 v4.1.5.0.zip

    凡人ASF视频格式转换器是针对微软公司ASF流媒体格式设计的视频格式转换软件,软件的主要功能是将ASF视频转换为各种流行的视频格式,如ASF转换AVI,ASF转MP4,ASF转MPG,ASF转VCD都可以实现快速转换。软件还支持将ASF...

    蒲公英iPhone视频格式转换器 v5.7.8.0.zip

    蒲公英iPhone视频格式转换器是一款功能强大的iPhone视频格式转换工具。软件是您的iPhone必备工具软件,软件针对iPhone预置了各种转换方案,可以帮您转换各种网上流行的视频格式为iPhone所需的MPEG-4, H.264, MOV格式...

    艾奇MP4视频格式转换器V4.0.806中文官方安装版

    艾奇MP4视频格式转换器是一款非常好用的并且深受用户好评的MP4的全能转换软件,可以把任何常见格式转换到.mp4格式。使用简便非常适合计算机新手,预设了多种类型和清晰度的mp4格式,简单点选就能输出到mp4机,手机,...

    极速MP4视频格式转换器v2.20官方安装正式版

    极速MP4视频格式转换器是一款功能强大的MP4视频转换器,它可以帮助您将几乎所有流行的视频格式,如:RM、RMVB、VOB、DAT、VCD、DVD、SVCD、ASF、MOV、QT、MPEG、WMV、 MP4、3GP、DivX、XviD、AVI等视频文件转换为MP4...

Global site tag (gtag.js) - Google Analytics