JCodec 를 이용하면 아주 편리하게 동영상의 특정 프레임으로부터 이미지를 추출할 수 있다.
pom.xml 파일에 아래와 같이 라이브러리를 추가하여 이미지 추출을 위한 AWT(BufferedImage)와 함께 사용이 가능하다.
org.jcodec
jcodec
0.2.3
org.jcodec
jcodec-javase
0.2.3
동영상의 특정 프레임에서 이미지를 추출하는 것은 아주 간단하다. 여기에서는 0 번째 프레임에서 이미지를 추출하여 썸네일로 사용하도록 했다.
package tests;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.jcodec.api.FrameGrab;
import org.jcodec.api.JCodecException;
import org.jcodec.common.model.Picture;
import org.jcodec.scale.AWTUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Mp4Test {
private Logger log = LoggerFactory.getLogger(getClass().getName());
private static final String IMAGE_PNG_FORMAT = "png";
/**
*
*
* @param source mp4 file.
* @param thumbnail
* @return
* @throws IOException
* @throws JCodecException
*/
public File getThumbnail(File source, File thumbnail) throws IOException, JCodecException {
log.debug("extracting thumbnail from video");
int frameNumber = 0;
Picture picture = FrameGrab.getFrameFromFile(source, frameNumber);
BufferedImage bufferedImage = AWTUtil.toBufferedImage(picture);
ImageIO.write(bufferedImage, IMAGE_PNG_FORMAT, thumbnail);
return thumbnail;
}
}
참고자료
jcodec - a pure java implementation of video/audio codecs.
댓글 없음:
댓글 쓰기