购物网站排名2016,从零学php网站开发,免费推广网站注册入口,福田莲花北网站建设之前做了一个资源库的小项目#xff0c;因为上传资源文件包含视频等附件#xff0c;所以就需要时用到这个功能。通过对视频截图#xff0c;然后作为封面缩略图#xff0c;达到美观效果。
首先呢#xff0c;需要准备相关的jar包#xff0c;之前我用的是低版本的1.4.2因为上传资源文件包含视频等附件所以就需要时用到这个功能。通过对视频截图然后作为封面缩略图达到美观效果。
首先呢需要准备相关的jar包之前我用的是低版本的1.4.2后来就换成了高版本的1.5.9
因为我使用的是MyEclipse开发的使用IDEA开发的可以参考其他博主的pom.xml依赖。
下面是1.5.9版本的 图片红框里的是linux和windows下的jar包(注根据运行环境选择否则会报错)
java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
jar包下载 链接: https://pan.baidu.com/s/1yx2YnEmahEP0FsLvoj1z-w 提取码0912
我使用的方法是
通过java获取视频信息使用FFmpeg方式截取视频第n帧生成图片
下面展示 java代码。
FFmpegFrameGrabber ff null;
try{//图片File targetFile new File(logoAbsolutePath);//视频ff new FFmpegFrameGrabber(yfResourceResource.getAbsolutePath());ff.start();int length ff.getLengthInFrames();int j 0;Frame f null;while (j length) {// 去掉前5帧避免出现全黑的图片依自己情况而定f ff.grabImage();if ((j 5) (f.image ! null)) {break;}j;}ImageIO.write(FrameToBufferedImage(f), jpg, targetFile);ff.stop();//生成的封面缩略图路径 logourl:我自定义的地址coverPath request.getContextPath() / logourl YfTools.getSubString(yfResourceResource.getAnnexName(),0,yfResourceResource.getAnnexName().length()-4).jpg?logoFlg1;}catch (Exception e) {log.error(e);
}finally {if(ff!null){try {ff.close();} catch (Exception ex) {log.error(ex);}}ff null;
}上传资源成功后