Add files via upload
This commit is contained in:
+108
@@ -0,0 +1,108 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set parameters dynamically based on the current date
|
||||
current_date=$(date +%Y-%m-%d)
|
||||
current_year=$(date +%Y)
|
||||
day_of_year=$(date +%j) # The day of the year (e.g., 1-365)
|
||||
|
||||
# Define season and movement parameters based on the current date
|
||||
if [ $day_of_year -ge 265 ] && [ $day_of_year -le 355 ]; then
|
||||
season="Autumn"
|
||||
movement_num=3
|
||||
season_start_date=265
|
||||
season_end_date=355
|
||||
days_in_season=91
|
||||
day_of_season=$((day_of_year - season_start_date + 1)) # Calculate the day of the season
|
||||
elif [ $day_of_year -ge 1 ] && [ $day_of_year -le 79 ]; then
|
||||
season="Winter"
|
||||
movement_num=1
|
||||
season_start_date=1
|
||||
season_end_date=79
|
||||
days_in_season=79
|
||||
day_of_season=$((day_of_year - season_start_date + 1))
|
||||
elif [ $day_of_year -ge 80 ] && [ $day_of_year -le 171 ]; then
|
||||
season="Spring"
|
||||
movement_num=2
|
||||
season_start_date=80
|
||||
season_end_date=171
|
||||
days_in_season=92
|
||||
day_of_season=$((day_of_year - season_start_date + 1))
|
||||
elif [ $day_of_year -ge 172 ] && [ $day_of_year -le 264 ]; then
|
||||
season="Summer"
|
||||
movement_num=4
|
||||
season_start_date=172
|
||||
season_end_date=264
|
||||
days_in_season=93
|
||||
day_of_season=$((day_of_year - season_start_date + 1))
|
||||
else
|
||||
echo "Season not found for the current date"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Debugging info: Print dynamic parameters
|
||||
echo "Season: $season"
|
||||
echo "Movement: $movement_num"
|
||||
echo "Day of Year: $day_of_year"
|
||||
|
||||
# Set the directory for the videos dynamically based on the season and movement
|
||||
video_base_dir="/home/motion/drives/local-2tb/movies/sunrise/$season/Mvt$movement_num"
|
||||
echo "Looking for video files in: $video_base_dir"
|
||||
|
||||
# Ensure the video directory exists
|
||||
if [ ! -d "$video_base_dir" ]; then
|
||||
echo "Video directory $video_base_dir not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Find the music file for the current season and movement
|
||||
music_file=$(find "/home/motion/drives/local-2tb/music/4 Seasons" -type f -iname "*$season Mvt $movement_num*" | head -n 1)
|
||||
|
||||
# Ensure the music file exists
|
||||
if [ ! -f "$music_file" ]; then
|
||||
echo "Music file for $season Mvt $movement_num not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the duration of the music file in seconds
|
||||
music_duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$music_file")
|
||||
echo "Music duration: $music_duration seconds"
|
||||
|
||||
# Find all video files ending in "-final.mp4" using ls and grep
|
||||
video_files=()
|
||||
echo "Looking for video files in: $video_base_dir"
|
||||
for video_file in $(ls "$video_base_dir" | grep -i "Mvt${movement_num}.*-final.mp4"); do
|
||||
full_path="$video_base_dir/$video_file"
|
||||
if [ -f "$full_path" ]; then
|
||||
video_files+=("$full_path")
|
||||
fi
|
||||
done
|
||||
|
||||
# Check if video files were found
|
||||
if [ ${#video_files[@]} -eq 0 ]; then
|
||||
echo "No video files found for $season Mvt$movement_num in $video_base_dir"
|
||||
exit 1
|
||||
else
|
||||
echo "Found ${#video_files[@]} video files for $season Mvt$movement_num"
|
||||
fi
|
||||
|
||||
# Prepare a temporary file for concatenation
|
||||
temp_file=$(mktemp)
|
||||
for video_file in "${video_files[@]}"; do
|
||||
echo "file '$video_file'" >> "$temp_file"
|
||||
done
|
||||
|
||||
# Set the output directory and file for the montage
|
||||
output_dir="$video_base_dir/$current_year-$month"
|
||||
mkdir -p "$output_dir"
|
||||
output_file="$output_dir/$(date +"%Y-%m-%d")_Mvt$movement_num-Montage.mp4"
|
||||
|
||||
# Create the final montage by concatenating the video files with the music
|
||||
echo "Creating montage for $season Mvt $movement_num..."
|
||||
|
||||
# Use ffmpeg to concatenate the video files and overlay the music
|
||||
ffmpeg -f concat -safe 0 -i "$temp_file" -i "$music_file" -c:v libx264 -pix_fmt yuv420p -c:a aac -strict experimental -shortest "$output_file"
|
||||
|
||||
# Clean up temporary file
|
||||
rm "$temp_file"
|
||||
|
||||
echo "Montage created: $output_file"
|
||||
Reference in New Issue
Block a user