Wie schneidet man eine Audiodatei mit avconv?

Wie schneidet man eine Audiodatei mit avconv?

Ich habe Schwierigkeiten herauszufinden, wie man eine Datei mit schneidet avconv. Hier ist der Befehl, den ich verwende:

avconv -ss 52:13:49 -t 01:13:52 -i RR119Accessibility.wav RR119Accessibility-2.wav 

Aber es funktioniert nicht. Ich bekomme die ganze Datei als Ergebnis. Naja, fast die ganze Datei. Irgendwie hat die resultierende Datei eine Dauer 1:16:31statt 1:17:23. Außerdem glaube ich, dass ich diesen Befehl auf jede mögliche Weise ausgeführt habe: mit -ssund -tnach -i, mit -tAngabe des Endpunkts, mit MP3-Dateien, mit Angabe des Audio-Codecs, mit ffmpeg. Mache ich es falsch?

UPDDank bodhi.zazendieser Arbeit (ich habe den von gemeldeten Offset und die Dauer korrigiert mp3splt-gtk, sie waren aus irgendeinem Grund falsch und das Ziel war, die MP3-Datei zu schneiden)

avconv -i RR119Accessibility.mp3 -ss 00:52:08 -t 00:01:08 RR119Accessibility-2.mp3

Aber das ist nicht der Fall:

avconv -ss 00:52:08 -t 00:01:08 -i RR119Accessibility.mp3 RR119Accessibility-2.mp3

Die resultierende Datei beginnt bei 00:52:08 und geht bis zum Ende der Originaldatei. Ich dachte, -ssund -tbeziehen sich auf die Eingabedatei, wenn sie vorher angegeben wurde -i. Und andernfalls auf die Ausgabedatei. Kann das jemand erklären?

Antwort1

Ich denke, das ursprüngliche Problem lag in der Formatierung Ihres Zeitstempels.

Das Format ist HH:MM:SS

Ich bin mir nicht sicher, ob ich Ihre Frage zur Reihenfolge der Optionen richtig verstehe. Ich denke nicht, dass es wichtig ist, solange auf -i der Name der Eingabedatei folgt und auf -ss HH:MM:SS auf -t HH:MM:SS folgt.

Die -ss HH:MM:SS ist der Startpunkt und -t HH:MM:SS ist die Dauer

also würde -ss 00:01:00 -t 00:05:00 bei der Eine-Minuten-Marke beginnen und 5 Minuten laufen.

Auf meinem System mit ffmpeg spielt die Reihenfolge keine Rolle (Sie können die Zeit oder die Eingabedatei in beliebiger Reihenfolge angeben, solange auf -ss die Dauer (-t) folgt).

Antwort2

Das Problem ergibt sich aus der unterschiedlichen Bedeutung, -ssje nachdem, wo in der Befehlszeile es steht. Das ist ein Überbleibsel aus der Zeit, als es avconvnoch Teil des ffmpegProjekts war, und ich glaube, es wird in den neueren Versionen behoben.

Wenn man früher etwas sagte wie

 ffmpeg -ss 5 -i input

Sie meinten: „Springen Sie zur 5-Sekunden-Marke in der Datei und beginnen Sie dort mit dem Lesen.“

Aber wenn Sie sagen würden

ffmpeg -i input -ss 5

Sie meinten „Öffnen Sie die Eingabedatei und überspringen Sie alle Daten bis zur Fünf-Sekunden-Marke“.

Wie Sie verstehen, schlägt der erste Ansatz tatsächlich recht häufig fehl, da Sie in der Datei springen, ohne sie zu lesen. Er funktioniert nur bei Dateien gut, die Zeitstempel enthalten, sodass Sie den Frame lesen und wissen können, ob Sie bereits zu weit gegangen sind oder nicht.

Im Grunde funktionierte es in ffmpeg folgendermaßen: „Raten Sie die Bitrate anhand der ersten Sekunde und gehen Sie dann davon aus, dass alle anderen Sekunden gleich sind.“ Aber natürlich sind nicht alle Sekunden gleich, und wenn wir von einer „Abweichung“ von 52 Stunden sprechen, kann der Fehler ziemlich groß sein.

Wenn Sie also die frühe Post-Split-Version von avconv verwenden, sollten Sie immer -ssnach der Datei einfügen, die gelesen wird. Aber in den neueren Versionen (soweit ich weiß) wurde dieser Fehler behoben.

Antwort3

Versuchen:

avconv -i RR119Accessibility.wav -ss 52:13:49 -t 01:13:52 RR119Accessibility-2.wav

Die Optionen von ffmpeg und avconv sind positionsempfindlich.

In Ihrem Beispiel beginnt ffmpeg mit dem Lesen der Datei und startet die Ausgabe ab Zeitstempel -ss
(was ffmpeg auf meinem System gut macht, avconv jedoch nicht; nennen Sie es eine Art Regression).

In dem hier angeführten Beispiel sucht avconv (oder auch ffmpeg) zuerst nach dem richtigen Offset und beginnt dann mit dem Lesen und Ausgeben. Dies funktioniert bei beiden.

Weitere Dokumentation zu avconv finden Sie unterhttp://libav.org Diese Jungs haben ffmpeg abgespalten und sind auch für die extrem alte ffmpeg-Version in Ubuntu verantwortlich.

Das ECHTE ffmpeg befindet sich nicht in den Ubuntu-Repositories, sondern in einem PPA:
ppa:jon-severinsson/ffmpeg
Weitere Dokumentation zu ffmpeg finden Sie unterhttp://ffmpeg.org

Betrachten Sie die Manpages als veraltet

verwandte Informationen