1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #!/bin/bash
IFS=$'\n' for file in $(find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -not -path "*/compressed/*"); do dir=$(dirname "$file") filename=$(basename "$file") name="${filename%.*}" ext="${filename##*.}" compressed_dir="${dir}/compressed" mkdir -p "$compressed_dir" echo -n "正在压缩: $file\t" if [[ "${ext}" == "png" ]]; then ffmpeg -loglevel error -i "$file" -compression_level 100 "${compressed_dir}/${name}_compressed.png" -y else ffmpeg -loglevel error -i "$file" -q:v 31 "${compressed_dir}/${name}_compressed.jpg" -y fi ls -lh "${compressed_dir}/${name}_compressed.jpg" done
|