Wie kann man mit ffmpeg MP3s zusammenfügen und gleichzeitig die Metadaten kopieren?

600
Roxy

Auf verschiedenen Seiten im Internet wird ffmpegerläutert, wie MP3-Dateien zusammengefügt und die Tags kopiert werden. Ich kann jedoch nicht erkennen, dass sie ordnungsgemäß funktionieren. Im Idealfall würde dies dazu führen, dass alle MP3s zusammengefügt werden und dann die ersten MP3-Metadaten wie Album, Track, Autor usw. in die endgültige Datei kopiert werden.

Ich habe das folgende Skript zusammengestellt. Während es die Dateien verbindet, werden die Metadaten nicht kopiert. Ich dachte, die -map_metadata 0 -id3v2_version 3 -write_id3v1 1Parameter ffmpegwürden es tun, aber das tut es nicht. Was vermisse 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 "$/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
Nehmen Sie die erste Datei nur als zweite Eingabe auf, dh `-i" $ "-i" erste_Datei "` und verwenden Sie `-map_metadata 1 '. Gyan vor 5 Jahren 0
@Gyan Würde dies dazu führen, dass die erste Datei zweimal in die Ausgabedatei kopiert wurde? Roxy vor 5 Jahren 0
Nein, es gibt keine Stream-Maps. Daher wählt ffmpeg eine der Eingaben. Da die Stream-Eigenschaften gleich sind, wird die erste ausgewählt. Gyan vor 5 Jahren 0

0 Antworten auf die Frage