📅  最后修改于: 2023-12-03 15:27:54.984000             🧑  作者: Mango
该工具使用 ffmpeg 命令将视频转换为 gif,同时使用调色板优化 gif 的色彩。使用 Shell-Bash 编写,适合在命令行下使用。
sudo apt install ffmpeg
sudo apt install imagemagick
git clone https://github.com/yourusername/yourrepository.git
./gif.sh -i input.mp4 -o output.gif -s 320x240 -r 10
-i input.mp4
:指定输入的视频文件,可以是 mp4、avi、flv、wmv 等格式。-o output.gif
:指定输出的 gif 文件路径。-s 320x240
:指定输出 gif 的尺寸,默认为输入视频的分辨率。-r 10
:指定输出的 gif 的帧率,默认为 15 帧每秒。#!/bin/bash
# 视频到 gif ffmpeg 调色板
PALETTE="/tmp/palette.png"
FILTERS="fps=15,scale=320:-1:flags=lanczos"
# 输入参数处理
while getopts "i:o:s:r:" arg
do
case $arg in
i)
INPUT_FILE=$OPTARG
;;
o)
OUTPUT_FILE=$OPTARG
;;
s)
SIZE=$OPTARG
;;
r)
FPS=$OPTARG
;;
?)
echo "Usage: gif.sh -i input.mp4 -o output.gif -s 320x240 -r 10"
exit 1
;;
esac
done
# 默认为输入视频的分辨率
if [ ! $SIZE ]; then
SIZE=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 $INPUT_FILE)
fi
# 默认为 15 帧每秒
if [ ! $FPS ]; then
FPS=15
fi
# 生成调色板
ffmpeg -v warning -i $INPUT_FILE -vf "$FILTERS,palettegen" -y $PALETTE
# 使用调色板优化 gif 的色彩
ffmpeg -v warning -i $INPUT_FILE -i $PALETTE -lavfi "$FILTERS [x]; [x][1:v] paletteuse" -y $OUTPUT_FILE
echo "Output $OUTPUT_FILE"