VideoTools/scripts/git_converter/modules/quality.sh
Jake P 799102cac7 Attempted to create GUI
Attempted to create GUIs for both lt-convert and lt-gui
2025-12-17 22:50:59 +00:00

95 lines
3.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# ===================================================================
# Quality Settings Module - GIT Converter v2.7
# Handles quality modes and encoding parameters
# ===================================================================
get_quality_settings() {
local encoder="$1"
clear
cat << "EOF"
╔═════════════════════════════════════════════════════════════╗
║ Choose Quality Mode ║
╚═════════════════════════════════════════════════════════════╝
1) Source quality (bypass mode)
2) High Quality (CRF 18) - Recommended
3) Good Quality (CRF 20) - Balanced
4) DVD-NTSC Professional (MPEG-2)
5) DVD-PAL Professional (MPEG-2)
6) Custom bitrate
EOF
echo
while true; do
read -p " Enter 16 → " b
if [[ -n "$b" && "$b" =~ ^[1-6]$ ]]; then
break
else
echo " Invalid input. Please enter a number between 1 and 6."
fi
done
case $b in
1)
quality_params=""
quality_name="Source quality"
;;
2)
if [[ "$encoder" == *"av1"* ]]; then
quality_params="-crf 18 -preset 6"
quality_name="AV1 CRF 18"
else
quality_params="-crf 18 -quality 23"
quality_name="HEVC CRF 18"
fi
;;
3)
if [[ "$encoder" == *"av1"* ]]; then
quality_params="-crf 20 -preset 6"
quality_name="AV1 CRF 20"
else
quality_params="-crf 20 -quality 23"
quality_name="HEVC CRF 20"
fi
;;
4)
# DVD-NTSC Professional (MPEG-2)
quality_params="-c:v mpeg2video -b:v 6000k -g 15 -bf 2 -sc_threshold 1000000000"
quality_name="DVD-NTSC Professional"
echo "✅ DVD-NTSC: 720×480 @ 29.97fps, MPEG-2, 6000kbps"
;;
5)
# DVD-PAL Professional (MPEG-2)
quality_params="-c:v mpeg2video -b:v 8000k -g 12 -bf 2 -sc_threshold 1000000000"
quality_name="DVD-PAL Professional"
echo "✅ DVD-PAL: 720×576 @ 25fps, MPEG-2, 8000kbps"
;;
6)
echo
echo "Enter bitrate (e.g., 5000k, 8000k):"
read -p "→ " custom_bitrate
# Clean input - remove control characters but allow numbers and 'k'
custom_bitrate=$(echo "$custom_bitrate" | tr -cd '0123456789k')
# Remove any trailing/leading spaces
custom_bitrate=$(echo "$custom_bitrate" | xargs)
if [[ -n "$custom_bitrate" ]]; then
# Validate format (number followed by 'k')
if [[ "$custom_bitrate" =~ ^[0-9]+k$ ]]; then
quality_params="-b:v $custom_bitrate"
quality_name="Custom $custom_bitrate"
else
echo "Invalid format. Use format like: 3000k"
quality_params="-b:v 3000k"
quality_name="Custom 3000k"
fi
else
echo "No input provided, using default 3000k"
quality_params="-b:v 3000k"
quality_name="Custom 3000k"
fi
;;
esac
}