Wie viele MP3-Dateien beitreten/zusammenführen?
Wenn ich in Google nach dem Verbinden/Zusammenführen vieler MP3-Dateien suche, wird vorgeschlagen, dass ich sie nur cat
zusammenfügen sollte.
Das könnte "funktionieren", aber es ist eindeutig nicht der richtige Weg, da jeder Header und jede Menge IDv3-Tags ebenfalls verkettet werden.
Gibt es ein Linux-Programm, das skriptgesteuert werden kann, um viele mp3 zu verbinden/zusammenzuführen?
Kann mplayer/mencoder / ffmpeg es tun?
10 answers
Dadurch werden zwei MP3-Dateien verkettet, und die resultierenden Metadaten sind die der ersten Datei:
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3
Dies liegt daran, dass für ffmpeg der gesamte Teil "concat:" eine einzelne "Eingabedatei" ist und seine Metadaten aus der ersten verketteten Datei bestehen. Wenn Sie stattdessen Metadaten aus der zweiten Datei verwenden möchten, müssen Sie sie als Dummy-Eingabedatei hinzufügen und ihre Metadaten der Ausgabe zuordnen:
ffmpeg -i "concat:file1.mp3|file2.mp3" -i file2.mp3 -acodec copy test.mp3 -map_metadata 0:1
Wenn Sie Ihre Metadaten aus den beiden Metadaten erstellen möchten, müssen Sie mach es von Hand. Sie können die Metadaten einer Datei mit
ffmpeg -i file1.mp3 -f ffmetadata file1.metadata
Nachdem Sie beide Metadaten abgelegt und neue Metadaten erstellt haben, können Sie sie mit -metadata
zur Ausgabedatei hinzufügen und das Kopieren von Metadaten deaktivieren, indem Sie eine Zuordnung von -map_metadata
aus einer negativen Eingabedatei festlegen Nummer. Dies setzt einen Namenswert und keine anderen Metadaten:
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy -metadata "title=Some Song" test.mp3 -map_metadata 0:-1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-10-21 10:57:13
Dadurch wird ein Ordner voller MP3 zu einer einzigen MP3-Datei verkettet:
1) Speichern Sie eine Liste der zu verkettenden MP3-Dateien, z. B.
$ cat mylist.txt
file '/tmp/01.mp3'
file '/tmp/02.mp3'
file '/tmp/03.mp3'
file '/tmp/04.mp3'
file '/tmp/05.mp3'
file '/tmp/06.mp3'
file '/tmp/07.mp3'
2) Führen Sie den folgenden Befehl aus (-safe 0
ist nicht erforderlich, wenn mylist.txt verwendet stattdessen relative Pfade):
$ ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp3
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-05-17 02:27:39
Mp3Wrap - Befehlszeilenprogramm, das mehrere MP3-Dateien in eine einzelne, abspielbare MP3-Datei einschließt, ohne Dateinamen oder ID3-Informationen zu verlieren und ohne neu zu kodieren. Unterstützt auch die Archivierung Nicht-Audio-Daten wie Wiedergabelisten, Info-Dateien und Cover-Bilder im MP3. Diese Dateien können später entpackt werden (z. B. mit mp3splt); Gewöhnliche MP3-Decoder können den gesamten Audiostream als eine lange Spur abspielen.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-05-07 09:26:47
Basierend auf Miles Wolbes Antwort ist hier ein Einzeiler, der für mich funktioniert hat:
ls *.mp3 | \
sed -e "s/\(.*\)/file '\1'/" | \
ffmpeg -protocol_whitelist 'file,pipe' -f concat -i - -c copy output.mp3
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-10-03 17:27:39
Wenn Sie alle MP3-Dateien des aktuellen Verzeichnisses verketten möchten:
function join_by { local IFS="$1"; shift; echo "$*"; }
files=(*.mp3)
ffmpeg -i "concat:`join_by "|" $files`" -acodec copy output.mp3
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-11-03 09:25:52
Zsh:
audio-join() ffmpeg -i "concat:${(j:|:)@[2,-1]}" -acodec copy $1
audio-join output.mp3 *.mp3
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-08-10 20:45:17
Wenn Sie Skripterstellung benötigen, ist es wahrscheinlich besser, die ffmpeg-Lösung zu verwenden. Wenn Sie jedoch jemals nur eine Anwendung benötigen, um solche Dinge zu tun, können Sie Audacity ausprobieren. Es ist Open Source und plattformübergreifend. Ich habe es nicht verwendet, um mp3s beizutreten, aber ich habe es verwendet, um Abschnitte aus einer MP3 zuzuschneiden und sie am Ende auszublenden. Ich bin bereit zu wetten, dass Sie mp3s beitreten und sie auch miteinander verblassen können.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-07-23 22:23:19
Ein Liner basierend auf Miles Wolbes Antwort, alle .mp3
sortiert nach Namen im aktuellen Verzeichnis zu verbinden:
ffmpeg \
-f concat \
-safe 0 \
-i <(find "$(pwd)" -iname '*.mp3' -printf "file '%p'\n" | sort) \
-c copy \
merged.mp3
Der Befehl find findet ein beliebiges *.mp3
und druckt es mit file
, das dem Pfad vorangestellt ist. $(pwd)
lässt find
den absoluten Pfad drucken. Rohrleitungen bis sort
sortiert die Dateien nach Namen. <()
ist Prozesssubstitution, mit der die Ausgabe von find als Inhalt einer Datei angezeigt werden kann.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-08 07:07:03
Paar Windows-Skripte, die ich dazu erstellt habe (mit ffmpeg)
Verschanzt.Fledermaus -
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%f in ('dir /b *.mp3') do (
echo file '%%f'
)
endlocal
Mergemp3s. bat
call direnhanced.bat > fileList.txt
set /p FILENAME=Output file name then hit ENTER to continue...
ffmpeg -f concat -safe 0 -i fileList.txt -c copy "%FILENAME%.mp3"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-10 17:42:31
So erstellen Sie eine Liste Ihrer MP3-Dateien in einem Format, das den Anforderungen entspricht, wie zum Beispiel:
file '01.mp3'
file '02.mp3'
file '03.mp3'
Sie können dies über die Windows-Eingabeaufforderung tun: (Vorausgesetzt, das aktuelle Verzeichnis befindet sich im Ordner mp3 files)
C:>(für %i in (*.mp3) do @echo file '%i') > mylist.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2021-01-31 17:03:01