Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/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" <<EOF
- #!/bin/bash
- echo "📼 Input : $INPUT"
- echo "💾 Output : $OUTPUT"
- echo "⚙️ Preset : $PRESET"
- echo "🎚️ CRF : $CRF"
- echo "🧠 CPU Limit: $CPULIMIT%"
- echo "🎞️ FPS : $FPS_DESC"
- echo "🔊 Audio Bitrate: $AUDIO_BITRATE"
- echo
- echo "🚀 Menjalankan perintah:"
- echo cpulimit -l $CPULIMIT -- ffmpeg -i "$INPUT" -c:v libx264 -preset "$PRESET" -crf "$CRF" $FPS_FLAG -c:a aac -b:a $AUDIO_BITRATE "$OUTPUT"
- echo
- cpulimit -l $CPULIMIT -- ffmpeg -i "$INPUT" -c:v libx264 -preset "$PRESET" -crf "$CRF" $FPS_FLAG -c:a aac -b:a $AUDIO_BITRATE "$OUTPUT" 2>&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"
Advertisement
Add Comment
Please, Sign In to add comment