Java代码实现上传视频获取视频某一帧作为截图封面(二)
上一个文章讲了 Java代码实现上传视频获取视频某一帧作为截图封面的一种方法,现在讲述第二种方法。为什么要在这里讲这种方法呢?第一、这种方法生成的图片占用的空间更小第二、这种方法可以获取很多信息
一、根上一篇文章一样导入Maven项目所需要的依赖,这里不在复制,可以去上篇文章看一下
二、废话不多说直接上代码 package com.basic.common.utils; import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.FrameGrabber; import org.bytedeco.javacv.Frame; import org.bytedeco.javacv.Java2DFrameConverter; import org.springframework.web.multipart.MultipartFile; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; /** * @author summer * @date 2021-11-02 15:42 */ public class VideoUtils2 implements MultipartFile { private final byte[] imgContent; private final String header; public VideoUtils2(byte[] imgContent, String header) { this.imgContent = imgContent; this.header = header; } public static String fetchFrame(String videoPath) { FFmpegFrameGrabber ff = null; byte[] data = null; ByteArrayOutputStream os = new ByteArrayOutputStream(); try { ff = new FFmpegFrameGrabber(videoPath); ff.start(); int lenght = ff.getLengthInFrames(); int i = 0; Frame f = null; while (i < lenght) { // 过滤前5帧,避免出现全黑的图片 这个根据自己的情况来定,这里就以5秒作为测试 f = ff.grabFrame(); if ((i > 5) && (f.image != null)) { break; } i++; } BufferedImage bi = new Java2DFrameConverter().getBufferedImage(f); String rotate = ff.getVideoMetadata("rotate"); if (rotate != null) { bi = rotate(bi, Integer.parseInt(rotate)); } ImageIO.write(bi, "jpg", os); } catch (Exception e) { e.printStackTrace(); } finally { try { if (ff != null) { ff.stop(); } } catch (FrameGrabber.Exception e) { e.printStackTrace(); } } BASE64Encoder encoder = new BASE64Encoder(); return "data:image/jpg;base64,"+encoder.encode(os.toByteArray()); } public static BufferedImage rotate(BufferedImage src, int angel) { int src_width = src.getWidth(null); int src_height = src.getHeight(null); int type = src.getColorModel().getTransparency(); Rectangle rect_des = calcRotatedSize(new Rectangle(new Dimension(src_width, src_height)), angel); BufferedImage bi = new BufferedImage(rect_des.width, rect_des.height, type); Graphics2D g2 = bi.createGraphics(); g2.translate((rect_des.width - src_width) / 2, (rect_des.height - src_height) / 2); g2.rotate(Math.toRadians(angel), src_width / 2, src_height / 2); g2.drawImage(src, 0, 0, null); g2.dispose(); return bi; } /** * 将base64转换成MultipartFile * @param base64 * @return */ public static MultipartFile base64ToMultipart(String base64) { try { String[] baseStrs = base64.split(","); BASE64Decoder decoder = new BASE64Decoder(); byte[] b = new byte[0]; b = decoder.decodeBuffer(baseStrs[1]); for(int i = 0; i < b.length; ++i) { if (b[i] < 0) { b[i] += 256; } } return new VideoUtils2(b, baseStrs[0]); } catch (IOException e) { e.printStackTrace(); return null; } } public static Rectangle calcRotatedSize(Rectangle src, int angel) { if (angel >= 90) { if(angel / 90 % 2 == 1) { int temp = src.height; src.height = src.width; src.width = temp; } angel = angel % 90; } double r = Math.sqrt(src.height * src.height + src.width * src.width) / 2; double len = 2 * Math.sin(Math.toRadians(angel) / 2) * r; double angel_alpha = (Math.PI - Math.toRadians(angel)) / 2; double angel_dalta_width = Math.atan((double) src.height / src.width); double angel_dalta_height = Math.atan((double) src.width / src.height); int len_dalta_width = (int) (len * Math.cos(Math.PI - angel_alpha - angel_dalta_width)); int len_dalta_height = (int) (len * Math.cos(Math.PI - angel_alpha - angel_dalta_height)); int des_width = src.width + len_dalta_width * 2; int des_height = src.height + len_dalta_height * 2; return new Rectangle(new Dimension(des_width, des_height)); } @Override public String getOriginalFilename() { return null; } @Override public String getName() { return null; } @Override public String getContentType() { return header.split(":")[1]; } @Override public long getSize() { return imgContent.length; } @Override public boolean isEmpty() { return imgContent == null || imgContent.length == 0; } @Override public byte[] getBytes() throws IOException { return imgContent; } @Override public void transferTo(File dest) throws IOException, IllegalStateException { new FileOutputStream(dest).write(imgContent); } @Override public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(imgContent); } }
切记包一定要导对哦
下面就是测试代码 public void testPic1() throws IOException { String s = VideoUtils2.fetchFrame("D:testdemotestdemo.mp4"); VideoUtils2.base64ToMultipart(s).transferTo(new File("D:testdemogood.jpg")); }控制台输出如下 C:softwarejdk1.8binjava.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:Program FilesJetBrainsIntelliJ IDEA 2021.1libidea_rt.jar=54594:C:Program FilesJetBrainsIntelliJ IDEA 2021.1bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJetBrainsIntelliJ IDEA 2021.1libidea_rt.jar;C:Program FilesJetBrainsIntelliJ IDEA 2021.1pluginsjunitlibjunit5-rt.jar;C:Program FilesJetBrainsIntelliJ IDEA 2021.1pluginsjunitlibjunit-rt.jar;C:softwarejdk1.8jrelibcharsets.jar;C:softwarejdk1.8jrelibdeploy.jar;C:softwarejdk1.8jrelibextaccess-bridge-64.jar;C:softwarejdk1.8jrelibextcldrdata.jar;C:softwarejdk1.8jrelibextdnsns.jar;C:softwarejdk1.8jrelibextjaccess.jar;C:softwarejdk1.8jrelibextjfxrt.jar;C:softwarejdk1.8jrelibextlocaledata.jar;C:softwarejdk1.8jrelibext ashorn.jar;C:softwarejdk1.8jrelibextsunec.jar;C:softwarejdk1.8jrelibextsunjce_provider.jar;C:softwarejdk1.8jrelibextsunmscapi.jar;C:softwarejdk1.8jrelibextsunpkcs11.jar;C:softwarejdk1.8jrelibextzipfs.jar;C:softwarejdk1.8jrelibjavaws.jar;C:softwarejdk1.8jrelibjce.jar;C:softwarejdk1.8jrelibjfr.jar;C:softwarejdk1.8jrelibjfxswt.jar;C:softwarejdk1.8jrelibjsse.jar;C:softwarejdk1.8jrelibmanagement-agent.jar;C:softwarejdk1.8jrelibplugin.jar;C:softwarejdk1.8jrelibresources.jar;C:softwarejdk1.8jrelibrt.jar;D:ideaworkspacedemobasicbasic-project argetclasses;C:UsersSummer.m2repositoryeubitwalkerUserAgentUtils1.19UserAgentUtils-1.19.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter-aop2.2.5.RELEASEspring-boot-starter-aop-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter2.2.5.RELEASEspring-boot-starter-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter-logging2.2.5.RELEASEspring-boot-starter-logging-2.2.5.RELEASE.jar;C:UsersSummer.m2repositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;C:UsersSummer.m2repositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;C:UsersSummer.m2repositoryorgapachelogginglog4jlog4j-to-slf4j2.12.1log4j-to-slf4j-2.12.1.jar;C:UsersSummer.m2repositoryorgapachelogginglog4jlog4j-api2.12.1log4j-api-2.12.1.jar;C:UsersSummer.m2repositoryorgslf4jjul-to-slf4j1.7.30jul-to-slf4j-1.7.30.jar;C:UsersSummer.m2repositoryjakartaannotationjakarta.annotation-api1.3.5jakarta.annotation-api-1.3.5.jar;C:UsersSummer.m2repositoryorgyamlsnakeyaml1.25snakeyaml-1.25.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-aop5.2.4.RELEASEspring-aop-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-beans5.2.4.RELEASEspring-beans-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgaspectjaspectjweaver1.9.5aspectjweaver-1.9.5.jar;C:UsersSummer.m2repositoryorgjsoupjsoup1.12.1jsoup-1.12.1.jar;C:UsersSummer.m2repositorycomgithuboshioshi-core3.9.1oshi-core-3.9.1.jar;C:UsersSummer.m2repository etjavadevjnajna-platform4.5.2jna-platform-4.5.2.jar;C:UsersSummer.m2repository etjavadevjnajna4.5.2jna-4.5.2.jar;C:UsersSummer.m2repositoryorgslf4jslf4j-api1.7.30slf4j-api-1.7.30.jar;C:UsersSummer.m2repositorycomgithubpengglekaptcha2.3.2kaptcha-2.3.2.jar;C:UsersSummer.m2repositoryjavaxservletjavax.servlet-api4.0.1javax.servlet-api-4.0.1.jar;C:UsersSummer.m2repositorycomjhlabsfilters2.0.235-1filters-2.0.235-1.jar;C:UsersSummer.m2repositoryorgapachepoipoi-ooxml3.17poi-ooxml-3.17.jar;C:UsersSummer.m2repositoryorgapachepoipoi3.17poi-3.17.jar;C:UsersSummer.m2repositoryorgapachecommonscommons-collections44.1commons-collections4-4.1.jar;C:UsersSummer.m2repositoryorgapachepoipoi-ooxml-schemas3.17poi-ooxml-schemas-3.17.jar;C:UsersSummer.m2repositoryorgapachexmlbeansxmlbeans2.6.0xmlbeans-2.6.0.jar;C:UsersSummer.m2repositorystaxstax-api1.0.1stax-api-1.0.1.jar;C:UsersSummer.m2repositorycomgithubvirtualdcurvesapi1.04curvesapi-1.04.jar;C:UsersSummer.m2repositoryorgapachecommonscommons-lang33.9commons-lang3-3.9.jar;C:UsersSummer.m2repositorycommons-iocommons-io2.5commons-io-2.5.jar;C:UsersSummer.m2repositorycommons-fileuploadcommons-fileupload1.3.3commons-fileupload-1.3.3.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-spring1.7.1shiro-spring-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-web1.7.1shiro-web-1.7.1.jar;C:UsersSummer.m2repositoryorgowaspencoderencoder1.2.2encoder-1.2.2.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-core1.7.1shiro-core-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-lang1.7.1shiro-lang-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-cache1.7.1shiro-cache-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-crypto-hash1.7.1shiro-crypto-hash-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-crypto-core1.7.1shiro-crypto-core-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-crypto-cipher1.7.1shiro-crypto-cipher-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-config-core1.7.1shiro-config-core-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-config-ogdl1.7.1shiro-config-ogdl-1.7.1.jar;C:UsersSummer.m2repositorycommons-beanutilscommons-beanutils1.9.4commons-beanutils-1.9.4.jar;C:UsersSummer.m2repositorycommons-collectionscommons-collections3.2.2commons-collections-3.2.2.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-event1.7.1shiro-event-1.7.1.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-ehcache1.7.1shiro-ehcache-1.7.1.jar;C:UsersSummer.m2repository etsfehcacheehcache-core2.6.11ehcache-core-2.6.11.jar;C:UsersSummer.m2repository etmingsoftshiro-freemarker-tags .1shiro-freemarker-tags-0.1.jar;C:UsersSummer.m2repositorycommons-codeccommons-codec1.13commons-codec-1.13.jar;C:UsersSummer.m2repositorylog4jlog4j1.2.17log4j-1.2.17.jar;C:UsersSummer.m2repositorycomgooglezxingjavase3.1.0javase-3.1.0.jar;C:UsersSummer.m2repositorycomgooglezxingcore3.1.0core-3.1.0.jar;C:UsersSummer.m2repositoryorgquartz-schedulerquartz2.3.2quartz-2.3.2.jar;C:UsersSummer.m2repositorycommchangemchange-commons-java .2.15mchange-commons-java-0.2.15.jar;C:UsersSummer.m2repositoryorgspringframeworkintegrationspring-integration-mail5.2.4.RELEASEspring-integration-mail-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkintegrationspring-integration-core5.2.4.RELEASEspring-integration-core-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryioprojectreactorreactor-core3.3.3.RELEASEreactor-core-3.3.3.RELEASE.jar;C:UsersSummer.m2repositoryorgreactivestreamsreactive-streams1.0.3reactive-streams-1.0.3.jar;C:UsersSummer.m2repositoryorgspringframeworkretryspring-retry1.2.5.RELEASEspring-retry-1.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-messaging5.2.4.RELEASEspring-messaging-5.2.4.RELEASE.jar;C:UsersSummer.m2repository etsourceforgejexcelapijxl2.6.12jxl-2.6.12.jar;C:UsersSummer.m2repositorycomalibabafastjson1.2.6fastjson-1.2.6.jar;C:UsersSummer.m2repositorycomsunmailjavax.mail1.4.5javax.mail-1.4.5.jar;C:UsersSummer.m2repositoryjavaxactivationactivation1.1activation-1.1.jar;C:UsersSummer.m2repositorycommortennobeljava-image-scaling .8.6java-image-scaling-0.8.6.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-core5.2.4.RELEASEspring-core-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-jcl5.2.4.RELEASEspring-jcl-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-context5.2.4.RELEASEspring-context-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-expression5.2.4.RELEASEspring-expression-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-context-support5.2.4.RELEASEspring-context-support-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-tx5.2.4.RELEASEspring-tx-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgfreemarkerfreemarker2.3.29freemarker-2.3.29.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-all1.2.4shiro-all-1.2.4.jar;C:UsersSummer.m2repositoryorgapacheshiroshiro-guice1.2.4shiro-guice-1.2.4.jar;C:UsersSummer.m2repositorycomgoogleinjectguice3.0guice-3.0.jar;C:UsersSummer.m2repositoryjavaxinjectjavax.inject1javax.inject-1.jar;C:UsersSummer.m2repositoryaopallianceaopalliance1.0aopalliance-1.0.jar;C:UsersSummer.m2repositorycomgoogleinjectextensionsguice-multibindings3.0guice-multibindings-3.0.jar;C:UsersSummer.m2repositorymysqlmysql-connector-java8.0.19mysql-connector-java-8.0.19.jar;C:UsersSummer.m2repositorycomalibabadruid-spring-boot-starter1.1.10druid-spring-boot-starter-1.1.10.jar;C:UsersSummer.m2repositorycomalibabadruid1.1.10druid-1.1.10.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-autoconfigure2.2.5.RELEASEspring-boot-autoconfigure-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-configuration-processor2.2.5.RELEASEspring-boot-configuration-processor-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter-freemarker2.2.5.RELEASEspring-boot-starter-freemarker-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter-web2.2.5.RELEASEspring-boot-starter-web-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter-json2.2.5.RELEASEspring-boot-starter-json-2.2.5.RELEASE.jar;C:UsersSummer.m2repositorycomfasterxmljacksoncorejackson-databind2.10.2jackson-databind-2.10.2.jar;C:UsersSummer.m2repositorycomfasterxmljacksoncorejackson-annotations2.10.2jackson-annotations-2.10.2.jar;C:UsersSummer.m2repositorycomfasterxmljacksoncorejackson-core2.10.2jackson-core-2.10.2.jar;C:UsersSummer.m2repositorycomfasterxmljacksondatatypejackson-datatype-jdk82.10.2jackson-datatype-jdk8-2.10.2.jar;C:UsersSummer.m2repositorycomfasterxmljacksondatatypejackson-datatype-jsr3102.10.2jackson-datatype-jsr310-2.10.2.jar;C:UsersSummer.m2repositorycomfasterxmljacksonmodulejackson-module-parameter-names2.10.2jackson-module-parameter-names-2.10.2.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter-tomcat2.2.5.RELEASEspring-boot-starter-tomcat-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgapache omcatembed omcat-embed-core9.0.31 omcat-embed-core-9.0.31.jar;C:UsersSummer.m2repositoryorgapache omcatembed omcat-embed-el9.0.31 omcat-embed-el-9.0.31.jar;C:UsersSummer.m2repositoryorgapache omcatembed omcat-embed-websocket9.0.31 omcat-embed-websocket-9.0.31.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter-validation2.2.5.RELEASEspring-boot-starter-validation-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryjakartavalidationjakarta.validation-api2.0.2jakarta.validation-api-2.0.2.jar;C:UsersSummer.m2repositoryorghibernatevalidatorhibernate-validator6.0.18.Finalhibernate-validator-6.0.18.Final.jar;C:UsersSummer.m2repositoryorgjbossloggingjboss-logging3.4.1.Finaljboss-logging-3.4.1.Final.jar;C:UsersSummer.m2repositorycomfasterxmlclassmate1.5.1classmate-1.5.1.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-web5.2.4.RELEASEspring-web-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-webmvc5.2.4.RELEASEspring-webmvc-5.2.4.RELEASE.jar;C:UsersSummer.m2repositorycombaomidoumybatis-plus-boot-starter3.1.2mybatis-plus-boot-starter-3.1.2.jar;C:UsersSummer.m2repositorycombaomidoumybatis-plus3.1.2mybatis-plus-3.1.2.jar;C:UsersSummer.m2repositorycombaomidoumybatis-plus-extension3.1.2mybatis-plus-extension-3.1.2.jar;C:UsersSummer.m2repositorycombaomidoumybatis-plus-core3.1.2mybatis-plus-core-3.1.2.jar;C:UsersSummer.m2repositorycombaomidoumybatis-plus-annotation3.1.2mybatis-plus-annotation-3.1.2.jar;C:UsersSummer.m2repositorycomgithubjsqlparserjsqlparser1.2jsqlparser-1.2.jar;C:UsersSummer.m2repositoryorgmybatismybatis3.5.1mybatis-3.5.1.jar;C:UsersSummer.m2repositoryorgmybatismybatis-spring2.0.1mybatis-spring-2.0.1.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-starter-jdbc2.2.5.RELEASEspring-boot-starter-jdbc-2.2.5.RELEASE.jar;C:UsersSummer.m2repositorycomzaxxerHikariCP3.4.2HikariCP-3.4.2.jar;C:UsersSummer.m2repositoryorgspringframeworkspring-jdbc5.2.4.RELEASEspring-jdbc-5.2.4.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot-devtools2.2.5.RELEASEspring-boot-devtools-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgspringframeworkbootspring-boot2.2.5.RELEASEspring-boot-2.2.5.RELEASE.jar;C:UsersSummer.m2repositoryorgprojectlomboklombok1.18.12lombok-1.18.12.jar;C:UsersSummer.m2repositoryorgbytedecojavacv1.4.1javacv-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsflycapture2.11.3.121-1.4.1flycapture-2.11.3.121-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetslibdc13942.2.5-1.4.1libdc1394-2.2.5-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetslibfreenect .5.3-1.4.1libfreenect-0.5.3-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetslibfreenect2 .2.0-1.4.1libfreenect2-0.2.0-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetslibrealsense1.12.1-1.4.1librealsense-1.12.1-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsvideoinput .200-1.4.1videoinput-0.200-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsartoolkitplus2.3.1-1.4.1artoolkitplus-2.3.1-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsflandmark1.07-1.4.1flandmark-1.07-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp1.4.1javacpp-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv-platform3.4.1-1.4.1opencv-platform-3.4.1-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-android-arm.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-android-arm64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-android-x86.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-android-x86_64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-ios-arm64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-ios-x86_64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-linux-x86.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-linux-x86_64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-linux-armhf.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-linux-ppc64le.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-macosx-x86_64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-windows-x86.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsopencv3.4.1-1.4.1opencv-3.4.1-1.4.1-windows-x86_64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg-platform3.4.2-1.4.1ffmpeg-platform-3.4.2-1.4.1.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-android-arm.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-android-arm64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-android-x86.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-android-x86_64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-linux-x86.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-linux-x86_64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-linux-armhf.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-linux-ppc64le.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-macosx-x86_64.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-windows-x86.jar;C:UsersSummer.m2repositoryorgbytedecojavacpp-presetsffmpeg3.4.2-1.4.1ffmpeg-3.4.2-1.4.1-windows-x86_64.jar;C:UsersSummer.m2repositoryjunitjunit4.12junit-4.12.jar;C:UsersSummer.m2repositoryorghamcresthamcrest-core2.1hamcrest-core-2.1.jar;C:UsersSummer.m2repositoryorghamcresthamcrest2.1hamcrest-2.1.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.basic.common.TestCase,testPic1 [mov,mp4,m4a,3gp,3g2,mj2 @ 00000000003fc8e0] overread end of atom "colr" by 1 bytes Input #0, mov,mp4,m4a,3gp,3g2,mj2, from "D: estdemo estdemo.mp4": Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf55.33.100 copyright : copyright-eng : Duration: 00:00:15.10, start: 0.000000, bitrate: 1410 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv), 432x960, 1386 kb/s, 29.45 fps, 29.42 tbr, 15360 tbn, 60 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 48 kb/s (default) Metadata: handler_name : SoundHandler Process finished with exit code 0