Как использовать ffmpeg для объединения MP3-файлов и одновременного копирования метаданных?

Как использовать ffmpeg для объединения MP3-файлов и одновременного копирования метаданных?

На разных страницах в Интернете рассказывается о том, как использовать ffmpegдля объединения MP3 и копирования тегов, но я не могу заставить это работать должным образом. В идеале, это должно было бы объединить все MP3 вместе, затем взять метаданные первого MP3, такие как альбом, трек, автор и т. д., и скопировать их в конечный файл.

Я составил следующий скрипт. Он объединяет файлы, но не копирует метаданные. Я думал, -map_metadata 0 -id3v2_version 3 -write_id3v1 1что параметры ffmpegсделают это, но этого не происходит. Что я упускаю?

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

Связанный контент