FFMPEG抽取视频缩略图



FFmpeg是一个开源库,用来记录、转换数字音频、视频,并能将音频、视频转化为流。FFmpeg使用的音/视频编码库libavcodec。 
这里介绍一些FFmpeg的简单用法。

一、FFmpeg依赖库
安装FFmpeg依赖 yasm / nasm,选择一个安装即可。这里可以安装yasm。
$ yum install -y yasm

nasm fasm yasm 区别
这三个都是免费开源的汇编编译器,总体上都是采用的Intel的语法。yasm是从nasm的基础上开发出来的,属于同宗,使用了相同的语法,所以nasm的代码可以用yasm编译。

yasm:更新较慢,稳定,对nasm一些不合理的地方进行了改良。
nasm:更新快,能支持更新的指令集,而且还支持Gas语法和AMD64(EM64T)架构,跨平台,支持多种目标文件格式。
fasm:在Windows平台上,fasm是另一个不错的选择,平台支持比较好,可以直接用来开发Windows上的程序,语法也比较独特。在对Windows程序结构的支持上,fasm更好。

yasm的官方地址:http://yasm.tortall.net
nasm的官方地址:http://www.nasm.us


二、编译安装FFmpeg
跟其他linux的开源软件一样,执行configure、make、make install即可。
$ configure --prefix=path && make && make install

github上有一个FFmpeg的java封装:


三、使用FFmpeg
1、 获得视频信息
FFmpeg 提供了一个工具ffprobe,来提取视频的信息。举例如下。
$ ffprobe -i inputFileName -select_streams v:0 -show_entries stream=width,height,duration:stream_tags=rotate -v quiet -of json
-select_streams  v:0              使用第一个流数据(一般都是视频流)
-show_entries stream=width,height,duration:stream_tags=rotate  
                                        输出指定的数据对。中间用“:”分割。
                                        输出stream信息里的宽、高、时长;生成stream_tags里的rotate。
-of json                              以json格式输出。

2、生成视频缩略图
$ ffmpeg -y -ss 2 -t 5 -i inputFileName -vf "select=eq(pict_type\\,I)" -vframes 1 -f image2 -s 250x140 outuptFileName
-ss 2                                  从第2秒开始,生成缩略图
-t 5                                    查找5秒时长内的帧
-vf select=eq(pict_type\\,I)     选择关键帧
-s 250x140                           生成缩略图的长宽

3、从一张图片生成指定时长的视频
$ ffmpeg -y -loop 1 -f image2 -i inputFileName -r 10 -s 1024x768 -t 5 -v quiet outputVideoName
-loop 1               循环读取input文件
-r 10                  指定帧率为10帧/s
-s 1024x768        视频的长宽(这里即原图片的长宽)
-v quiet               不输出错误信息



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值