#!/bin/bash CHUNK_SIZE=30000000 # 30MB in bytes OUTPUT_DIR="output" mkdir -p $OUTPUT_DIR current_chunk_size=0 chunk_index=1 chunk_files="" while read -r file; do echo "Processing file: $file" if [[ ! -f "$file" ]]; then echo "File not found: $file" continue fi file_size=$(stat -c%s "$file") echo "File size: $file_size bytes" if (( current_chunk_size + file_size > CHUNK_SIZE )); then echo "Creating chunk $chunk_index" ffmpeg -y -i "concat:${chunk_files:1}" -c copy "$OUTPUT_DIR/chunk_$chunk_index.mp3" ((chunk_index++)) current_chunk_size=0 chunk_files="" fi current_chunk_size=$((current_chunk_size + file_size)) chunk_files="${chunk_files}|$file" done < filelist.txt if [[ -n $chunk_files ]]; then echo "Creating final chunk $chunk_index" ffmpeg -y -i "concat:${chunk_files:1}" -c copy "$OUTPUT_DIR/chunk_$chunk_index.mp3" fi