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:31
statt 1:17:23
. Außerdem glaube ich, dass ich diesen Befehl auf jede mögliche Weise ausgeführt habe: mit -ss
und -t
nach -i
, mit -t
Angabe des Endpunkts, mit MP3-Dateien, mit Angabe des Audio-Codecs, mit ffmpeg
. Mache ich es falsch?
UPDDank bodhi.zazen
dieser 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, -ss
und -t
beziehen 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, -ss
je nachdem, wo in der Befehlszeile es steht. Das ist ein Überbleibsel aus der Zeit, als es avconv
noch Teil des ffmpeg
Projekts 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 -ss
nach 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