java获取视频第一帧图片

2018-10-10

用的jar包如下(用的版本比较新),主要是:

jar包链接:https://pan.baidu.com/s/1LI68r6H17sAA4Pfbnpm44g

  

 1 public static void fetchFrame(String videofile, String framefile)
 2             throws Exception {
 3         long start = System.currentTimeMillis();
 4         File targetFile = new File(framefile);
 5         FFmpegFrameGrabber ff = new FFmpegFrameGrabber(videofile);
 6         ff.start();
 7         int lenght = ff.getLengthInFrames();
 8         int i = 0;
 9         Frame f = null;
10         while (i < lenght) {
11             // 过滤前5帧,避免出现全黑的图片,依自己情况而定
12             f = ff.grabFrame();
13             if ((i > 48) && (f.image != null)) {
14                 break;
15             }
16             i++;
17         }
18 //        IplImage img = f.image;
19         int owidth = f.imageWidth;
20         int oheight = f.imageHeight;
21         // 对截取的帧进行等比例缩放
22         int width = 300;
23         int height = (int) (((double) width / owidth) * oheight);
24         Java2DFrameConverter converter = new Java2DFrameConverter();
25         BufferedImage fecthedImage = converter.getBufferedImage(f);
26         BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
27         bi.getGraphics().drawImage(fecthedImage.getScaledInstance(width, height, Image.SCALE_SMOOTH),
28                 0, 0, null);
29         ImageIO.write(bi, "jpg", targetFile);
30         ff.stop();
31         System.out.println(System.currentTimeMillis() - start);
32     }

注:javacv0.8的方法有如下不同:

int owidth = img.width();
int oheight = img.height();

原文地址:https://www.cnblogs.com/qinxiaofei/p/9766351.html

时间: 2024-08-29 13:08:19

java获取视频第一帧图片的相关文章

java获取视频第一帧工具类

java获取视频文件第一帧,为了防止黑画面,此例取第五帧,本例子采用maven形式 1. pom.xml 添加引用jar包 jdk采用1.8,日志自行添加即可,这里使用的是log4j2 <!-- log4j2 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.

通过 ffmpeg 获取视频第一帧(指定时间)图片

最近做一个上传教学视频的方法,上传视频的同时需要上传视频缩略图,为了避免用户上传的缩略图与视频内容不符,经理要求直接从上传的视频中截图视频的某一帧作为缩略图,并给我推荐了FFMPEG.FFMPEG 功能很强大,做视频必备的软件. FFMPEG下载地址:https://ffmpeg.org/download.html 1.VideoThumbTaker.java 获取视频指定播放时间的图片 package video;import java.io.IOException;import java.i

Android之使用MediaMetadataRetriever类获取视频第一帧

一.首先,来介绍一下MediaMetadataRetriever类,此类位于android.media包下,这里,先附上可查看此类的API地址:MediaMetadataRetriever类.大家能够自行查看. 1.MediaMetadataRetriever类概述:MediaMetadataRetriever class provides a unified interface for retrieving frame and meta data from an input media fil

Android之使用ThumbnailUtils类来获取视频第一帧缩略图

一.首先,来介绍ThumbnailUtils类,此类位于android.media包下,此类有一个公有的无参构造函数,有三个静态的公有方法,一个用来获取视频第一帧得到的Bitmap,另外两个方法用来对图片进行缩略处理. 1.无参的构造函数:ThumbnailUtils() 2.三个静态的公有方法: (1).创建一个视频缩略图的方法: public static Bitmap createVideoThumbnail(String filePath, int kind) 第一个参数为视频文件的

Android -- 获取视频第一帧缩略图

干货 从API 8开始,新增了一个类: android.media.ThumbnailUtils这个类提供了3个静态方法一个用来获取视频第一帧得到的Bitmap,2个对图片进行缩略处理. public static Bitmap createVideoThumbnail (String filePath, int kind) 第一个参数是视频文件的路径,第二个参数是指定图片的大小,有两种选择Thumbnails.MINI_KIND与Thumbnails.MICRO_KIND. 第一种文档上说大小

关于video标签移动端开发遇到的问题,获取视频第一帧,全屏,自动播放,自适应等问题

最近一直在处理video标签在IOS和Android端的兼容问题,其中遇到不少坑,绝大多数问题已经解决,下面是处理问题经验的总结: 1.获取视频的第一帧作为背景图: 技术:canvas绘图 window.onload = function(){ var video = document.getElementById('video'); //使用严格模式 'use strict'; //第一帧图片与原视频的比例 var scal = 0.8; //监听页面加载事件 video.addEventLi

Android视频处理 --处理视频第一帧缩略图

从API 8开始,新增了一个类: android.media.ThumbnailUtils这个类提供了3个静态方法一个用来获取视频第一帧得到的Bitmap,2个对图片进行缩略处理. ? 1 public static Bitmap createVideoThumbnail (String filePath, int kind) 第一个参数是视频文件的路径,第二个参数是指定图片的大小,有两种选择Thumbnails.MINI_KIND与Thumbnails.MICRO_KIND. 第一种文档上说大

第五十二篇、 OC获取视频的第一帧图片thumbnailImage

获取视频的第一帧图片 有时候我们拍摄完视频后,希望获取一张图片当作这个视频的介绍,这个图片thumbnailImage可以从视频的第一帧获取到. 我们的思路是先获取视频的URL,然后初始化一个MPMoviePlayerController做工具,利用MPMoviePlayerController来拿图片,看具体代码如下: - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWit

使用ffmpeg截取视频第一帧当做背景图

1.在官网下载ffmpeg,http://ffmpeg.org/download.html 我下载的是Windows 64的,如系统是Windows 32,请下载Windows 32-bit 下载完成后解压,得到如下图文件: 打开bin文件: 把bin文件夹所有.dll和.exe文件复制到项目bin文件夹下. 如果想通过cmd命令截取,需要将ffmpeg.exe的路径配置到环境变量里的Path里,可参考https://www.cnblogs.com/hbtmwangjin/articles/95