java获取视频缩略图
2015-07-22 22:06
447 查看
近期由于在做一个关于视频播放的项目,需要使用程序自动获取视频文件的缩略图,特写此文供其他人参考,有不清楚之楚可以给我留言。
1、使用工具:ffmpeg,
官网下载地址:http://ffmpeg.org/download.html
我的电脑使用的是mac,安装也比较简单,参考下面的文章:
http://webmedia.blog.163.com/blog/static/416695020123261226695/ http://blog.chinaunix.net/uid-16974460-id-295979.html
下面给出linux系统安装示例:
yum -y install yasm
tar -jxvf ffmpeg-2.7.2.tar.bz2
cd ffmpeg-2.7.2
./configure --enable-shared --prefix=/usr/local/ffmpeg
make
make install
cd /usr/local/ffmpeg
vi /etc/ld.so.conf.d/ffmpeg.conf(写入:/usr/local/ffmpeg/lib)
ldconfig
ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/
测试:
2、配置环境变量
如果是windows,将ffmpeg命令加入到path环境变量中
如果是linux系统,则执行如下命令,
cd /usr/local/bin
ln -s /usr/local/ffmpeg/bin/ffmpeg ffmpeg
3、JAVA代码
注意:需要使用如下方式将每个参数分别添加到列表中,不能将参数与命令合在一起,不然会报命令找不到路径,我在mac上是这样的,不知道在window下会不会出现。
1、使用工具:ffmpeg,
官网下载地址:http://ffmpeg.org/download.html
我的电脑使用的是mac,安装也比较简单,参考下面的文章:
http://webmedia.blog.163.com/blog/static/416695020123261226695/ http://blog.chinaunix.net/uid-16974460-id-295979.html
下面给出linux系统安装示例:
yum -y install yasm
tar -jxvf ffmpeg-2.7.2.tar.bz2
cd ffmpeg-2.7.2
./configure --enable-shared --prefix=/usr/local/ffmpeg
make
make install
cd /usr/local/ffmpeg
vi /etc/ld.so.conf.d/ffmpeg.conf(写入:/usr/local/ffmpeg/lib)
ldconfig
ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/
测试:
ffmpeg -i xxx.mp4 -y -f image2 -t 0.001 -s 125x125 xxx.jpg
2、配置环境变量
如果是windows,将ffmpeg命令加入到path环境变量中
如果是linux系统,则执行如下命令,
cd /usr/local/bin
ln -s /usr/local/ffmpeg/bin/ffmpeg ffmpeg
3、JAVA代码
注意:需要使用如下方式将每个参数分别添加到列表中,不能将参数与命令合在一起,不然会报命令找不到路径,我在mac上是这样的,不知道在window下会不会出现。
/** * 保存视频缩略图 * @throws IOException */ public static void saveVideoThumbnail(String videoPath, String imagePath) throws IOException { //ffmpeg -i xxx.mp4 -y -f image2 -t 0.001 -s 125x125 xxx.jpg List<String> cmd = new java.util.ArrayList<String>(); cmd.add("ffmpeg");// 视频提取工具的位置 cmd.add("-i"); cmd.add(videoPath); cmd.add("-y"); cmd.add("-f"); cmd.add("image2"); cmd.add("-t"); cmd.add("0.001"); cmd.add("-s"); cmd.add("125x125"); cmd.add(imagePath); ProcessBuilder builder = new ProcessBuilder(); builder.command(cmd); builder.start(); }
相关文章推荐
- SpringMVC
- 对Java事务的认识
- JAVA环境搭建之JDK配置
- 我是菜鸟:Java中接口/内部类中容易忽略的问题总结
- Java通过FTP服务器上传下载文件的解决方案
- 算法学习之java实现归并排序
- java的(PO,VO,TO,BO,DAO,POJO)解释
- Java集合框架(List, Set, Map, Collections)
- java 程序构成 及 开发工具 简介
- java的throw和throwszenmeyong
- java错误提示------ The public type must be defined in its own file
- java轉格式代碼
- Java常用日期操作详解
- 关于java基础--连接池与通用的操作数据库更新方法
- Intellij Idea编译项目下的.java文件时的编码问题
- 关于java基础--SQL驱动及JDBC连接
- 关于java基础--管道流和压缩
- 关于java基础--线程的详解与测试
- Java框架篇---Mybatis 入门
- 关于java基础--PIO操作xls文件、持久化对象以及拷贝文件