forked from LiveCarta/ContentGeneration
35 lines
886 B
Bash
35 lines
886 B
Bash
#!/bin/bash
|
|
|
|
#merges videos/output_n.mp4 with audios/audio_n.mp3 -> merged/merged_n.mp4
|
|
BASE_DIR="/home/madina/projects/short_videos"
|
|
VIDEOS_DIR="$BASE_DIR/videos"
|
|
AUDIOS_DIR="$BASE_DIR/audios"
|
|
OUTPUT_DIR="$BASE_DIR/merged"
|
|
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
for video in "$VIDEOS_DIR"/output_*.mp4; do
|
|
num=$(basename "$video" | sed 's/output_\([0-9]*\)\.mp4/\1/')
|
|
audio="$AUDIOS_DIR/output_${num}.mp3"
|
|
output="$OUTPUT_DIR/merged_${num}.mp4"
|
|
|
|
if [ ! -f "$audio" ]; then
|
|
echo "WARNING: No audio found for shot $num ($audio); skipped"
|
|
continue
|
|
fi
|
|
|
|
if [ -f "$output" ]; then
|
|
echo "Already exists; skipped the shot $num."
|
|
continue
|
|
fi
|
|
|
|
echo "Merging shot $num: $video + $audio -> $output"
|
|
ffmpeg -i "$video" -i "$audio" \
|
|
-c:v copy \
|
|
-c:a aac \
|
|
-shortest \
|
|
-y "$output"
|
|
|
|
echo "Done: $output"
|
|
done
|