暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

FFmpeg+Shell批量图片转gif

Journeysharer 2022-05-03
2249

FFmpeg+Shell批量图片转gif

注:

  • 该内容技术含量不高,仅为自己的学习记录
  • 以下批量操作也可以写bat批处理文件(自己还不会)
  • 实现以下的操作需掌握的一些东西
    • 在windows或linux系统下安装ffmpeg;windows下写入环境变量
    • windows上使用shell命令可以安装Git(不太确定,忘记自己是如何弄的了),之后在cmd中输入sh,进入sh环境;linux系统可直接操作
    • 一些shell命令:for循环,dirname、basename,变量,mkdir

最简单的一张图片转gif,并控制像素大小

在cmd中操作即可

ffmpeg -f image2 -i 1.jpg 1.gif
ffmpeg -f image2 -i -vf scale=531x299 1.jpg 1.gif # 控制像素大小

批量图片转gif

方式1 多张图片转一张gif

# 将1_1.jpg这种形式的多个文件以每秒1张的帧率转换成一张gif
# %后面的1个d表示一位数,按序号排列;2d表示01,02这种
ffmpeg -r 1 -f image2 -i 1_%d.jpg out.gif

以下的方式为多张图片批量转换成多张gif;需进入bash或sh环境下;

方式2

# 对文件夹下的部分jpg格式图片
for i in {7..9}; do ffmpeg -f image2 -i ${i}.jpg out1_${i}.gif; done

方式3

# 对文件夹下的所有jpg格式图片
for i in $(ls *.jpg); do echo do D=`pwd`; B=$(basename "${i}"); ffmpeg -f image2 -i ${i} $D/${B%.*}.gif; done

方式4

# 把转换后的gif放到创建的新子文件夹下
for i in $(ls *.jpg); do D=`pwd`; B=$(basename "${i}"); mkdir "$D/gif/"; ffmpeg -f image2 -i ${i} $D/gif/${B%.*}.gif; done

方式5 shell脚本

脚本名为pic2gif.sh;运行命令:./pic2gif.sh

#!/bin/bash

for i in $(ls *.jpg); do
D=$(pwd)
B=$(basename "${i}")
mkdir "$D/gif/"
ffmpeg -f image2 -i ${i} $D/gif/${B%.*}.gif
done


End


文章转载自Journeysharer,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论