Java生成视频缩略图

对于上传视频生成缩略图使用的是ffmpeg进行生成的。

自己在网上找了如何进行编译ffmpeg的方法

但是感觉太复杂了

就到csdn上找到了编译好的ffmpeg文件

体会到ffmpeg非常强大,大部分流行的视频格式的都能生成缩略图

现在开始

首先下载ffmpeg解压

方法一:

建立一个bat文件

start

E:/ffmpeg/bin/ffmpeg.exe -i %1 -ss 20 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f image2 %2

exit

说明下使用红色吧标记的意义

E:/ffmpeg/bin/ffmpeg.exe ffmpeg的路径

%1 %2 和C语言有点相似是为传参数保留位置

20 要截取多少秒后的图片

打开MyEclipse,建立一个工程 ,以及一个java文件

package test;

import java.io.IOException;

public class Ffmpeg {
public static void main(String[] args) {
// 视频文件
String videoRealPath = "F://ffmpeg//Wildlife.wmv";
// 截图的路径(输出路径)
String imageRealPath = "F://ffmpeg//a.jpg";
String basePath = "F://ffmpeg";
try {
// 调用批处理文件
Runtime.getRuntime().exec(
"cmd /c start " + basePath + "//ffmpeg.bat " + basePath + " " + videoRealPath + " "
+ imageRealPath);
} catch (IOException e) {
e.printStackTrace();
}
}

}

方法二:

不需建立bat文件

/**
* 将视频转为缩略图 成功返回true,失败返回false
* @param exePath 可执行程序路径
* @param videoPath 视频路径
* @param imagepath 转换后图片路径
* @return
*/
public static boolean videoToImg(String exePath,String videoPath,String imagepath) {
File file = new File(videoPath);
if (!file.exists()) {
System.err.println("路径[" + videoPath + "]对应的视频文件不存在!");
return false;
}
List<String> commands = new java.util.ArrayList<String>();
commands.add(exePath);
commands.add("-i");
commands.add(videoPath);
commands.add("-ss");
// 要截取多少秒后的图片(在此截取1秒后的图片)
commands.add("1");
commands.add("-vframes");
commands.add("1");
commands.add("-r");
commands.add("1");
commands.add("-ac");
commands.add("1");
commands.add("-ab");
commands.add("2");
commands.add("-s");
commands.add("320*240");
commands.add("-f");
commands.add("image2");
commands.add(imagepath);
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(commands);
builder.start();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

 public static void main(String[] args)throws Exception{
        //1.获取当前工程目录,获取ffmpeg.exe
        File directory = new File(".");
        String root = directory.getCanonicalPath();
        String ffmpegPath = root + "\\ffmpeg\\ffmpeg.exe";
         
        //2.看不懂的童鞋们去读幼儿园吧(执行了后,刷新一下工程,注意观察你的工程目录中的image文件夹里,和控制台打印内容,成功了吧!)
        String videoPath=root + "\\video\\demo.mp4";
        String imagePath=root + "\\image\\ceshi.jpg";
         
        System.out.println("执行结果"+getVideoImage(ffmpegPath,videoPath,imagePath));
         
    }
/**
     * 获得视频缩略图,获取成功返回true,获取失败返回false
     * @param ffmpegPath  是ffmpeg.exe存放的路径
     * @param path   是视频文件的存放路径
     * @param outImagePath 输出缩略图的保存路径
     * @return
     */
    public static boolean getVideoImage(String ffmpegPath,String path,String outImagePath) {
        File file = new File(path);
        if (!file.exists()) {//判断视频文件是否存在
            System.err.println("路径[" + path + "]对应的视频文件不存在!");
            return false;
        }
        //设置参数
        List<string> commands = new java.util.ArrayList<string>();
        commands.add(ffmpegPath);//这里设置ffmpeg.exe存放的路径
        commands.add("-i");
        commands.add(path);//这里是设置要截取缩略图的视频的路径
        commands.add("-y");
        commands.add("-f");
        commands.add("image2");
        commands.add("-ss");
        commands.add("2");//这里设置的是要截取视频开始播放多少秒后的图,可以自己设置时间
        commands.add("-t");
        commands.add("0.001");
        commands.add("-s");
        commands.add("320x240");//这里设置输出图片的大小
        commands.add(outImagePath);//这里设置输出的截图的保存路径
     
        try {
            //截取缩略图并保存 
            ProcessBuilder builder = new ProcessBuilder();
            builder.command(commands);
            builder.start();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}

转载于:https://www.cnblogs.com/shijiaoyun/p/4861716.html

Java将视频转为缩略图--ffmpeg相关推荐

  1. java处理视频_Java使用FFmpeg处理视频[视频直播三]

    承接上文. [拓展] 有人问我,怎么配置互联网环境的Mevan,这里拓展一下. settings_outweb.xml xmlns:xsi="http://www.w3.org/2001/X ...

  2. ffmpeg java 播放视频_Javacv使用ffmpeg实现音视频同步播放

    最近用javaCV的ffmpeg包的FFmpegFrameGrabber帧捕捉器对捕捉到的音频帧和视频帧做了同步的播放.采用的同步方法是视频向音频同步. 具体的思路如下: (1)首先介绍ffmpeg是 ...

  3. java实现视频文件转换为flv(带文件缩略图)_java实现视频文件转换为flv(带文件缩略图)...

    在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 2. android 2.2以后使用ThumbnailUtils类获取 3.调用jni文件,实现MediaMetadataRet ...

  4. mencoder和ffmpeg参数详解 (Java处理视频)

    本系列文章导航 Windows下FFmpeg快速入门 ffmpeg参数解释 mencoder和ffmpeg参数详解(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视 ...

  5. java在线制作视频,调用ffmpeg(具备影大师、爱美客在线制作视频等功能)

    最近在学校准备一个乡土文化教育竞赛项目,大部分的项目交互都是采用的论坛的形式展现,我打算采用视频交互的形式,针对于大部分人群,他们没有视频制作基础,视频制作对于他们来说太过于困难,为了服务这部分人群, ...

  6. avi和音频合成 ffmpeg_音视频处理工具FFmpeg与Java结合的简单使用

    一.什么是FFmpegFFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进 ...

  7. php 图片生成视频,PHP基于ffmpeg实现转换视频,截图及生成缩略图的方法

    本文实例讲述了PHP基于ffmpeg实现转换视频,截图及生成缩略图的方法.分享给大家供大家参考,具体如下: 这里把ffmpeg 和  生成缩略图整合了一下: include("ImageRe ...

  8. java实现视频上传和播放SpringMVC + Mybatis + ckplayer+ffmpeg+mencoder

    参考了很多大牛的文章,终于成功了,先感谢以下大牛,然后从前辈身上获利很多,我也应该把自己成功的经验奉献出来 ffmpeg参考:http://www.cnblogs.com/findingsea/arc ...

  9. FFmpeg进阶:生成视频的缩略图

    文章目录 1.读取对应位置的视频帧 2.添加时间信息 3.对图像进行拼接 4.输出拼接图像 5.显示效果 很多时候为了方便预览视频内容,我们会随机的抽取视频当中的一些帧组成一个图片作为视频的缩略图.这 ...

最新文章

  1. 怎么把PDF格式改成EXCEL
  2. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 MetaClass 注入静态方法 )
  3. 表变量与临时表的优缺点?(ZT)
  4. [Cake] 0.C#Make自动化构建-简介
  5. 对于我这个软妹子来说,为什么python编程课会越学越有趣呢?
  6. 诗与远方:无题(三十一)- 祝我单身
  7. mysql 分区 目的_MySQL分区表最佳实践
  8. 不能All in的人别去创业公司
  9. 在Windows下运行UNIX程序
  10. autocad字体ccfang,求CAD字体hzmsdi.shx 发到我邮箱,185955330@qq.com
  11. 数学分析习题课讲义习题-第2章-2.4
  12. CSYZDay2模拟题解
  13. 视频格式怎么转换成mp4?
  14. 5.23 通过自定义筛选查找指定城市的指定工作人员 [原创Excel教程]
  15. 《XP、面具框架玩机》小米手机玩机教程--菜鸟小回
  16. iPhone白苹果修复工具
  17. 即使挨骂也要说:刚毕业,就别去初创企业了
  18. 鸿蒙系统内核为什么还是安卓,鸿蒙系统和安卓的区别
  19. 《深入理解计算机系统》学习笔记:程序的机器级表示
  20. 技术总监/技术leader职责与工作记录第一天

热门文章

  1. C#写的NoSQL开源项目/系统(系列)
  2. 继续说说美国互联网版权监管法案(SOPA)
  3. 水泵怎么做_不是说鱼缸里放置三合一水泵都会起到反作用,也得看什么缸什么鱼...
  4. 定位城市_北方城市如何利用GPS定位器减轻铲雪工作压力?
  5. list字母排序 java_通过Java排序List集合的元素的几种方法
  6. 乔氏西去,敬告各位!
  7. 用Excel画五线谱!
  8. list保留小数位数
  9. 难道这是残差结构的本质(addnorm)
  10. 使用fontTools库