如何使用 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}"

相关内容