#!/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