// ranges: ranges in seconds sS ffmpeg_makeAudioSpliceFilter(L ranges) { new LS out; int i = 0; fOr (DoubleRange r : ranges) { int lbl = ++i; S start = ffmpeg_formatSeconds(r.start); S end = ffmpeg_formatSeconds(r.end); out.add("[0:a]atrim=start=" + start + ":end=" + end + ",asetpts=PTS-STARTPTS[a" + lbl + "]"); } S concat = "concat=n=" + l(ranges); out.add(joinMap(iota(i), j -> "[a" + j + "]") + concat + ":v=0:a=1[outa]"); ret joinWithSemicolon(out); }