【ffmpeg.exe可执行文件获取】:

网上搜索后得到编译好的ffmpeg文件,下载地址:http://download.csdn.net/source/453719

【安装】:

将下载的文件解压,如:D:\ffmpeg,一共三个文件,分别是:ffmpeg.exe、ffplay.exe、pthreadGC2.dll。我们用到的应该是ffmpeg.exe。

【实现获取视频缩略图的两种方式】:

1、调用批处理文件:

批处理文件(如:ffmpeg.bat),内容:D:/ffmpeg/ffmpeg.exe -i %1 -ss 20 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f image2 %2 。其中,%1与%2类似C语言中的参数,代码中是需要替换的,Java代码如下:

public static void main(String[] args) { 

  // 视频文件 

  String videoRealPath = "E://test.flv"; 

  // 截图的路径(输出路径) 

  String imageRealPath = "E://test.jpg"; 

  // 1、调用批处理文件 

  try { 

  Runtime.getRuntime().exec( "cmd /c start E://ffmpeg.bat " + videoRealPath + " " + imageRealPath);

  } catch (IOException e) { 

 e.printStackTrace(); 

  } 

  }

2、调用系统中的可执行程序

Java代码如下:

public static final String FFMPEG_PATH = "D:/ffmpeg/ffmpeg.exe";

 public static boolean processImg(String path) {

File file = new File(path);

if (!file.exists()) {

System.err.println("路径[" + path + "]对应的视频文件不存在!");

return false;

}

List<String> commands = new java.util.ArrayList<String>();

commands.add(FFMPEG_PATH);

commands.add("-i");

commands.add(path);

commands.add("-y");

commands.add("-f");

commands.add("image2");

commands.add("-ss");

commands.add("38");

commands.add("-t");

commands.add("0.001");

commands.add("-s");

commands.add("320x240");

commands.add(path.substring(0, path.indexOf(".")) + ".jpg");

try {

ProcessBuilder builder = new ProcessBuilder();

builder.command(commands);

builder.start();

return true;

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

【总结】:

ffmpeg功能强大,不仅可以获取缩略图,而且支持大部分主流的视频格式,而且也可以对视频进行转码,使用起来也非常方便。虽然它是在Linux下开发而来的,但它可以在包括Windows下的大多操作系统中编译,本文就是用了在Windows环境下编译好的文件来实现的。

Windows下使用ffmpeg与java实现截取视频缩略图的更多相关文章

  1. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  2. ffmpeg windows下编译ffmpeg

    windows下编译ffmpeg 今天由于工作需求需重新编译ffmpeg,百度,goole了一大堆,看眼花缭乱的,但几乎都是三种方案,大部分都是直接转发,一字不漏,错误的缺文件的还是照转,可是问题都大 ...

  3. FFmpeg 入门(1):截取视频帧

    本文转自:FFmpeg 入门(1):截取视频帧 | www.samirchen.com 背景 在 Mac OS 上如果要运行教程中的相关代码需要先安装 FFmpeg,建议使用 brew 来安装: // ...

  4. windows下nodejs express安装及入门网站,视频资料,开源项目介绍

    windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...

  5. windows 下用eclipse搭建java、python开发环境

    本人只针对小白!本文只针对小白!本文只针对小白! 最近闲来无事,加上之前虽没有做过eclipse上java.python的开发工作,但一直想尝试一下.于是边查找资料边试验,花了一天时间在自己的机器上用 ...

  6. 在Windows下编译ffmpeg完全手册

    本文的内容几乎全部来自于FFmpeg on Windows,但是由于国内的网络封锁,很难访问这个域名下的内容,因此我一方面按照我自己的理解和实践做了翻译,另一方面也是为了能提供一个方便的参考方法. 注 ...

  7. windows下Memcached 架设及java应用

    1  Memcached 介绍   Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据 ...

  8. [转]在Windows下编译ffmpeg完全手册

    本文的内容几乎全部来自于FFmpeg on Windows,但是由于国内的网络封锁,很难访问这个域名下的内容,因此我一方面按照我自己的理解和实践做了翻译,另一方面也是为了能提供一个方便的参考方法. 注 ...

  9. windows下通过.bat运行java程序

    在windows下运行Java项目,单独的jar可以使用,java -jar xxx.jar 运行,如果是一个zip包,里面包含了class文件和所依赖的jar的时候,可以使用 (也可以以看看这里): ...

随机推荐

  1. window.scrollTo和window.scrollBy

    scrollTo-- 在窗体中如果有滚动条,将横向滚动条移动到相对于窗体宽度为x个像素的位置,将纵向滚动条移动到相对于窗体高度为y个像素的位置(如果没有滚动条,页面不会发生任何变化) scrollTo ...

  2. 1004 n^n的末位数字

    题目来源: Author Ignatius.L (Hdu 1061) 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题   给出一个整数N,输出N^N(N的N次方)的十 ...

  3. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 11. Views 上

    通常会使用外层模板的view,当做公共的模块 通常叫做_Layout.cshtml views下新建Shared文件夹 主要关注RenderBody,这里会具体渲染Action返回的内容View la ...

  4. ccflow_003.驰骋流程引擎表单方案

    003.驰骋流程引擎表单方案 设计流程主要有四个步骤 设计成型的效果图 表单的展示效果 表单方案 提供了八种表单模式 内置傻瓜表单 设计好的傻瓜表单演示 运行查看效果 内置自由表单 这是已经设计好的自 ...

  5. UVaLive 6581 && Gym 100299B What does the fox say? (模拟+STL)

    题意:给定一些动物的叫声,然后再定某些动物的叫声,让你去除这些叫声后得到的叫声. 析:先存储所有的叫声,然后用map来记录其他的叫声,在输出时再判定一下就好. 代码如下: #pragma commen ...

  6. 卷积神经网络中的Winograd快速卷积算法

    目录 写在前面 问题定义 一个例子 F(2, 3) 1D winograd 1D to 2D,F(2, 3) to F(2x2, 3x3) 卷积神经网络中的Winograd 总结 参考 博客:blog ...

  7. LuoguP3964 [TJOI2013]松鼠聚会【切比雪夫距离/前缀和】

    题目传送门 前置知识:切比雪夫距离和曼哈顿距离的相互转化--自为风月马前卒 有了这个知识,我们便可以在读入松鼠的家的坐标时,先把他转化一下,然后把最后的总式化简,我们会得到一个充满后缀和以及前缀和的式 ...

  8. Luogu P1156 垃圾陷阱 【dp】By cellur925

    题目传送门 这题...看上去浓浓的背包气息...但是并不好设计状态啊emmm. 我们考虑可能成为状态的量:高度.血量.时间.物品.看数据范围也猜到应该大概是个二维dp了w. 正确的状态设计之一:设$f ...

  9. EasyUI 前台开发的好助手

    今天用了下EASY ui 确实经典,前端开发利器啊

  10. offsetLeft 与 left的区别

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...