如何使用带有FFmpeg的palettegen和paletteuse过滤器来处理图像序列?

时间:2015-12-31 22:54:39

标签: bash ffmpeg jpeg sequence animated-gif

我已经借助以下脚本将短视频转换为gif:

#!/bin/sh

palette="/tmp/palette.png"

filters="fps=15,scale=320:-1:flags=lanczos"

ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2

然而,当我转换图像序列时,我收到错误消息:"过滤器palette具有未连接的输出"

#!/bin/sh

palette="/tmp/palette.png"

filters="fps=25"

ffmpeg -v warning -f image2 -i %04d.jpg -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -f image2 -i %04d.jpg -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2

如何使palettegen和paletteuse也适用于图像序列?

2 个答案:

答案 0 :(得分:5)

palettegenpaletteuse可以正常处理图像序列输入。

问题在于您的positional parameter。您正在使用$2,但只有一个参数从您的命令传递到您的脚本。将$2更改为$1

答案 1 :(得分:0)

您需要正确的语法:

# ./videogif.sh bf5_orig.webm battlefield5.gif

$ 2 =输出文件名(.gif)