FFmpeg: Automasi Split Video Berdasarkan Durasi
Pernah punya video berdurasi jam-jam-an tapi cuma butuh dipecah jadi potongan 20 detik buat konten media sosial? Melakukannya manual satu per satu adalah siksaan. Di sinilah FFmpeg menunjukkan performa terbaiknya sebagai raja multimedia.
Dengan menggabungkan kekuatan FFmpeg dan sedikit logika Bash Script, kita bisa membuat mesin pemotong otomatis yang bekerja dalam hitungan detik tanpa mengurangi kualitas video aslinya (no re-encoding).
split_video.sh
#!/bin/bash
# Konfigurasi Awal
INPUT="input.mp4"
DURATION=20 # Durasi tiap potongan (dalam detik)
# Mendapatkan durasi total file menggunakan ffprobe
LEN=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$INPUT")
COUNT=0
START=0
echo "Memulai proses pemotongan durasi total: $LEN detik..."
# Loop pemotongan otomatis
while (( $(echo "$START < $LEN" | bc -l) )); do
OUTPUT="part_$COUNT.mp4"
ffmpeg -hide_banner -loglevel error -i "$INPUT" -ss $START -t $DURATION -c copy "$OUTPUT"
echo "Berhasil membuat: $OUTPUT"
START=$(echo "$START + $DURATION" | bc)
COUNT=$((COUNT+1))
done
echo "Otomasi selesai! Semua bagian telah terpotong."Bagaimana Skrip Ini Bekerja?
Jangan biarkan baris kode di atas mengintimidasi kamu. Logikanya sangat sederhana jika kita bedah satu per satu:
- ffprobe — Digunakan untuk mengintip metadata video dan mengambil angka durasi total secara presisi.
- bc -l — Karena Bash standar tidak pandai menghitung angka desimal (koma), kita gunakan
bcagar kalkulasi waktu pemotongan tetap akurat. - -ss & -t — Inilah instrumen utamanya.
-ssmenentukan titik mulai, dan-tmenentukan berapa lama durasi yang ingin diambil dari titik tersebut. - -c copy — Fitur paling krusial. Ini menyuruh FFmpeg untuk tidak melakukan proses rendering ulang. Video hanya "dikemas ulang" ke file baru, sehingga prosesnya instan.
Pro Tip: Jika kamu ingin membagi video untuk keperluan WhatsApp Story atau TikTok, sesuaikan variabel DURATION menjadi 15 atau 60 sesuai batas durasi platform tersebut.