50 lines
1.4 KiB
Bash
50 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
# 输入和输出文件夹路径
|
|
QUALITY=25
|
|
INPUT_FOLDER="input" # 替换为你的输入文件夹路径
|
|
OUTPUT_FOLDER="output/$QUALITY" # 替换为你的输出文件夹路径
|
|
# 调整需要的质量级别(值越低,质量越好)
|
|
|
|
# 创建输出文件夹(如果不存在)
|
|
mkdir -p "$OUTPUT_FOLDER"
|
|
|
|
|
|
# 记录开始时间
|
|
start_time=$(date +%s)
|
|
start_time_readable=$(date)
|
|
|
|
echo "Compression started at: $start_time_readable"
|
|
|
|
# 遍历输入文件夹中的所有jpg和jpeg文件
|
|
for FILE in "$INPUT_FOLDER"/*.{jpg,jpeg,JPG,JPEG}; do
|
|
if [ -f "$FILE" ]; then
|
|
FILENAME=$(basename "$FILE")
|
|
OUTPUT_FILE="$OUTPUT_FOLDER/$FILENAME"
|
|
|
|
# 使用ffmpeg压缩图像
|
|
ffmpeg -i "$FILE" -qscale:v $QUALITY "$OUTPUT_FILE" -y "$OUTPUT_FILE"
|
|
|
|
echo "Compressed: $FILE -> $OUTPUT_FILE"
|
|
fi
|
|
done
|
|
|
|
# 记录结束时间
|
|
end_time=$(date +%s)
|
|
end_time_readable=$(date)
|
|
|
|
# 计算运行时间
|
|
duration=$((end_time - start_time))
|
|
|
|
echo "Compression ended at: $end_time_readable"
|
|
echo "Total duration: $duration seconds"
|
|
|
|
# 将日志保存到文件
|
|
log_file="compression_log.txt"
|
|
echo "Compression started at: $start_time_readable" >> $log_file
|
|
echo "Compression ended at: $end_time_readable" >> $log_file
|
|
echo "Total duration: $duration seconds" >> $log_file
|
|
echo "Compression quality: $QUALITY " >> $log_file
|
|
echo "" >> $log_file # 添加一个空行以便于日志的阅读
|
|
|