dotfiles
Seven years worth of accumulated configuration cruft
dotfiles/scripts/.local/bin/flac2opus
Download raw file: scripts/.local/bin/flac2opus
#!/bin/sh
# Given a flac file on $1 convert it to an opus file without losing
# any metadata; deleting the original.
set -e
flac="$1"
opus="${flac%%.flac}.opus"
if [ -z "$1" ]; then
echo "Convert flac to opus preserving metadata; usage: flac2opus file.flac"
echo "To convert a whole directory:"
echo " find . -name '*.flac' -exec flac2opus {} \;"
exit 1
fi
if [ -f "$opus" ]; then
printf "Error: opus file %s already exists!\n" "$opus"
exit 1
else
echo "Converting to opus: $flac"
cover="$(mktemp -u /tmp/flac2opus_cover.XXX.jpg)"
# ffmpeg doesn't suport transcoding opus covers for some reason
ffmpeg -loglevel error -i "$flac" -an -vcodec copy "$cover" \
|| echo "Error: original flac doesn't contain cover art"
ffmpeg -loglevel error -i "$flac" "$opus"
[ -f "$cover" ] && opustags --in-place --set-cover "$cover" "$opus"
rm -f "$flac" "$cover"
fi