Hier ist ein Linux-Audio-MP3-Puzzle, das mich schon seit einiger Zeit nervt:
So schneiden Sie die ersten Sekunden eines MP3 ab Audiodatei? (Ich kann ffmpeg -ss
nicht dazu bringen, mit dem Format 00:01 oder 1.000 zu arbeiten.)
Um zu tun, was ich will, greife ich bisher darauf zurück Eine GUI-Methode, die für eine einzelne Datei möglicherweise langsamer und für einen Stapel von Dateien definitiv langsamer ist.
Kommentare
- Ein Update. Später habe ich stolperte über die Tatsache, dass ffmpeg sehr wählerisch in Bezug auf das Zeitformat –ss ist, und ich konnte die ersten 9 Sekunden am einfachsten abschneiden, indem ich beispielsweise -ss 00:00:09 angab (beachten Sie, dass alle 3 Zahlen benötigt werden) hh: mm: ss-Format) Die von mir verwendete Version ist möglicherweise alt … FFmpeg-Version SVN-r18709, Copyright (c) 2000-2009 Fabrice Bellard et al.
Antwort
Zum Bearbeiten von MP3s unter Linux würde ich sox empfehlen Ein einfach zu verwendender trim
-Effekt, der genau das tut, wonach Sie fragen (siehe man sox
für Daten – Suche (drücken Sie ) für“ Trimmstart „). Beispiel:
sox input.mp3 output.mp3 trim 1 5
Sie haben es nicht erwähnt, aber wenn Sie nur die Stille Am Anfang von Dateien finden Sie den silence
-Effekt viel nützlicher (man sox
, suchen Sie nach „Überperioden“). )
Kommentare
- Danke, großartig: es hat funktioniert. Der Einfachheit halber habe ich die
trim
verwendet. Der einzige Wermutstropfen warsox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding support
– also geben Sie ffmpeg erneut ein: / - Das scheint ungewöhnlich. Auf meinem Computer funktioniert es problemlos mit MP3s. Es ist eine Frage der Build-Time-Konfiguration. Wie haben Sie es installiert?
- @rozcietrzewiacz, wenn Sie Sox aus einem Distributions-Repository installieren, erhalten Sie höchstwahrscheinlich Sox ohne MP3-Unterstützung (aufgrund von Lizenzproblemen). Zum Beispiel auf Fedora 17:
no handler for file extension mp3
- Ich ' habe Schwierigkeiten, zu verstehen, wie man Sox mit mp3 kompiliert Unterstützung. Keine FAQ, kein Google, nichts. Und die Frage betraf das Trimmen mit ffmpeg …
Antwort
Sie könnten versuchen, mp3splt , das MP3- und Ogg-Dateien aufteilen kann und den Vorteil hat, dass die Datei nicht neu codiert wird, wodurch Qualitätsverluste vermieden werden.
Kommentare
- Ich mag es; Vielen Dank. Es ist einfach und bietet dennoch viele Optionen … Zum Beispiel: Hier ist der Befehl, den ich gerade verwendet habe, der die Zwischenzeiten zum Dateinamen hinzufügt:
mp3splt "$file" 4.12 27.55.7
… Er erlaubt Benutzerdefinierte Formatierung des Ausgabenamens und mehrere Teilungspunkte.
Antwort
Stellen Sie sicher, dass Ihre Zeitangaben mit Stunden beginnen.
So zitieren Sie die Manpage ffmpeg :
kann entweder in Sekunden oder in der Form „hh: mm: ss [.xxx]“
sein. Dies bedeutet, dass bei Auswahl der 2. Syntax nur die .xxx
Teil ist optional. Andernfalls wird ffmpeg möglicherweise als Sekunden falsch analysiert.
Gleiches gilt für die Dauer:
Die Dauer kann eine Zahl in Sekunden sein, oder in „hh: mm: ss [.xxx]“
Eine weitere Gefahr ist die Reihenfolge der ffmpeg-Argumente (z. B. die -ss
/ -t
Optionen für eine Eingabedatei müssen vor der Option -i
stehen.
Beispiel
$ wget http://traffic.libsyn.com/twiv/TWiV179.mp3 $ ffmpeg -ss 1:05:59.3 -t 00:02:03.9 -i TWiV179.mp3 -acodec copy \ what_is_a_hmm_twiv179.mp3
Mit der Spezifikation -ss 1:05:59.3 -t 2:03.9
würden Sie ein anderes Ergebnis erhalten (dh ein 2 Sekunden langes Stück).
(Getestet auf Fedora 17 mit ffmpeg Version 0.10.7.)