ffmpeg轉換視頻並截圖,flvplay.swf播放視頻

在項目中須要上傳視頻,而且須要使用播放器播放視頻。客戶要求播放器要顯示一個縮略圖。在網上搜並參看了相關的書籍,提供了一下的解決方案,採用ffmpeg進行視頻轉換並從視頻中截取相應的幀做爲縮略圖,在前臺使用flvplay.swf播放器進行視頻的播放盒縮略圖的顯示。具體解決方案以下:
1.使用ffmpeg進行視頻轉換以及截圖的代碼以下(忘了參考那本書上的代碼):
html

/**
	 * @功能:①轉換上傳的視頻爲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顯示縮略圖並播放視頻代碼以下: java

<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>
相關文章
相關標籤/搜索