JavaCV实现将视频以帧方式抽取
使用前:在用JavaCV实现以帧方式抽取视频的前,我们需要先从bytedeco/javacv下载第三方的压缩包,解压后按自己的需求往自己的IDE(*IDEA/Eclipse*)导入解压缩包下JAR文件;
接下来就以代码方式来说明如何利用Javacv来将视频以帧的方式抽取出来:
importorg.bytedeco.javacv.FFmpegFrameGrabber; importorg.bytedeco.javacv.Frame; importorg.bytedeco.javacv.Java2DFrameConverter; importjavax.imageio.ImageIO; importjava.awt.image.BufferedImage; importjava.io.File; importjava.io.IOException; importstaticorg.bytedeco.javacpp.opencv_core.IplImage; importstaticorg.bytedeco.javacpp.opencv_core.cvReleaseImage; importstaticorg.bytedeco.javacpp.opencv_imgcodecs.cvLoadImage; importstaticorg.bytedeco.javacpp.opencv_imgcodecs.cvSaveImage; importstaticorg.bytedeco.javacpp.opencv_imgproc.cvSmooth; publicclassJavaCV{ //theimage'spath; finalstaticStringimagePath="/home/lance/abc.jpg/"; //thevedio'spathandfilename; finalstaticStringvedioPath="/home/lance/target-a/"; finalstaticStringvedioName="origin-a.mp4"; publicstaticvoidmain(String[]args)throwsException{ smooth(imagePath); grabberFFmpegImage(vedioPath+vedioName,vedioPath ,vedioName,30); } //themethodofcompressimage; publicstaticvoidsmooth(StringfileName){ IplImageiplImage=cvLoadImage(fileName); if(iplImage!=null){ cvSmooth(iplImage,iplImage); cvSaveImage(fileName,iplImage); cvReleaseImage(iplImage); } } //grabffmpegImagefromvedio; publicstaticvoidgrabberFFmpegImage(StringfilePath,StringfileTargetPath ,StringfileTargetName,intgrabSize)throwsException{ FFmpegFrameGrabberff=FFmpegFrameGrabber.createDefault(filePath); ff.start(); for(inti=0;i以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。