Como usar o ffmpeg para juntar MP3s e copiar os metadados ao mesmo tempo?

Como usar o ffmpeg para juntar MP3s e copiar os metadados ao mesmo tempo?

Várias páginas na Internet falam sobre como juntar ffmpegMP3s e copiar as tags, mas não consigo fazer funcionar corretamente. Idealmente, o que aconteceria é juntar todos os MP3s, depois pegar os metadados do primeiro MP3, como álbum, faixa, autor, etc., e copiá-los para o arquivo final.

Eu montei o seguinte script. Embora una os arquivos, ele não copia os metadados. Eu pensei que os -map_metadata 0 -id3v2_version 3 -write_id3v1 1parâmetros ffmpegfariam isso, mas isso não acontece. o que estou perdendo?

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

informação relacionada