Source
private static void getImageFromFrame(File videoFile) {
String fileName = videoFile.getAbsolutePath();
String baseName = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.lastIndexOf("."));
String savePath = fileName.substring(0, fileName.lastIndexOf("\\"));
double frameNumber = 0d;
try {
SeekableByteChannel bc = NIOUtils.readableFileChannel(videoFile);
MP4Demuxer dm = new MP4Demuxer(bc);
DemuxerTrack vt = dm.getVideoTrack();
frameNumber = vt.getMeta().getTotalDuration() / 5.0;
System.out.println(vt.getMeta().getTotalDuration());
System.out.println(frameNumber);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
Picture frame = FrameGrab.getNativeFrame(new File(fileName), frameNumber);
BufferedImage img = AWTUtil.toBufferedImage(frame);
File pngFile = new File(savePath + "/" + baseName + ".png");
if (!pngFile.exists()) {
pngFile.createNewFile();
}
ImageIO.write(img, "png", pngFile);
} catch (IOException e) {
e.printStackTrace();
} catch (JCodecException e) {
e.printStackTrace();
}
}
Main
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Videos\\두견\\Good Luck.mp4");
App.getImageFromFrame(file);
}
pom.xml
<dependency>
<groupId>org.jcodec</groupId>
<artifactId>jcodec</artifactId>
<version>0.1.9</version>
</dependency>
<dependency>
<groupId>org.jcodec</groupId>
<artifactId>jcodec-javase</artifactId>
<version>0.1.9</version>
</dependency>
'Java & SpringFramework' 카테고리의 다른 글
.jar 파일 실행시 한글깨짐 (0) | 2016.11.30 |
---|---|
JAVA 시간 차이 구하기 (0) | 2016.10.31 |
maven dependency 라이브러리 추가 해서 패키징하기 (0) | 2016.10.12 |
Seed128 문자열 암호화/복호화 (0) | 2016.10.12 |
Jasypt PBE 암호화/복호화 (PBEWITHSHA256AND256BITAES-CBC-BC) (0) | 2016.10.11 |