🧩 Script 1 — Gabung Semua .mp4 (dengan suara)
Script ini akan membuat daftar semua file .mp4 di folder kamu, lalu menggabungkannya secara otomatis jadi satu video utuh. Aman dijalankan di Linux terminal.
#!/bin/bash
# Script: gabung_video.sh
# Menggabungkan semua file .mp4 menjadi satu video utuh
# Dibuat oleh: ChatGPT (Fakhrul Rijal Edition 🎞️)
rm -f daftar.txt
for f in *.mp4; do
echo "file '$PWD/$f'" >> daftar.txt
done
ffmpeg -f concat -safe 0 -i daftar.txt -c copy hasil_gabungan.mp4
rm -f daftar.txt
echo "✅ Video berhasil digabung: hasil_gabungan.mp4"
🔇 Script 2 — Gabung Semua .mp4 Jadi Video Tanpa Audio
Ini versi upgrade-nya: selain gabung semua video, script ini otomatis menghapus audio. Cocok buat kamu yang cuma butuh tampilan visual aja tanpa suara.
#!/bin/bash
# =========================================
# Script: gabung_video_tanpa-audio.sh
# Fungsi: Menggabungkan semua file .mp4 menjadi satu video Tanpa Audio (tanpa suara)
# Fitur: Deteksi otomatis codec/resolusi — re-encode jika tidak seragam
# =========================================
set -e
OUTPUT="${1:-hasil_gabungan_tanpa-audio.mp4}"
rm -f daftar.txt temp_*.mp4
FILES=( *.mp4 )
if [ ${#FILES[@]} -eq 0 ]; then
echo "❌ Tidak ditemukan file .mp4 di folder ini."
exit 1
fi
REF="${FILES[0]}"
REF_INFO=$(ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,width,height,r_frame_rate -of csv=p=0 "$REF")
REENCODE_NEEDED=false
for f in "${FILES[@]}"; do
INFO=$(ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,width,height,r_frame_rate -of csv=p=0 "$f")
if [ "$INFO" != "$REF_INFO" ]; then
REENCODE_NEEDED=true
fi
done
if [ "$REENCODE_NEEDED" = true ]; then
for f in "${FILES[@]}"; do
ffmpeg -y -i "$f" -an -c:v libx264 -preset veryfast -crf 23 "temp_$f"
echo "file 'temp_$f'" >> daftar.txt
done
else
for f in "${FILES[@]}"; do
echo "file '$PWD/$f'" >> daftar.txt
done
fi
ffmpeg -f concat -safe 0 -i daftar.txt -an -c:v libx264 -preset veryfast -crf 23 "$OUTPUT"
rm -f daftar.txt temp_*.mp4 2>/dev/null || true
echo "✨ Selesai! 📽️ Video tanpa-audio hasil: $OUTPUT"