Java使用FFmpeg獲取視頻的縮略圖
ffmpegPath爲FFmpeg.exe所在路徑
upFilePath爲視頻的所在路徑(本地路徑)
mediaPicPath爲縮略圖的存儲路徑(D:/test.jpg)
private void handler(String ffmpegPath, String upFilePath, String mediaPicPath) {
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("0"); // 添加起始時間爲第17秒
cutpic.add("-t"); // 添加參數"-t",該參數指定持續時間
cutpic.add("0.001"); // 添加持續時間爲1毫秒
cutpic.add("-s"); // 添加參數"-s",該參數指定截取的圖片大小
cutpic.add("500*400"); // 添加截取的圖片大小爲350*240
cutpic.add(mediaPicPath); // 添加截取的圖片的保存路徑
ProcessBuilder builder = new ProcessBuilder();
try {
builder.command(cutpic);
builder.redirectErrorStream(true);
// 如果此屬性爲 true,則任何由通過此對象的 start() 方法啓動的後續子進程生成的錯誤輸出都將與標準輸出合併,
// 因此兩者均可使用 Process.getInputStream() 方法讀取。這使得關聯錯誤消息和相應的輸出變得更容易
builder.start();
} catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
}
好啦,去看看你的縮略圖吧^_^