#!/bin/bash # Function to process the video process_video() { input_file="$1" # Get the full path without extension dir=$(dirname -- "$input_file") filename=$(basename -- "$input_file") extension="${filename##*.}" filename="${filename%.*}" # Check if the file already has _halfres in its name if [[ "$filename" == *"_halfres" ]]; then echo "Skipping $input_file, already processed (_halfres found)." return fi # Create the output filename with full path output_file="${dir}/${filename}_halfres.${extension}" if [ -f "$output_file" ]; then echo "Skipping $input_file, already transcoded." return fi # Resize the video to half resolution using ffmpeg ffmpeg -i "$input_file" -vf scale=960:540 "$output_file" } # Export the function so it can be used by find export -f process_video # Find all .mp4 files recursively and process them find . -type f -name "*.mp4" ! -name "*_halfres.mp4" -exec bash -c 'process_video "$0"' {} \; echo "All videos have been processed."