Как я могу автоматически конвертировать файлы.mp4 и.m4a в файлы.mp3, сохраняя обложку?
У меня есть немного .mp4
а также .m4a
аудиофайлы, которые я хочу конвертировать в .mp3
файлы. Я хочу, чтобы в результате .mp3
файлы для включения обложки, включенной в исходные файлы, без использования EasyTAG вручную. Как я могу это сделать?
1 ответ
Решение
Я написал скрипт, который сделает это автоматически. Просто запустите скрипт против каждого .m4a
или же mp4
файл, как это, и он будет производить .mp3
файлы в одном каталоге:
convert-mp4-to-mp3.sh *.mp4 *.m4a
Вам нужно будет установить эти зависимости:
sudo apt-get install realpath libav-tools atomicparsley eyed3
Вот сценарий. Скопируйте и вставьте этот контент и сохраните его в файл с именем convert-mp4-to-mp3.sh
:
#!/bin/bash
set -e
for filename in "$@" ; do
if [[ "$filename" == -* ]] ; then
printf "Filename %s must not begin with a dash\n" "$filename" 1>&2
continue
fi
printf "Converting %s\n" "$filename"
filename=$(realpath "$filename")
directory=$(mktemp -d)
cwd=$(pwd)
output="$(basename "$filename" | sed 's/\.[^.]*$//').mp3"
cd "$directory"
avconv -i "$filename" "$output"
ln -s "$filename" "$(basename "$filename")"
AtomicParsley "$(basename "$filename")" --extractPix || true
shopt -s nullglob
for imagefilename in *.jpg *.png *.JPG *.PNG ; do
eyeD3 --add-image="$imagefilename":FRONT_COVER "$output"
break
done
shopt -u nullglob
mv "$output" "$(dirname "$filename")"
cd "$cwd"
rm -r "$directory"
done