使用命令行工具ffmpeg制作动图gif

大家分享博文的时候往往会附加动图,所以这里介绍下我常用的制作gif的方法。

作为开发者,还是喜欢直接命令行来执行任务。

命令行工具ffmpeg

ffmpeg 主要用于对音视频编解码, 命令格式:

ffmpeg [全局参数] [[输入文件参数] -i 输入文件]... {[输出文件参数] 输出文件}...

先which ffmpeg看看是否已经安装过了,

比如  输出了 /usr/local/bin/ffmpeg,什么都没有的话就需要先安装

安装 ffmpeg

brew install ffmpeg

查看命令行参数 

ffmpeg -h 

全局参数

-y :  覆盖输出文件, 即文件已经存在就会被覆盖掉

-vol volume:改变音量(256 =正常)

每个文件主要参数

-f fmt:强制格式,设置输出格式

-fs limit_size:设置限制文件大小,以字节为单位,超过指定的文件大小时则结束转换

-ss time_off:设置开始时间偏移量,从指定时间开始转换

-vf filter_graph:设置视频过滤器

⽀持的filter的列表可以通过以下命令获得

ffmpeg -filters

常用的如下

  1. scale:视频/图像的缩放, 后面跟宽:高,如果某一个值是-1代表保持原来的比例自动生成,比如 1080:-1就是宽为1080,高则自动计算
  2. fps:帧率, 如10就是1秒10帧
  3. crop:视频/图像的裁剪
  4. trim:截取视频的⽚段
  5. rotate:以任意⻆度旋转视频
  6. overlay: 视频/图像的叠加 

比如-vf "fps=10,scale=320:-1:flags=lanczos"

-c codec 或者 -codec codec :编解码器名称, 比如 -c:v -c:a 来改变视频音频的编码为新的指定编码格式

-an 忽略任何音频流

-vn 忽略任何视频流

-t hh:mm:ss[.xxx]:设定输出文件的时间长度

-to hh:mm:ss[.xxx]:如果没有设定输出文件的时间长度的画可以设定终止时间点 

有了上面的概念,转GIF的命令一般用下面就行

ffmpeg -i 源文件.mp4 -vf fps=10,scale=320:-1:flags=lanczos -c:v gif 目标文件.gif

将mp4源文件转为帧率为10,宽为320,并保持宽高比,采用lanczos算法缩放后的gif文件

期间会看到一些日志信息,然后gif就转换好了。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值