ffmpeg转换视频并截图,flvplay.swf播放视频

☆樱花仙子☆ 提交于 2019-12-06 03:38:02

在项目中需要上传视频,并且需要使用播放器播放视频。客户要求播放器要显示一个缩略图。在网上搜并参看了相关的书籍,提供了一下的解决方案,采用ffmpeg进行视频转换并从视频中截取相应的帧作为缩略图,在前台使用flvplay.swf播放器进行视频的播放盒缩略图的显示。具体解决方案如下:
1.使用ffmpeg进行视频转换以及截图的代码如下(忘了参考那本书上的代码):

/**
	 * @功能:①转换上传的视频为FLV格式;②从上传的视频中截图。
	 * @参数:①upFilePath: 用于指定要转换格式的文件路径;以及用来指定要截图的视频。<br>
	 * @参数:②flvFilePath:用于指定转换为FLV格式后的文件的保存路径。<br>
	 * @参数:③cutPicPath: 用于指定截取的图片的保存路径
	 * @返回:boolean型值
	 */
	private boolean convertVideo(String upFilePath, String flvFilePath,
			String cutPicPath) {
		String ffmpegPath = getServletContext().getRealPath("\\Video\\")+"\\ffmpeg.exe"; // 获取在web.xml中配置的转换工具(ffmpeg.exe)的存放路径
		// 创建一个List集合来保存转换视频文件为flv格式的命令
		List<String> convert = new ArrayList<String>();
		convert.add(ffmpegPath); // 添加转换工具路径
		convert.add("-i"); // 添加参数"-i",该参数指定要转换的文件
		convert.add(upFilePath); // 添加要转换格式的视频文件的路径
		convert.add("-qscale");
		convert.add("6");
		convert.add("-ab");
		convert.add("64");
		convert.add("-acodec");
		convert.add("mp3");
		convert.add("-ac");
		convert.add("2");
		convert.add("-ar");
		convert.add("22050");
		convert.add("-r");
		convert.add("24");
		convert.add("-y"); // 添加参数"-y",该参数指定将覆盖已存在的文件
		convert.add(flvFilePath);
       
		// 创建一个List集合来保存从视频中截取图片的命令
		List<String> cutpic = new ArrayList<String>();
		cutpic.add(ffmpegPath);
		cutpic.add("-i");
		cutpic.add(upFilePath); // 同上(指定的文件即可以是转换为flv格式之前的文件,也可以是转换的flv文件)
		cutpic.add("-y");
		cutpic.add("-f");
		cutpic.add("image2");
		cutpic.add("-ss"); // 添加参数"-ss",该参数指定截取的起始时间
		cutpic.add("2"); // 添加起始时间为第9秒
		cutpic.add("-t"); // 添加参数"-t",该参数指定持续时间
		cutpic.add("0.001"); // 添加持续时间为1毫秒
		cutpic.add("-s"); // 添加参数"-s",该参数指定截取的图片大小
		cutpic.add("350*240"); // 添加截取的图片大小为350*240
		cutpic.add(cutPicPath); // 添加截取的图片的保存路径

		boolean mark = true;
		ProcessBuilder builder = new ProcessBuilder();
		try {
			builder.command(convert);
			builder.start();
			builder.command(cutpic);
			builder.start();
		} catch (Exception e) {
			mark = false;
			System.out.println(e);
			e.printStackTrace();
		}
		return mark;
	}

2.使用flvplayer.swf显示缩略图并播放视频代码如下:

<table>                                              
  <tr>
    <!-- 嵌入Flash播放器 -->
    <td  align="center">
        <object width="452" height="339" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
	   <param name="movie" value="<%=basePath%>Video/flvplayer.swf?file=<%=basePath%>uploadVideos/${video.url}&image=<%=basePath%>uploadVideos/${video.pic}"/>
	    <embed src="<%=basePath%>/Video/flvplayer.swf?file=<%=basePath%>uploadVideos/${video.pic}" width="40%" height="30%"> </embed>
	  </object>
    </td>
  </tr>
</table>

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!