Script bash fleksibel: pilih mode, warna, dan resolusi
Kamu bisa memilih mode spectrum (equalizer) atau waveform (gelombang), terus set resolusi dan warna sesuai kebutuhan konten.
Script: audio_visualizer.sh
#!/bin/bash
# Script untuk membuat video visualisasi audio (spectrum/waveform) dari semua file .mp3 di folder
# Output: file video .mp4 dengan nama sama seperti file audio
echo "Pilih mode visualisasi:"
echo "1) Spectrum (equalizer)"
echo "2) Waveform (gelombang)"
read -p "Masukkan pilihan [1/2]: " choice
read -p "Masukkan resolusi (contoh: 1280x720): " resolution
read -p "Masukkan warna (contoh: white, red, green, rainbow): " color
for f in *.mp3; do
base="${f%.mp3}"
echo "βΆ Memproses $f ..."
if [ "$choice" == "1" ]; then
ffmpeg -y -i "$f" \
-filter_complex "[0:a]showspectrum=s=${resolution}:mode=combined:color=${color}:scale=log[v]" \
-map "[v]" -map 0:a -c:v libx264 -c:a aac -shortest "${base}_spectrum.mp4"
elif [ "$choice" == "2" ]; then
ffmpeg -y -i "$f" \
-filter_complex "[0:a]showwaves:s=${resolution}:mode=line:rate=25:colors=${color}[v]" \
-map "[v]" -map 0:a -c:v libx264 -c:a aac -shortest "${base}_waveform.mp4"
else
echo "β Pilihan tidak valid."
exit 1
fi
done
echo "β
Semua file selesai diproses!"Ekstra: variasi cepat
# Spectrum terpisah per kanal stereo
ffmpeg -i musik.mp3 -filter_complex "[0:a]showspectrum=s=1280x720:mode=separate:color=intensity:scale=log[v]" -map "[v]" -map 0:a -c:v libx264 -c:a aac -shortest output.mp4
# Waveform titik
ffmpeg -i musik.mp3 -filter_complex "[0:a]showwaves=s=1920x1080:mode=point:rate=30:colors=cyan[v]" -map "[v]" -map 0:a -c:v libx264 -c:a aac -shortest output.mp4
# Menyampaikan gambar latar pada komponen visualizer
ffmpeg -loop 1 -t 180 -i bg.jpg -i musik.mp3 \
-filter_complex "[1:a]showspectrum=s=1920x1080:mode=combined:color=rainbow:scale=log[v];[0][v]overlay=shortest=1:format=auto[out]" \
-map "[out]" -map 1:a -c:v libx264 -c:a aac -shortest output_with_bg.mp4