Kompres Video Otomatis Menggunakan YAD dan FFmpeg
Skrip bash berikut memungkinkan kamu untuk mengompres video menggunakan antarmuka grafis YAD dan mengatur parameter seperti preset, CRF, frame rate, hingga bitrate audio. Output akan ditampilkan di terminal dan disimpan dalam log.
Fitur
- Preset video encoding (ultrafast sampai veryslow)
- CRF (Constant Rate Factor) untuk kualitas/ukuran video
- Batas CPU dengan cpulimit
- Opsi FPS dan bitrate audio
- Log proses kompresi tersimpan otomatis
Skrip Lengkap
https://pastebin.com/xfsCcqPe
#!/bin/bash
# --- Nilai default ---
PRESET_DEFAULT="slow"
CRF_DEFAULT="18"
CPULIMIT_DEFAULT="100"
FPS_DEFAULT="ASLI"
AUDIO_BITRATE_DEFAULT="128k"
# --- File input dari argumen ---
INPUT="$1"
DIR=$(dirname "$INPUT")
FILENAME=$(basename "$INPUT")
BASENAME="${FILENAME%.*}"
# --- YAD form dengan semua opsi ---
res=$(yad --title="Kompres Video" --form \
--field="Preset:CB" "$PRESET_DEFAULT!ultrafast!superfast!veryfast!faster!fast!medium!slow!slower!veryslow" \
--field="CRF (0-51):NUM" "$CRF_DEFAULT!0..51!1" \
--field="CPU Limit (%):CB" "$CPULIMIT_DEFAULT!50!75!100!125!150!200" \
--field="FPS (Frame Rate):CB" "$FPS_DEFAULT!24!25!30!50!60" \
--field="Audio Bitrate:CB" "$AUDIO_BITRATE_DEFAULT!96k!128k!160k!192k!256k!320k" \
--width=420 --center)
# Batal?
[ $? -ne 0 ] && exit 1
# Ambil nilai dari output YAD
PRESET=$(echo "$res" | cut -d "|" -f 1)
CRF=$(echo "$res" | cut -d "|" -f 2)
CPULIMIT=$(echo "$res" | cut -d "|" -f 3)
FPS=$(echo "$res" | cut -d "|" -f 4)
AUDIO_BITRATE=$(echo "$res" | cut -d "|" -f 5)
# Output dan log
OUTPUT="${DIR}/${BASENAME}_compressed.mp4"
LOG_DIR="$HOME/.logs/video_compress"
mkdir -p "$LOG_DIR"
LOG_FILE="${LOG_DIR}/${BASENAME}_$(date +%Y%m%d_%H%M%S).log"
# Flag FPS
if [[ "$FPS" == "ASLI" ]]; then
FPS_FLAG=""
FPS_DESC="(asli)"
else
FPS_FLAG="-r $FPS"
FPS_DESC="$FPS"
fi
# Skrip sementara untuk terminal
TMP_SCRIPT=$(mktemp)
chmod +x "$TMP_SCRIPT"
cat > "$TMP_SCRIPT" <&1 | tee "$LOG_FILE"
echo
echo "✅ Kompresi selesai. Log disimpan di:"
echo "$LOG_FILE"
read -n 1 -s -r -p "Tekan sembarang tombol untuk menutup..."
EOF
# Jalankan terminal
xfce4-terminal -T "Kompres Video" --hold -e "$TMP_SCRIPT"
Contoh Perintah CLI
Perintah utama yang dijalankan secara otomatis adalah:
cpulimit -l 100 -- ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 18 -r 30 -c:a aac -b:a 128k output_compressed.mp4
Catatan
- Pastikan kamu telah menginstal yad, ffmpeg, dan cpulimit.
- Script ini cocok dijalankan di XFCE karena menggunakan xfce4-terminal.
- Log disimpan otomatis di folder ~/.logs/video_compress.
Penutup
Dengan pendekatan ini, kamu bisa kompres video secara cepat dan efisien tanpa harus mengetik parameter panjang di terminal. Sangat cocok untuk pemrosesan batch atau video mentah dari ponsel dan kamera.