如何利用Ffmpeg进行视频截图

时间:2021-06-10 15:25:57
ffmpeg.exe  能解析的格式 (asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
对ffmpeg.exe无法解析的文件格式(wmv9,rm,rmvb等),

可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式;

那么在Java中如何实现视频截图呢?案例如下

package com.yrj.ffmpeg;

import java.util.List;
public class Fmmpeg {
/**
*
* @param videoLocation
* @param imageLocation
* @param timeStart "hh:mm:ss[.xxx] or Secends"
* @param frames 帧数
* @return
*/
public static boolean Capture(String videoLocation,String timeStart,String frames)
{
List<String> commend = new java.util.ArrayList<String>();
commend.add("res\\ffmpeg");
commend.add("-ss");
commend.add(timeStart);
commend.add("-i");
commend.add(videoLocation);
commend.add("-y");
commend.add("-f");
commend.add("image2");
commend.add("-vframes");
commend.add(frames);
commend.add("picture\\b-%3d"+"timeStart.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){
boolean flag = Capture("Video\\video.wmv","1","4");
if(flag != false)
{
System.out.println("视频截图成功!!!");
}
}
}