1818 - name : Install Tools
1919 run : |
2020 sudo apt-get update
21- sudo apt-get install -y ffmpeg optipng jq
21+ sudo apt-get install -y ffmpeg optipng jq bc
2222 npm install -g svgo
2323
2424 - name : Initial Size
@@ -29,28 +29,36 @@ jobs:
2929 - name : Compress Audio
3030 run : |
3131 find . -type f -name "*.wav" -not -path "*/screenshots/*" | while read -r file; do
32- sample_rate=$(ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 "$file")
32+ sample_rate=$(ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 "$file" || echo "unknown" )
3333 if [ "$sample_rate" = "22050" ]; then
3434 echo "WAV already optimized, skipping: $file"
3535 else
3636 orig_size=$(stat -c%s "$file")
37- ffmpeg -i "$file" -ac 1 -ar 22050 -y "${file%.*}.tmp.wav" > /dev/null 2>&1
38- mv "${file%.*}.tmp.wav" "$file"
39- new_size=$(stat -c%s "$file")
40- echo "WAV Optimized: $file | $((orig_size / 1024))KB -> $((new_size / 1024))KB"
37+ if ffmpeg -i "$file" -ac 1 -ar 22050 -y "${file%.*}.tmp.wav" > /dev/null 2>&1; then
38+ mv "${file%.*}.tmp.wav" "$file"
39+ new_size=$(stat -c%s "$file")
40+ echo "WAV Optimized: $file | $((orig_size / 1024))KB -> $((new_size / 1024))KB"
41+ else
42+ echo "Failed to compress $file (might be corrupted/too short), skipping."
43+ rm -f "${file%.*}.tmp.wav"
44+ fi
4145 fi
4246 done
4347
4448 find . -type f -name "*.mp3" -not -path "*/screenshots/*" | while read -r file; do
45- bitrate=$(ffprobe -v error -select_streams a:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 "$file")
46- if [ -n "$bitrate" ] && [ "$bitrate" -le 66000 ]; then
49+ bitrate=$(ffprobe -v error -select_streams a:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 "$file" || echo "unknown" )
50+ if [ "$bitrate" != "unknown " ] && [ "$bitrate" -le 66000 ]; then
4751 echo "MP3 already optimized, skipping: $file"
4852 else
4953 orig_size=$(stat -c%s "$file")
50- ffmpeg -i "$file" -b:a 64k -y "${file%.*}.tmp.mp3" > /dev/null 2>&1
51- mv "${file%.*}.tmp.mp3" "$file"
52- new_size=$(stat -c%s "$file")
53- echo "MP3 Optimized: $file | $((orig_size / 1024))KB -> $((new_size / 1024))KB"
54+ if ffmpeg -i "$file" -b:a 64k -y "${file%.*}.tmp.mp3" > /dev/null 2>&1; then
55+ mv "${file%.*}.tmp.mp3" "$file"
56+ new_size=$(stat -c%s "$file")
57+ echo "MP3 Optimized: $file | $((orig_size / 1024))KB -> $((new_size / 1024))KB"
58+ else
59+ echo "Failed to compress $file, skipping."
60+ rm -f "${file%.*}.tmp.mp3"
61+ fi
5462 fi
5563 done
5664
0 commit comments