<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>

--------------------------------------------------------------------------------------------------


int frameNumber;

String fileName = fileVO.getFileName();

final String thumbnail_path = fileVO.getSaveFileNm()+"_Thumbnail.png";

File thumbnail = new File(thumbnail_path);

if(!thumbnail.exists()) {

DirectoryStream.Filter<Path> filter = file -> {
return fileName.toString().endsWith(".mp4") || fileName.toString().endsWith(".MP4")
|| fileName.toString().endsWith(".mov") || fileName.toString().endsWith(".MOV")
|| fileName.toString().endsWith(".avi") || fileName.toString().endsWith(".AVI")
|| fileName.toString().endsWith(".wmv") || fileName.toString().endsWith(".WMV");
};

Path dirName = Paths.get(fileVO.getFileSaveRout()+ File.separator);


try (DirectoryStream<Path> stream = Files.newDirectoryStream(dirName, filter)) {
stream.forEach(path -> {
try {
Picture picture = FrameGrab.getNativeFrame(
new File(path.toString()), frameNumber);
BufferedImage bufferedImage = AWTUtil.toBufferedImage(picture);
ImageIO.write(bufferedImage, "png", new File(thumbnail_path));

} catch (Exception e1) {
e1.printStackTrace();
}
});

}
}

file_path =  fileVO.getSaveFileNm()+"_Thumbnail.png";
}