Beschneiden und Zusammenfügen von Mediendateien mit ffmpeg
1773
Anmol Singh Jaggi
Ich versuche, ein Segment (00:26:00 - 00:32:30) aus einer Videodatei zu entfernen input.mp4. Da es keine Möglichkeit gibt, dies direkt mit ffmpeg zu tun (soweit ich weiß), schneide ich stattdessen die Segmente, die ich in der Ausgabe haben möchte, und verketten sie dann.
Nach einer kurzen Suche habe ich herausgefunden, dass es zwei Möglichkeiten gibt, dies zu tun:
Befehlsausgabe: Ein Link (Der Fehler wird auf der Leitung erwähnt 90: input.txt: Invalid argument)
Die Ausgabedatei, die ich in diesem Fall bekomme, beträgt nur etwa 500 MB (Eingabedatei 900 MB) und enthält das erste Video + die ersten paar Minuten des zweiten Videos.
Die Verwendung von Methode 1 trimfunktioniert nun dank des Kommentars von @ Mulvya, der das Schreiben von Sekunden als Zeiteinheit anstelle der HH: MM: SS-Notation angibt, da diese defekt ist .
Aber ich möchte immer noch wissen, was mit der zweiten Methode nicht stimmt.
Warum bei der Suchmethode der Dauerindikator '-t' im 2. Befehl?
Gyan vor 8 Jahren
0
@ Mulvya Gibt die Dauer des Ausschnitts an. Nun, da Sie es erwähnt haben, sehe ich, dass ich einen kleinen Fehler gemacht habe: Anstelle von -t 00: 53: 50 im zweiten Befehl hätte es -t 00: 21: 20 sein sollen.
Anmol Singh Jaggi vor 8 Jahren
0
@ Mulvya Auch nachdem ich das korrigiert habe, erhalte ich den gleichen Fehler. Alos, ich habe das korrigiert, ist die Frage.
Anmol Singh Jaggi vor 8 Jahren
0
`trim` funktioniert nicht mit HH: MM: SS [derzeit] (http://superuser.com/q/1061274/114058). Geben Sie in Sekunden an. Und was ich damit gemeint habe, war, da Sie die Datei bis auf das Ende bis auf einen Teil in der Mitte haben möchten, müssen Sie im zweiten Befehl kein "t" angeben. Wenn der Fehler weiterhin auftritt, kopieren Sie die gesamte Datei in einen neuen Container und versuchen Sie es erneut: `ffmpeg -i input -c copy new.mp4`
Gyan vor 8 Jahren
0
Okay, ich habe was Sie sagen wollen. Ich habe die Frage entsprechend bearbeitet.
Anmol Singh Jaggi vor 8 Jahren
0
@ Mulvya Ich habe dasselbe versucht, nachdem ich in einen neuen Container kopiert habe, aber ich bekomme den gleichen Fehler.
Anmol Singh Jaggi vor 8 Jahren
0
Einige andere nützliche Informationen: Das Segment, das ich entfernen möchte, sieht beschädigt aus; Das Video scheint mit der Zeit im selben Frame zu stecken.
Anmol Singh Jaggi vor 8 Jahren
0
@ Mulvya Überprüfen Sie die Änderungen an der Frage. Hast du eine Idee bezüglich der zweiten Methode?
Anmol Singh Jaggi vor 8 Jahren
0
Ich habe noch eine andere Frage: Führt eine dieser Methoden zu einer Verringerung der Videoqualität des Ausgangs?
Anmol Singh Jaggi vor 8 Jahren
0
1 Antwort auf die Frage
1
Gyan
The trim filter does not work with HH:MM:SS currently. Specify in seconds. This method re-encodes the video, so there is a reduction in quality. You can specify a CRF value e.g. -crf 20 to control quality. Lower values produce better quality but larger files. 18 to 28 is a decent range to try.
As for the second method, try by specifying the cutpoints in the text file i.e.
Danke für den Tipp zur Qualität. Die zweite Methode funktioniert immer noch nicht. Die Ausgabedatei enthält überhaupt kein zweites Video. Seine Größe entspricht fast dem ersten Video. [Here] (http://pastebin.com/ZMCEDPwj) ist das Protokoll.
Anmol Singh Jaggi vor 8 Jahren
0
Die Concat-Liste muss sich auf die gesamte Eingabedatei beziehen.
Gyan vor 8 Jahren
0
Okay, das habe ich auch ausprobiert, aber ich bekomme den gleichen "input.txt: Invalid argument" -Fehler, wobei die zweite Videodatei in der Ausgabedatei fehlt.
Anmol Singh Jaggi vor 8 Jahren
0