Java獲取視訊第一幀做縮圖
阿新 • • 發佈:2019-02-19
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(); } }
好啦,去看看你的縮圖吧^_^