blob: bc443c317041b05f7e69f37b0665aebcba439894 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!/bin/sh
#SNDDIR=/media/storage/sound
#SNDDIR=$PWD
SNDDIR=/dev/shm
convert() {
f="$1"
iext=${f##*.}
case $iext in
ogg|mp3|m4a)
printf " # skipping %s\n" "$f" && continue
;;
*)
;;
esac
iacodec=$(mediainfo --Output=JSON "$f" |
jq -r '.media.track[]|select(.["@type"]=="Audio")|.Format|ascii_downcase')
[ -z "$iacodec" ] && \
printf " # Looks like no audio track in %s, skipping\n" "$f" && \
continue
case $iacodec in
aac)
oext=m4a
;;
opus|vorbis)
oext=ogg
;;
mp3)
oext=mp3
;;
*)
printf " # Unknown codec %s, skipping %s\n" $iacodec "$f" && continue
;;
esac
ofname="$(basename "$f")"
ofname=$SNDDIR/"${ofname%.*}".$oext
printf "Detected %s/%s, converting to %s\n" $iext $iacodec $ofname
ffmpeg -i "$f" -vn -sn -c:a copy "$ofname"
}
for f in "$@" ; do convert "$f" && rm "$f" ; done
|