55 lines
1.3 KiB
Bash
Executable File
55 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script Version: 03
|
|
# Description: Simple script to convert audio files to MP3 (192 kbps) using CUDA for acceleration.
|
|
|
|
# Set variables
|
|
# ========
|
|
INPUT_DIR="$(pwd)"
|
|
OUTPUT_DIR="$INPUT_DIR/output"
|
|
BITRATE="192k"
|
|
|
|
# Functions
|
|
# ========
|
|
convert_to_mp3() {
|
|
local INPUT_FILE="$1"
|
|
local OUTPUT_FILE="$2"
|
|
|
|
# Convert to MP3 with FFmpeg
|
|
ffmpeg -hwaccel cuda -i "$INPUT_FILE" -c:a libmp3lame -b:a "$BITRATE" "$OUTPUT_FILE" -y || return 1
|
|
}
|
|
|
|
# Main Process
|
|
# ========
|
|
echo "Starting audio conversion process..."
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
SUCCESS_COUNT=0
|
|
TOTAL_COUNT=0
|
|
|
|
shopt -s nullglob
|
|
for FILE in "$INPUT_DIR"/*; do
|
|
if [[ -f "$FILE" ]]; then
|
|
BASENAME=$(basename "$FILE")
|
|
EXTENSION="${BASENAME##*.}"
|
|
|
|
# Skip unsupported extensions
|
|
if ! [[ "$EXTENSION" =~ ^(wav|flac|opus|m4a|mp3)$ ]]; then
|
|
echo "Skipping unsupported file: $FILE"
|
|
continue
|
|
fi
|
|
|
|
OUTPUT_FILE="$OUTPUT_DIR/${BASENAME%.*}.mp3"
|
|
|
|
echo "Converting $FILE to $OUTPUT_FILE"
|
|
if convert_to_mp3 "$FILE" "$OUTPUT_FILE"; then
|
|
SUCCESS_COUNT=$((SUCCESS_COUNT + 1))
|
|
fi
|
|
TOTAL_COUNT=$((TOTAL_COUNT + 1))
|
|
fi
|
|
|
|
done
|
|
shopt -u nullglob
|
|
|
|
echo "Audio conversion process completed. Success: $SUCCESS_COUNT/$TOTAL_COUNT"
|
|
|