Mit FFMEG?

Siehe https://unix.stackexchange.com/questions/280767/how-do-i-split-an-audio-file-into-multiple?rq=1

Das hier ist der Oneliner aus dem Kommentar [stackexchange.com] nur etwas umformatiert, damit man es besser lesen kann
Show Plain Text
  1. #!/bin/sh
  2.  
  3. source="source audio file.m4a"
  4. i=0; t1=0:00
  5.  
  6. for end_time in 1:24 5:40 14:48 19:33 35:11 40:00 46:08 51:58 ''; do
  7.     ((i++))
  8.     t0=$t1; t1=$end_time
  9.     echo ffmpeg -i "$source" -acodec copy -ss $t0 ${t1:+-to} $t1 $(printf "track%02d.%s" $i ${source##*.})
  10. done


Das produziert dann diese Ausgabe:
ffmpeg -i source audio file.m4a -acodec copy -ss 0:00 -to 1:24 track01.m4a
ffmpeg -i source audio file.m4a -acodec copy -ss 1:24 -to 5:40 track02.m4a
ffmpeg -i source audio file.m4a -acodec copy -ss 5:40 -to 14:48 track03.m4a
ffmpeg -i source audio file.m4a -acodec copy -ss 14:48 -to 19:33 track04.m4a
ffmpeg -i source audio file.m4a -acodec copy -ss 19:33 -to 35:11 track05.m4a
ffmpeg -i source audio file.m4a -acodec copy -ss 35:11 -to 40:00 track06.m4a
ffmpeg -i source audio file.m4a -acodec copy -ss 40:00 -to 46:08 track07.m4a
ffmpeg -i source audio file.m4a -acodec copy -ss 46:08 -to 51:58 track08.m4a
ffmpeg -i source audio file.m4a -acodec copy -ss 51:58 track09.m4a


weil in Zeile 8 vorne ein ECHO steht, wenn Du das löscht führt er ffmepg direkt aus .

Wenn Du .cue Files hast, mußt Du die nach dem Filenamen (Zeile 3 - da steht m4a geht natürlich auch mit mp3 und anderen Audioformaten) und den Schnittzeiten für end_time (Zeile 5) und den gewünschten Tracktitel (dort wo jetzt nur track%02d.%s" steht) parsen.

Ob Zsh auch das direkte Splitten von Strings wie Bash in Zeile 8 erlaubt, weiß ich nicht, aber das wird dort nur verwendet, um die Fileextension aus Source auch für die gesplitteten Dateien zu setzen, wenn Du immer nur MP3 hast, kannst Du stattdessen mp3 dort festreinschreiben.

Sonst tut es auch jede andere Liste, die die Trackzeiten strukturiert beinhaltet.