Windows下使用ffmpeg与java实现截取视频缩略图
【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实现截取视频缩略图的更多相关文章
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
- ffmpeg windows下编译ffmpeg
windows下编译ffmpeg 今天由于工作需求需重新编译ffmpeg,百度,goole了一大堆,看眼花缭乱的,但几乎都是三种方案,大部分都是直接转发,一字不漏,错误的缺文件的还是照转,可是问题都大 ...
- FFmpeg 入门(1):截取视频帧
本文转自:FFmpeg 入门(1):截取视频帧 | www.samirchen.com 背景 在 Mac OS 上如果要运行教程中的相关代码需要先安装 FFmpeg,建议使用 brew 来安装: // ...
- windows下nodejs express安装及入门网站,视频资料,开源项目介绍
windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...
- windows 下用eclipse搭建java、python开发环境
本人只针对小白!本文只针对小白!本文只针对小白! 最近闲来无事,加上之前虽没有做过eclipse上java.python的开发工作,但一直想尝试一下.于是边查找资料边试验,花了一天时间在自己的机器上用 ...
- 在Windows下编译ffmpeg完全手册
本文的内容几乎全部来自于FFmpeg on Windows,但是由于国内的网络封锁,很难访问这个域名下的内容,因此我一方面按照我自己的理解和实践做了翻译,另一方面也是为了能提供一个方便的参考方法. 注 ...
- windows下Memcached 架设及java应用
1 Memcached 介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据 ...
- [转]在Windows下编译ffmpeg完全手册
本文的内容几乎全部来自于FFmpeg on Windows,但是由于国内的网络封锁,很难访问这个域名下的内容,因此我一方面按照我自己的理解和实践做了翻译,另一方面也是为了能提供一个方便的参考方法. 注 ...
- windows下通过.bat运行java程序
在windows下运行Java项目,单独的jar可以使用,java -jar xxx.jar 运行,如果是一个zip包,里面包含了class文件和所依赖的jar的时候,可以使用 (也可以以看看这里): ...
随机推荐
- UI:数据库练习、滤镜效果
相机处理滤镜效果 滤镜主要使用在相机的美颜. #import "ViewController.h" #import "ImageUtil.h" #import ...
- C. Vanya and Scales
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- sourceTree 的使用
一.拉取其他分支代码 1.git clone 代码是下载master分支 2.在未做修改的情况下,合并分支 二.提交代码到其他分支 1.创建分支(名称可以与远程不同) 2.(正常提交步骤)将作出的修改 ...
- ASP.NET Core Web API + Angular 仿B站(二)后台模型创建以及数据库的初始化
前言: 本系列文章主要为对所学 Angular 框架的一次微小的实践,对 b站页面作简单的模仿. 本系列文章主要参考资料: 微软文档: https://docs.microsoft.com/zh-cn ...
- API网关——Kong实践分享
概述 01 什么是Kong Kong是一个在Nginx中运行的Lua应用程序,可以通过lua-nginx模块实现,Kong不是用这个模块编译Nginx,而是与OpenRestry一起发布,OpenRe ...
- (水题)洛谷 - P1553 - 数字反转(升级版) - 字符串格式转换
https://www.luogu.org/problemnew/show/P1553 忘记给整数加上前导零去除的代码了.其实不去也可以,额外的进位用一个carry另外存起来就好. #include& ...
- python property的2种使用方法
一.property类 class Person(): def __init__(self, name): self.set_name(name) def get_name(self): return ...
- 11.5NOIP模拟赛
/* 唉,那个第二种策略应该是没用吧. 为什么我列出式子最优策略跟第二种策略有关??为什么我写了写分布列还是跟第二种策略有关??为什么数学还没学到期望的孩子们都A了? 唉.人生啊. 0.5h后 我好像 ...
- PJzhang:centos7上LNMP方式安装dvwa漏洞测试环境
猫宁!!! 参考链接:https://www.jianshu.com/p/5491ce5bfbac https://www.cnblogs.com/wujuntian/p/8183952.html h ...
- EasyUI 前台开发的好助手
今天用了下EASY ui 确实经典,前端开发利器啊