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

483
Roxy

Различные страницы в Интернете рассказывают о том, как использовать 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 "$/queue.XXXXXX") for m in "$@" ; do echo "file '$m'" >> "$" done  cat "$" ffmpeg -f concat -safe 0 -i "$" -c copy -map_metadata 0 -id3v2_version 3 -write_id3v1 1 "$" rm "$" 
0
Вставьте первый файл только как 2-й вход, то есть `-i" $ "-i" first_file "` и используйте `-map_metadata 1`. Gyan 5 лет назад 0
@Gyan Получило бы это в итоге получение первого файла, который будет скопирован в выходной файл дважды? Roxy 5 лет назад 0
Нет, потоковых карт нет, поэтому ffmpeg выберет один из входов, а поскольку свойства потока одинаковы, он выберет первый. Gyan 5 лет назад 0

0 ответов на вопрос

Похожие вопросы