用ffmpeg将视频转成gif动图

news/2024/10/30 16:24:24/

  今天分享一个我制作表情包的技巧。现在视频编辑的门槛已经非常低了,只要装个剪映稍微学一下,很容易就能把你想要的内容剪出来,真的是有手就行。但是视频剪出来的视频是无法直接用做表情包的,只有gif格式的动图才是真正可以用的表情包。另外一点,在微信、企微等通讯软件中,gif动图的大小也是有严格限制的,比如微信和企微里最大是5MB,超过这个大小就会被当成文件传输,且无法被别人收藏转发,也就失去了表情包的意义。我这里分享一些用ffmpeg来生成gif动图的命令行示例,助力大家生产出更多有趣的表情包。

  首先就是将一个视频直接转成gif动图,基本命令格式如下:

ffmpeg -i 你的视频文件.mp4 生成的文件名.gif  

例如:

ffmpeg -i vid20221028.mp4 out.fig 

  是不是相当简单。那么,如果说原始视频太长,你只想截取其中的一段视频生成gif,你可以增加-ss和-t两个参数,-ss代表的是start time,也就是开始时间,你可以指定开始的具体秒数,也可以用时:分:秒.毫秒的格式,比如00:12:14.500。-t是要截取的时长,单位是秒。假设我们想从input.mp4里的第73.5秒开始,截取12秒的视频内容生成动图,命令行你可以写成如下的方式:

ffmpeg -i input.mp4 -ss 73.5 -t 12 out.gif
ffmpeg -i input.mp4 -ss 00:01:13.500 -t 12 out.gif

  但是,当gif生成后,你会发现gif的大小非常大,这是因为你没有指定目标帧率和分辨率,ffmpeg会延用原始视频的相关参数,这时候可以考虑以下几种方式来降低生成gif动态的大小。

降低动图的帧率

  用-r参数来降低征率,比如原始的input.mp4是30帧的,可以用-r 15来降低成15帧。具体效果也是很明显的,生成的文件大小从原来的86MB下降到56MB,具体命令行如下:

ffmpeg -i input.mp4 -ss 00:01:13.500 -t 12 -r 15 out1.gif

  关于ffmpeg的-r参数,有个很小坑,-r参数一定要放到-i参数后面,它在前在后的作用是不一样的。

调整画面分辨率

  比如原始视频是1080p的,我们可以将其减低到480p,从而显著降低最终的gif文件大小,这里可以使用-s参数,后面跟具体的分辨率大小比如480x272 具体命令如下:

ffmpeg -i input.mp4 -ss 00:01:13.500 -t 12 -s 480x272 out2.gif  

  有些时候,我们不知道原始的视频分辨率,如果贸然指定目标分辨率的话,可能会导致画面被拉伸,观感下降,这时候可以使用一个更高级的参数-vf,-vf其实就比较复杂了,这里我们只看如何用-vf参数实现宽高等比例缩放吧,具体命令如下:

#scale后面可以指定具体的分辨率宽:高,作用同-s,也可以只指定宽或者高,
#另一者用-d代替,ffmpeg就会自动缩放,保持原比例
ffmpeg -i input.mp4 -ss 00:01:13.500 -t 12 -vf "scale=480:-1" out3.gif  

  从原来的1080p降低到了480p后,文件大小变化更加明显,从原来的86MB降低到了6MB。看来还是将分辨率的效果比较明显,但是6MB作为表情包还是太大了,这时候我们可以将上面两种方式结合到一起,降分辨率的同时降帧率,命令行如下:

ffmpeg -i input.mp4 -ss 00:01:13.500 -t 12 -vf "scale=480:-1" -r 15 out4.gif 

   最后生成的文件只有4MB了。这里我再分享一个我做表情包的小技巧,就是提前用剪映剪好你想要的片段,也可以用剪映直接做好画面,导出时选择低分辨率和低码率,这样用最开始的命令直接生成的gif大小也是会在5MB内的,就省了调整各参数的时间了。


http://www.ppmy.cn/news/759354.html

相关文章

ffmpeg:gif转mov

gif转mov 缘由像素图缩放gif转视频调整坐标画面 翻转画面 旋转处理时长gif同框在ae中的实现结语 有些网站可以将gif转成mp4和mov,不用安装额外的软件,windows和mac上都能操作,操作便捷,使用方便,如无特殊要求&#xff…

GIF转MP4 - 在线将GIF动态图转为MP4视频文件

如何把 GIF 转成视频?一刀工具箱提供几秒钟内将 GIF 转换为 MP4 文件的最佳方法,在线将 GIF 动态图转为 MP4 视频文件,100% 免费、安全并便于操作! 代码片段 chooseImage() {let that this;uni.chooseImage({count:1,sourceTyp…

mp4转换成gif怎么转?

mp4转gif,mp4转换成gif怎么转?mp4是最重要也是最常见的视频文件格式,而gif是动态图片的主要格式,有时候因为某些原因,在工作或者学习中需要将mp4视频转换成gif动图,那么你知道从何下手进行转换操作吗&#…

将GIF转成视频MP4、MOV

将GIF转成视频MP4、MOV 无需下载其他视频转换软件,仅借助PowerPoint实现 GIF格式动图 转换为 MP4 或者 MOV格式视频。 Bilibili拾叁学长 https://www.bilibili.com/video/BV1CD4y1o7pv?fromsearch&seid6391893059452592042步骤: 新建PowerPoint文…

gen1-视频生成论文阅读

文章目录 摘要贡献算法3.1 LDM3.2 时空隐空间扩散3.3表征内容及结构内容表征结构表征条件机制采样 3.4优化过程 实验结果结论 论文: 《Structure and Content-Guided Video Synthesis with Diffusion Models》 官网: https://research.runwayml.com/ge…

[日常]mov文件转换为gif

因为需要将之前mac下用QuickTime录屏生成的文件(mov格式)转换成gif文件, 便于传到某些博客平台, 于是找到了这个转换工具, 已将原代码的命名中文化并简化. Ruby和视频转换都是新手, 请多指教. 之前JavaScript实现ZLOGO: 前进方向和速度有两个mov文件, 下面为转换出的gif: “轮…

视频文件转gif图片Movie To GIF使用

系列文章目录 前言 在写博客的时候,如果你想把视频文件上传到网页上怎么办,可能有些网页只支持gif文件格式上传,无法直接上传wmv、MP4 等视频格式,怎么办。百度上搜索的视频转gif格式工具,要么是要收费的&#xff0c…

利用moviepy库制作好用的MP4、mov、mav、avi等视频类型转换gif图片的工具

说明:本篇文章主要讲解,利用moviepy库制作可以转换所有视频格式成gif 的工具。 作者:任聪聪 日期:2022年3月8日 python的库真的很多,也很好用,很实在,站在巨人的肩膀上,真的很轻松,只需要加上三句话,就能实现。 效果展示: 实例说明 注意代码片段建议通过pycharm复…