截取视频第一帧——使用ffmpeg
来源:互联网 发布:淘宝卖家给买家差评 编辑:程序博客网 时间:2024/06/03 21:33
1. 环境准备(以Linux环境为例)
1.1 下载:
wget http://ffmpeg.org/releases/ffmpeg-2.8.1.tar.bz2
1.2 解压:tar xvfj ffmpeg-2.8.1.tar.bz2
1.3 配置:
#cd ffmpeg-2.8.1
#./configure --prefix=/usr/local/ffmpeg --enable-shared
第二条命令解释:--prefix指定ffmpeg的安装目录,--enabl-shared表示允许其编译产生动态链接库
此命令输出的最后一行如果是“config.h is unchanged”,表示配置并未成功,原因可以参加下一条命令的输出。
1.4 编译并安装
#make
#make install
此步的第一步可能会报错“grab.c:26:28: fatal error: linux/videodev.h: No such file or directory”。
ls /usr/include/linux可以发现确实不存在该文件,而ffmpeg-2.8.1/libavformat/grab.c的第26行又引用了该文件。
解决方案:
#apt-get install libv4l-dev #ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
然后再重新重1.3步骤开始执行。
步骤1.4执行成功后,会在/usr/local/ffmpeg下生产三个文件夹:lib,include和bin
1.5 设置环境变量
1.5.1 在/etc/profile末尾加上如下两行:
export FFMPEG_HOME=/usr/local/ffmpegexport PATH=$FFMPEG_HOME/bin:$PATH
1.5.2 是上述修改生效
#source /etc/profile
1.6 尝试执行ffmpeg命令
1.6.1 如果出现如下错误
ffmpeg: error while loading shared libraries: libavformat.so: cannot open shared object file: No such file or directory
或
ffmpeg: error while loading shared libraries: libavdevice.so.52
则修改/etc/ld.so.conf文件,在最后一行加上“/usr/local/ffmpeg/lib”,
并执行ldconfig -v使修改有效,
然后赋予权限:chmod 777 /usr/local/ffmpeg/lib/*
1.6.2 如果出现的是命令的参数说明,则表示ffmpeg安装及配置成功
2. 程序集成
<span style="font-family: Arial, Helvetica, sans-serif;">public static void get1stImgOfVideo(String video, String firstImg) throws IOException, InterruptedException</span>
{ ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg","-ss","00:00:00","-t","00:00:01","-i",video,"-an","-f","image2","-s","218*318",firstImg); Process process = processBuilder.start();//异步进程 InputStream stderr = process.getErrorStream(); InputStreamReader isr = new InputStreamReader(stderr); BufferedReader br = new BufferedReader(isr); String line = null; while ((line = br.readLine()) != null) {} if(br != null) { br.close(); } if(isr != null) { isr.close(); } }上述代码中,参数video为视频路径,firstImg为第一帧图片的保存路径。
注意,ffmpeg默认只支持生成jpg格式的图片,所以firstImg参数的后缀请指定成jpg,否则图片可能生成不了。
3. 参考
更多请参考:
http://blog.chinaunix.net/uid-16974460-id-295979.html
http://blog.sina.com.cn/s/blog_6eea02c50101629j.html
http://www.cnblogs.com/dwdxdy/p/3240167.html
- 截取视频第一帧——使用ffmpeg
- FFmpeg的使用——PHP转换视频、截取视频以及JW Player播放器控制
- 使用ffmpeg从视频中截取图像帧
- 使用ffmpeg从视频中截取图像帧
- 使用ffmpeg截取视频(包括截图)
- 使用FFMPEG进行视频截取与合并
- 基于ffmpeg截取视频帧画面
- 基于ffmpeg截取视频帧画面
- 基于ffmpeg截取视频帧画面
- FFmpeg 入门(1):截取视频帧
- FFmpeg截取视频
- ffmpeg 截取视频
- ffmpeg 多张图片转视频,视频转gif,截取视频,截取视频里的帧
- 通视频URL截取第一帧图片
- 如何截取视频的第一帧
- Linux下MIPS平台交叉编译FFMpeg库 及使用库截取视频中的某一帧
- Linux下MIPS平台交叉编译FFMpeg库 及使用库截取视频中的某一帧
- Windows下使用ffmpeg与java实现截取视频缩略图
- HTML页面禁用Enter键自动提交表单
- 死锁
- 一点一滴解读网狐的加解密
- Oracle 11gR2 ASM 单实例安装 DBCA 建库报错: ORA-12547: TNS:lost contact
- Sql server还原失败(数据库正在使用,无法获得对数据库的独占访问权)
- 截取视频第一帧——使用ffmpeg
- <学习笔记>apk文件[INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误
- javascript高级开发学习笔记五
- bzoj4291.Kieszonkowe(大根堆 && 贪心)
- JavaScript基础【转载】
- windows环境下的cmd命令行如何用鼠标进行复制粘贴
- 菜鸟学习Spring——SpringMVC注解版控制层重定向到控制层
- MyBatis SQL映射
- asp.net 关于列表问题。点击文章标题,显示文章内容。