
Auf verschiedenen Seiten im Internet wird beschrieben, wie man ffmpeg
MP3s zusammenfügt und die Tags kopiert, aber ich kriege es einfach nicht hin, dass es richtig funktioniert. Im Idealfall würde es alle MP3s zusammenfügen und dann die Metadaten der ersten MP3s, wie Album, Titel, Autor usw., in die endgültige Datei kopieren.
Ich habe das folgende Skript zusammengestellt. Es fügt zwar die Dateien zusammen, kopiert aber nicht die Metadaten. Ich dachte, die -map_metadata 0 -id3v2_version 3 -write_id3v1 1
Parameter ffmpeg
würden das tun, aber das tun sie nicht. Was übersehe ich?
#!/usr/bin/env bash
set -e
if [[ $# -eq 0 ]] ; then
echo "Usage: $0 <output_file> <mp3_file> <mp3_file> ..."
exit 1
fi
output_file="$1"
shift
queue_file=$(mktemp "${PWD}/queue.XXXXXX")
for m in "$@" ; do
echo "file '$m'" >> "${queue_file}"
done
cat "${queue_file}"
ffmpeg -f concat -safe 0 -i "${queue_file}" -c copy -map_metadata 0 -id3v2_version 3 -write_id3v1 1 "${output_file}"
rm "${queue_file}"