Commit: de0bef4b0bd99901f912bc208b503c1bd3dd4cc3
Parent: f39d816bf54e59cd3eb0d1e635017d877b020962
Author: Randy Palamar
Date: Wed, 2 Jun 2021 17:50:22 -0600
extract-audio: strip text enclosed in brackets, set fallback audio track
Diffstat:
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/bin/extract-audio b/bin/extract-audio
@@ -1,5 +1,8 @@
#!/bin/sh
+# extract audio from video files
+# useful for passive immersion
+
usage() {
echo "usage: $0 [-d outdir] [-l lang] file ..."
exit 1
@@ -24,13 +27,21 @@ lang=${lang:-jpn}
IFS=
for f in $*; do
- t=$(echo $f | cut -d . -f 1)
+ # construct track title and new filename
+ t=$(echo $f | cut -d . -f 1 | \
+ sed -e 's:\[.*\]::g; s:(.*)::g' \
+ -e 's:^ *::; s: *$::')
newf=$out/$t.opus
+
+ # find a stream index for desired audio track
idx=$(ffprobe -of compact=nk=1:s=. -v error \
-show_entries stream=index,codec_type:stream_tags=language \
$f | \
awk -F . '/audio.'$lang'/ { print $2; exit }')
+ # if no audio tracks have specified lang fall back to a:0
+ idx=${idx:-a:0}
+
case $f in
*.mkv|*.mp4)
ffmpeg -loglevel error -stats \