Commit | Line | Data |
---|---|---|
656dfa5d SBS |
1 | #!/bin/bash |
2 | # Desc: Split an audio file by chapter | |
3 | # Depends: ffmpeg, jq | |
4 | # Ref/Attrib: [1] Hasan Arous. MIT license. https://unix.stackexchange.com/a/612124 | |
5 | # [2] John Smith. https://unix.stackexchange.com/a/712600 | |
6 | ||
7 | in="$1"; | |
8 | out="$2"; | |
9 | splits=""; | |
10 | n=0; | |
11 | while read start end title; do | |
12 | newTitle="$(echo "$title" | sed "s/ /_/g")"; | |
13 | newTitle="$(printf "%02d..%s" "$n" "$newTitle")"; | |
14 | splits="$splits -c copy -ss $start -to $end $out/$newTitle.m4b"; | |
15 | ((n++)); | |
16 | done <<< $(ffprobe -i "$in" -print_format json -show_chapters \ | |
17 | | jq -r '.chapters[] | .start_time + " " + .end_time + " " + (.tags.title | sub(" "; "_"))'); | |
18 | ffmpeg -i "$in" $splits; | |
19 | ||
20 | # Author: Steven Baltakatei Sandoval | |
21 | # License: GPLv3+ |