Guest User

Untitled

a guest
Jun 22nd, 2025
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # --- Nilai default ---
  4. PRESET_DEFAULT="slow"
  5. CRF_DEFAULT="18"
  6. CPULIMIT_DEFAULT="100"
  7. FPS_DEFAULT="ASLI"
  8. AUDIO_BITRATE_DEFAULT="128k"
  9.  
  10. # --- File input dari argumen ---
  11. INPUT="$1"
  12. DIR=$(dirname "$INPUT")
  13. FILENAME=$(basename "$INPUT")
  14. BASENAME="${FILENAME%.*}"
  15.  
  16. # --- YAD form dengan semua opsi ---
  17. res=$(yad --title="Kompres Video" --form \
  18. --field="Preset:CB" "$PRESET_DEFAULT!ultrafast!superfast!veryfast!faster!fast!medium!slow!slower!veryslow" \
  19. --field="CRF (0-51):NUM" "$CRF_DEFAULT!0..51!1" \
  20. --field="CPU Limit (%):CB" "$CPULIMIT_DEFAULT!50!75!100!125!150!200" \
  21. --field="FPS (Frame Rate):CB" "$FPS_DEFAULT!24!25!30!50!60" \
  22. --field="Audio Bitrate:CB" "$AUDIO_BITRATE_DEFAULT!96k!128k!160k!192k!256k!320k" \
  23. --width=420 --center)
  24.  
  25. # Batal?
  26. [ $? -ne 0 ] && exit 1
  27.  
  28. # Ambil nilai dari output YAD
  29. PRESET=$(echo "$res" | cut -d "|" -f 1)
  30. CRF=$(echo "$res" | cut -d "|" -f 2)
  31. CPULIMIT=$(echo "$res" | cut -d "|" -f 3)
  32. FPS=$(echo "$res" | cut -d "|" -f 4)
  33. AUDIO_BITRATE=$(echo "$res" | cut -d "|" -f 5)
  34.  
  35. # Output dan log
  36. OUTPUT="${DIR}/${BASENAME}_compressed.mp4"
  37. LOG_DIR="$HOME/.logs/video_compress"
  38. mkdir -p "$LOG_DIR"
  39. LOG_FILE="${LOG_DIR}/${BASENAME}_$(date +%Y%m%d_%H%M%S).log"
  40.  
  41. # Flag FPS
  42. if [[ "$FPS" == "ASLI" ]]; then
  43. FPS_FLAG=""
  44. FPS_DESC="(asli)"
  45. else
  46. FPS_FLAG="-r $FPS"
  47. FPS_DESC="$FPS"
  48. fi
  49.  
  50. # Skrip sementara untuk terminal
  51. TMP_SCRIPT=$(mktemp)
  52. chmod +x "$TMP_SCRIPT"
  53.  
  54. cat > "$TMP_SCRIPT" <<EOF
  55. #!/bin/bash
  56. echo "📼 Input : $INPUT"
  57. echo "💾 Output : $OUTPUT"
  58. echo "⚙️ Preset : $PRESET"
  59. echo "🎚️ CRF : $CRF"
  60. echo "🧠 CPU Limit: $CPULIMIT%"
  61. echo "🎞️ FPS : $FPS_DESC"
  62. echo "🔊 Audio Bitrate: $AUDIO_BITRATE"
  63. echo
  64. echo "🚀 Menjalankan perintah:"
  65. echo cpulimit -l $CPULIMIT -- ffmpeg -i "$INPUT" -c:v libx264 -preset "$PRESET" -crf "$CRF" $FPS_FLAG -c:a aac -b:a $AUDIO_BITRATE "$OUTPUT"
  66. echo
  67. 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"
  68. echo
  69. echo "✅ Kompresi selesai. Log disimpan di:"
  70. echo "$LOG_FILE"
  71. read -n 1 -s -r -p "Tekan sembarang tombol untuk menutup..."
  72. EOF
  73.  
  74. # Jalankan terminal
  75. xfce4-terminal -T "Kompres Video" --hold -e "$TMP_SCRIPT"
  76.  
Advertisement
Add Comment
Please, Sign In to add comment