Kennt jemand von euch eine Möglichkeit, dem Ende einer MP3-Datei unter Linux eine Stille von fester Dauer hinzuzufügen? Zum Beispiel mit MEncoder, FFmpeg usw.?
Es muss eine Befehlszeile sein, da es mit Skripten versehen und auf unserem Server ausgeführt wird.
Ich habe das gegoogelt und das Beste, was ich tun kann, ist die Verwendung der pad
Funktion in SoX , aber das funktioniert nicht mit MP3s.
Ich könnte es in WAV konvertieren, SoX verwenden, es dann wieder in MP3 konvertieren und die Metadaten (abzüglich der Dauer) vom Original in das neue MP3 kopieren. Aber bevor ich ein Skript dafür schreibe, dachte ich, ich würde sehen, ob es eine One-Hit-Lösung gibt.
Antworten:
Mit dem
pad
Argument von SoX und der folgenden Syntax können Sie dies ganz einfach tun :Beispiel:
Diese Stille ist in Sekunden. (Andere Verwendungen sind mit einer anderen Syntax möglich, um diese Stille an bestimmten Positionen einzufügen. Weitere Informationen finden Sie in der SoX-Dokumentation.)
quelle
Mit ffmpeg können Sie den aevalsrc-Filter verwenden, um Stille zu erzeugen, und dann in einem zweiten Befehl das concat-Protokoll verwenden, um sie verlustfrei zu kombinieren:
Sie können die Dauer der Stille steuern, indem Sie die
-t 10
gewünschte Zeit in Sekunden festlegen. Natürlich müssen Sie die Stille nur einmal erzeugen, dann können Sie die Datei behalten und damit jede der gewünschten Dateien auffüllen. Möglicherweise möchten Sie auch den Concat-Demuxer nachschlagen - er ist etwas prozessorintensiver, aber es fällt Ihnen möglicherweise leichter, in ein Shell-Skript zu wechseln .Wenn Sie dies mit einem einzigen Befehl tun möchten, können Sie den Concat-Filter verwenden. Dazu müssen Sie Ihr Audio neu codieren (da Filtergraphen nicht kompatibel sind
-codec copy
). Daher ist die obige Option wahrscheinlich die beste für Sie. Dies kann jedoch für alle nützlich sein, die mit rohem PCM arbeiten und vor dem Codieren des Audios am Ende Stille hinzufügen möchten:Steuern Sie die Länge der Stille, indem
d=10
Sie auf die gewünschte Zeit (in Sekunden) wechseln . Wenn Sie diese Methode verwenden, ist diese FFmpeg MP3-Codierungsanleitung möglicherweise hilfreich.quelle
ffmpeg version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Nov 6 2012 16:51:33 with gcc 4.6.3 *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. Unrecognized option 'filter_complex' Failed to set value 'aevalsrc=0' for option 'filter_complex'
avconv
statt - die Syntax gleich sein sollte, ersetzen Sie einfachffmpeg
mitavconv
.