ffmpeg视频转动图gif和Webp

本文介绍了如何使用ffmpeg工具将视频转换为高质量的GIF和Webp格式。包括直接转换、裁剪、调整质量和尺寸的命令,以及生成GIF的关键参数。此外,还提及了降低文件大小、优化颜色和帧数的方法。对于Webp格式,虽然体积小且质量高,但可能在某些设备上无法播放。推荐使用ScreenToGif软件作为替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视频转GIF

直接转化

ffmpeg -i sour.mp4 -y des.gif
  • -y 文件存在时,直接覆盖,不再询问

截取视频部分进行转化

ffmpeg -ss 8 -t 15 -i 11.mp4 -s 600x400 -r 15 res.gif
  • -ss 从第几秒开始,也可以为时间字串如:00:00:08
  • -t 往后截取几秒
  • -i 输入文件
  • -s 输出分辨率,切记中间是小写的x
  • -r 输出帧率,一般gif设置成15帧就很流畅了

转化高质量GIF

ffmpeg -i small.mp4 -b 2048k small.gif
  • -b 指定比特率

缩放尺寸

ffmpeg -i big.mov -vf scale=360:-1  small.gif
  • -vf 执行缩放
  • scale 视频宽度值,必须是偶数
  • -1 表示保持长宽比,根据宽度值自适应高度。如果要求压缩出来的视频尺寸长宽都保持为偶数,可以使用-2

完整常用命令

ffmpeg -i big.mp4 -b 1024k -vf scale=360:-1 -r 15 -y small.gif

带过滤器
有点耗时,但是转出来的动图质量高,噪点不明显。

ffmpeg -i sour.mp4 -vf "[in]scale=240:-1,split[a][b];[a]palettegen=stats_mode=single[pal];[b][pal]paletteuse=new=1" -r 15 -y des.gif

以上可以根据自己的需要进行选择,如果要求不高,大小又有限制,就直接转,还快

多个图片生成Gif

ffmpeg -f image2 -framerate 5 -i D:\MyData\img\%02d.png D:\MyData\img.gif

将图片存放到指定目录下,然后重命名成有序数列如:%02d 即为 01 ~ 99

常见问题

降低文件大小

修改宽高尺寸

大部分情况下我们中宽度是600px左右的gif就可以了

修改颜色值

gif本身只有256种颜色,颜色越多,文件越大,可以根据图片情况,适当降低颜色值

降低帧数

减少重复帧时,记得把延迟时间加到上一帧上来保持动画的节奏,而不是通过帧数来保持节奏

最后

如果自己弄这个觉得麻烦,推荐一个小巧的软件 Screen To Gif ,小巧但功能绝对强大

视频转Webp

作为谷歌新推出的图片格式,不仅包含静态图片,还有动态图片。
不管动态还是静态,最大的优势就是,体积小
而且ffmpeg转出来的动图质量还很高,一个字 牛

ffmpeg -ss 25 -t 5 -i sour.mp4 -vf scale=240:-1 -r 15 -qscale 80 -loop 0 -y des.webp

很好用,结果也很好,然而,手机上的图库无法播放,glide也加载不出来,一个字:惨
电脑上太旧的图片查看器也不会动,如果不想搞图片查看器,那就放到浏览器里看吧。
如果有其他需求,这个还是不错的。

视频转换为Lottie格式可以通过以下步骤完成: 1. 下载并安装screen2gif软件,该软件可以将屏幕录制保存为gifwebp、mp4等格式。 2. 打开LottieFiles在线编辑器,调整动画的颜色播放模式。将播放模式设置为单次播放。 3. 使用screen2gif开始录制,让在线编辑器完整地播放一遍动画。录制的gif文件可能会有一些多余的重复帧,需要手动删除。 4. 使用screen2gif导出录制的文件,选择导出为Lottie格式(需要预先安装ffmpeg)。 5. 在动画页面引入Lottie文件,可以使用以下代码片段作为参考: ```html <template> <div class="thumb_animation"> <lottie :options="defaultOptions" v-on:animCreated="handleAnimation"/> </div> </template> <script> import Lottie from './lottie.vue'; import animationData from '../static/img/index' // 引入json文件 export default { props: \['learning'\], components: { 'lottie': Lottie }, data () { return { thumb_animation: false, defaultOptions: { animationData: animationData, autoplay: false, loop: false, width: 300, height: 100 }, animationSpeed: 0.1 } }, methods: { thumbUp () { this.anim.play() }, handleAnimation (anim) { this.anim = anim; } }, destroyed () { this.animation.destroy() } } </script> ``` 6. 打开命令行,使用以下命令将视频转换为Lottie格式(假设Python路径为<python>,JSON文件路径为<json>,输出文件为<output>): ```bash # 生成gif py <python>/scripts/lottie_convert.py <json> <output> # 生成mp4 py <python>/scripts/lottie_convert.py <json> <output> ``` 注意:lottie_convert会根据输出文件的后缀名自动判断生成的文件格式。 #### 引用[.reference_title] - *1* *3* [Lottie 动画导出为 GIF/MP4 以及与 QML 集成演示](https://blog.csdn.net/Likianta/article/details/128179516)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [lottie&vue 把json文件转动画](https://blog.csdn.net/u011200562/article/details/116646854)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值