#!/bin/bash # Check if the output folder is provided as an argument if [ -z "$1" ]; then echo "Usage: $0 " exit 1 fi # Set the output folder variable output_folder="$1" # Process each segment folder for segment_dir in "$output_folder"/segment_*; do if [ -d "$segment_dir" ]; then # Find the output_N.mp4 file in the segment folder segment_file=$(find "$segment_dir" -name "segment_*.mp4" -print -quit) if [ -n "$segment_file" ]; then # Create the frames directory frames_dir="$segment_dir/frames" frames_scaled_dir="$segment_dir/frames_scaled" mkdir -p "$frames_dir" mkdir -p "$frames_scaled_dir" # Extract frames using ffmpeg with CUDA acceleration and save as JPEGs ffmpeg -hwaccel cuda -i "$segment_file" -q:v 1 "$frames_dir/%04d.jpg" #ffmpeg -hwaccel cuda -i "$segment_file" "$frames_dir/%04d.png" # ## Extract scaled-down frames (50% of original size) ffmpeg -hwaccel cuda -i "$segment_file" -q:v 1 -vf "scale=iw/2:ih/2" "$frames_scaled_dir/%04d.jpg" echo "Frames extracted for $segment_file and stored in $frames_dir" else echo "No output_*.mp4 file found in $segment_dir" fi fi done echo "Frame extraction completed."